/* ==========================================================================
   Ecogru app design system (2026-10-11 redesign)

   One stylesheet for the signed-in app: Home (Founder and Talent), the idea
   page, Post an idea, and the shell around them (top bar on desktop, bottom
   tab bar on phones). Mobile-first. Plain CSS, no framework.

   Look (v4): a deep forest frame around a crisp white canvas. Marigold is
   spent on the one main action and the days-left runway. The runway is the
   signature: fourteen day-cells, the days left lit in marigold. People get
   their own avatar colour so screens read as teams, not tables. No
   gradients, blobs or glass; one soft shadow tier, on hover only.

   Classes are prefixed e- so this file can sit next to styles.css on pages
   that still use older components (chat, tasks, files).
   ========================================================================== */

@font-face { font-family: "Unbounded"; font-weight: 500; font-display: swap; src: url(/assets/fonts/unbounded-latin-500-normal.woff2) format("woff2"); }
@font-face { font-family: "Unbounded"; font-weight: 600; font-display: swap; src: url(/assets/fonts/unbounded-latin-600-normal.woff2) format("woff2"); }
@font-face { font-family: "Instrument Sans"; font-weight: 400; font-display: swap; src: url(/assets/fonts/instrument-sans-latin-400-normal.woff2) format("woff2"); }
@font-face { font-family: "Instrument Sans"; font-weight: 500; font-display: swap; src: url(/assets/fonts/instrument-sans-latin-500-normal.woff2) format("woff2"); }
@font-face { font-family: "Instrument Sans"; font-weight: 600; font-display: swap; src: url(/assets/fonts/instrument-sans-latin-600-normal.woff2) format("woff2"); }

:root {
  /* Brand */
  --e-forest: #0F3B2A;
  --e-forest-2: #17533C;       /* hover, raised on forest */
  --e-forest-3: #CFE3D7;       /* secondary text on forest */
  /* The frame (sidebar, top bar, bands, tile bases): jade with white text.
     Owner decision 2026-10-12, picked from seven greens that all passed
     WCAG contrast (text 6.4:1, secondary 5.3:1, marigold numbers 3.5:1). */
  --e-frame: #0E6B5A;
  --e-frame-2: #1B7B69;        /* fills on the frame: hover, pills, idle cells */
  --e-frame-line: #2C8877;
  --e-frame-ink: #FFFFFF;
  --e-frame-ink-2: #D4EFE8;
  --e-frame-hot: #FFAE1A;      /* numbers that need you, on the frame */
  --e-honey: #FFAE1A;          /* marigold */
  --e-honey-2: #F09A00;        /* hover / pressed */
  --e-honey-soft: #FFF0D1;
  --e-paper: #F6F8F3;          /* light text on forest */
  /* Neutrals (cool, a touch of green) */
  --e-canvas: #FFFFFF;
  --e-white: #FFFFFF;
  --e-surface: #F3F6F2;        /* tinted card fill */
  --e-surface-2: #E9EEE8;      /* hover on tinted fill */
  --e-ink: #0F1712;
  --e-ink-2: #4A554E;          /* secondary text, 7.5:1 on white */
  --e-ink-3: #66716A;          /* tertiary, 4.9:1 on white */
  --e-line: #E2E7E0;
  --e-line-2: #CBD3C9;
  --e-mist: #F3F6F2;           /* quiet fills */
  --e-moss: #E1F0E6;           /* selected / positive tint */
  /* Avatar colours: one per person, picked from their name */
  --e-h1: #FFAE1A; --e-h2: #8FD3B0; --e-h3: #A9C1FF; --e-h4: #FF9E8A; --e-h5: #D2BFFF; --e-h6: #F5D547;
  /* Status */
  --e-ok: #2F7A4F;
  --e-warn: #B5651D;
  --e-danger: #B3261E;
  --e-danger-soft: #FBE9E7;

  --e-font-display: "Unbounded", "Instrument Sans", system-ui, sans-serif;
  --e-font-body: "Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;

  /* 4px spacing scale */
  --e-1: 4px; --e-2: 8px; --e-3: 12px; --e-4: 16px; --e-5: 20px; --e-6: 24px; --e-8: 32px; --e-10: 40px; --e-12: 48px; --e-16: 64px;
  --e-radius: 18px;            /* cards */
  --e-radius-sm: 10px;         /* inputs, buttons */
  --e-top-h: 60px;
  --e-tabs-h: 64px;
  --e-max: 1120px;
  /* z-index scale */
  --e-z-bar: 30; --e-z-menu: 40; --e-z-sheet: 50;
}

/* ---------- Base ---------- */
body.e-app {
  margin: 0;
  background: var(--e-canvas);
  color: var(--e-ink);
  font-family: var(--e-font-body);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.e-app *, body.e-app *::before, body.e-app *::after { box-sizing: border-box; }
.e-app [hidden] { display: none !important; }
/* Type: Unbounded only for page titles and big numbers; everything else is
   Instrument Sans, so the display face stays special. */
.e-app h1, .e-display {
  font-family: var(--e-font-display);
  font-weight: 600;
  color: var(--e-forest);
  letter-spacing: -0.015em;
  line-height: 1.15;
  margin: 0;
}
.e-app h2, .e-app h3 { font-family: var(--e-font-body); color: var(--e-ink); margin: 0; letter-spacing: -0.005em; line-height: 1.3; }
.e-app h1 { font-size: 1.6rem; }
.e-app h2 { font-size: 1.05rem; font-weight: 600; }
.e-app h3 { font-size: 0.98rem; font-weight: 600; }
@media (min-width: 900px) { .e-app h1 { font-size: 2rem; } .e-app h2 { font-size: 1.1rem; } }
.e-app p { margin: 0; }
.e-app a { color: var(--e-forest); }
.e-app :focus-visible { outline: 3px solid var(--e-honey); outline-offset: 2px; border-radius: 6px; }
.e-muted { color: var(--e-ink-2); }
.e-small { font-size: 0.875rem; }
.e-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.e-icon { width: 20px; height: 20px; flex: none; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
@media (prefers-reduced-motion: reduce) { .e-app * { transition: none !important; animation: none !important; } }

/* ---------- Shell ----------
   Phones: slim top bar (logo, notifications, me) + bottom tabs.
   Desktop: a left sidebar with the five sections; the top bar shrinks to
   notifications and me, on the right of the content. */
:root { --e-side-w: 248px; }
.e-top {
  position: sticky; top: 0; z-index: var(--e-z-bar);
  height: var(--e-top-h);
  background: var(--e-forest); color: var(--e-paper);
}
.e-top .e-icon-btn { color: var(--e-paper); }
.e-top .e-icon-btn:hover { background: var(--e-frame-2); }
.e-app .e-top .e-avatar, .e-app .e-top .e-avatar.is-talent { background: var(--e-honey); color: var(--e-forest); }
.e-top-inner { height: 100%; padding: 0 var(--e-4); display: flex; align-items: center; gap: var(--e-4); }
.e-brand { display: flex; align-items: center; gap: var(--e-2); text-decoration: none; }
.e-brand img { height: 28px; width: auto; display: block; }
.e-top-actions { margin-left: auto; display: flex; align-items: center; gap: var(--e-2); }
.e-icon-btn {
  position: relative; width: 44px; height: 44px; border-radius: 12px;
  display: inline-flex; align-items: center; justify-content: center;
  background: transparent; border: 0; color: var(--e-forest); cursor: pointer; text-decoration: none;
}
.e-icon-btn:hover { background: var(--e-mist); }
.e-count {
  position: absolute; top: 6px; right: 6px; min-width: 18px; height: 18px; padding: 0 5px;
  border-radius: 9px; background: var(--e-honey); color: var(--e-forest);
  font-size: 0.7rem; font-weight: 600; line-height: 18px; text-align: center;
}
.e-app .e-avatar {
  width: 36px; height: 36px; border-radius: 50%; flex: none;
  background: var(--e-forest); color: var(--e-paper);
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--e-font-body); font-size: 0.8rem; font-weight: 600; letter-spacing: 0.02em;
  overflow: hidden; text-decoration: none;
}
.e-avatar img { width: 100%; height: 100%; object-fit: cover; }
.e-app .e-avatar.is-lg { width: 48px; height: 48px; font-size: 0.95rem; }
.e-app .e-avatar.is-sm { width: 28px; height: 28px; font-size: 0.68rem; }
.e-app .e-avatar.is-talent { background: var(--e-honey); color: var(--e-forest); }
/* Team faces, overlapping */
.e-faces { display: inline-flex; align-items: center; }
.e-faces .e-avatar { border: 2px solid var(--e-white); }
.e-faces .e-avatar + .e-avatar { margin-left: -4px; }
.e-faces .e-faces-more { margin-left: 6px; font-size: 0.85rem; color: var(--e-ink-2); }
.e-app .e-avatar.is-asking { background: var(--e-white); color: var(--e-ink-2); border: 2px dashed var(--e-honey); }
.e-team { display: grid; gap: var(--e-2); margin-top: var(--e-5); padding-top: var(--e-4); border-top: 1px solid var(--e-line); }
.e-team-line { color: var(--e-ink-2); font-size: 0.875rem; }

.e-side { display: none; }
@media (min-width: 900px) {
  .e-side {
    position: fixed; top: 0; bottom: 0; left: 0; z-index: var(--e-z-bar); width: var(--e-side-w);
    display: flex; flex-direction: column; gap: var(--e-6);
    padding: var(--e-6) var(--e-4); background: var(--e-forest);
  }
  .e-side .e-brand { padding: var(--e-1) var(--e-2); }
  .e-side nav { display: grid; gap: var(--e-1); }
  .e-side nav a {
    display: flex; align-items: center; gap: var(--e-3); min-height: 44px; padding: 0 var(--e-3);
    border-radius: var(--e-radius-sm); color: var(--e-frame-ink-2); text-decoration: none; font-weight: 500;
  }
  .e-side nav a:hover { background: var(--e-frame-2); color: var(--e-paper); }
  .e-side nav a[aria-current="page"] { background: var(--e-frame-2); color: var(--e-paper); box-shadow: inset 3px 0 0 var(--e-honey); }
  /* Always there, but outlined: solid honey is kept for each screen's own main action. */
  .e-side .e-side-post { margin-top: var(--e-3); color: var(--e-honey) !important; font-weight: 600 !important; box-shadow: inset 0 0 0 1.5px var(--e-honey); }
  .e-side .e-side-post:hover, .e-side .e-side-post[aria-current="page"] { background: var(--e-honey) !important; color: var(--e-forest) !important; }
  .e-side .e-side-post[aria-current="page"] { box-shadow: none; }
  .e-side-foot { margin-top: auto; font-size: 0.8rem; color: var(--e-frame-ink-2); padding: 0 var(--e-2); }
  body.e-app { padding-left: var(--e-side-w); }
  .e-top { background: transparent; border-bottom: 0; position: absolute; top: 0; right: 0; left: var(--e-side-w); pointer-events: none; }
  .e-top-inner { justify-content: flex-end; padding: 0 var(--e-6); }
  .e-top-inner > * { pointer-events: auto; }
  .e-top .e-brand { display: none; }
  .e-top .e-icon-btn, .e-top .e-avatar { pointer-events: auto; }
  /* Off the band the corner icons sit on paper again. */
  .e-top:not(.is-on-band) .e-icon-btn { color: var(--e-forest); }
  .e-top:not(.is-on-band) .e-icon-btn:hover { background: var(--e-mist); }
  .e-app .e-top:not(.is-on-band) .e-avatar { background: var(--e-forest); color: var(--e-paper); }
}

/* ---------- The band: forest summary at the top of Home ---------- */
.e-band { background: var(--e-forest); color: var(--e-paper); }
.e-band-inner { max-width: var(--e-max); margin: 0 auto; padding: var(--e-3) var(--e-4) var(--e-8); }
@media (min-width: 900px) { .e-band-inner { padding: var(--e-16) var(--e-8) var(--e-10); } }
.e-band h1 { color: var(--e-paper); }
.e-band-sub { color: var(--e-frame-ink-2); margin-top: var(--e-2); font-size: 1.02rem; }
.e-band-row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--e-5); }
.e-band-stats { display: flex; gap: var(--e-6); margin-top: var(--e-6); flex-wrap: wrap; }
.e-band-stat { display: grid; gap: 2px; }
.e-band-stat b { font-family: var(--e-font-display); font-weight: 600; font-size: 1.7rem; line-height: 1; color: var(--e-paper); font-variant-numeric: tabular-nums; }
.e-band-stat.is-hot b { color: var(--e-honey); }
.e-band-stat span { font-size: 0.85rem; color: var(--e-frame-ink-2); }
a.e-band-stat { text-decoration: none; border-radius: 8px; }
a.e-band-stat:hover span { color: var(--e-paper); text-decoration: underline; }
.e-band .e-btn-main { min-height: 48px; padding: 0 var(--e-6); }
@media (max-width: 899px) { .e-band .e-btn-main { width: 100%; } }

.e-verified { display: inline-flex; align-items: center; gap: 4px; font-size: 0.8rem; font-weight: 600; color: var(--e-forest); background: var(--e-moss); border-radius: 999px; padding: 2px 8px 2px 6px; }
.e-verified .e-icon { width: 14px; height: 14px; }
.e-unverified { font-size: 0.8rem; color: var(--e-ink-3); }

/* ---------- Shell: bottom tab bar (phones) ---------- */
.e-tabs {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: var(--e-z-bar);
  height: calc(var(--e-tabs-h) + env(safe-area-inset-bottom));
  padding-bottom: env(safe-area-inset-bottom);
  background: var(--e-white); border-top: 1px solid var(--e-line);
  display: grid; grid-template-columns: repeat(5, minmax(0, 1fr));
}
.e-tabs a {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  color: var(--e-ink-3); text-decoration: none; font-size: 0.72rem; font-weight: 500;
  min-height: 48px;
}
.e-tabs a[aria-current="page"] { color: var(--e-forest); }
.e-tabs a[aria-current="page"] .e-icon { stroke-width: 2.2; }
.e-tabs .e-tab-post .e-tab-plus {
  width: 44px; height: 44px; border-radius: 14px; margin-top: -14px;
  background: var(--e-honey); color: var(--e-forest);
  display: flex; align-items: center; justify-content: center;
  border: 3px solid var(--e-white);
}
.e-tabs .e-tab-post { color: var(--e-forest); }
body.e-app { padding-bottom: calc(var(--e-tabs-h) + env(safe-area-inset-bottom)); }
@media (min-width: 900px) { body.e-app { padding-bottom: 0; } .e-tabs { display: none; } }

/* Notification dropdown (assets/js/notifications.js fills it) */
.e-notif { position: relative; }
.e-notif .notif-dropdown {
  position: absolute; right: 0; top: 52px; z-index: var(--e-z-menu);
  width: min(360px, calc(100vw - 24px));
  background: var(--e-white); border: 1px solid var(--e-line); border-radius: var(--e-radius);
  max-height: 70vh; overflow-y: auto;
}
.e-notif .notif-dropdown-header { padding: var(--e-3) var(--e-4); font-weight: 600; border-bottom: 1px solid var(--e-line); }
.e-notif .notif-item { display: block; padding: var(--e-3) var(--e-4); border-bottom: 1px solid var(--e-line); text-decoration: none; color: var(--e-ink); }
.e-notif .notif-item.unread { background: var(--e-mist); }
.e-notif .notif-item-title { font-weight: 600; font-size: 0.9rem; }
.e-notif .notif-item-text { color: var(--e-ink-2); font-size: 0.875rem; }
.e-notif .notif-item-time { color: var(--e-ink-3); font-size: 0.75rem; }
.e-notif .notif-bell-count { position: absolute; top: 6px; right: 6px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--e-honey); color: var(--e-forest); font-size: 0.7rem; font-weight: 600; line-height: 18px; text-align: center; }
.e-notif .empty-state { padding: var(--e-6); color: var(--e-ink-2); text-align: center; }

/* ---------- Layout ---------- */
.e-main { max-width: var(--e-max); margin: 0 auto; padding: var(--e-6) var(--e-4) var(--e-12); }
@media (min-width: 900px) { .e-main { padding: var(--e-10) var(--e-6) var(--e-16); } }
.e-page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--e-4); margin-bottom: var(--e-6); flex-wrap: wrap; }
.e-page-head p { margin-top: var(--e-1); }
.e-page-head .e-btn { flex: none; }
.e-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--e-8); }
@media (min-width: 900px) { .e-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 340px); gap: var(--e-10); align-items: start; } }
.e-section + .e-section { margin-top: var(--e-8); }
.e-section-head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--e-3); margin-bottom: var(--e-3); }
.e-section-head a, .e-link { font-weight: 600; font-size: 0.9rem; color: var(--e-forest); text-decoration: none; }
.e-section-head a:hover, .e-link:hover { text-decoration: underline; }
.e-stack { display: grid; gap: var(--e-3); }
.e-cards { display: grid; gap: var(--e-3); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) { .e-cards.is-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- Surfaces ---------- */
.e-card {
  background: var(--e-white); border: 1px solid var(--e-line); border-radius: var(--e-radius);
  padding: var(--e-5);
}
.e-card.is-link { display: block; color: inherit; text-decoration: none; cursor: pointer; transition: box-shadow .2s ease; }
.e-card.is-link:hover { box-shadow: 0 0 0 1px rgba(0,0,0,.02), 0 2px 6px rgba(0,0,0,.04), 0 4px 8px rgba(0,0,0,.08); }
.e-card-title { font-family: var(--e-font-body); font-weight: 600; font-size: 1.08rem; color: var(--e-ink); line-height: 1.3; overflow-wrap: anywhere; }
.e-card-sub { color: var(--e-ink-2); font-size: 0.92rem; margin-top: var(--e-1); overflow-wrap: anywhere; }
.e-card-foot { display: flex; align-items: center; gap: var(--e-3); flex-wrap: wrap; margin-top: var(--e-4); }

/* Rows inside a card: people, requests, activity */
.e-list { background: var(--e-white); border: 1px solid var(--e-line); border-radius: var(--e-radius); }
.e-row { display: flex; align-items: center; gap: var(--e-3); padding: var(--e-3) var(--e-4); min-height: 64px; }
.e-row + .e-row { border-top: 1px solid var(--e-line); }
.e-row-body { flex: 1 1 auto; min-width: 0; }
.e-row-title { font-weight: 600; overflow-wrap: anywhere; }
.e-row-sub { color: var(--e-ink-2); font-size: 0.875rem; overflow-wrap: anywhere; }
.e-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.e-row-actions { display: flex; gap: var(--e-2); flex: none; }
a.e-row { color: inherit; text-decoration: none; }
a.e-row:hover { background: var(--e-mist); }

/* ---------- The runway: days left in the 14-day trial ---------- */
.e-runway { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; column-gap: var(--e-3); }
.e-runway-days { font-family: var(--e-font-display); font-weight: 600; color: var(--e-forest); font-size: 1.6rem; line-height: 1; font-variant-numeric: tabular-nums; }
.e-runway-label { color: var(--e-ink-2); font-size: 0.8rem; }
.e-runway-track { grid-column: 1 / -1; height: 10px; border-radius: 5px; background: var(--e-honey-soft); margin-top: var(--e-2); overflow: hidden; }
.e-runway-fill { height: 100%; background: var(--e-honey); border-radius: 5px; }
.e-runway.is-waiting .e-runway-days { color: var(--e-ink-3); }
.e-runway.is-waiting .e-runway-track { background: var(--e-mist); }
.e-runway.is-waiting .e-runway-fill { background: var(--e-line-2); }
.e-runway.is-low .e-runway-fill { background: var(--e-warn); }

/* ---------- Buttons ---------- */
.e-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--e-2);
  min-height: 44px; padding: 0 var(--e-5); border-radius: var(--e-radius-sm);
  font: 600 0.95rem/1 var(--e-font-body); text-decoration: none; cursor: pointer;
  border: 1px solid transparent; transition: background-color .15s ease, border-color .15s ease;
  white-space: nowrap;
}
.e-btn:disabled { opacity: .55; cursor: default; }
.e-btn-main { background: var(--e-honey); color: var(--e-forest); }
.e-btn-main:hover { background: var(--e-honey-2); }
.e-btn-solid { background: var(--e-forest); color: var(--e-paper); }
.e-btn-solid:hover { background: var(--e-forest-2); }
.e-btn-line { background: var(--e-white); color: var(--e-forest); border-color: var(--e-line-2); }
.e-btn-line:hover { border-color: var(--e-forest); }
.e-btn-quiet { background: transparent; color: var(--e-ink-2); padding: 0 var(--e-3); }
.e-btn-quiet:hover { color: var(--e-forest); background: var(--e-mist); }
.e-btn-block { width: 100%; }
.e-btn-sm { min-height: 36px; padding: 0 var(--e-3); font-size: 0.875rem; }
@media (max-width: 899px) { .e-page-head .e-btn-main { width: 100%; } }

/* ---------- Chips and badges ---------- */
.e-chips { display: flex; flex-wrap: wrap; gap: var(--e-2); }
.e-chip { display: inline-flex; align-items: center; min-height: 28px; padding: 0 var(--e-3); border-radius: 999px; background: var(--e-mist); color: var(--e-ink-2); font-size: 0.8rem; font-weight: 500; }
.e-chip.is-match { background: var(--e-moss); color: var(--e-forest); }
.e-badge { display: inline-flex; align-items: center; gap: 4px; font-size: 0.78rem; font-weight: 600; color: var(--e-ok); }
.e-badge .e-icon { width: 16px; height: 16px; }
.e-stage { display: inline-flex; align-items: center; gap: 6px; font-size: 0.8rem; font-weight: 600; color: var(--e-ink-2); }
.e-stage::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--e-line-2); }
.e-stage.is-building::before { background: var(--e-honey); }
.e-stage.is-launched::before { background: var(--e-ok); }
.e-status { font-size: 0.8rem; font-weight: 600; padding: 4px 10px; border-radius: 999px; background: var(--e-mist); color: var(--e-ink-2); white-space: nowrap; }
.e-status.is-pending { background: var(--e-honey-soft); color: #7A4D0B; }
.e-status.is-ok { background: var(--e-moss); color: var(--e-forest); }
.e-status.is-no { background: var(--e-danger-soft); color: var(--e-danger); }
.e-stat { display: inline-flex; align-items: center; gap: 6px; color: var(--e-ink-2); font-size: 0.875rem; }
.e-stat .e-icon { width: 18px; height: 18px; }
.e-stat strong { color: var(--e-ink); font-weight: 600; }
.e-stat.is-alert strong { color: #7A4D0B; }

/* ---------- Empty and loading ---------- */
.e-empty { border: 1px dashed var(--e-line-2); border-radius: var(--e-radius); padding: var(--e-6); text-align: left; }
.e-empty h3 { margin-bottom: var(--e-1); }
.e-empty p { color: var(--e-ink-2); }
.e-empty .e-btn { margin-top: var(--e-4); }
.e-skel { background: var(--e-mist); border-radius: var(--e-radius); min-height: 96px; animation: e-pulse 1.4s ease-in-out infinite; }
@keyframes e-pulse { 50% { opacity: .55; } }

/* ---------- Forms ---------- */
.e-field { display: grid; gap: var(--e-2); }
.e-field + .e-field { margin-top: var(--e-5); }
.e-label { font-weight: 600; font-size: 0.92rem; color: var(--e-ink); }
.e-hint { color: var(--e-ink-2); font-size: 0.85rem; }
.e-input, .e-textarea, .e-select {
  width: 100%; min-height: 48px; padding: var(--e-3) var(--e-4);
  border: 1px solid var(--e-line-2); border-radius: var(--e-radius-sm); background: var(--e-white);
  font: 400 1rem/1.5 var(--e-font-body); color: var(--e-ink);
}
.e-textarea { min-height: 140px; resize: vertical; }
.e-input:focus, .e-textarea:focus, .e-select:focus { outline: none; border-color: var(--e-forest); box-shadow: 0 0 0 3px var(--e-moss); }
.e-error { color: var(--e-danger); font-size: 0.85rem; display: none; }
.e-error.show { display: block; }
.e-choice { display: flex; flex-wrap: wrap; gap: var(--e-2); }
.e-choice button {
  min-height: 44px; padding: 0 var(--e-4); border-radius: var(--e-radius-sm);
  border: 1px solid var(--e-line-2); background: var(--e-white); color: var(--e-ink-2); font: 500 0.92rem var(--e-font-body); cursor: pointer;
}
.e-choice button[aria-checked="true"], .e-choice button[aria-pressed="true"] { border-color: var(--e-forest); background: var(--e-moss); color: var(--e-forest); }
.e-disclose { border-top: 1px solid var(--e-line); margin-top: var(--e-5); padding-top: var(--e-4); }
.e-disclose summary { cursor: pointer; font-weight: 600; color: var(--e-forest); min-height: 44px; display: flex; align-items: center; }
.e-legal { max-height: 220px; overflow-y: auto; white-space: pre-wrap; font-size: 0.85rem; line-height: 1.55; color: var(--e-ink-2); background: var(--e-mist); border-radius: var(--e-radius-sm); padding: var(--e-4); }

/* ---------- Segmented tabs (idea page) ---------- */
.e-tabbar { display: flex; gap: var(--e-1); border-bottom: 1px solid var(--e-line); overflow-x: auto; scrollbar-width: none; }
.e-tabbar::-webkit-scrollbar { display: none; }
.e-tabbar button {
  flex: 1 0 auto; min-height: 48px; padding: 0 var(--e-3); background: none; border: 0; border-bottom: 3px solid transparent;
  color: var(--e-ink-2); font: 600 0.92rem var(--e-font-body); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 6px;
}
.e-tabbar button[aria-selected="true"] { color: var(--e-forest); border-bottom-color: var(--e-honey); }
.e-tabbar .e-count { position: static; }
@media (min-width: 900px) { .e-tabbar button { flex: 0 0 auto; padding: 0 var(--e-5); } }

/* ---------- Idea page header ---------- */
.e-idea-head { background: var(--e-white); border-bottom: 1px solid var(--e-line); }
.e-idea-head-inner { max-width: var(--e-max); margin: 0 auto; padding: var(--e-5) var(--e-4) 0; }
@media (min-width: 900px) { .e-idea-head-inner { padding: var(--e-8) var(--e-6) 0; } }
.e-idea-top { display: grid; gap: var(--e-4); }
@media (min-width: 900px) { .e-idea-top { grid-template-columns: minmax(0, 1fr) 300px; align-items: end; gap: var(--e-10); } }
.e-idea-meta { display: flex; align-items: center; gap: var(--e-3); flex-wrap: wrap; margin-top: var(--e-2); color: var(--e-ink-2); font-size: 0.92rem; }
.e-idea-actions { display: flex; gap: var(--e-2); margin-top: var(--e-4); flex-wrap: wrap; }
.e-idea-body { max-width: var(--e-max); margin: 0 auto; padding: var(--e-5) var(--e-4) var(--e-12); }
@media (min-width: 900px) { .e-idea-body { padding: var(--e-8) var(--e-6) var(--e-16); } }
.e-back { display: inline-flex; align-items: center; gap: 6px; color: var(--e-ink-2); text-decoration: none; font-size: 0.875rem; font-weight: 500; margin-bottom: var(--e-3); min-height: 32px; }
.e-back:hover { color: var(--e-forest); }

/* ---------- Toast ---------- */
.e-toast { position: fixed; left: 50%; bottom: calc(var(--e-tabs-h) + 16px); transform: translateX(-50%); z-index: var(--e-z-sheet); background: var(--e-forest); color: var(--e-paper); padding: var(--e-3) var(--e-5); border-radius: var(--e-radius-sm); font-weight: 500; }
@media (min-width: 900px) { .e-toast { bottom: 24px; } }

/* Error banner from main.js (EcogruUI.showError) */
.e-app .banner.error { display: flex; gap: 12px; align-items: flex-start; background: var(--e-danger-soft); color: var(--e-danger); border-radius: var(--e-radius); padding: 14px 16px; font-size: 0.92rem; }
.e-app .banner.error .icon-badge svg { width: 20px; height: 20px; }

/* ---------- Older components used inside the app (idea page) ----------
   Chat, tasks, files and member rows still come from styles.css and
   workspace-interior.js; these rules give them the app's look. */
.e-app .tab-row.e-tabbar { background: none; padding: 0; border-radius: 0; box-shadow: none; gap: var(--e-1); margin-bottom: 0; }
.e-app .e-tabbar .tab-btn { background: none; box-shadow: none; border-radius: 0; color: var(--e-ink-2); }
.e-app .e-tabbar .tab-btn.selected, .e-app .e-tabbar .tab-btn[aria-selected="true"] { background: none; color: var(--e-forest); border-bottom-color: var(--e-honey); box-shadow: none; }
.e-app .e-tabbar .tab-btn svg { display: none; }
.e-app .e-sub-links { display: flex; gap: var(--e-4); margin-top: var(--e-4); }
.e-app .e-link-btn { background: none; border: 0; padding: 0; min-height: 44px; color: var(--e-forest); font: 600 0.92rem var(--e-font-body); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; box-shadow: none; }
.e-app .e-link-btn.e-back { text-decoration: none; display: inline-flex; margin-bottom: var(--e-2); }
.e-app .e-idea-body .tab-panel { min-height: 320px; }
.e-app .chat-card { background: var(--e-white); border: 1px solid var(--e-line); border-radius: var(--e-radius); box-shadow: none; }
.e-app .chat-log { min-height: 300px; }
.e-app .chat-send-btn { background: var(--e-forest); color: var(--e-paper); box-shadow: none; }
.e-app .chat-input { border-color: var(--e-line-2); border-radius: var(--e-radius-sm); }
.e-app .task-add-row { display: flex; gap: var(--e-2); }
.e-app .e-list .pending-invite-row, .e-app .e-list .join-request-row { padding: var(--e-3) var(--e-4); border-top: 1px solid var(--e-line); }
.e-app .e-list .pending-invite-row:first-child, .e-app .e-list .join-request-row:first-child { border-top: 0; }
.e-app .e-list .member-row { padding: var(--e-3) 0; }
.e-app .e-list .member-row + .member-row { border-top: 1px solid var(--e-line); }
.e-app .member-name { font-weight: 600; color: var(--e-ink); }
.e-app .member-role { color: var(--e-ink-2); font-size: 0.875rem; }
.e-app .avatar { background: var(--e-forest); color: var(--e-paper); }
.e-app .btn-outline { border-radius: var(--e-radius-sm); border: 1px solid var(--e-line-2); background: var(--e-white); color: var(--e-forest); box-shadow: none; }
.e-app .btn-primary { border-radius: var(--e-radius-sm); background: var(--e-honey); color: var(--e-forest); box-shadow: none; }
.e-app .verified-badge { background: none; color: var(--e-ok); padding: 0; box-shadow: none; }
.e-app .banner.pending { background: var(--e-honey-soft); color: #5C3A06; border-radius: var(--e-radius-sm); padding: 12px 14px; border: 0; }
.e-app .status-pill { border-radius: 999px; }
.e-app .e-idea-page, .e-idea-page { background: var(--e-canvas); }

/* Old global rules that fight the app layout */
.e-app section { padding: 0; }
.e-app .tab-row.e-tabbar { border: 0; border-bottom: 1px solid var(--e-line); background: none; padding: 0; border-radius: 0; }
.e-app .e-tabbar .tab-btn { flex: 1 0 auto; flex-direction: row; white-space: nowrap; border-radius: 0; padding: 0 var(--e-3); min-height: 48px; border-bottom: 3px solid transparent; font-size: 0.92rem; }
@media (min-width: 900px) { .e-app .e-tabbar .tab-btn { flex: 0 0 auto; padding: 0 var(--e-5); } }
.e-app #membersTitle { font-size: 1.05rem; margin: 0; }
.e-app #historyVisibilityTitle { font: 600 0.92rem var(--e-font-body); color: var(--e-ink); margin: 0; }

/* ---------- Idea page header as a forest band (bold direction) ---------- */
.e-app .e-idea-head { background: var(--e-forest); border-bottom: 0; color: var(--e-paper); }
.e-app .e-idea-head h1 { color: var(--e-paper); }
.e-app .e-idea-head .e-back, .e-app .e-idea-head .e-idea-meta, .e-app .e-idea-head #wsDesc, .e-app .e-idea-head .e-stage { color: var(--e-frame-ink-2); }
.e-app .e-idea-head .e-back:hover { color: var(--e-paper); }
.e-app .e-idea-head .e-runway-days { color: var(--e-paper); }
.e-app .e-idea-head .e-runway-label { color: var(--e-frame-ink-2); }
.e-app .e-idea-head .e-runway-track { background: var(--e-frame-2); }
.e-app .e-idea-head .e-runway.is-waiting .e-runway-days { color: var(--e-frame-ink-2); }
.e-app .e-idea-head .e-btn-line { background: transparent; color: var(--e-paper); border-color: var(--e-frame-line); }
.e-app .e-idea-head .e-btn-line:hover { border-color: var(--e-paper); }
.e-app .e-idea-head .e-btn-quiet { color: var(--e-frame-ink-2); }
.e-app .e-idea-head .e-btn-quiet:hover { background: var(--e-frame-2); color: var(--e-paper); }
.e-app .e-idea-head .tab-row.e-tabbar { border-bottom: 0; }
.e-app .e-idea-head .e-tabbar .tab-btn { color: var(--e-frame-ink-2); }
.e-app .e-idea-head .e-tabbar .tab-btn.selected, .e-app .e-idea-head .e-tabbar .tab-btn[aria-selected="true"] { color: var(--e-paper); border-bottom-color: var(--e-honey); }
.e-app .e-idea-head .e-status { background: var(--e-frame-2); color: var(--e-paper); }

/* Accept is a solid forest button everywhere; honey stays for the one main action. */
.e-app .join-request-actions .btn-primary, .e-app .e-list .btn-primary { background: var(--e-forest); color: var(--e-paper); }
.e-app .e-list .pending-invite-row, .e-app .e-list .join-request-row { display: flex; align-items: center; gap: var(--e-3); }
.e-app .e-list .pending-invite-row .member-info, .e-app .e-list .join-request-row .member-info { flex: 1 1 auto; min-width: 0; }

/* ==========================================================================
   Sign-in and start (wave 2): one layout for every signed-out page.
   Phone: logo, title, form. Desktop: a forest panel that shows the product
   (an idea card with the days-left runway, team faces, a join request) next
   to the form, so people see what they're joining before they type.
   ========================================================================== */
body.e-app.e-auth-body { padding: 0; background: var(--e-canvas); }
.e-auth { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) { .e-auth { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.e-auth-aside { display: none; }
@media (min-width: 900px) {
  .e-auth-aside {
    display: flex; flex-direction: column; justify-content: space-between; gap: var(--e-10);
    background: var(--e-forest); color: var(--e-paper); padding: var(--e-10) var(--e-12);
    position: sticky; top: 0; height: 100vh;
  }
}
.e-auth-aside .e-auth-promise { font-family: var(--e-font-display); font-weight: 600; font-size: clamp(1.8rem, 2.6vw, 2.5rem); line-height: 1.12; letter-spacing: -0.02em; color: var(--e-paper); max-width: 16ch; }
.e-auth-aside .e-auth-promise-sub { color: var(--e-frame-ink-2); margin-top: var(--e-4); max-width: 40ch; font-size: 1.02rem; }
.e-auth-aside .e-auth-points { display: grid; gap: var(--e-2); margin-top: var(--e-6); color: var(--e-frame-ink-2); font-size: 0.95rem; }
.e-auth-aside .e-auth-points span { display: flex; align-items: center; gap: var(--e-2); }
.e-auth-aside .e-auth-points .e-icon { color: var(--e-honey); width: 18px; height: 18px; }

/* The product preview: a real-looking idea card and a request. */
.e-preview { display: grid; gap: var(--e-3); max-width: 420px; }
.e-preview-card { background: var(--e-white); color: var(--e-ink); border-radius: var(--e-radius); padding: var(--e-5); }
.e-preview-card .e-card-title { font-size: 1.05rem; }
.e-preview-card .e-runway { margin-top: var(--e-4); }
.e-preview-row { display: flex; justify-content: space-between; align-items: center; margin-top: var(--e-4); }
.e-preview-ask { background: var(--e-frame-2); color: var(--e-paper); border-radius: var(--e-radius); padding: var(--e-3) var(--e-4); display: flex; align-items: center; gap: var(--e-3); margin-left: var(--e-8); }
.e-preview-ask b { font-weight: 600; }
.e-preview-ask small { color: var(--e-frame-ink-2); display: block; font-size: 0.8rem; }
.e-preview-ask .e-btn { margin-left: auto; min-height: 36px; padding: 0 var(--e-3); font-size: 0.85rem; }

.e-auth-main { display: flex; align-items: flex-start; justify-content: center; padding: var(--e-6) var(--e-4) var(--e-12); }
@media (min-width: 900px) { .e-auth-main { align-items: center; padding: var(--e-12) var(--e-10); } }
.e-auth-inner { width: 100%; max-width: 420px; display: grid; gap: var(--e-5); }
.e-auth-logo img { height: 30px; width: auto; display: block; }
@media (min-width: 900px) { .e-auth-main .e-auth-logo { display: none; } }
.e-auth-inner h1 { font-size: 1.7rem; }
@media (min-width: 900px) { .e-auth-inner h1 { font-size: 2rem; } }
.e-auth-inner .e-auth-lede { color: var(--e-ink-2); margin-top: calc(var(--e-2) * -1); }
.e-auth-form { display: grid; gap: var(--e-4); }
.e-auth-form .e-field + .e-field { margin-top: 0; }
.e-actions { display: grid; gap: var(--e-3); }
.e-auth-alt { text-align: center; color: var(--e-ink-2); font-size: 0.95rem; }
.e-auth-alt a { font-weight: 600; text-decoration: none; }
.e-auth-alt a:hover { text-decoration: underline; }
.e-auth-legal { color: var(--e-ink-3); font-size: 0.82rem; }
.e-auth-legal a { color: var(--e-ink-2); }
.e-center { text-align: center; }

/* Notes: info / ok / error messages, one component. */
.e-note { border-radius: var(--e-radius-sm); padding: var(--e-3) var(--e-4); font-size: 0.92rem; background: var(--e-mist); color: var(--e-ink); }
.e-note.is-info { background: var(--e-honey-soft); color: #5C3A06; }
.e-note.is-ok { background: var(--e-moss); color: var(--e-forest); }
.e-note.is-error { background: var(--e-danger-soft); color: var(--e-danger); }
.e-note a { color: inherit; font-weight: 600; }
.e-note .e-actions { margin-top: var(--e-3); }

/* Password with show/hide */
.e-pass { position: relative; }
.e-pass .e-input { padding-right: 72px; }
.e-pass-toggle { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); min-height: 36px; padding: 0 var(--e-3); border: 0; background: none; color: var(--e-forest); font: 600 0.85rem var(--e-font-body); cursor: pointer; border-radius: 8px; }
.e-pass-toggle:hover { background: var(--e-mist); }

/* Sign-in options (assets/js/sign-in-options.js) */
.e-signin-options { display: grid; gap: var(--e-3); }
.e-btn-google { background: var(--e-white); color: var(--e-ink); border-color: var(--e-line-2); min-height: 48px; }
.e-btn-google:hover { border-color: var(--e-forest); }
.e-magic-row { display: flex; gap: var(--e-2); }
.e-magic-row .e-input { flex: 1 1 auto; min-width: 0; }
@media (max-width: 420px) { .e-magic-row { flex-direction: column; } }
.e-divider { display: flex; align-items: center; gap: var(--e-3); color: var(--e-ink-3); font-size: 0.82rem; }
.e-divider::before, .e-divider::after { content: ""; flex: 1; height: 1px; background: var(--e-line); }
.e-app .hp-field { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* Two-choice segmented control (e.g. Talent / Founder) */
.e-seg { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; padding: 4px; background: var(--e-mist); border-radius: var(--e-radius-sm); }
.e-seg button { min-height: 40px; border: 0; border-radius: 8px; background: none; color: var(--e-ink-2); font: 600 0.92rem var(--e-font-body); cursor: pointer; }
.e-seg button.selected, .e-seg button[aria-selected="true"] { background: var(--e-white); color: var(--e-forest); box-shadow: 0 0 0 1px var(--e-line); }

/* A finished step (sent, done, verified) */
.e-done { display: grid; gap: var(--e-3); justify-items: start; }
.e-done .e-done-icon { width: 48px; height: 48px; border-radius: 14px; background: var(--e-moss); color: var(--e-forest); display: flex; align-items: center; justify-content: center; }
.e-done .e-done-icon .e-icon { width: 24px; height: 24px; }
.e-auth-brand img { height: 34px; width: auto; display: block; }
.e-preview-pitch { color: var(--e-ink-2); font-size: 0.92rem; margin-top: 4px; }
.e-preview-card .e-runway-days { font-size: 1.6rem; }
.e-input.has-error, .e-textarea.has-error, .e-select.has-error { border-color: var(--e-danger); }
.e-auth-form .e-field-foot { display: flex; justify-content: flex-end; }
.e-auth-form .e-field-foot a { font-size: 0.88rem; color: var(--e-ink-2); }
.e-auth-help { border-top: 1px solid var(--e-line); padding-top: var(--e-5); display: grid; gap: var(--e-2); color: var(--e-ink-2); font-size: 0.92rem; }
.e-auth-help a { font-weight: 600; }
.e-skip { position: absolute; left: var(--e-4); top: -60px; z-index: 100; background: var(--e-forest); color: var(--e-paper); padding: var(--e-2) var(--e-4); border-radius: var(--e-radius-sm); text-decoration: none; font-weight: 600; }
.e-skip:focus { top: var(--e-4); }
/* Desktop: the side column stays in view while the main column scrolls. */
@media (min-width: 900px) { .e-grid > aside { position: sticky; top: var(--e-6); } }

/* ==========================================================================
   v4 components: avatar colours, day-cell runway, person card, idea tile, rail
   ========================================================================== */
.e-app .e-avatar.is-h1 { background: var(--e-h1); color: var(--e-forest); }
.e-app .e-avatar.is-h2 { background: var(--e-h2); color: var(--e-forest); }
.e-app .e-avatar.is-h3 { background: var(--e-h3); color: var(--e-forest); }
.e-app .e-avatar.is-h4 { background: var(--e-h4); color: var(--e-forest); }
.e-app .e-avatar.is-h5 { background: var(--e-h5); color: var(--e-forest); }
.e-app .e-avatar.is-h6 { background: var(--e-h6); color: var(--e-forest); }
.e-app .e-avatar.is-xl { width: 64px; height: 64px; font-size: 1.15rem; }
.e-faces .e-avatar { border-color: var(--e-canvas); }

/* Runway: the count, a label, and fourteen day-cells. */
.e-runway { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: baseline; column-gap: var(--e-3); row-gap: var(--e-2); }
.e-runway-days { font-family: var(--e-font-display); font-weight: 600; font-size: 2rem; line-height: 1; color: var(--e-forest); font-variant-numeric: tabular-nums; }
.e-runway-label { color: var(--e-ink-2); font-size: 0.9rem; }
.e-days { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(14, minmax(0, 1fr)); gap: 3px; }
.e-days i { display: block; height: 12px; border-radius: 3px; background: var(--e-line); }
.e-days i.is-on { background: var(--e-honey); }
.e-runway.is-low .e-days i.is-on { background: #E8590C; }
.e-runway.is-waiting .e-runway-days { color: var(--e-ink-3); }
.e-runway.is-waiting .e-days i { background: transparent; box-shadow: inset 0 0 0 1.5px var(--e-line-2); }
.e-runway-track { display: none; }
.e-runway.is-unlocked .e-days i { background: var(--e-forest); }
.e-idea-head .e-runway.is-unlocked .e-days i, .e-tile-base .e-runway.is-unlocked .e-days i { background: var(--e-honey); }

/* Person card: who they are, why they fit, the decision. */
.e-person { background: var(--e-surface); border-radius: var(--e-radius); padding: var(--e-5); display: flex; flex-direction: column; gap: var(--e-3); min-width: 0; }

.e-person .e-chips { gap: 6px; }
.e-person .e-chip { background: var(--e-white); }
.e-person .e-chip.is-match { background: var(--e-forest); color: var(--e-paper); }
.e-person-facts { display: flex; flex-wrap: wrap; gap: var(--e-1) var(--e-4); color: var(--e-ink-2); font-size: 0.875rem; }

.e-verified { display: inline-flex; align-items: center; gap: 4px; font-size: 0.78rem; font-weight: 600; color: var(--e-forest); background: var(--e-white); border-radius: 999px; padding: 4px 10px 4px 7px; white-space: nowrap; }
.e-verified .e-icon { width: 14px; height: 14px; }
.e-unverified { font-size: 0.78rem; color: var(--e-ink-3); white-space: nowrap; padding-top: 4px; }

/* Idea tile: the idea up top on white, its runway on a forest base. */
.e-tile { display: flex; flex-direction: column; border-radius: var(--e-radius); overflow: hidden; border: 1px solid var(--e-line); background: var(--e-white); color: inherit; text-decoration: none; transition: box-shadow .2s ease, transform .2s ease; min-width: 0; }
.e-tile:hover { box-shadow: 0 2px 6px rgba(15,23,18,.05), 0 10px 24px rgba(15,23,18,.08); }
.e-tile-body { padding: var(--e-5); display: grid; gap: var(--e-2); flex: 1 1 auto; }
.e-tile-meta { display: flex; justify-content: space-between; align-items: center; gap: var(--e-2); }
.e-tile-title { font-weight: 600; font-size: 1.3rem; line-height: 1.2; letter-spacing: -0.015em; color: var(--e-ink); }
.e-tile-pitch { color: var(--e-ink-2); }
.e-tile .e-team { border-top: 0; padding-top: var(--e-2); margin-top: var(--e-2); }
.e-tile-base { background: var(--e-forest); color: var(--e-paper); padding: var(--e-4) var(--e-5) var(--e-5); }
.e-tile-base .e-runway-days { color: var(--e-paper); }
.e-tile-base .e-runway-label { color: var(--e-forest-3); }
.e-tile-base .e-days i { background: var(--e-frame-2); }
.e-tile-base .e-days i.is-on { background: var(--e-honey); }
.e-tile-base .e-runway.is-waiting .e-runway-days { color: var(--e-forest-3); }
.e-tile-base .e-runway.is-waiting .e-days i { background: transparent; box-shadow: inset 0 0 0 1.5px var(--e-frame-line); }
.e-tiles { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--e-4); }
@media (min-width: 700px) { .e-tiles { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); } }

/* Section heads with a count */
.e-section-head h2 { display: inline-flex; align-items: center; gap: var(--e-2); }
.e-count-pill { font-size: 0.8rem; font-weight: 600; min-width: 24px; height: 24px; padding: 0 8px; border-radius: 12px; background: var(--e-honey); color: var(--e-forest); display: inline-flex; align-items: center; justify-content: center; }
.e-app h2 { font-size: 1.2rem; letter-spacing: -0.01em; }
@media (min-width: 900px) { .e-app h2 { font-size: 1.3rem; } }

/* Two quiet columns at the bottom of Home (activity, invitations) */
.e-pair { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--e-4) var(--e-8); }
@media (min-width: 900px) { .e-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.e-app .e-list { border-color: var(--e-line); }

.e-section-head h2 { display: block; }
.e-count-pill { margin-left: var(--e-2); vertical-align: 3px; }
.e-pair { margin-top: var(--e-10); }
@media (min-width: 1000px) {
  .e-band-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; column-gap: var(--e-10); }
  .e-band-stats { margin-top: 0; gap: var(--e-10); }
  .e-band-stat b { font-size: 2.4rem; }
}
/* Solid shapes only: no outlines or dashes in repeated marks. */
.e-days { gap: 4px; }
.e-runway.is-waiting .e-days i { background: var(--e-line); box-shadow: none; }
.e-tile-base .e-runway.is-waiting .e-days i { background: var(--e-frame-2); box-shadow: none; }
.e-app .e-avatar.is-asking { background: var(--e-white); color: var(--e-forest); border: 2px solid var(--e-honey); }
/* Trial not started: a plain statement instead of a countdown. */
.e-runway.is-waiting { grid-template-columns: minmax(0, 1fr); row-gap: 2px; }
.e-runway-state { font-weight: 600; font-size: 1.05rem; color: var(--e-ink); }
.e-runway.is-waiting .e-days { margin-top: var(--e-2); }
.e-tile-base .e-runway-state { color: var(--e-paper); }
.e-idea-head .e-runway-state { color: var(--e-paper); }

/* Page background: white everywhere (owner decision 2026-10-14). Cards are
   white too, so each one keeps a thin border to stand out. */
body.e-app { background: var(--e-canvas); }
.e-person { background: var(--e-white); border: 1px solid var(--e-line); }
.e-person .e-chip { background: var(--e-surface); }
.e-person .e-chip.is-match { background: var(--e-forest); }

.e-verified { background: var(--e-moss); }
.e-faces .e-avatar { border-color: var(--e-white); }
.e-tile, .e-app .e-list, .e-card { border: 1px solid var(--e-line); }

/* Section head with an action button next to the link */
.e-head-actions { display: inline-flex; align-items: center; gap: var(--e-4); }

/* Idea tile base with the owner (Talent Home) */
.e-tile-owner { display: flex; align-items: center; gap: var(--e-3); }
.e-tile-owner .e-avatar { border: 0; }
.e-tile-owner-who { display: grid; min-width: 0; flex: 1 1 auto; }
.e-tile-owner-who b { font-weight: 600; color: var(--e-paper); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.e-tile-owner-who span { font-size: 0.82rem; color: var(--e-forest-3); }
.e-tile-status { flex: none; font-size: 0.85rem; font-weight: 600; padding: 6px 12px; border-radius: 999px; background: var(--e-frame-2); color: var(--e-paper); }
.e-tile-status.is-hot { background: var(--e-honey); color: var(--e-forest); }
.e-tile .e-chip.is-match { background: var(--e-forest); color: var(--e-paper); }
/* A hidden section above does not push the next one down. */
.e-section[hidden] + .e-section { margin-top: 0; }
.e-pair > .e-section, .e-pair > div > .e-section:first-child { margin-top: 0; }

/* ==========================================================================
   Idea page header v4: a place where a team works, not a form.
   Back and calls on one bar, team faces by the title, pill tabs.
   ========================================================================== */
.e-idea-bar { display: flex; align-items: center; justify-content: space-between; gap: var(--e-3); margin-bottom: var(--e-2); }
.e-idea-bar .e-back { margin-bottom: 0; }
.e-idea-calls { display: flex; gap: var(--e-2); }
.e-call { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; min-width: 40px; padding: 0 14px; border-radius: 999px; border: 0; cursor: pointer; background: var(--e-frame-2); color: var(--e-paper); font: 600 0.88rem var(--e-font-body); }
.e-call:hover { background: var(--e-frame-2); }
.e-call .e-icon { width: 18px; height: 18px; }
@media (max-width: 520px) { .e-call span { display: none; } .e-call { padding: 0; justify-content: center; width: 44px; height: 44px; } }
.e-app .e-idea-head #wsDesc { color: var(--e-forest-3); margin-top: var(--e-2); max-width: 62ch; }
@media (max-width: 899px) { .e-app .e-idea-head #wsDesc { -webkit-line-clamp: 1; } .e-app .e-idea-head .e-runway-days { font-size: 1.6rem; } }
.e-app .e-idea-head .e-faces .e-avatar { border-color: var(--e-forest); }
.e-app .e-idea-head .e-idea-meta { gap: var(--e-2) var(--e-3); }
.e-app .e-idea-head .e-runway-label { color: var(--e-forest-3); }
.e-app .e-idea-head .e-days i { background: var(--e-frame-2); }
.e-app .e-idea-head .e-days i.is-on { background: var(--e-honey); }
.e-app .e-idea-head .e-runway.is-waiting .e-days i { background: var(--e-frame-2); }

/* Pill tabs on the band; they scroll sideways on narrow phones. */
.e-app .e-idea-head .tab-row.e-pilltabs { display: flex; gap: 6px; margin-top: var(--e-5); padding-bottom: var(--e-4); overflow-x: auto; scrollbar-width: none; border-bottom: 0; }
.e-app .e-idea-head .e-pilltabs::-webkit-scrollbar { display: none; }
.e-app .e-idea-head .e-pilltabs .tab-btn { flex: none; min-height: 40px; padding: 0 16px; border-radius: 999px; border: 0; background: var(--e-frame-2); color: var(--e-forest-3); font-weight: 600; white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; }
.e-app .e-idea-head .e-pilltabs .tab-btn:hover { background: var(--e-frame-2); color: var(--e-paper); }
.e-app .e-idea-head .e-pilltabs .tab-btn.selected, .e-app .e-idea-head .e-pilltabs .tab-btn[aria-selected="true"] { background: var(--e-paper); color: var(--e-forest); border-bottom-color: transparent; }
.e-app .e-idea-head .e-pilltabs .e-count { position: static; background: var(--e-honey); color: var(--e-forest); }

/* Desktop: leave room for the bell and avatar in the corner. */
@media (min-width: 900px) { .e-app .e-idea-head .e-idea-bar { padding-right: 132px; } }
/* Older labels inside the app (Joined, Owner): body font, sentence case. */
.e-app .status-pill, .e-app .owner-tag { font-family: var(--e-font-body); letter-spacing: 0; text-transform: none; font-size: 0.8rem; }
.e-app .member-row .e-avatar, .e-app .pending-invite-row .e-avatar { flex: none; }
/* Post an idea: the main action on a forest base, like the idea tiles. */
#workspaceForm { overflow: hidden; }
.e-post-foot { margin: var(--e-6) calc(var(--e-5) * -1) calc(var(--e-5) * -1); padding: var(--e-5); background: var(--e-forest); display: grid; gap: var(--e-3); }
.e-post-next { color: var(--e-forest-3); font-size: 0.9rem; }
/* Chosen option: solid forest, same as chosen skills. */
.e-choice button[aria-checked="true"], .e-choice button[aria-pressed="true"] { border-color: var(--e-forest); background: var(--e-forest); color: var(--e-paper); }
#workspaceForm { --fp: var(--e-5); padding: var(--fp); }
@media (min-width: 900px) { #workspaceForm { --fp: var(--e-8); } }
.e-post-foot { margin: var(--e-6) calc(var(--fp) * -1) calc(var(--fp) * -1); padding: var(--e-5) var(--fp) var(--fp); }

/* ==========================================================================
   The frame (2026-10-12, jade). Frame areas take --e-frame; inside them
   "paper" text and secondary text map to the frame's ink tokens, so every
   component keeps working without its own override.
   ========================================================================== */
.e-top, .e-side, .e-band, .e-app .e-idea-head, .e-tile-base, .e-post-foot, .e-auth-aside {
  background: var(--e-frame) !important;
  --e-paper: var(--e-frame-ink);
  --e-forest-3: var(--e-frame-ink-2);
  color: var(--e-frame-ink);
}
.e-top { border-bottom: 1px solid var(--e-frame-line); }
.e-band { border-bottom: 1px solid var(--e-frame-line); }
.e-app .e-idea-head { border-bottom: 1px solid var(--e-frame-line); }
@media (min-width: 900px) { .e-side { border-right: 1px solid var(--e-frame-line); } .e-top { border-bottom: 0; } }
.e-top .e-icon-btn, .e-top.is-on-band .e-icon-btn, .e-app .e-top:not(.is-on-band) .e-icon-btn { color: var(--e-frame-ink); }
.e-side nav a { color: var(--e-frame-ink-2); }
.e-side nav a:hover, .e-side nav a[aria-current="page"] { background: var(--e-frame-2); color: var(--e-frame-ink); }
.e-side .e-side-post { color: var(--e-honey) !important; box-shadow: inset 0 0 0 1.5px var(--e-honey); }
.e-side .e-side-post:hover, .e-side .e-side-post[aria-current="page"] { background: var(--e-honey) !important; color: var(--e-forest) !important; }
.e-band-stat.is-hot b { color: var(--e-frame-hot); }
/* Selected pill tab: white with jade text. */
.e-app .e-idea-head .e-pilltabs .tab-btn.selected, .e-app .e-idea-head .e-pilltabs .tab-btn[aria-selected="true"] { background: #FFFFFF; color: var(--e-frame); }
.e-app .e-idea-head .e-pilltabs .tab-btn:hover { color: var(--e-frame-ink); }
.e-app .e-idea-head .e-faces .e-avatar, .e-tile-owner .e-avatar { border-color: var(--e-frame); }
.e-tile-base .e-runway.is-waiting .e-days i { background: var(--e-frame-2); }
/* Cards next to the frame keep their white. */
.e-tile { border-color: var(--e-line); }
.e-tile-sector { font-size: 0.8rem; font-weight: 600; color: var(--e-ink-2); background: var(--e-surface); border-radius: 999px; padding: 3px 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 60%; }

.e-done h1, .e-done h2 { font-size: 1.5rem; }
.e-done .e-done-icon.is-warn { background: var(--e-honey-soft); color: #8A5300; }
.e-done .e-btn { margin-top: var(--e-2); }

/* ---------- Pickers used by profile forms (skill chips, hour chips) ---------- */
.e-app .e-form-card { --fp: var(--e-5); padding: var(--fp); overflow: hidden; }
@media (min-width: 900px) { .e-app .e-form-card { --fp: var(--e-8); } }
.e-app .e-form-card > .e-field + .e-field, .e-app .e-form-card > .e-field + .e-disclose, .e-app .e-form-card > .e-disclose + .e-check { margin-top: var(--e-6); }
.e-app .e-narrow { max-width: 760px; }
.e-app .skill-chip-row { display: flex; flex-wrap: wrap; gap: var(--e-2); }
.e-app .skill-chip-row:empty { display: none; }
.e-app .skill-groups { display: grid; gap: var(--e-2); margin-top: var(--e-2); }
.e-app .skill-group { border: 1px solid var(--e-line); border-radius: var(--e-radius-sm); padding: var(--e-3) var(--e-4); background: var(--e-white); }
.e-app .skill-group summary, .e-app .skill-group-title { font-weight: 600; cursor: pointer; min-height: 32px; display: flex; align-items: center; }
.e-app .skill-group .skill-chip-row { margin-top: var(--e-2); }
.e-app .tag-chip, .e-app .file-chip {
  min-height: 40px; padding: 0 var(--e-4); border-radius: 999px; border: 1px solid var(--e-line-2);
  background: var(--e-white); color: var(--e-ink); font: 500 0.92rem var(--e-font-body); cursor: pointer;
}
.e-app .tag-chip:hover, .e-app .file-chip:hover { border-color: var(--e-forest); }
.e-app .tag-chip[aria-pressed="true"], .e-app .file-chip.selected, .e-app .file-chip[aria-checked="true"] { background: var(--e-forest); border-color: var(--e-forest); color: #FFFFFF; }
.e-app .e-check { display: flex; gap: var(--e-3); align-items: flex-start; margin-top: var(--e-5); font-size: 0.95rem; }
.e-app .e-check input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--e-forest); flex: none; }
.e-app .e-post-foot a { color: #FFFFFF; font-weight: 600; }
.e-app .e-form-card .e-post-foot { margin: var(--e-6) calc(var(--fp) * -1) calc(var(--fp) * -1); padding: var(--e-5) var(--fp) var(--fp); }
.e-app .e-page-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--e-4); margin-bottom: var(--e-6); }
.e-app .e-page-head p { margin-top: var(--e-2); max-width: 62ch; }

/* Desktop: off the band, the corner bar sits on the page (no jade strip). */
@media (min-width: 900px) {
  .e-top:not(.is-on-band) { background: transparent !important; border-bottom: 0; --e-paper: var(--e-ink); }
  .e-app .e-top:not(.is-on-band) .e-icon-btn { color: var(--e-forest); }
  .e-app .e-top:not(.is-on-band) .e-icon-btn:hover { background: var(--e-surface-2); }
}
@media (min-width: 900px) { .e-app .e-top:not(.is-on-band) .e-avatar { background: var(--e-frame); color: #FFFFFF; } }

/* ==========================================================================
   Bridge (waves 2-6): older components inside the app frame, restyled to the
   design system. Pages that still carry styles.css components load app.css
   after it and get body.e-app; these rules make them match the e- components
   (same fields, buttons, notes, cards) without rewriting their scripts.
   ========================================================================== */
.e-app main#main-content { padding-bottom: var(--e-12); }
.e-app .page-hero { background: none !important; padding: var(--e-6) 0 var(--e-2) !important; min-height: 0; overflow: visible; }
@media (min-width: 900px) { .e-app .page-hero { padding-top: var(--e-10) !important; } }
.e-app .page-hero .blob, .e-app .blob, .e-app .eyebrow { display: none !important; }
.e-app .page-hero h1 { font-size: 1.6rem !important; }
@media (min-width: 900px) { .e-app .page-hero h1 { font-size: 2rem !important; } }
.e-app .page-hero .lede, .e-app .lede { color: var(--e-ink-2); font-size: 1rem; margin-top: var(--e-2); max-width: 62ch; }
.e-app .container { max-width: var(--e-max); margin: 0 auto; padding-left: var(--e-4); padding-right: var(--e-4); }
@media (min-width: 900px) { .e-app .container { padding-left: var(--e-6); padding-right: var(--e-6); } }
.e-app .auth-wrap { max-width: 760px; margin-left: auto; margin-right: auto; }
.e-app main > section + section { margin-top: var(--e-4); }

.e-app .form-card, .e-app .info-card, .e-app .dash-card, .e-app .settings-card {
  background: var(--e-white); border: 1px solid var(--e-line); border-radius: var(--e-radius);
  box-shadow: none; padding: var(--e-5);
}
@media (min-width: 900px) { .e-app .form-card, .e-app .settings-card { padding: var(--e-8); } }
.e-app .form-card h2, .e-app .form-card h3, .e-app .dash-card h2, .e-app .dash-card h3 { font-family: var(--e-font-body); color: var(--e-ink); font-size: 1.2rem; font-weight: 600; }
.e-app .form-group { margin-bottom: var(--e-5); }
.e-app .form-label { display: block; font-weight: 600; font-size: 0.92rem; color: var(--e-ink); margin-bottom: var(--e-2); font-family: var(--e-font-body); letter-spacing: 0; text-transform: none; }
.e-app .required-mark { display: none; }
.e-app .form-input, .e-app .form-textarea, .e-app select.form-input, .e-app .form-select {
  width: 100%; min-height: 48px; padding: 12px 14px; border: 1px solid var(--e-line-2); border-radius: var(--e-radius-sm);
  background: var(--e-white); color: var(--e-ink); font: 400 1rem var(--e-font-body); box-shadow: none;
}
.e-app .form-textarea { min-height: 120px; }
.e-app .form-input:focus, .e-app .form-textarea:focus, .e-app .form-select:focus { outline: none; border-color: var(--e-forest); box-shadow: 0 0 0 3px var(--e-moss); }
.e-app .form-input.has-error, .e-app .form-textarea.has-error { border-color: var(--e-danger); }
.e-app .form-hint { color: var(--e-ink-2); font-size: 0.85rem; margin-top: var(--e-1); }
.e-app .form-error { color: var(--e-danger); font-size: 0.85rem; }
.e-app .form-actions { margin-top: var(--e-6); display: grid; gap: var(--e-3); }

.e-app .btn { min-height: 48px; border-radius: var(--e-radius-sm); font: 600 0.95rem var(--e-font-body); letter-spacing: 0; text-transform: none; box-shadow: none; }
.e-app .btn .arrow { display: none; }
.e-app .btn-primary { background: var(--e-honey); border-color: var(--e-honey); color: var(--e-forest); }
.e-app .btn-primary:hover { background: var(--e-honey-2); border-color: var(--e-honey-2); color: var(--e-forest); }
.e-app .btn-outline, .e-app .btn-light, .e-app .btn-secondary { background: var(--e-white); border: 1px solid var(--e-line-2); color: var(--e-forest); }
.e-app .btn-outline:hover, .e-app .btn-light:hover, .e-app .btn-secondary:hover { border-color: var(--e-forest); background: var(--e-white); color: var(--e-forest); }
.e-app .btn-danger { background: var(--e-danger); border-color: var(--e-danger); color: #FFFFFF; }
.e-app .link-btn, .e-app .tap-link { color: var(--e-forest); font-weight: 600; }

.e-app .banner { border-radius: var(--e-radius-sm); box-shadow: none; border: 0; padding: var(--e-3) var(--e-4); font-size: 0.95rem; }
.e-app .banner.error { background: var(--e-danger-soft); color: var(--e-danger); }
.e-app .banner.success { background: var(--e-moss); color: var(--e-forest); }
.e-app .banner.pending, .e-app .banner.info { background: var(--e-honey-soft); color: #5C3A06; }
.e-app .banner .icon-badge { display: none; }
.e-app .badge { background: var(--e-moss); color: var(--e-forest); border-radius: 999px; font: 600 0.78rem var(--e-font-body); letter-spacing: 0; text-transform: none; padding: 3px 10px; }
.e-app .status-pill { border-radius: 999px; }

.e-app .tab-row:not(.e-tabbar) { display: flex; flex-wrap: wrap; gap: 4px; padding: 4px; background: var(--e-surface-2); border-radius: var(--e-radius-sm); border: 0; }
.e-app .tab-row:not(.e-tabbar) .tab-btn { min-height: 40px; padding: 0 var(--e-4); border: 0; border-radius: 8px; background: none; color: var(--e-ink-2); font: 600 0.92rem var(--e-font-body); }
.e-app .tab-row:not(.e-tabbar) .tab-btn.selected, .e-app .tab-row:not(.e-tabbar) .tab-btn[aria-selected="true"] { background: var(--e-white); color: var(--e-forest); box-shadow: 0 0 0 1px var(--e-line); }

.e-app .upload-dropzone { border: 1.5px dashed var(--e-line-2); border-radius: var(--e-radius); background: var(--e-surface); }
.e-app .upload-dropzone:hover { border-color: var(--e-forest); }
.e-app .empty-state { color: var(--e-ink-2); }
.e-app .text-center { text-align: center; }
.e-app .mt-40 { margin-top: var(--e-8); }
.e-app .card-grid { gap: var(--e-4); }
.e-app .upload-dropzone { display: block; width: 100%; padding: var(--e-6) var(--e-5); }
.e-app .upload-dropzone .icon-badge { display: flex; align-items: center; justify-content: center; background: var(--e-moss); color: var(--e-forest); }
/* Desktop: the corner bar never paints over the page or the band. */
@media (min-width: 900px) { .e-top, .e-top.is-on-band { background: transparent !important; border-bottom: 0 !important; } }
/* Selected pill tab on the jade band: white with jade text (wins over older tab rules). */
.e-app .e-idea-head .e-pilltabs .tab-btn.selected, .e-app .e-idea-head .e-pilltabs .tab-btn[aria-selected="true"] { background: #FFFFFF !important; color: var(--e-frame) !important; }

/* Guest (signed out) on public app pages */
.e-guest .e-guest-signin { min-height: 40px; padding: 0 var(--e-4); width: auto; border-radius: var(--e-radius-sm); }

/* Older components inside the app frame take the new palette: the old
   colour settings (styles.css :root) are redefined here, so cream cards,
   saffron accents and serif headings switch to white, marigold and the app
   fonts everywhere at once. */
body.e-app {
  --forest: var(--e-forest);
  --forest-dark: var(--e-ink);
  --forest-light: var(--e-frame);
  --saffron: var(--e-honey);
  --saffron-light: var(--e-honey-soft);
  --saffron-dark: #8A5300;
  --saffron-text: #7A4A00;
  --warm-white: #FFFFFF;
  --cream: var(--e-surface);
  --clay: var(--e-line);
  --ink: var(--e-ink);
  --ink-soft: var(--e-ink-2);
  --font-display: var(--e-font-display);
  --font-body: var(--e-font-body);
  --font-mono: var(--e-font-body);
  --radius: var(--e-radius);
  --radius-sm: var(--e-radius-sm);
  --shadow-soft: none;
  --shadow: none;
  --grain: none;
}

/* Members' idea page (professional-workspace.html): same feel as the owner's
   idea page. Calls are small round buttons, report is a quiet link, tabs are
   pills on one scrolling row. */
.e-app .workspace-bar { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: var(--e-4); margin: var(--e-2) 0 var(--e-5); }
.e-app .workspace-bar-back { display: inline-flex; align-items: center; gap: 6px; color: var(--e-ink-2); text-decoration: none; font-size: 0.9rem; font-weight: 500; }
.e-app .workspace-bar-title { display: flex; align-items: center; flex-wrap: wrap; gap: var(--e-3); margin-top: var(--e-2); }
.e-app .workspace-bar-title h1 { font-size: 1.6rem; }
@media (min-width: 900px) { .e-app .workspace-bar-title h1 { font-size: 2rem; } }
.e-app .workspace-bar-desc { color: var(--e-ink-2); margin-top: var(--e-2); max-width: 62ch; }
.e-app .huddle-actions { display: flex; flex-wrap: wrap; gap: var(--e-2); align-items: center; }
.e-app .huddle-actions .huddle-btn { min-height: 40px; padding: 0 14px; border-radius: 999px; width: auto; font-size: 0.88rem; gap: 6px; }
.e-app .huddle-actions #huddleVideoBtn { background: var(--e-frame); border-color: var(--e-frame); color: #FFFFFF; }
.e-app .huddle-actions #huddleAudioBtn { background: var(--e-surface); border-color: var(--e-surface); color: var(--e-forest); }
.e-app .huddle-actions #reportIssueBtn { background: none; border: 0; color: var(--e-ink-2); padding: 0 8px; }
.e-app .huddle-actions #reportIssueBtn svg { display: none; }
.e-app .workspace-shell .tab-row { display: flex; flex-wrap: nowrap; gap: 6px; overflow-x: auto; scrollbar-width: none; background: none; padding: 0 0 var(--e-2); margin-bottom: var(--e-4); }
.e-app .workspace-shell .tab-row::-webkit-scrollbar { display: none; }
.e-app .workspace-shell .tab-row .tab-btn { flex: none; display: inline-flex; flex-direction: row; align-items: center; gap: 6px; min-height: 40px; padding: 0 16px; border-radius: 999px; background: var(--e-surface); color: var(--e-ink-2); box-shadow: none; white-space: nowrap; }
.e-app .workspace-shell .tab-row .tab-btn svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; }
.e-app .workspace-shell .tab-row .tab-btn.selected, .e-app .workspace-shell .tab-row .tab-btn[aria-selected="true"] { background: var(--e-frame); color: #FFFFFF; box-shadow: none; }

/* Public profiles: a flat jade band like the rest of the app (no gradient,
   no blob, no shadow), white name and details, avatar in the person's spot. */
.e-app .profile-hero { background: var(--e-frame) !important; box-shadow: none !important; border-radius: var(--e-radius) !important; color: #FFFFFF; overflow: hidden; }
.e-app .profile-hero::before, .e-app .profile-hero::after { display: none !important; content: none !important; }
.e-app .profile-hero h1, .e-app .profile-hero .profile-name-row, .e-app .profile-hero .profile-name-row * { color: #FFFFFF !important; font-family: var(--e-font-display); }
.e-app .profile-hero .profile-meta, .e-app .profile-hero .profile-meta *, .e-app .profile-hero .profile-rate-item, .e-app .profile-hero .profile-rate-item * { color: var(--e-frame-ink-2) !important; }
.e-app .profile-hero .profile-rate-item strong, .e-app .profile-hero .profile-rate-item b { color: #FFFFFF !important; }
.e-app .profile-hero .profile-avatar { background: var(--e-honey) !important; color: var(--e-forest) !important; border: 0 !important; box-shadow: none !important; }
.e-app .profile-hero .verified-badge, .e-app .profile-hero .profile-name-row .badge { background: rgba(255,255,255,.14) !important; color: #FFFFFF !important; }
/* Feedback checklist on profiles: on phones the count drops under the label. */
@media (max-width: 600px) {
  .e-app .checklist-item { flex-wrap: wrap; }
  .e-app .checklist-item span.label { flex: 1 1 calc(100% - 48px); min-width: 0; }
  .e-app .checklist-item .count-label { flex: 1 1 100%; margin-left: 44px; text-align: left; }
}

/* ==========================================================================
   Public website (wave 5): jade header and footer, white sections, the same
   buttons, cards and type as the app.
   ========================================================================== */
body.e-app.e-site { padding: 0; background: var(--e-canvas); }
.e-site-head { position: sticky; top: 0; z-index: var(--e-z-bar); background: var(--e-frame); color: #FFFFFF; }
.e-site-head-inner { max-width: 1160px; margin: 0 auto; padding: 0 var(--e-4); height: 64px; display: flex; align-items: center; gap: var(--e-4); }
.e-site-logo img { height: 30px; width: auto; display: block; }
.e-site-nav { display: none; }
.e-site-nav a { color: var(--e-frame-ink-2); text-decoration: none; font-weight: 500; }
.e-site-nav a:hover, .e-site-nav a[aria-current="page"] { color: #FFFFFF; }
.e-site-cta { margin-left: auto; }
.e-site-menu { width: 44px; height: 44px; border: 0; background: none; display: grid; place-content: center; gap: 6px; cursor: pointer; }
.e-site-menu span { display: block; width: 22px; height: 2px; background: #FFFFFF; border-radius: 2px; }
.e-site-nav.is-open { display: grid; position: absolute; top: 64px; left: 0; right: 0; background: var(--e-frame); padding: var(--e-2) var(--e-4) var(--e-5); gap: 2px; }
.e-site-nav.is-open a { min-height: 44px; display: flex; align-items: center; }
@media (min-width: 960px) {
  .e-site-nav, .e-site-nav.is-open { display: flex; position: static; padding: 0; gap: var(--e-6); margin-left: var(--e-8); background: none; }
  .e-site-menu { display: none; }
  .e-site-cta { margin-left: var(--e-6); }
  .e-site-signin { margin-left: var(--e-2); }
}
@media (max-width: 420px) { .e-site-cta { padding: 0 var(--e-3); } }

.e-s-wrap { max-width: 1160px; margin: 0 auto; padding: 0 var(--e-4); }
@media (min-width: 900px) { .e-s-wrap { padding: 0 var(--e-6); } }
.e-s-narrow { max-width: 720px; }
.e-site h1 { font-size: clamp(2rem, 6vw, 3.4rem); line-height: 1.05; letter-spacing: -0.025em; color: var(--e-forest); text-wrap: balance; max-width: 18ch; }
.e-site h2 { font-family: var(--e-font-display); font-weight: 600; font-size: clamp(1.4rem, 3.5vw, 2rem); line-height: 1.15; letter-spacing: -0.02em; color: var(--e-forest); text-wrap: balance; }
.e-site h3 { font-size: 1.1rem; }
.e-s-lede { font-size: clamp(1.05rem, 2vw, 1.2rem); color: var(--e-ink-2); margin-top: var(--e-4); max-width: 58ch; }
.e-s-small { font-size: 0.9rem; color: var(--e-ink-2); margin-top: var(--e-3); }
.e-s-small a { font-weight: 600; }
.e-s-actions { display: flex; flex-wrap: wrap; gap: var(--e-3); margin-top: var(--e-6); }
.e-s-hero { padding: var(--e-10) 0 var(--e-12); }
@media (min-width: 900px) { .e-s-hero { padding: var(--e-16) 0; } }
.e-s-hero-grid { display: grid; gap: var(--e-10); align-items: center; }
@media (min-width: 960px) { .e-s-hero-grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); } }
.e-s-idea { display: grid; gap: var(--e-3); margin-top: var(--e-6); max-width: 560px; }
.e-s-idea textarea { width: 100%; min-height: 110px; padding: 14px 16px; border: 1px solid var(--e-line-2); border-radius: var(--e-radius-sm); font: 400 1.05rem/1.5 var(--e-font-body); color: var(--e-ink); background: var(--e-white); resize: vertical; }
.e-s-idea textarea:focus { outline: none; border-color: var(--e-forest); box-shadow: 0 0 0 3px var(--e-moss); }
.e-s-idea .hero-idea-error { color: var(--e-danger); font-size: 0.9rem; }
.e-s-preview { background: var(--e-frame); border-radius: 24px; padding: var(--e-8) var(--e-6); }
.e-s-preview .e-preview { max-width: none; }
@media (max-width: 959px) { .e-s-preview { display: none; } }
.e-s-band { background: var(--e-frame); color: #FFFFFF; padding: var(--e-12) 0; }
.e-s-band h2 { color: #FFFFFF; }
.e-s-band .e-s-steps p { color: var(--e-frame-ink-2); }
.e-s-band .e-s-num { background: var(--e-honey); color: var(--e-forest); }
.e-s-section { padding: var(--e-12) 0; }
.e-s-steps { list-style: none; margin: var(--e-6) 0 0; padding: 0; display: grid; gap: var(--e-6); }
@media (min-width: 900px) { .e-s-band .e-s-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.e-s-steps li { display: flex; gap: var(--e-4); align-items: flex-start; }
.e-s-steps p { color: var(--e-ink-2); margin-top: var(--e-1); }
.e-s-num { flex: none; width: 40px; height: 40px; border-radius: 12px; background: var(--e-moss); color: var(--e-forest); font: 600 1.05rem var(--e-font-display); display: grid; place-content: center; }
.e-s-two { display: grid; gap: var(--e-10); }
@media (min-width: 900px) { .e-s-two { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.e-s-facts { display: grid; gap: var(--e-4); margin-top: var(--e-6); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 700px) { .e-s-facts { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); } }
.e-s-fact { border: 1px solid var(--e-line); border-radius: var(--e-radius); padding: var(--e-6); }
.e-s-fact p { color: var(--e-ink-2); margin-top: var(--e-2); }
.e-s-plans { display: grid; gap: var(--e-4); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) { .e-s-plans { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; } }
.e-s-plan { border: 1px solid var(--e-line); border-radius: var(--e-radius); padding: var(--e-6); display: grid; gap: var(--e-4); }
.e-s-plan.is-main { border: 2px solid var(--e-frame); }
.e-s-plan h2 { font-size: 1.4rem; }
.e-s-price { color: var(--e-ink-2); }
.e-s-price b { font: 600 2rem var(--e-font-display); color: var(--e-forest); }
.e-s-plan ul { margin: 0; padding-left: 1.1em; display: grid; gap: var(--e-2); color: var(--e-ink); }
.e-s-cta { background: var(--e-frame); color: #FFFFFF; padding: var(--e-12) 0; }
.e-s-cta h2 { color: #FFFFFF; }
.e-s-cta p { color: var(--e-frame-ink-2); margin-top: var(--e-3); }
.e-btn-onjade { background: transparent; color: #FFFFFF; border-color: rgba(255,255,255,.4); }
.e-btn-onjade:hover { border-color: #FFFFFF; }
.e-site-foot { background: var(--e-forest); color: #FFFFFF; padding: var(--e-10) 0 var(--e-6); }
.e-site-foot-inner { max-width: 1160px; margin: 0 auto; padding: 0 var(--e-4); display: grid; gap: var(--e-8); }
@media (min-width: 900px) { .e-site-foot-inner { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); padding: 0 var(--e-6); } }
.e-site-foot img { height: 30px; width: auto; }
.e-site-foot p { color: var(--e-frame-ink-2); margin-top: var(--e-3); }
.e-site-foot nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-3) var(--e-6); }
@media (min-width: 700px) { .e-site-foot nav { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.e-site-foot nav a { color: #FFFFFF; text-decoration: none; }
.e-site-foot nav a:hover { text-decoration: underline; }
.e-site-copy { max-width: 1160px; margin: var(--e-8) auto 0; padding: 0 var(--e-4); font-size: 0.85rem; color: var(--e-frame-ink-2); }
.e-site main#main-content { padding: 0; }
.e-site .container { max-width: 1160px; }

/* Text pages (privacy, terms, account states) on the public site. */
.e-site-doc main#main-content { padding: var(--e-8) 0 var(--e-12); }
.e-site-doc .page-hero h1 { color: var(--e-forest); }
.e-site-doc .legal-body, .e-site-doc .prose, .e-site-doc .container > article { max-width: 72ch; }
.e-site-doc h2 { font-size: 1.25rem; margin-top: var(--e-8); }
.e-site-doc main p, .e-site-doc main li { color: var(--e-ink); line-height: 1.65; }
/* Website fixes: section spacing wins over the app's section reset. */
.e-app.e-site section.e-s-hero { padding: var(--e-10) 0 var(--e-12); }
@media (min-width: 900px) { .e-app.e-site section.e-s-hero { padding: var(--e-16) 0; } }
.e-app.e-site section.e-s-band, .e-app.e-site section.e-s-section, .e-app.e-site section.e-s-cta { padding: var(--e-12) 0; }
@media (min-width: 900px) { .e-app.e-site section.e-s-band, .e-app.e-site section.e-s-section, .e-app.e-site section.e-s-cta { padding: var(--e-16) 0; } }
.e-app .e-btn-onjade, .e-app .e-btn-onjade:hover { color: #FFFFFF; }
.e-site .e-site-copy { margin: var(--e-8) auto 0; }
@media (min-width: 900px) { .e-site .e-site-copy { padding: 0 var(--e-6); } }
.e-site-doc .text-center h1, .e-site-doc .text-center h2 { text-align: center; max-width: none; margin-left: auto; margin-right: auto; }
.e-site-doc .text-center p { margin-left: auto; margin-right: auto; }
.e-site-doc .icon-badge { background: var(--e-moss) !important; color: var(--e-forest) !important; box-shadow: none !important; }

/* ==========================================================================
   Admin (wave 6): the same design system, kept plain. The admin tokens in
   admin.css are retuned here: deep forest sidebar (darker than the jade
   app frame, so admin never passes for a user screen), white page and
   panels with hairlines, jade accents, the app fonts.
   ========================================================================== */
.admin-shell {
  --admin-bg: #FFFFFF;
  --admin-panel: #FFFFFF;
  --admin-ink: var(--e-ink);
  --admin-ink-soft: var(--e-ink-2);
  --admin-border: var(--e-line);
  --admin-sidebar-bg: var(--e-forest);
  --admin-sidebar-ink: var(--e-forest-3);
  --admin-sidebar-ink-active: #FFFFFF;
  --admin-sidebar-border: rgba(255,255,255,.1);
  --admin-accent: var(--e-frame);
  --admin-accent-soft: var(--e-moss);
  --font-body: var(--e-font-body);
  --font-display: var(--e-font-body);
  --font-mono: var(--e-font-body);
  font-family: var(--e-font-body);
}
.admin-shell h1 { font-family: var(--e-font-display); font-weight: 600; letter-spacing: -0.015em; color: var(--e-forest); }
.admin-shell .dash-card, .admin-shell .admin-panel, .admin-shell table { box-shadow: none !important; }
.admin-shell .btn { border-radius: var(--e-radius-sm); font: 600 0.92rem var(--e-font-body); text-transform: none; letter-spacing: 0; }
.admin-shell .btn-primary { background: var(--e-frame); border-color: var(--e-frame); color: #FFFFFF; }
.admin-shell .btn-primary:hover { background: var(--e-forest); border-color: var(--e-forest); color: #FFFFFF; }
.admin-shell .btn-outline { background: #FFFFFF; border-color: var(--e-line-2); color: var(--e-forest); }
.admin-shell .form-input, .admin-shell select, .admin-shell textarea { border-radius: var(--e-radius-sm); border-color: var(--e-line-2); font-family: var(--e-font-body); }
.admin-shell .form-input:focus, .admin-shell select:focus, .admin-shell textarea:focus { outline: none; border-color: var(--e-frame); box-shadow: 0 0 0 3px var(--e-moss); }
.admin-shell .status-pill { font-family: var(--e-font-body); letter-spacing: 0; text-transform: none; }
.admin-shell :focus-visible { outline: 3px solid var(--e-honey); outline-offset: 2px; }
/* Admin sign-in: forest page, plain white card, the same buttons as everywhere. */
.admin-login-page { background: var(--e-forest) !important; }
.admin-login-page .admin-login-card { background: #FFFFFF; border: 0; box-shadow: none; border-radius: var(--e-radius); }
.admin-login-page .admin-login-brand { font-family: var(--e-font-display); color: var(--e-forest); }
.admin-login-page .required-mark { display: none; }
.admin-shell .btn-primary { background-image: none !important; box-shadow: none !important; border-radius: var(--e-radius-sm) !important; }
.admin-shell .form-input { background: #FFFFFF; }
.admin-login-page { background: #FFFFFF !important; }
.admin-login-page .admin-login-wrap { background: transparent !important; }
.admin-shell { --forest: var(--e-forest); --forest-dark: var(--e-ink); --forest-light: var(--e-frame); --saffron: var(--e-honey); --saffron-light: var(--e-honey-soft); --warm-white: #FFFFFF; --cream: var(--e-surface); --clay: var(--e-line); --ink: var(--e-ink); --ink-soft: var(--e-ink-2); --shadow-soft: none; --shadow: none; --grain: none; }
.admin-shell .icon-badge { background: var(--e-moss) !important; color: var(--e-forest) !important; box-shadow: none !important; }
.admin-shell .tab-row { background: var(--e-surface) !important; border-color: var(--e-line) !important; }
@media (max-width: 600px) { .admin-shell .admin-internal-badge, .admin-shell .admin-topbar-email { display: none; } .admin-shell .admin-logout-btn { white-space: nowrap; } .admin-shell .admin-topbar-brand { white-space: nowrap; } }

/* ==========================================================================
   Refinement pass (sample on Founder Home: body.e-refined). Quieter type,
   fewer boxes, slimmer controls, one spacing scale, one soft shadow, small
   transitions. Rolls out to every page once approved.
   ========================================================================== */
.e-refined {
  --r-ink: #111814;
  --r-ink-2: #5A645E;
  --r-ink-3: #7C857F;
  --r-line: #E9EDEA;
  --r-line-2: #DCE2DE;
  --r-soft: #F6F8F7;
  --r-radius: 12px;
  --r-radius-sm: 8px;
  --r-shadow: 0 1px 2px rgba(17, 24, 20, .04), 0 1px 1px rgba(17, 24, 20, .03);
  --r-shadow-hover: 0 2px 4px rgba(17, 24, 20, .04), 0 8px 24px rgba(17, 24, 20, .07);
  --r-ease: cubic-bezier(.2, .7, .2, 1);
  color: var(--r-ink);
  font-size: 15px;
  letter-spacing: -0.003em;
}
.e-refined * { transition-timing-function: var(--r-ease); }

/* Type: one loud moment (the greeting); everything else is calm. */
.e-refined h1, .e-refined .e-band h1 { font-family: var(--e-font-body); font-weight: 600; font-size: 1.75rem; letter-spacing: -0.025em; line-height: 1.15; color: var(--r-ink); }
@media (min-width: 900px) { .e-refined h1, .e-refined .e-band h1 { font-size: 2.1rem; } }
.e-refined h2, .e-refined .e-section-head h2 { font-family: var(--e-font-body); font-size: 1rem !important; font-weight: 600; letter-spacing: -0.01em; color: var(--r-ink); }
.e-refined .e-section-head { align-items: center; margin-bottom: var(--e-4); }
.e-refined .e-section-head a { font-size: 0.875rem; font-weight: 500; color: var(--r-ink-2); }
.e-refined .e-section-head a:hover { color: var(--e-forest); text-decoration: none; }
.e-refined .e-count-pill { min-width: 20px; height: 20px; font-size: 0.72rem; background: var(--e-honey); vertical-align: 1px; }

/* Header: no slab of colour; greeting, one line, and quiet numbers. */
.e-refined .e-band { background: transparent !important; color: var(--r-ink); border: 0 !important; }
.e-refined .e-band-inner { padding: var(--e-6) var(--e-4) 0; }
@media (min-width: 900px) { .e-refined .e-band-inner { padding: var(--e-12) var(--e-8) 0; display: block; } }
.e-refined .e-band-sub { color: var(--r-ink-2); font-size: 1rem; margin-top: var(--e-2); }
.e-refined .e-band-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin-top: var(--e-6); border: 1px solid var(--r-line); border-radius: var(--r-radius); box-shadow: var(--r-shadow); background: #FFFFFF; }
.e-refined .e-band-stat { padding: var(--e-4) var(--e-5); gap: 4px; }
.e-refined .e-band-stat + .e-band-stat { border-left: 1px solid var(--r-line); }
.e-refined .e-band-stat b { font-family: var(--e-font-body); font-weight: 600; font-size: 1.6rem !important; letter-spacing: -0.03em; color: var(--r-ink) !important; }
.e-refined .e-band-stat.is-hot b { color: #B56A00 !important; }
.e-refined .e-band-stat span { color: var(--r-ink-2) !important; font-size: 0.8rem; }
.e-refined a.e-band-stat:hover span { color: var(--r-ink) !important; text-decoration: none; }
@media (min-width: 900px) { .e-refined .e-band-stats { max-width: 560px; } }
.e-refined .e-main { padding-top: var(--e-8); }
@media (min-width: 900px) { .e-refined .e-main { padding: var(--e-10) var(--e-8) var(--e-16); } }
.e-refined .e-section + .e-section, .e-refined .e-pair { margin-top: var(--e-10); }

/* Controls: slimmer, tighter corners, quiet secondary actions. */
.e-refined .e-btn { min-height: 36px; padding: 0 var(--e-4); border-radius: var(--r-radius-sm); font-size: 0.875rem; font-weight: 600; transition: background-color .15s, border-color .15s, color .15s, box-shadow .15s; }
.e-refined .e-btn-solid { background: var(--e-forest); }
.e-refined .e-btn-solid:hover { background: #0A2C1F; }
.e-refined .e-btn-line { background: #FFFFFF; border: 1px solid var(--r-line-2); color: var(--r-ink); }
.e-refined .e-btn-line:hover { border-color: var(--r-ink-3); background: var(--r-soft); }

/* People: compact cards, small avatars, one soft shadow. */
.e-refined .e-avatar { font-size: 0.72rem; font-weight: 600; box-shadow: inset 0 0 0 1px rgba(17, 24, 20, .06); filter: saturate(.7); }
.e-refined .e-avatar.is-xl { width: 40px; height: 40px; font-size: 0.8rem; }
.e-refined .e-faces .e-avatar { width: 28px; height: 28px; font-size: 0.66rem; border-width: 2px; }
.e-refined .e-person { background: #FFFFFF !important; border: 1px solid var(--r-line) !important; border-radius: var(--r-radius); box-shadow: var(--r-shadow); padding: var(--e-4); gap: var(--e-3); transition: box-shadow .2s; }
.e-refined .e-person:hover { box-shadow: var(--r-shadow-hover); }

.e-refined .e-person .e-chip { min-height: 24px; font-size: 0.75rem; padding: 0 var(--e-2); border-radius: 6px; background: var(--r-soft) !important; color: var(--r-ink-2); }
.e-refined .e-person .e-chip.is-match { background: #E6F2EC !important; color: var(--e-forest); }
.e-refined .e-person-facts { font-size: 0.8rem; color: var(--r-ink-3); }
.e-refined .e-person-facts .e-icon { width: 14px; height: 14px; }

.e-refined .e-verified { font-size: 0.72rem; padding: 2px 8px 2px 6px; background: #E6F2EC !important; }
.e-refined .e-unverified { font-size: 0.72rem; }

/* Idea tiles: the idea on white, a thin runway, no slab of jade. */
.e-refined .e-tile { border: 1px solid var(--r-line) !important; border-radius: var(--r-radius); box-shadow: var(--r-shadow); transition: box-shadow .2s, transform .2s; }
.e-refined .e-tile:hover { box-shadow: var(--r-shadow-hover); transform: translateY(-1px); }
.e-refined .e-tile-body { padding: var(--e-5) var(--e-5) var(--e-4); gap: 6px; }
.e-refined .e-tile-title { font-size: 1.05rem; font-weight: 600; letter-spacing: -0.015em; }
.e-refined .e-tile-pitch { font-size: 0.875rem; color: var(--r-ink-2); }
.e-refined .e-stage { font-size: 0.75rem; color: var(--r-ink-2); }
.e-refined .e-tile-sector { font-size: 0.72rem; background: var(--r-soft); color: var(--r-ink-2); }
.e-refined .e-team { border-top: 0; padding-top: var(--e-2); }
.e-refined .e-team-line { font-size: 0.8rem; color: var(--r-ink-3); }
.e-refined .e-tile-base { background: #FFFFFF !important; color: var(--r-ink) !important; border-top: 1px solid var(--r-line); padding: var(--e-4) var(--e-5); --e-paper: var(--r-ink); --e-forest-3: var(--r-ink-2); }
.e-refined .e-tile-base .e-runway { column-gap: var(--e-2); row-gap: var(--e-2); }
.e-refined .e-tile-base .e-runway-days { font-family: var(--e-font-body); font-size: 1.1rem; font-weight: 600; letter-spacing: -0.02em; color: var(--r-ink) !important; }
.e-refined .e-tile-base .e-runway-label, .e-refined .e-tile-base .e-runway-state + .e-runway-label { font-size: 0.8rem; color: var(--r-ink-2) !important; }
.e-refined .e-tile-base .e-runway-state { font-size: 0.875rem; font-weight: 600; color: var(--r-ink) !important; }
.e-refined .e-days { gap: 3px; }
.e-refined .e-days i { height: 4px !important; border-radius: 2px; background: var(--r-line) !important; box-shadow: none !important; }
.e-refined .e-days i.is-on { background: var(--e-honey) !important; }

/* Lists and empty states: hairlines, no dashed boxes. */
.e-refined .e-list { border: 1px solid var(--r-line) !important; border-radius: var(--r-radius); box-shadow: var(--r-shadow); }
.e-refined .e-row { padding: var(--e-3) var(--e-4); }
.e-refined .e-row-title { font-size: 0.9rem; font-weight: 600; }
.e-refined .e-row-sub { font-size: 0.8rem; color: var(--r-ink-3); }
.e-refined .e-empty { border: 1px solid var(--r-line) !important; border-style: solid !important; background: var(--r-soft); border-radius: var(--r-radius); padding: var(--e-6); text-align: left; }
.e-refined .e-empty h3 { font-size: 0.95rem; }
.e-refined .e-empty p { font-size: 0.875rem; color: var(--r-ink-2); margin-top: 4px; }
.e-refined details summary { font-size: 0.875rem; color: var(--r-ink-2); }

/* Frame: slimmer sidebar and nav, quieter active state. */
@media (min-width: 900px) {
  .e-refined .e-side { padding: var(--e-5) var(--e-3); gap: var(--e-5); }
  .e-refined .e-side nav { gap: 2px; }
  .e-refined .e-side nav a { min-height: 36px; font-size: 0.9rem; padding: 0 var(--e-3); border-radius: var(--r-radius-sm); }
  .e-refined .e-side nav a[aria-current="page"] { background: rgba(255, 255, 255, .14) !important; box-shadow: none !important; font-weight: 600; }
  .e-refined .e-side .e-side-post { min-height: 36px; font-size: 0.875rem; border-radius: var(--r-radius-sm); }
  .e-refined .e-icon { width: 18px; height: 18px; }
}
.e-refined .e-tabs a { font-size: 0.68rem; }
@media (prefers-reduced-motion: reduce) { .e-refined * { transition: none !important; } .e-refined .e-tile:hover { transform: none; } }
@media (min-width: 900px) { .e-refined .e-top.is-on-band .e-icon-btn { color: var(--e-forest) !important; } .e-refined .e-top.is-on-band .e-icon-btn:hover { background: var(--r-soft) !important; } }
.e-refined .e-band .e-btn-main { min-height: 40px; }

.e-refined .e-days { gap: 2px; }
/* Refinement roll-out fixes */
.e-refined .e-idea-head h1 { color: #FFFFFF; }
@media (max-width: 899px) { .e-refined .e-btn { min-height: 44px; } }
.e-refined .e-auth-inner h1 { font-size: 1.9rem; }
.e-refined .e-tile .e-chip { min-height: 24px; font-size: 0.75rem; padding: 0 var(--e-2); border-radius: 6px; background: var(--r-soft); color: var(--r-ink-2); }
.e-refined .e-tile .e-chip.is-match { background: #E6F2EC !important; color: var(--e-forest) !important; }
.e-refined .e-tile-owner .e-tile-owner-who b { color: var(--r-ink); font-size: 0.9rem; }
.e-refined .e-tile-owner .e-tile-owner-who span { color: var(--r-ink-3); font-size: 0.78rem; }
.e-refined .e-tile-status { background: var(--r-soft) !important; color: var(--r-ink-2) !important; font-size: 0.78rem; }
.e-refined .e-tile-status.is-hot { background: var(--e-honey) !important; color: var(--e-forest) !important; }

/* ==========================================================================
   Profiles (my profile, public Talent and Founder): white header, small
   avatar, facts in one thin panel, sections separated by space and
   hairlines rather than boxes.
   ========================================================================== */
.e-refined .profile-hero { background: transparent !important; color: var(--r-ink) !important; border-radius: 0 !important; padding: var(--e-6) 0 var(--e-6) !important; border-bottom: 1px solid var(--r-line) !important; display: grid; gap: var(--e-5); }
.e-refined .profile-hero h1, .e-refined .profile-hero .profile-name-row, .e-refined .profile-hero .profile-name-row * { color: var(--r-ink) !important; font-family: var(--e-font-body) !important; }
.e-refined .profile-hero h1 { font-size: 1.75rem !important; font-weight: 600; letter-spacing: -0.025em; }
.e-refined .profile-top { display: flex; align-items: center; gap: var(--e-4); flex-wrap: wrap; }
.e-refined .profile-hero .profile-avatar { width: 72px !important; height: 72px !important; font-size: 1.3rem !important; font-family: var(--e-font-body) !important; font-weight: 600; background: #F4D9A6 !important; color: var(--e-forest) !important; box-shadow: inset 0 0 0 1px rgba(17,24,20,.06) !important; }
.e-refined .profile-hero .profile-meta, .e-refined .profile-hero .profile-meta * { color: var(--r-ink-2) !important; font-size: 0.95rem; }
.e-refined .profile-hero .verified-badge, .e-refined .profile-hero .pending-badge { background: #E6F2EC !important; color: var(--e-forest) !important; font-size: 0.75rem; padding: 3px 8px; border-radius: 999px; font-family: var(--e-font-body) !important; }
.e-refined .profile-hero .pending-badge { background: var(--e-honey-soft) !important; color: #7A4A00 !important; }
.e-refined .profile-rate { display: inline-grid; grid-auto-flow: column; gap: 0; border: 1px solid var(--r-line); border-radius: var(--r-radius); box-shadow: var(--r-shadow); background: #FFFFFF; justify-self: start; }
.e-refined .profile-rate-item { padding: var(--e-3) var(--e-5); display: grid; gap: 2px; }
.e-refined .profile-rate-item + .profile-rate-item { border-left: 1px solid var(--r-line); }
.e-refined .profile-hero .profile-rate-item strong, .e-refined .profile-hero .profile-rate-item b { color: var(--r-ink) !important; font: 600 1.35rem var(--e-font-body) !important; letter-spacing: -0.02em; }
.e-refined .profile-hero .profile-rate-item span { color: var(--r-ink-2) !important; font-size: 0.8rem; }
.e-refined .e-profile-edit { margin-top: var(--e-3); }
.e-refined .profile-body { margin-top: var(--e-6); gap: var(--e-8); }
.e-refined .profile-section { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; }
.e-refined .profile-section + .profile-section { margin-top: var(--e-8) !important; padding-top: var(--e-6) !important; border-top: 1px solid var(--r-line) !important; }
.e-refined .profile-section h2, .e-refined .profile-section h3 { font-size: 0.95rem !important; font-weight: 600; color: var(--r-ink); margin-bottom: var(--e-3); font-family: var(--e-font-body) !important; }
.e-refined .profile-section p { color: var(--r-ink-2); }
.e-refined .profile-section .btn-primary { min-height: 40px; }
.e-refined .profile-safety a, .e-refined .profile-section .link-btn { color: var(--r-ink-3); font-size: 0.85rem; text-decoration: none; font-weight: 500; }
.e-refined .profile-safety a:hover { color: var(--r-ink); }
.e-refined .checklist-item { background: #FFFFFF; border: 1px solid var(--r-line); border-radius: var(--r-radius-sm); padding: var(--e-3) var(--e-4); }
.e-refined .checklist-item .count-label { color: var(--r-ink-3); font-size: 0.8rem; }
.e-refined .rating-empty { background: var(--r-soft); border-radius: var(--r-radius-sm); padding: var(--e-4); color: var(--r-ink-2); font-size: 0.9rem; }
.e-refined .skill-chip { min-height: 28px; font-size: 0.8rem; padding: 0 var(--e-3); border-radius: 6px; background: var(--r-soft); color: var(--r-ink-2); }

/* ==========================================================================
   Public idea page (Talent and visitors): calm header, small chips, a clean
   NDA card, quiet tools.
   ========================================================================== */
.e-refined .idea-title, .e-refined #ideaTitle { font-family: var(--e-font-body) !important; font-size: 1.9rem !important; font-weight: 600; letter-spacing: -0.025em; color: var(--r-ink) !important; }
@media (min-width: 900px) { .e-refined .idea-title, .e-refined #ideaTitle { font-size: 2.3rem !important; } }
.e-refined #ideaPitch { color: var(--r-ink-2); font-size: 1.05rem; margin-top: var(--e-2); }
.e-refined #ideaSkills { display: flex; flex-wrap: wrap; gap: 6px; margin-top: var(--e-4); }
.e-refined #ideaSkills > * { min-height: 26px; font-size: 0.8rem; padding: 0 var(--e-3); border-radius: 6px; background: var(--r-soft); color: var(--r-ink-2); display: inline-flex; align-items: center; border: 0; margin: 0; }
.e-refined #ownerLine, .e-refined #ideaStage { color: var(--r-ink-3); font-size: 0.875rem; margin-top: var(--e-3); }
.e-refined #ownerLine a { color: var(--r-ink); font-weight: 600; }
.e-refined #signerCard, .e-refined #detailsCard, .e-refined #signedOutCard { border: 1px solid var(--r-line) !important; border-radius: var(--r-radius) !important; box-shadow: var(--r-shadow) !important; padding: var(--e-6) !important; margin-top: var(--e-6); }
.e-refined #signerCard h3, .e-refined #detailsCard h3, .e-refined #signedOutCard h3 { font-size: 1rem !important; }
.e-refined .nda-text, .e-refined #signerCard pre, .e-refined #signerCard .nda-box { background: var(--r-soft) !important; border: 0 !important; border-radius: var(--r-radius-sm) !important; font-size: 0.85rem; line-height: 1.6; color: var(--r-ink-2); padding: var(--e-4) !important; }
.e-refined #signerCard .btn-primary:disabled, .e-refined #signerCard button:disabled { background: var(--r-soft) !important; border-color: var(--r-line) !important; color: var(--r-ink-3) !important; }
.e-refined .idea-tools { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e-2) var(--e-5); margin-top: var(--e-6); padding-top: var(--e-5); border-top: 1px solid var(--r-line); }
.e-refined .idea-tools .btn { min-height: 36px; }
.e-refined .idea-tools .link-btn { color: var(--r-ink-3); text-decoration: none; font-size: 0.85rem; font-weight: 500; background: none; border: 0; cursor: pointer; }
.e-refined .idea-tools .link-btn:hover { color: var(--r-ink); }
.e-refined .nda-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--e-2); }
.e-refined .nda-head .status-pill { font-size: 0.72rem; }
.e-refined .nda-lede, .e-refined .nda-note { color: var(--r-ink-2); font-size: 0.875rem; margin: var(--e-2) 0; }
.e-refined .profile-section { border-radius: 0 !important; }
.e-refined #messageActionArea { margin-top: var(--e-3); }
.e-refined .profile-body > div > .profile-section:has(#messageActionArea) { border: 1px solid var(--r-line) !important; border-radius: var(--r-radius) !important; padding: var(--e-5) !important; box-shadow: var(--r-shadow) !important; }
body.e-refined h1#ideaTitle.idea-title { font-family: var(--e-font-body) !important; }
.e-refined #signerCard .link-btn:disabled, .e-refined #signerCard button:not(.btn):disabled { background: none !important; border: 0 !important; box-shadow: none !important; }
/* Talent search: people cards in a grid */
.e-refined #results { display: grid; gap: var(--e-3); grid-template-columns: minmax(0, 1fr); margin-top: var(--e-4); }
@media (min-width: 700px) { .e-refined #results { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); } }
/* Messages: quiet panels, no dashed empty boxes */
.e-refined .dm-layout { border: 1px solid var(--r-line); border-radius: var(--r-radius); box-shadow: var(--r-shadow); overflow: hidden; background: #FFFFFF; }
.e-refined .dm-sidebar { background: #FFFFFF; border-right: 1px solid var(--r-line); }
.e-refined .dm-main { background: var(--r-soft); }
.e-refined .dm-layout .empty-state { border: 0 !important; background: transparent !important; color: var(--r-ink-2); font-size: 0.9rem; }
/* Talent quick profile: search first, popular next, the full list folded away */
.e-app .skill-search { margin-top: var(--e-3); }
.e-app #skillMatches { margin-top: var(--e-3); }
.e-app .skill-browse > summary { cursor: pointer; font-weight: 600; font-size: 0.9rem; color: var(--e-forest); min-height: 44px; display: flex; align-items: center; }
.e-app .skill-browse[open] { display: grid; gap: var(--e-2); }
.e-refined .skill-group { border: 0; padding: var(--e-2) 0 0; background: transparent; }
.e-refined .skill-group-title { font-size: 0.8rem; color: var(--r-ink-3); min-height: 24px; cursor: default; }
/* Account settings: three groups (account, privacy and data, delete), thin
   rows with the action on the right, compact buttons. */
.e-refined .settings-card { padding: var(--e-5) var(--e-6) !important; }
.e-refined .settings-card h3 { font-size: 1rem !important; margin-bottom: var(--e-2); }
.e-refined .settings-card .settings-row { padding: var(--e-3) 0; gap: var(--e-4); align-items: center; border-bottom: 1px solid var(--r-line); }
.e-refined .settings-card .settings-row:last-child { border-bottom: 0; }
.e-refined .settings-row-label { font-size: 0.8rem; color: var(--r-ink-3); margin-bottom: 2px; }
.e-refined .settings-row-value { font-weight: 500; color: var(--r-ink); font-size: 0.92rem; }
.e-refined .settings-card .btn { min-height: 36px; padding: 0 var(--e-4); font-size: 0.85rem; flex-shrink: 0; }
.e-refined .settings-note { color: var(--r-ink-2); font-size: 0.85rem; margin: 0 0 var(--e-2); }
.e-refined .settings-actions { display: flex; flex-wrap: wrap; gap: var(--e-2); margin-top: var(--e-4); }
.e-refined .settings-card.danger-zone { border-color: var(--r-line) !important; background: #FFFFFF !important; }
.e-refined .settings-card.danger-zone .settings-row { padding: 0; }
@media (min-width: 720px) {
  .e-refined .settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--e-6); }
  .e-refined .settings-grid > #editProfileRow, .e-refined .settings-grid > .settings-actions { grid-column: 1 / -1; }
}
@media (max-width: 480px) {
  .e-refined .settings-card .btn { min-height: 44px; }
}
/* Team tab invite: link and Copy on one line, sharing as two plain links,
   the email option as one line under it. */
.e-app .invite-box { display: grid; gap: var(--e-3); }
.e-app .invite-lede { margin: 0; color: var(--r-ink-2, var(--e-ink-2)); }
.e-app .invite-line { display: flex; gap: var(--e-2); margin: 0; }
.e-app .invite-line .e-input { flex: 1 1 auto; min-width: 0; }
.e-app .invite-line .e-btn { flex-shrink: 0; }
.e-app #inviteLinkInput { color: var(--r-ink-2, var(--e-ink-2)); font-size: 0.85rem; }
.e-app .invite-share { margin: 0; font-size: 0.85rem; color: var(--r-ink-3, var(--e-ink-3)); }
.e-app .invite-share a { color: var(--e-forest); font-weight: 600; }
.e-app .invite-email { padding-top: var(--e-3); border-top: 1px solid var(--r-line, var(--e-line)); }
.e-app #inviteSendEmailStatus:empty { display: none; }
.e-app #inviteLinkError { color: var(--e-danger, #B42318); margin: 0; }
.e-app .invite-pending { padding-top: var(--e-3); border-top: 1px solid var(--r-line, var(--e-line)); }
.e-app .invite-pending:has(#pendingInvitesEmpty:not([hidden])) { display: none; }
.e-refined .settings-actions .btn { width: auto !important; flex: 0 0 auto; }
.e-refined #exportDataCard { border-bottom: 0; }
.e-refined #dmThreadListEmpty { margin: 0 0 auto !important; align-self: stretch; text-align: left; }
.e-app .form-actions.settings-actions { display: flex; flex-direction: row; }
.e-refined .dm-sidebar #dmThreadListEmpty:not([hidden]) { order: -1; }
.e-refined .dm-sidebar #dmThreadListEmpty:not([hidden]) ~ * , .e-refined .dm-sidebar:has(#dmThreadListEmpty:not([hidden])) .dm-thread-list { display: none; }
.e-refined .dm-sidebar-header { order: -2; }

/* ==========================================================================
   Premium polish: idea feed. One slim filter bar on wide screens (the
   Filters button only on phones), and cards with a fixed footer so Save,
   facts and skills sit in the same place on every card.
   ========================================================================== */
.e-refined .discover-search .form-input { min-height: 44px; border-radius: var(--r-radius-sm); }
.e-refined .feed-filters .form-input { min-height: 40px; font-size: 0.9rem; border-radius: var(--r-radius-sm); margin: 0; }
.e-refined .feed-filters .file-chip { min-height: 36px; font-size: 0.85rem; padding: 0 var(--e-3); }
.e-refined .filter-chips, .e-refined .filter-row { margin: 0; gap: 6px; }
@media (min-width: 700px) {
  .e-refined .feed-filters > summary { display: none; }
  .e-refined .feed-filters[open] > .feed-filter-body { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e-2); padding-bottom: var(--e-4); border-bottom: 1px solid var(--r-line); }
  .e-refined .feed-filter-body > .form-input { width: auto; max-width: 210px; flex: 0 1 210px; }
  .e-refined .feed-filters .filter-row { display: flex; align-items: center; gap: var(--e-2); }
  .e-refined .feed-filters .filter-row .form-input { width: auto; max-width: 190px; }
  .e-refined .discover-search { margin-bottom: var(--e-3); }
}
@media (max-width: 699px) {
  .e-refined .feed-filters[open] > .feed-filter-body { display: grid; gap: var(--e-2); }
  .e-refined .feed-filters .filter-row { display: flex; gap: var(--e-2); }
  .e-refined .feed-filters .filter-row .form-input { flex: 1 1 auto; }
}
.e-refined .idea-list { display: grid; gap: var(--e-3); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 760px) { .e-refined .idea-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.e-refined .idea-card { display: flex; flex-direction: column; border: 1px solid var(--r-line); border-radius: var(--r-radius); box-shadow: var(--r-shadow); background: #FFFFFF; margin: 0; }
.e-refined .idea-card:hover { border-color: var(--r-line-2); box-shadow: 0 6px 20px rgba(17,24,20,.06); }
.e-refined .idea-card-link { flex: 1 1 auto; padding: var(--e-5) var(--e-5) var(--e-4); }
.e-refined .idea-card-title { font-size: 1.05rem !important; font-weight: 600; letter-spacing: -0.015em; font-family: var(--e-font-body) !important; }
.e-refined .idea-card-pitch { color: var(--r-ink-2); font-size: 0.9rem; margin-top: 4px; }
.e-refined .idea-card .skill-chip-row { display: flex; flex-wrap: wrap; gap: 6px; margin-top: var(--e-3); }
.e-refined .idea-card .skill-chip { min-height: 24px; font-size: 0.75rem; padding: 0 var(--e-2); border-radius: 6px; background: var(--r-soft); color: var(--r-ink-2); margin: 0; display: inline-flex; align-items: center; }
.e-refined .idea-card .status-pill { font-size: 0.72rem; padding: 2px 8px; flex-shrink: 0; white-space: nowrap; }
.e-refined .idea-card .idea-card-meta { display: flex; align-items: center; justify-content: space-between; gap: var(--e-3); flex-wrap: nowrap; margin: 0; padding: var(--e-3) var(--e-5); border-top: 1px solid var(--r-line); }
.e-refined .idea-card-facts { display: grid; gap: 2px; min-width: 0; font-size: 0.8rem; color: var(--r-ink-3); }
.e-refined .idea-card-facts > span:first-child { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.e-refined .idea-card-match { color: var(--e-forest); font-weight: 600; }
.e-refined .idea-save-btn { flex-shrink: 0; min-height: 34px; padding: 0 var(--e-4); border-radius: 999px; border: 1px solid var(--r-line-2); background: #FFFFFF; color: var(--r-ink); font: 600 0.82rem var(--e-font-body); cursor: pointer; }
.e-refined .idea-save-btn[aria-pressed="true"] { background: var(--r-soft); border-color: var(--r-soft); color: var(--e-forest); }
@media (max-width: 480px) { .e-refined .idea-save-btn { min-height: 44px; } }

/* Premium polish: Founder Home. Requests fill whole rows (extra ones behind
   Show more), numbers sit as a light strip, archived ideas under Your ideas,
   and Recent activity takes the full width when nothing sits beside it. */
.e-refined .e-more-btn { margin-top: var(--e-3); min-height: 36px; }
.e-refined .e-archived { margin-top: var(--e-4); font-size: 0.9rem; }
.e-refined .e-band-stats { display: inline-grid; grid-auto-flow: column; gap: 0; border: 1px solid var(--r-line); border-radius: var(--r-radius); background: #FFFFFF; box-shadow: var(--r-shadow); }
.e-refined .e-band-stat { padding: var(--e-3) var(--e-5); min-width: 0; }
.e-refined .e-band-stat + .e-band-stat { border-left: 1px solid var(--r-line); }
.e-refined .e-band-stat b { font-family: var(--e-font-body) !important; font-size: 1.5rem !important; letter-spacing: -0.02em; }
.e-refined .e-band-stat span { font-size: 0.8rem; }
@media (min-width: 900px) {
  .e-refined .e-pair:not(:has(> div > .e-section:not([hidden]))) { grid-template-columns: minmax(0, 1fr); }
}
.e-refined .e-pair > div:not(:has(> .e-section:not([hidden]))) { display: none; }

/* Premium polish: idea page. On phones all five tabs fit on one line (no
   tab cut off at the edge); an empty chat says what to do instead of
   showing a blank box. */
@media (max-width: 520px) {
  .e-refined .e-idea-head .tab-row.e-pilltabs { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 4px; overflow: visible; }
  .e-refined .e-idea-head .e-pilltabs .tab-btn { justify-content: center; min-height: 40px; padding: 0 4px; font-size: 0.8rem; gap: 4px; }
  .e-refined .e-idea-head .e-pilltabs .e-count { min-width: 16px; height: 16px; font-size: 0.65rem; padding: 0 4px; }
}
.e-refined #chatLog:empty { display: flex; align-items: center; justify-content: center; }
.e-refined #chatLog:empty::before { content: "No messages yet. Say hello to your team."; color: var(--r-ink-3); font-size: 0.9rem; text-align: center; padding: var(--e-6); }

@media (min-width: 700px) {
  /* Dropdowns and Saved on the first line, stage chips on the second. */
  .e-refined .feed-filters .filter-row { order: 2; }
  .e-refined .feed-filters .filter-chips { order: 3; flex-basis: 100%; }
  .e-refined .feed-filter-body > .form-input, .e-refined .feed-filters .filter-row .form-input { flex: 0 1 200px; max-width: 200px; }
  .e-refined .discover-search .form-input { max-width: 620px; }
}

.e-refined .feed-filters { margin-bottom: var(--e-5); }

/* ==========================================================================
   Trust, work links, intro call, safety (2026-10-15). Phone first.
   ========================================================================== */
/* Trust facts: one strip of chips at the top of every profile; wraps. */
.e-trust { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.e-trust li { display: inline-flex; align-items: center; gap: 5px; min-height: 28px; padding: 0 10px; border-radius: 999px;
  background: var(--r-soft, #F6F8F7); color: var(--r-ink-2, #4A554E); font-size: 0.8rem; font-weight: 500; }
.e-trust li svg { width: 14px; height: 14px; flex-shrink: 0; }
.e-trust li.is-yes { background: #E6F2EC; color: var(--e-forest); }
.e-trust li.is-no { background: #FFF4E5; color: #7A4A00; }
.e-trust-top { margin-top: var(--e-3); }
.e-trust-top:empty { display: none; }

/* Work links: site mark + name, one per line on phones, a row on wide screens. */
.e-worklinks { list-style: none; margin: var(--e-3) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--e-2) var(--e-4); }
.e-worklinks li { display: inline-flex; align-items: center; gap: 6px; font-size: 0.9rem; }
.e-worklinks a { color: var(--e-forest); font-weight: 600; text-decoration: none; }
.e-worklinks a:hover { text-decoration: underline; }
.e-sitemark { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 6px;
  background: var(--r-soft, #F6F8F7); color: var(--r-ink-2, #4A554E); font: 700 0.68rem/1 var(--e-font-body); letter-spacing: -0.02em; flex-shrink: 0; }
.e-sitemark svg { width: 14px; height: 14px; }
.e-sitemark.is-linkedin { background: #0A66C2; color: #FFFFFF; }
.e-sitemark.is-github { background: #1F2328; color: #FFFFFF; }
.e-sitemark.is-behance { background: #1769FF; color: #FFFFFF; }
.e-sitemark.is-dribbble { background: #EA4C89; color: #FFFFFF; }
.e-worklink-report { background: none; border: 0; padding: 0 2px; color: var(--r-ink-3, #7A857E); font-size: 0.75rem; cursor: pointer; text-decoration: underline; min-height: 28px; }
.e-worklink-report:hover { color: var(--r-ink, #111814); }

/* Work links editor (profile forms). */
.e-wl-editor { display: grid; gap: var(--e-2); }
.e-wl-rows { display: grid; gap: var(--e-2); }
.e-wl-row { display: flex; gap: var(--e-2); align-items: center; }
.e-wl-row input { flex: 1 1 auto; min-width: 0; }
.e-wl-remove { flex-shrink: 0; width: 40px; height: 40px; border-radius: 10px; border: 1px solid var(--r-line, #E5E9E7); background: #FFFFFF; color: var(--r-ink-3, #7A857E); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.e-wl-remove svg { width: 16px; height: 16px; transform: rotate(45deg); }
.e-wl-add { justify-self: start; background: none; border: 0; padding: 6px 0; color: var(--e-forest); font-weight: 600; font-size: 0.88rem; cursor: pointer; min-height: 40px; }

/* Safety line: at the start of every chat and on the intro call. */
.e-safety { display: flex; align-items: center; gap: 8px; margin: 0 0 var(--e-3); padding: 10px 12px; border-radius: 10px;
  background: #FFF4E5; color: #6B4100; font-size: 0.85rem; font-weight: 500; }
.e-safety::before { content: "!"; display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; flex-shrink: 0;
  border-radius: 50%; background: #F2A33A; color: #FFFFFF; font-size: 0.72rem; font-weight: 700; }
.e-chat-safety { margin: var(--e-2) var(--e-3) var(--e-2); }

/* Joining steps on the idea page. */
.e-join-steps { list-style: none; margin: var(--e-3) 0 var(--e-4); padding: 0; display: grid; gap: 6px; }
.e-join-steps:empty { display: none; }
.e-join-steps li { display: flex; align-items: center; gap: 10px; font-size: 0.9rem; color: var(--r-ink-3, #7A857E); }
.e-join-steps li span { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%;
  border: 1px solid var(--r-line-2, #DCE2DE); font-size: 0.75rem; font-weight: 600; flex-shrink: 0; }
.e-join-steps li.is-done { color: var(--r-ink-2, #4A554E); }
.e-join-steps li.is-done span { background: #E6F2EC; border-color: #E6F2EC; color: var(--e-forest); }
.e-join-steps li.is-now { color: var(--r-ink, #111814); font-weight: 600; }
.e-join-steps li.is-now span { background: var(--e-forest); border-color: var(--e-forest); color: #FFFFFF; }
#actionLink { text-align: center; }

/* Equity tab (2026-10-16): plain-English vesting lines, the record lede, OCF export. */
.eq-lede { font-weight: 600; margin: 0 0 6px; }
.eq-example { color: var(--e-forest); font-size: 0.85rem; margin: 6px 0 0; }
.eq-help { color: var(--e-ink-2); font-size: 0.85rem; margin: 10px 0 0; }
.eq-terms-edit { margin-top: var(--e-2); }
.eq-terms-edit summary { cursor: pointer; color: var(--e-forest); font-weight: 600; font-size: 0.875rem; min-height: 44px; display: flex; align-items: center; }

/* Connect your AI tool (2026-10-16). */
.ai-create-row { display: flex; gap: var(--e-2); flex-wrap: wrap; }
.ai-create-row .form-input { flex: 1 1 220px; min-width: 0; }
.ai-secret { margin-top: var(--e-4); padding: var(--e-4); border-radius: 12px; background: var(--e-honey-soft, #FFF4DC); }
.ai-secret-title { font-weight: 600; margin: 0 0 var(--e-2); }
.ai-code-row { display: flex; gap: var(--e-2); align-items: flex-start; margin: var(--e-2) 0; }
.ai-code { flex: 1 1 auto; min-width: 0; margin: 0; padding: 10px 12px; border-radius: 10px; background: var(--e-mist, #F3F6F2); border: 1px solid var(--e-line);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.8rem; line-height: 1.5; white-space: pre-wrap; word-break: break-all; overflow-x: auto; }
.ai-copy { flex: 0 0 auto; min-height: 44px; }
.ai-tabs { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: var(--e-3); }
.ai-tab { border: 1px solid var(--e-line-2, #D5DCD3); background: transparent; color: var(--e-ink); border-radius: 999px; padding: 0 14px; min-height: 40px; font: inherit; font-weight: 600; font-size: 0.875rem; cursor: pointer; }
.ai-tab[aria-selected="true"] { background: var(--e-forest); border-color: var(--e-forest); color: #fff; }
.ai-tools { list-style: none; padding: 0; margin: 0 0 var(--e-3); display: grid; gap: var(--e-3); }
.ai-tools code { font-size: 0.75rem; color: var(--e-ink-2); }
.ai-tools span { color: var(--e-ink-2); font-size: 0.875rem; }
.ai-key.is-revoked { opacity: 0.6; }

/* ===== Live visual fixes (2026-10-16): the owner found the live site "very bad" ===== */
/* 1. `.e-app p { margin: 0 }` beat the single-class lede/small rules, so every
      public headline sat right on top of its next line. */
.e-app .e-s-lede { margin-top: var(--e-4); }
.e-app .e-s-small { margin-top: var(--e-3); }
/* 2. A plain (white) hero followed by a white section stacked two paddings
      into one blank stretch (see CLAUDE.md): one gap instead. */
.e-app.e-site section.e-s-hero.is-plain { padding-bottom: var(--e-6); }
.e-app.e-site section.e-s-hero.is-plain + section.e-s-section { padding-top: var(--e-4); }
@media (min-width: 900px) {
  .e-app.e-site section.e-s-hero.is-plain { padding-bottom: var(--e-8); }
  .e-app.e-site section.e-s-hero.is-plain + section.e-s-section { padding-top: var(--e-6); }
}
/* 3. Pricing: equal-height plans, actions on one line, the note under them. */
@media (min-width: 900px) { .e-s-plans { align-items: stretch; } }
.e-s-plan { display: flex; flex-direction: column; }
.e-s-plan > :last-child { margin-top: auto; }
.e-app .e-s-plans + .e-s-small { margin-top: var(--e-6); }
/* 4. Public pages (Find ideas, an idea) for signed-out visitors: the website
      header, not the app frame. Nothing shows until the session is known. */
body.e-public-pending .e-side, body.e-public-pending .e-top, body.e-public-pending .e-tabs { visibility: hidden; }
body.e-app.e-public { padding-left: 0; padding-bottom: 0; }
body.e-public .e-side, body.e-public .e-top, body.e-public .e-tabs { display: none !important; }
/* 5. Feed filters: drop-downs that match the inputs, not the browser default. */
.feed-filters select.form-input {
  -webkit-appearance: none; appearance: none; padding-right: 40px; background-repeat: no-repeat; background-position: right 14px center; background-size: 14px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E6B5A' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
}
/* 6. A short feed ends with the other half of Ecogru instead of white space. */
.idea-card-prompt { border: 1.5px dashed var(--e-line-2, #C9D3C6); background: var(--e-canvas, #F7F9F6); padding: var(--e-5); display: grid; gap: var(--e-3); align-content: start; }
.idea-card-prompt .e-btn { justify-self: start; }
/* The feed and idea pages: the same 16px under the headline as the website. */
.e-app .idea-hero .idea-title + .lede { margin-top: var(--e-4); }
/* Idea tabs never cut a label off: they fill the row when they fit and
   scroll sideways when they don't (very narrow phones). */
@media (max-width: 520px) {
  .e-refined .e-idea-head .tab-row.e-pilltabs { display: flex; overflow-x: auto; overscroll-behavior-x: contain; }
  .e-refined .e-idea-head .e-pilltabs .tab-btn { flex: 1 0 auto; padding: 0 12px; }
}
/* Report an issue sits under the member list on the member's idea page. */
.e-app .e-report-link { margin-top: var(--e-3); font-size: 0.85rem; color: var(--e-ink-2); }
/* Skill chips on phones: a little tighter, so most rows hold two. */
@media (max-width: 520px) {
  .e-app .skill-chip-row .tag-chip { padding: 0 12px; font-size: 0.875rem; }
}

/* Trial lock (2026-10-16): a locked idea shows the ways to unlock in place of
   its tasks, files, updates and terms. Chat stays readable; Equity stays open. */
.e-idea-locked [data-panel="tasks"] > :not(.e-lock-note),
.e-idea-locked [data-panel="files"] > :not(.e-lock-note),
.e-idea-locked [data-panel="feed"] > :not(.e-lock-note):not(.e-back),
.e-idea-locked [data-panel="agreements"] > :not(.e-lock-note):not(.e-back) { display: none !important; }
.e-lock-note .e-actions { display: flex; flex-wrap: wrap; gap: var(--e-2); margin-top: var(--e-3); }
.e-lock-chat { margin-bottom: var(--e-3); }
.e-runway.is-locked .e-runway-state { color: var(--e-ink); }

/* "Suggest a call" under the chat box (2026-10-23): a quiet text link. */
.e-suggest-call { background: none; border: 0; padding: 8px 4px 0; cursor: pointer; }

/* Join request row (Home, Team tab; 2026-10-23, replaces the person card).
   Phones: the two buttons go full width under the name. */
.e-request { flex-wrap: wrap; }
@media (max-width: 559px) { .e-request .e-row-actions { width: 100%; } .e-request .e-row-actions .e-btn { flex: 1 1 0; } }

/* Smart profile-link field (sign-up, 2026-10-24): the detected type. */
.e-link-kind { min-height: 1.2em; margin-top: 6px; }
.e-link-kind.is-ok { color: var(--e-forest); font-weight: 600; }
.e-link-kind.is-warn { color: #8A5300; }
.e-choice-next { display: grid; gap: var(--e-3); }
.e-choice-next .e-actions { margin-top: var(--e-2); }

/* Share an idea (2026-10-24): link row, editable post, one-tap buttons. */
.e-share .e-share-row { display: flex; gap: 8px; }
.e-share .e-share-row .form-input { flex: 1 1 auto; min-width: 0; }
.e-share .e-share-buttons { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.e-share .e-share-buttons .btn { flex: 1 1 calc(33% - 8px); min-width: 96px; justify-content: center; }

/* Days left on an idea, for its owner only (2026-10-24): quiet, not a countdown. */
.e-days-left { color: var(--e-ink-2); font-size: 0.875rem; }
.e-subhead { font-size: 0.95rem; font-weight: 600; margin: 0 0 var(--e-2); }
#needSection { margin-bottom: var(--e-5); }
#openList { margin-bottom: var(--e-4); }
.e-tile-meta .e-days-left { margin-left: auto; white-space: nowrap; }

/* Settings: photo row (2026-10-24). */
.settings-photo { display: flex; align-items: center; gap: 12px; }
.settings-photo .e-avatar { overflow: hidden; }
.settings-photo .e-avatar img { width: 100%; height: 100%; object-fit: cover; }
.settings-photo-actions { display: flex; gap: 8px; flex-wrap: wrap; }

/* Settings, Plan (2026-10-24): status badge, actions, cancel confirmation. */
.e-refined .settings-plan { align-items: flex-start; flex-wrap: wrap; }
.e-refined .plan-actions { display: flex; flex-wrap: wrap; gap: var(--e-2); align-items: center; }
.e-refined .plan-actions[hidden], .e-refined .plan-confirm[hidden] { display: none; }
.e-refined .plan-confirm { margin-top: var(--e-3); }
.e-refined .plan-confirm p { margin: 0 0 var(--e-3); font-size: 0.9rem; color: var(--r-ink); }
.e-refined .plan-status { display: inline-block; margin-left: 6px; padding: 1px 8px; border-radius: 999px; font-size: 0.72rem; font-weight: 600; background: var(--e-mist); color: var(--r-ink-3); }
.e-refined .plan-status.is-active { background: var(--e-moss); color: var(--e-forest); }
.e-refined .plan-status.is-past_due { background: #FDECEA; color: var(--e-danger); }
@media (max-width: 480px) { .e-refined .plan-actions .btn { white-space: normal; } }
.e-refined .plan-actions button.e-link { background: none; border: 0; padding: 0 var(--e-2); min-height: 40px; cursor: pointer; font-family: inherit; }

/* Ready to start + company pack (2026-10-24), above the workspace tabs. */
.e-app .e-ready, .e-ready { background: var(--e-white); border: 1px solid var(--e-line-2); border-radius: 16px; padding: var(--e-4); margin: 0 0 var(--e-5); }
.e-ready[hidden] { display: none; }
.e-ready-head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--e-3); margin-bottom: var(--e-3); }
.e-app .e-ready-head h2 { font-size: 1rem; margin: 0; }
.e-ready-count { font-size: 0.85rem; color: var(--e-ink-2); }
.e-ready-list { list-style: none; margin: 0 0 var(--e-3); padding: 0; display: grid; gap: var(--e-2); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) { .e-ready-list { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.e-ready-list li { display: flex; gap: var(--e-2); align-items: flex-start; font-size: 0.88rem; }
.e-ready-list strong { display: block; color: var(--e-ink); }
.e-ready-hint { display: block; color: var(--e-ink-2); font-size: 0.8rem; margin-top: 2px; overflow-wrap: anywhere; }
.e-ready-dot { flex: 0 0 22px; width: 22px; height: 22px; border-radius: 999px; border: 2px solid var(--e-line-2); display: inline-flex; align-items: center; justify-content: center; margin-top: 1px; }
.e-ready-list li.is-done .e-ready-dot { background: var(--e-forest); border-color: var(--e-forest); color: #FFFFFF; }
.e-app .e-ready-note { margin-top: var(--e-2); font-size: 0.85rem; color: var(--e-ink-2); }
.e-app .eq-83b { margin: var(--e-3) 0 0; padding: var(--e-2) var(--e-3); border-left: 3px solid var(--e-warn); background: #FFF7EC; font-size: 0.88rem; color: var(--e-ink); }
