/* ============================================================
   batten home — surface styles
   ============================================================ */

/* shared bits */
.field-label { font-size: 12.5px; font-weight: 700; color: var(--ink-700); letter-spacing: .01em; }
.field-label em { color: var(--fg-subtle); font-style: normal; font-weight: 400; }
.fineprint { display: flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--fg-subtle); line-height: 1.4; }
.fineprint b { color: var(--fg-muted); font-weight: 700; }
.fineprint.center { justify-content: center; text-align: center; padding-top: 4px; }
.fineprint svg { flex-shrink: 0; color: var(--fg-subtle); }

.lane { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.lane--quiet { margin-top: 4px; }

/* ============================================================
   Hero
   ============================================================ */
.hero { display: grid; gap: 9px; padding: 4px 2px 2px; }
.hero__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.hero__greet { font-size: clamp(22px, 5.6vw, 25px); font-weight: 700; letter-spacing: -0.025em; line-height: 1.08; color: var(--fg); }
.hero__status { font-size: 16px; color: var(--ink-700); line-height: 1.35; max-width: 32ch; text-wrap: pretty; }
.hero__summary { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; margin-top: 2px; }
.hero__stat { appearance: none; border: none; background: transparent; cursor: pointer; padding: 0; display: inline-flex; align-items: center; gap: 5px;
  font-size: 12.5px; color: var(--fg-muted); }
.hero__stat b { color: var(--fg); font-weight: 700; }
.hero__stat:not(.is-static):hover { color: var(--fg); }
.hero__stat.is-static { cursor: default; }
.hero__stat.is-static svg { color: var(--fg-subtle); }
.hero__sep { width: 3px; height: 3px; border-radius: 50%; background: var(--veil-strong); }

/* ============================================================
   Attention card
   ============================================================ */
/* ============================================================
   Attention card — sleek flat row, expands inline on tap
   ============================================================ */
.acard { background: color-mix(in oklab, var(--snow) 78%, transparent); border: 1px solid var(--veil); border-radius: var(--radius-lg);
  overflow: hidden; transition: border-color var(--dur-2) var(--ease-out), background var(--dur-2) var(--ease-out); }
.acard:hover { border-color: var(--veil-strong); }
.acard--now { background: color-mix(in oklab, var(--ember) 5%, var(--snow)); border-color: color-mix(in oklab, var(--ember) 22%, var(--veil)); }
.acard.is-open { background: var(--snow); border-color: color-mix(in oklab, var(--tn) 30%, var(--veil-strong)); }

.acard__row { all: unset; box-sizing: border-box; cursor: pointer; display: flex; gap: 12px; align-items: flex-start; width: 100%; padding: 14px;
  transition: background var(--dur-2) var(--ease-out); }
.acard__row:active { background: color-mix(in oklab, var(--tn) 6%, transparent); }
.acard__ico { color: var(--tn); flex-shrink: 0; margin-top: 1px; }
.acard__body { display: grid; gap: 3px; min-width: 0; flex: 1; }
.acard__kicker { font-size: 10.5px; font-weight: 400; letter-spacing: .09em; text-transform: uppercase; color: var(--fg-subtle);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.acard__title { font-size: 15.5px; font-weight: 700; line-height: 1.3; letter-spacing: -0.015em; color: var(--fg); text-wrap: pretty; }
.acard__why { font-size: 13px; line-height: 1.5; color: var(--ink-500); text-wrap: pretty; }
.acard__why--clamp { margin-top: 1px; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.acard__aside { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; flex-shrink: 0; padding-left: 2px; }
.acard__time { font-size: 11.5px; color: var(--fg-subtle); white-space: nowrap; }
.acard__time.is-hot { color: var(--ember); }
.acard__amt { font-size: 13.5px; font-weight: 700; color: var(--ink-900); }
.acard__chev { color: var(--ink-500); transition: transform var(--dur-2) var(--ease-out); }
.acard.is-open .acard__chev { transform: rotate(180deg); }

.acard__expand { padding: 0 14px 14px 46px; display: grid; gap: 11px; animation: expandin var(--dur-3) var(--ease-out); }
@keyframes expandin { from { opacity: .4; transform: translateY(-3px); } to { opacity: 1; transform: none; } }
.acard__auth { display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--tn); }
.acard__auth svg { flex-shrink: 0; }
.acard__actions { display: flex; flex-wrap: wrap; gap: 8px; }

.act { appearance: none; cursor: pointer; display: inline-flex; align-items: center; gap: 5px; height: 30px; padding: 0 12px;
  border-radius: var(--radius-pill); font-size: 12.5px; font-weight: 400; letter-spacing: -0.005em;
  color: var(--ink-700); background: transparent; border: 1px solid var(--veil-strong);
  transition: background var(--dur-2) var(--ease-out), color var(--dur-2) var(--ease-out), border-color var(--dur-2) var(--ease-out); }
.act:hover { background: var(--mist); color: var(--ink-900); border-color: var(--ink-400); }
.act svg { opacity: .8; }
.act--primary { color: var(--tn); border-color: color-mix(in oklab, var(--tn) 40%, transparent); background: color-mix(in oklab, var(--tn) 12%, transparent); font-weight: 700; }
.act--primary:hover { background: color-mix(in oklab, var(--tn) 20%, transparent); color: var(--tn); border-color: color-mix(in oklab, var(--tn) 55%, transparent); }
.act--primary svg { opacity: 1; }

/* small borderless icon button (loops rows, etc.) */
.acard__iconbtn { appearance: none; cursor: pointer; width: 42px; height: 42px; border-radius: var(--radius-pill); display: grid; place-items: center; flex-shrink: 0;
  color: var(--ink-500); background: transparent; border: 1px solid var(--veil-strong);
  transition: background var(--dur-2) var(--ease-out), color var(--dur-2) var(--ease-out), border-color var(--dur-2) var(--ease-out); }
.acard__iconbtn:hover { background: var(--mist); color: var(--ink-900); border-color: var(--ink-400); }

/* ready tray (home) */
.readytray { display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer;
  padding: 14px 16px; border-radius: var(--radius-lg); border: 1px solid color-mix(in oklab, var(--plum) 30%, var(--veil));
  background: linear-gradient(110deg, color-mix(in oklab, var(--plum) 12%, var(--snow)), var(--snow));
  color: var(--ink-700); transition: border-color var(--dur-2) var(--ease-out), transform var(--dur-2) var(--ease-out); }
.readytray:hover { border-color: color-mix(in oklab, var(--plum) 50%, var(--veil)); transform: translateY(-1px); }
.readytray__l { display: flex; align-items: center; gap: 12px; }
.readytray__ico { width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; color: var(--tn);
  background: transparent; border: none; }
.readytray strong { display: block; font-size: 15px; color: var(--fg); }
.readytray span span, .readytray__l span:not(.readytray__ico) { font-size: 13px; color: var(--fg-muted); }
.readytray > svg { color: var(--plum); }

/* handled list */
.handled { display: grid; gap: 6px; }
.handled__lead { font-size: 13px; line-height: 1.5; margin-bottom: 4px; }
.handled__row { display: flex; align-items: center; gap: 10px; padding: 9px 11px; border-radius: var(--radius-md);
  background: color-mix(in oklab, var(--tn) 7%, var(--snow)); border: 1px solid var(--veil); font-size: 13.5px; color: var(--ink-700); }
.handled__row > svg:last-child { color: var(--sage); }
.handled__ico { color: var(--tn); display: grid; place-items: center; flex-shrink: 0; }

/* ============================================================
   Global flatten — calm the boxed icon-chips into plain accent
   glyphs across secondary surfaces. Keeps alignment, drops the
   tinted box + border so nothing reads gimmicky.
   ============================================================ */
.subrow__ico, .billcard__ico, .engine__ico, .grant__ico, .setrow__ico,
.seg__ico, .looprow__glyph, .world__fico, .suppressed__ico, .readytray__ico,
.moretile__ico, .erec__node {
  background: transparent !important; border: none !important; border-radius: 0 !important;
  width: auto !important; height: auto !important; color: var(--tn);
}
.erec__node { width: 8px !important; height: 8px !important; border-radius: 50% !important; background: var(--tn) !important; box-shadow: none !important; }
.readytray__ico { color: var(--plum); }
.moretile__ico { color: var(--ember); }
.seg__ico { width: 22px !important; }

/* ============================================================
   Ready to do — held actions
   ============================================================ */
.held { background: color-mix(in oklab, var(--snow) 78%, transparent); border: 1px solid var(--veil); border-radius: var(--radius-lg); overflow: hidden;
  border-color: color-mix(in oklab, var(--tn) 18%, var(--veil)); }
.held__main { flex: 1; min-width: 0; padding: 15px; display: grid; gap: 11px; }
.held__top { display: flex; gap: 11px; align-items: flex-start; }
.held__ico { color: var(--tn); flex-shrink: 0; margin-top: 1px; }
.held__title { font-size: 15.5px; font-weight: 700; line-height: 1.3; letter-spacing: -0.015em; color: var(--fg); }
.held__summary { font-size: 13px; color: var(--ink-500); margin-top: 3px; line-height: 1.5; }
.held__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; }
.held__cap { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; color: var(--tn); }
.held__ctx { font-size: 11.5px; color: var(--fg-muted); }
.held__age { font-size: 11.5px; color: var(--fg-subtle); margin-left: auto; }
.held__preview { appearance: none; border: none; background: transparent; cursor: pointer; display: inline-flex; align-items: center; gap: 6px;
  font-size: 12.5px; font-weight: 700; color: var(--fg-muted); padding: 0; width: max-content; }
.held__preview:hover { color: var(--ink-900); }
.held__previewbody { display: grid; gap: 8px; padding: 12px; border-radius: var(--radius-md); background: var(--paper-deep); border: 1px solid var(--veil); }
.held__draft { font-size: 13.5px; line-height: 1.55; color: var(--ink-700); white-space: pre-wrap; }
.held__why { display: flex; align-items: center; gap: 7px; font-size: 12px; color: var(--fg-subtle); }
.held__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-top: 2px; }
.held__reason { display: grid; gap: 10px; padding: 12px; border-radius: var(--radius-md);
  background: color-mix(in oklab, var(--tn) 8%, var(--snow)); border: 1px solid color-mix(in oklab, var(--tn) 28%, transparent); }
.held__reasonactions { display: flex; gap: 8px; justify-content: flex-end; }

.receipt { display: flex; align-items: center; gap: 10px; padding: 11px 13px; border-radius: var(--radius-md);
  background: color-mix(in oklab, var(--tn) 8%, var(--snow)); border: 1px solid var(--veil); color: var(--tn); font-size: 13.5px; }
.receipt b { color: var(--ink-900); font-weight: 700; }
.receipt .grow { color: var(--ink-700); }
.receipt__time { font-size: 12px; color: var(--fg-subtle); }

/* ============================================================
   Day
   ============================================================ */
.daycard { padding: 16px; display: grid; gap: 16px; }
.daycard__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.daycard__label { font-size: 11px; font-weight: 400; letter-spacing: .09em; text-transform: uppercase; color: var(--fg-subtle); }
.daycard__now { display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--fg-muted); }
.daycard__nowdot { width: 6px; height: 6px; border-radius: 50%; background: var(--ember); box-shadow: 0 0 0 3px color-mix(in oklab, var(--ember) 22%, transparent); }

/* day-shape: slim purposeful timeline */
.shape { display: grid; gap: 9px; }
.shape__track { position: relative; height: 30px; }
.shape__work { position: absolute; top: 9px; bottom: 9px; border-radius: 999px; background: var(--paper-deep); border: 1px solid var(--veil); }
.shape__free { position: absolute; top: 7px; bottom: 7px; border-radius: 6px;
  background: repeating-linear-gradient(45deg, color-mix(in oklab, var(--sage) 14%, transparent) 0 5px, transparent 5px 10px);
  border: 1px dashed color-mix(in oklab, var(--sage) 45%, transparent); }
.shape__blk { position: absolute; top: 5px; bottom: 5px; border-radius: 5px;
  background: color-mix(in oklab, var(--tn) 60%, transparent); }
.shape__blk.is-key { top: 3px; bottom: 3px; background: var(--ember); box-shadow: 0 0 10px color-mix(in oklab, var(--ember) 45%, transparent); }
.shape__conflict { position: absolute; top: 2px; width: 12px; height: 12px; transform: translateX(-50%); border-radius: 3px;
  background: var(--snow); border: 1.5px solid var(--crimson); }
.shape__conflict::after { content: ""; position: absolute; inset: 2px; background: linear-gradient(45deg, transparent 44%, var(--crimson) 44% 56%, transparent 56%); }
.shape__now { position: absolute; top: 0; bottom: 0; width: 2px; transform: translateX(-1px); background: var(--fg); border-radius: 2px; }
.shape__nowdot { position: absolute; top: -3px; left: 50%; transform: translateX(-50%); width: 7px; height: 7px; border-radius: 50%; background: var(--fg); }
.shape__axis { display: flex; align-items: center; justify-content: space-between; }
.shape__axis > span { font-size: 10.5px; color: var(--fg-subtle); }
.shape__free-lbl { display: inline-flex; align-items: center; gap: 4px; color: var(--sage) !important; font-weight: 400; }
.shape__next { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-radius: var(--radius-md);
  background: var(--paper-deep); border: 1px solid var(--veil); font-size: 13px; color: var(--ink-700); }
.shape__next svg { color: var(--ember); flex-shrink: 0; }
.shape__next b { color: var(--fg); font-weight: 700; }

.daystats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.daystat { display: grid; gap: 2px; padding: 11px 10px; border-radius: var(--radius-md); background: var(--paper-deep); border: 1px solid var(--veil); }
.daystat__k { font-size: 10px; font-weight: 400; letter-spacing: .03em; text-transform: uppercase; color: var(--fg-subtle); }
.daystat strong { font-size: 20px; font-weight: 700; color: var(--fg); line-height: 1.1; }
.daystat small { font-size: 10px; color: var(--fg-muted); }
@media (max-width: 460px) { .daystats { grid-template-columns: repeat(2, 1fr); } }

/* calendar-strain cards */
.strain { display: flex; gap: 12px; padding: 14px; border-radius: var(--radius-lg);
  background: color-mix(in oklab, var(--snow) 78%, transparent); border: 1px solid var(--veil); }
.strain--high { background: color-mix(in oklab, var(--crimson) 6%, var(--snow)); border-color: color-mix(in oklab, var(--crimson) 24%, var(--veil)); }
.strain__ico { color: var(--tn); flex-shrink: 0; margin-top: 1px; }
.strain__body { display: grid; gap: 6px; min-width: 0; flex: 1; }
.strain__sev { display: inline-flex; align-items: center; gap: 5px; font-size: 10.5px; font-weight: 400; letter-spacing: .06em; text-transform: uppercase; color: var(--tn); }
.strain__sev .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--tn); }
.strain__title { font-size: 15px; font-weight: 700; line-height: 1.3; letter-spacing: -0.015em; color: var(--fg); }
.strain__detail { font-size: 13px; line-height: 1.5; color: var(--ink-500); text-wrap: pretty; }
.strain__act { margin-top: 4px; width: max-content; }
.strain__held { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--sage); margin-top: 2px; }

/* meeting prep */
.prep { padding: 16px; border-radius: var(--radius-lg); border: 1px solid color-mix(in oklab, var(--ember) 26%, var(--veil));
  background: color-mix(in oklab, var(--ember) 6%, var(--snow)); display: grid; gap: 12px; }
.prep__head { display: flex; align-items: center; gap: 10px; }
.prep__time { font-size: 16px; font-weight: 700; color: var(--ember); }
.prep__cat { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; color: var(--fg-muted); }
.prep__title { font-size: 17px; font-weight: 700; letter-spacing: -0.018em; color: var(--fg); }
.prep__rows { display: grid; gap: 2px; }
.prep__row { display: flex; gap: 11px; align-items: flex-start; padding: 11px 0; border-top: 1px solid color-mix(in oklab, var(--ember) 14%, var(--veil)); text-align: left; }
.prep__row:first-child { border-top: none; }
.prep__row > svg { color: var(--fg-subtle); flex-shrink: 0; margin-top: 2px; }
.prep__row--key > svg { color: var(--ember); }
.prep__rk { display: block; font-size: 10.5px; font-weight: 400; letter-spacing: .05em; text-transform: uppercase; color: var(--fg-subtle); margin-bottom: 2px; }
.prep__row p { font-size: 13px; line-height: 1.5; color: var(--ink-700); }
.prep__row--key p { color: var(--fg); }
.prep__row--link { appearance: none; cursor: pointer; background: transparent; border: none; border-top: 1px solid color-mix(in oklab, var(--ember) 14%, var(--veil)); align-items: center; }
.prep__row--link:hover { color: var(--ink-900); }
.prep__row--link > svg:last-child { color: var(--ember); margin-top: 0; margin-left: auto; align-self: center; }
.prep__row--link .grow, .prep__row--link div { flex: 1; min-width: 0; }

/* week */
.weekcard { padding: 16px; display: grid; gap: 14px; }
.week { display: grid; grid-template-columns: repeat(7, 1fr); gap: 5px; align-items: end; }
.week__col { display: grid; justify-items: center; gap: 4px; padding: 8px 2px; border-radius: var(--radius-md); }
.week__col.is-today { background: color-mix(in oklab, var(--ember) 10%, transparent); }
.week__bararea { height: 58px; width: 100%; display: flex; align-items: flex-end; justify-content: center; position: relative; }
.week__flag { position: absolute; top: 0; width: 6px; height: 6px; border-radius: 50%; }
.week__flag--strain { background: var(--amber); box-shadow: 0 0 0 2px color-mix(in oklab, var(--amber) 25%, transparent); }
.week__flag--prot { background: transparent; border: 1.5px solid var(--sage); }
.week__bar { width: 16px; border-radius: 5px; background: color-mix(in oklab, var(--tn) 58%, transparent); min-height: 5px; }
.week__day { font-size: 11.5px; font-weight: 400; color: var(--ink-700); }
.week__date { font-size: 10.5px; color: var(--fg-subtle); }
.week__meet { font-size: 10.5px; color: var(--fg-muted); }
.week__col.is-today .week__day { color: var(--ember); font-weight: 700; }
.week__read { font-size: 13px; line-height: 1.55; padding-top: 12px; border-top: 1px solid var(--veil); }

/* ============================================================
   Money
   ============================================================ */
.moneydecision { background: color-mix(in oklab, var(--crimson) 6%, var(--snow)); border-radius: var(--radius-lg); overflow: hidden;
  border: 1px solid color-mix(in oklab, var(--crimson) 26%, var(--veil)); }
.moneydecision__body { padding: 15px; display: grid; gap: 11px; }
.moneydecision__amt { font-size: 17px; font-weight: 700; color: var(--crimson); flex-shrink: 0; }
.moneydecision h3 { font-size: 15.5px; font-weight: 700; color: var(--fg); }

.dupgrid { display: grid; gap: 6px; }
.dupgrid__row { display: grid; grid-template-columns: 1fr auto auto; gap: 14px; align-items: center; padding: 10px 12px;
  border-radius: var(--radius-md); background: var(--paper-deep); border: 1px solid var(--veil); font-size: 14px; }
.dupgrid__row span:nth-child(2) { font-weight: 700; }
.dupgrid__row.is-flag { border-color: color-mix(in oklab, var(--crimson) 44%, transparent); background: color-mix(in oklab, var(--crimson) 9%, var(--snow)); color: var(--crimson); }
.dupgrid__row.is-flag span { color: var(--crimson); }

.billcard { padding: 16px; display: grid; gap: 12px; }
.billcard__head { display: flex; gap: 12px; align-items: center; }
.billcard__ico { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; color: var(--tn); flex-shrink: 0;
  background: color-mix(in oklab, var(--tn) 15%, transparent); border: 1px solid color-mix(in oklab, var(--tn) 26%, transparent); }
.billcard__head strong { display: block; font-size: 15px; color: var(--fg); }
.billcard__head span { font-size: 13px; line-height: 1.45; }
.billcard__list { display: grid; gap: 0; }
.billrow { display: flex; align-items: center; gap: 10px; padding: 10px 0; font-size: 14px; color: var(--ink-700); border-top: 1px solid var(--veil); }
.billrow:first-child { border-top: none; }
.billrow span:last-child { font-weight: 700; color: var(--ink-900); }

.subrow { display: flex; align-items: center; gap: 12px; padding: 13px 14px; border-radius: var(--radius-lg);
  background: var(--snow); border: 1px solid var(--veil); }
.subrow__ico { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; color: var(--tn); flex-shrink: 0;
  background: color-mix(in oklab, var(--tn) 15%, transparent); border: 1px solid color-mix(in oklab, var(--tn) 26%, transparent); }
.subrow strong { display: block; font-size: 14.5px; color: var(--fg); }
.subrow span.muted { font-size: 12.5px; }
.subrow__amt { font-size: 16px; font-weight: 700; color: var(--ink-900); }
.subrow__amt small { font-size: 11px; color: var(--fg-subtle); font-weight: 400; }

.spendcard { padding: 16px; display: grid; gap: 14px; }
.spend-split { display: flex; align-items: center; gap: 16px; }
.spend-merchants { display: grid; gap: 0; padding-top: 12px; border-top: 1px solid var(--veil); }
.spendcard__total { font-size: 30px; font-weight: 700; color: var(--fg); line-height: 1; margin-top: 2px; }
.spendcard__head span { font-size: 12px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; color: var(--fg-subtle); }
.spendbars { display: grid; gap: 10px; }
.spendbar { display: grid; grid-template-columns: 120px 1fr auto; gap: 12px; align-items: center; }
.spendbar__name { font-size: 13.5px; color: var(--ink-700); }
.spendbar__track { height: 8px; border-radius: 999px; background: var(--paper-deep); overflow: hidden; }
.spendbar__fill { display: block; height: 100%; border-radius: 999px; background: color-mix(in oklab, var(--tn) 70%, transparent); }
.spendbar__amt { font-size: 14px; font-weight: 700; color: var(--ink-900); }
.feeflag { display: flex; align-items: center; gap: 10px; padding: 11px 13px; border-radius: var(--radius-md); color: var(--tn);
  background: color-mix(in oklab, var(--tn) 10%, var(--snow)); border: 1px solid color-mix(in oklab, var(--tn) 28%, transparent); }
.feeflag b { color: var(--ink-900); font-size: 13.5px; display: block; }
.feeflag small { color: var(--fg-muted); font-size: 12px; }
@media (max-width: 460px) { .spendbar { grid-template-columns: 90px 1fr auto; } }

/* ============================================================
   Loops
   ============================================================ */
.loopcard { padding: 4px 16px; }
.looprow { display: flex; align-items: center; gap: 12px; padding: 14px 0; border-top: 1px solid var(--veil); }
.looprow:first-child { border-top: none; }
.looprow strong { display: block; font-size: 14.5px; color: var(--fg); }
.looprow__sub { font-size: 12.5px; line-height: 1.4; margin-top: 2px; display: block; }
.looprow__glyph { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; flex-shrink: 0; color: var(--tn);
  background: color-mix(in oklab, var(--tn) 14%, transparent); border: 1px solid color-mix(in oklab, var(--tn) 26%, transparent); }
.looprow__act { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

/* ============================================================
   Trips
   ============================================================ */
.trip { background: var(--snow); border: 1px solid var(--veil); border-radius: var(--radius-xl); overflow: hidden; }
.trip__head { display: flex; align-items: center; gap: 14px; padding: 16px; cursor: pointer; }
.trip__cover { width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; flex-shrink: 0;
  font-size: 18px; font-weight: 700; text-transform: uppercase; color: var(--paper);
  background: linear-gradient(150deg, color-mix(in oklab, var(--tn) 90%, white), var(--tn)); box-shadow: var(--shadow-sm); }
.trip__city { font-size: 20px; font-weight: 700; letter-spacing: -0.01em; color: var(--fg); }
.trip__dates { font-size: 13px; color: var(--fg-muted); }
.trip__sub { font-size: 12.5px; }
.trip__flag { width: 100%; display: flex; align-items: center; gap: 9px; padding: 11px 16px; cursor: pointer;
  border: none; border-top: 1px solid var(--veil); color: var(--tn); font-size: 13px; font-weight: 700; text-align: left;
  background: color-mix(in oklab, var(--tn) 9%, transparent); }
.trip__flag:hover { background: color-mix(in oklab, var(--tn) 15%, transparent); }
.trip__timeline { padding: 6px 16px 8px; border-top: 1px solid var(--veil); }
.seg { display: flex; align-items: center; gap: 12px; padding: 12px 0; position: relative; }
.seg__rail { width: 14px; flex-shrink: 0; align-self: stretch; display: flex; justify-content: center; position: relative; }
.seg__rail::before { content: ""; position: absolute; top: 0; bottom: 0; width: 2px; background: var(--veil); }
.seg:first-child .seg__rail::before { top: 50%; }
.seg:last-child .seg__rail::before { bottom: 50%; }
.seg__node { width: 10px; height: 10px; border-radius: 50%; background: var(--tn); z-index: 1; align-self: center; box-shadow: 0 0 0 3px var(--snow); }
.seg__ico { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; flex-shrink: 0; color: var(--tn);
  background: color-mix(in oklab, var(--tn) 14%, transparent); border: 1px solid color-mix(in oklab, var(--tn) 24%, transparent); }
.seg strong { display: block; font-size: 14.5px; color: var(--fg); }
.seg span.muted { font-size: 12.5px; }
.seg__when { font-size: 12.5px; font-weight: 700; color: var(--ink-700); text-align: right; flex-shrink: 0; }
.trip__foot { padding: 12px 16px; border-top: 1px solid var(--veil); background: var(--paper-deep); }
.trip__foot span { font-size: 12.5px; line-height: 1.45; }

/* ============================================================
   Connections / grants
   ============================================================ */
.grant { background: color-mix(in oklab, var(--snow) 78%, transparent); border: 1px solid var(--veil); border-radius: var(--radius-lg); padding: 16px; display: grid; gap: 14px; }
.grant.is-revoked { opacity: .62; border-left-color: var(--crimson); }
.grant__head { display: flex; gap: 12px; align-items: center; }
.grant__ico { width: 40px; height: 40px; border-radius: 11px; display: grid; place-items: center; flex-shrink: 0; color: var(--tn);
  background: color-mix(in oklab, var(--tn) 15%, transparent); border: 1px solid color-mix(in oklab, var(--tn) 26%, transparent); }
.grant__name { font-size: 17px; font-weight: 700; color: var(--fg); }
.grant__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.grant__col { display: grid; gap: 6px; align-content: start; padding: 12px; border-radius: var(--radius-md); background: var(--paper-deep); border: 1px solid var(--veil); }
.grant__coltitle { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--fg-subtle); }
.grant__col:last-child .grant__coltitle { color: var(--ember); }
.grant__perm { font-size: 12.5px; color: var(--ink-700); line-height: 1.55; padding-left: 12px; position: relative; }
.grant__perm::before { content: ""; position: absolute; left: 0; top: 7px; width: 4px; height: 4px; border-radius: 50%; background: var(--veil-strong); }
.grant__perm.is-do { color: var(--ink-900); font-weight: 700; }
.grant__perm.is-do::before { background: var(--ember); }
.grant__perm.is-none { color: var(--fg-subtle); font-style: italic; }
.grant__perm.is-none::before { display: none; }
.grant__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding-top: 12px; border-top: 1px solid var(--veil); }
.grant__last { display: flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--ink-500); }
.grant__last svg { color: var(--fg-subtle); flex-shrink: 0; }
.grant__exp { font-size: 12px; margin-left: auto; }
.grant__foot .btn { flex-shrink: 0; }
@media (max-width: 460px) { .grant__cols { grid-template-columns: 1fr; } .grant__exp { margin-left: 0; width: 100%; } }

/* ============================================================
   Ethos
   ============================================================ */
.engine, .erec, .setrow, .billrow { }
.engine { display: flex; align-items: center; gap: 12px; padding: 14px 16px; }
.engine.has-sep, .erec.has-sep, .setrow.has-sep { border-top: 1px solid var(--veil); }
.engine__ico { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; flex-shrink: 0; color: var(--tn);
  background: color-mix(in oklab, var(--tn) 14%, transparent); border: 1px solid color-mix(in oklab, var(--tn) 24%, transparent); }
.engine strong { font-size: 14.5px; color: var(--fg); }
.engine span.muted { font-size: 12.5px; line-height: 1.4; display: block; margin-top: 1px; }
.engine__live { display: inline-flex; align-items: center; gap: 5px; font-size: 10.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--sage); }
.engine__pulse { width: 6px; height: 6px; border-radius: 50%; background: var(--sage); box-shadow: 0 0 0 0 color-mix(in oklab, var(--sage) 60%, transparent); animation: epulse 2.2s var(--ease-out) infinite; }
@keyframes epulse { 0% { box-shadow: 0 0 0 0 color-mix(in oklab, var(--sage) 55%, transparent); } 70% { box-shadow: 0 0 0 6px transparent; } 100% { box-shadow: 0 0 0 0 transparent; } }
.engine__at { font-size: 11.5px; color: var(--fg-subtle); flex-shrink: 0; }
.ethos-kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.daytiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.dtile { display: grid; place-items: center; gap: 4px; min-height: 72px; padding: 10px 8px; border-radius: var(--radius-md); background: var(--paper-deep); border: 1px solid var(--veil); }
.dtile .stat2 { background: transparent; border: none; padding: 0; justify-items: center; text-align: center; }
.dtile--c { align-content: center; }
.dtile .cap { width: 100%; }
.dtile__sub { font-size: 10px; color: var(--fg-muted); }
.shape__key { display: flex; flex-wrap: wrap; gap: 5px 12px; padding-top: 2px; }
.shape__key span { display: inline-flex; align-items: center; gap: 5px; font-size: 10px; color: var(--fg-muted); }
.shape__kdot { width: 8px; height: 8px; border-radius: 2px; background: var(--tn); }
.shape__kdot--open { background: transparent; border: 1px dashed color-mix(in oklab, var(--sage) 60%, transparent); }
.shape__kdot--x { background: var(--snow); border: 1.5px solid var(--crimson); border-radius: 3px; }
.shape__kdot--now { width: 3px; height: 10px; border-radius: 2px; background: var(--fg); }
.daytiles--ctx { grid-template-columns: 1fr; gap: 8px; }
.daytiles--ctx:empty { display: none; }
@media (max-width: 460px) { .daytiles { grid-template-columns: repeat(2, 1fr); } }

.erec { display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px; }
.erec__rail { width: 12px; flex-shrink: 0; display: flex; justify-content: center; align-self: stretch; position: relative; }
.erec__node { width: 9px; height: 9px; border-radius: 50%; background: var(--tn); margin-top: 4px; box-shadow: 0 0 0 3px color-mix(in oklab, var(--tn) 20%, transparent); }
.erec strong { font-size: 14px; color: var(--fg); display: block; }
.erec span.muted { font-size: 12.5px; line-height: 1.4; display: block; margin-top: 1px; }
.erec__at { font-size: 11.5px; color: var(--fg-subtle); flex-shrink: 0; }

.privacy, .stepup { display: flex; gap: 12px; align-items: flex-start; padding: 16px; border-radius: var(--radius-lg);
  background: color-mix(in oklab, var(--tn) 9%, var(--snow)); border: 1px solid color-mix(in oklab, var(--tn) 28%, transparent); }
.privacy > svg, .stepup > svg { color: var(--tn); flex-shrink: 0; margin-top: 1px; }
.privacy strong, .stepup strong { display: block; font-size: 15px; color: var(--fg); margin-bottom: 3px; }
.privacy p, .stepup p { font-size: 13px; line-height: 1.5; }

/* ============================================================
   Settings
   ============================================================ */
.setrow { display: flex; align-items: center; gap: 12px; padding: 14px 16px; }
.setrow__ico { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; flex-shrink: 0; color: var(--tn);
  background: color-mix(in oklab, var(--tn) 14%, transparent); border: 1px solid color-mix(in oklab, var(--tn) 24%, transparent); }
.setrow strong { font-size: 14.5px; color: var(--fg); display: block; }
.setrow span.muted { font-size: 12.5px; line-height: 1.4; display: block; margin-top: 1px; }
.suppressed { width: 100%; appearance: none; cursor: pointer; display: flex; align-items: center; gap: 12px; padding: 14px 16px;
  border-radius: var(--radius-lg); background: var(--snow); border: 1px dashed var(--veil-strong); text-align: left; }
.suppressed:hover { background: var(--mist); }
.suppressed__ico { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; flex-shrink: 0; color: var(--tn);
  background: color-mix(in oklab, var(--tn) 12%, transparent); border: 1px solid color-mix(in oklab, var(--tn) 24%, transparent); }
.suppressed strong { display: block; font-size: 14.5px; color: var(--fg); }
.suppressed span.muted { font-size: 12.5px; }

/* ============================================================
   Ask Ellis
   ============================================================ */
.asksurface { min-height: 80%; display: flex; flex-direction: column; gap: 0; }
.ask-hd { display: flex; align-items: center; gap: 10px; padding: 2px 0 12px; }
.ask-hd__orb { width: 11px; height: 11px; border-radius: 50%; background: var(--tn); position: relative; flex-shrink: 0; }
.ask-hd__orb::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 1.5px solid color-mix(in oklab, var(--tn) 55%, transparent); animation: ring 2.4s var(--ease-out) infinite; }
.ask-hd h2 { font-size: 19px; font-weight: 700; letter-spacing: -0.018em; color: var(--fg); }
.ask-hd__sub { font-size: 12px; color: var(--fg-muted); }
.ask-stream { flex: 1; display: grid; gap: 12px; padding: 6px 0 10px; align-content: start; }
.ask-div { display: flex; align-items: center; gap: 10px; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--fg-subtle); }
.ask-div i { flex: 1; height: 1px; background: var(--veil); }
.ask-row { display: grid; gap: 5px; }
.ask-row--in { justify-items: start; }
.ask-row--out { justify-items: end; }
.ask-b { max-width: 88%; padding: 11px 13px; border-radius: var(--radius-lg); display: grid; gap: 8px; }
.ask-b p { font-size: 14px; line-height: 1.5; color: var(--ink-900); text-wrap: pretty; }
.ask-b--in { background: var(--snow); border: 1px solid color-mix(in oklab, var(--plum) 24%, var(--veil)); border-bottom-left-radius: 5px; }
.ask-b--out { background: color-mix(in oklab, var(--ember) 13%, var(--snow)); border: 1px solid color-mix(in oklab, var(--ember) 28%, transparent); border-bottom-right-radius: 5px; }
.ask-meta { display: inline-flex; align-items: center; gap: 7px; padding: 0 2px; }
.ask-meta .tabular { font-size: 11px; color: var(--fg-subtle); }
.ask-react { appearance: none; cursor: pointer; display: inline-flex; align-items: center; gap: 3px; height: 20px; padding: 0 6px; border-radius: 999px;
  font-size: 11px; color: var(--ink-400); background: transparent; border: 1px solid transparent; }
.ask-react:hover { color: var(--ink-700); background: var(--mist); }
.ask-react.is-on { color: var(--ember); background: color-mix(in oklab, var(--ember) 12%, transparent); border-color: color-mix(in oklab, var(--ember) 28%, transparent); }
.ask-react .tabular { font-weight: 700; }
.ask-src { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 5px; color: var(--fg-subtle); }
.ask-src__c { display: inline-flex; align-items: center; gap: 3px; font-size: 10.5px; color: var(--tn); background: color-mix(in oklab, var(--tn) 12%, transparent); border: 1px solid color-mix(in oklab, var(--tn) 24%, transparent); border-radius: 999px; padding: 1px 7px; }
.ask-tool { display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--sage); background: var(--paper-deep); border: 1px solid var(--veil); border-radius: 999px; padding: 4px 10px; width: max-content; }
.ask-tool svg { color: var(--sage); }
.ask-act { margin-top: 2px; width: max-content; appearance: none; cursor: pointer; display: inline-flex; align-items: center; gap: 7px;
  padding: 7px 11px; border-radius: 999px; font-size: 12.5px; font-weight: 600; color: var(--tn);
  background: color-mix(in oklab, var(--tn) 14%, transparent); border: 1px solid color-mix(in oklab, var(--tn) 30%, transparent); }
.ask-held { display: grid; gap: 6px; padding: 11px; border-radius: var(--radius-md); background: var(--paper-deep); border: 1px solid color-mix(in oklab, var(--tn) 30%, var(--veil)); }
.ask-held__hd { display: flex; align-items: center; gap: 7px; }
.ask-held__ico { width: 24px; height: 24px; border-radius: 7px; display: grid; place-items: center; flex-shrink: 0; color: var(--tn); background: color-mix(in oklab, var(--tn) 14%, transparent); border: 1px solid color-mix(in oklab, var(--tn) 26%, transparent); }
.ask-held__cap { display: inline-flex; align-items: center; gap: 4px; font-size: 10.5px; color: var(--tn); }
.ask-held__h { margin-left: auto; font-size: 9.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--fg-subtle); }
.ask-held__t { font-size: 13px; font-weight: 700; color: var(--fg); }
.ask-held__s { font-size: 12.5px; line-height: 1.45; color: var(--ink-500); }
.ask-held__act { display: flex; align-items: center; gap: 6px; margin-top: 2px; }
.ask-receipt { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--tn); }
.ask-receipt b { color: var(--ink-700); font-weight: 700; }
.typing { display: inline-flex; gap: 4px; align-items: center; }
.typing i { width: 6px; height: 6px; border-radius: 50%; background: var(--plum); opacity: .4; animation: blink 1.2s infinite; }
.typing i:nth-child(2) { animation-delay: .2s; } .typing i:nth-child(3) { animation-delay: .4s; }
@keyframes blink { 0%,100% { opacity: .3; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-2px); } }
.ask-qr { display: flex; flex-wrap: wrap; gap: 7px; padding: 4px 0 10px; }
.ask-qr__b { appearance: none; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--ink-700); min-height: 34px;
  padding: 6px 12px; border-radius: 999px; background: var(--snow); border: 1px solid var(--veil-strong); }
.ask-qr__b:hover { background: var(--mist); color: var(--ink-900); border-color: var(--ink-400); }
.ask-qr__b svg { color: var(--ink-400); }
.ask-comp { display: flex; align-items: center; gap: 7px; padding: 4px 0 2px; position: sticky; bottom: 6px; }
.ask-comp__i { appearance: none; cursor: pointer; width: 36px; height: 36px; flex-shrink: 0; border-radius: 50%; display: grid; place-items: center; color: var(--ink-500); background: transparent; border: none; }
.ask-comp__i:hover { background: var(--mist); color: var(--ink-900); }
.ask-comp__field { flex: 1; min-width: 0; display: flex; align-items: center; gap: 6px; height: 42px; padding: 0 8px 0 14px; border-radius: var(--radius-pill); background: var(--snow); border: 1px solid var(--veil-strong); }
.ask-comp__field input { flex: 1; min-width: 0; border: none; outline: none; background: transparent; font-family: var(--font-sans); font-size: 14.5px; color: var(--ink-900); }
.ask-comp__field input::placeholder { color: var(--ink-400); }
.ask-comp__spark { appearance: none; cursor: pointer; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; color: var(--plum); background: transparent; border: none; }
.ask-comp__send { appearance: none; cursor: pointer; width: 38px; height: 38px; flex-shrink: 0; border-radius: 50%; display: grid; place-items: center; color: var(--paper); background: var(--tn); border: none; box-shadow: 0 2px 10px color-mix(in oklab, var(--tn) 45%, transparent); }

/* ============================================================
   Shared sheet bits
   ============================================================ */
.thread { display: grid; gap: 10px; padding: 12px; border-radius: var(--radius-md); background: var(--paper-deep); border: 1px solid var(--veil); }
.thread__msg { display: flex; gap: 10px; }
.thread__msg p { font-size: 13.5px; line-height: 1.5; color: var(--ink-700); }
.thread__msg span { font-size: 11px; color: var(--fg-subtle); }
.field { display: grid; gap: 7px; }
.pickrow { appearance: none; cursor: pointer; display: flex; align-items: center; gap: 12px; padding: 14px; border-radius: var(--radius-md);
  background: var(--snow); border: 1px solid var(--veil-strong); color: var(--ink-900); font-size: 15px; font-weight: 700; text-align: left; }
.pickrow.is-sel { border-color: var(--tn, var(--indigo)); background: color-mix(in oklab, var(--indigo) 10%, var(--snow)); }
.pickrow__t { flex: 1; }
.pickrow .radio { width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--veil-strong); flex-shrink: 0; }
.pickrow .radio[data-on="true"] { border: 6px solid var(--indigo); }
.pickrow > svg:last-child { color: var(--indigo); }
.optrow { appearance: none; cursor: pointer; display: flex; align-items: center; gap: 12px; padding: 13px; border-radius: var(--radius-md);
  background: var(--snow); border: 1px solid var(--veil); text-align: left; color: var(--ink-900); }
.optrow:hover { border-color: var(--tn); background: color-mix(in oklab, var(--tn) 7%, var(--snow)); }
.optrow__ico { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; flex-shrink: 0; color: var(--tn);
  background: color-mix(in oklab, var(--tn) 14%, transparent); border: 1px solid color-mix(in oklab, var(--tn) 24%, transparent); }
.optrow b { display: block; font-size: 14.5px; }
.optrow small { display: block; font-size: 12.5px; color: var(--fg-muted); margin-top: 1px; }
.bigamt { display: flex; align-items: baseline; gap: 12px; justify-content: center; padding: 10px 0; }
.bigamt span { font-size: 34px; font-weight: 700; color: var(--ink-900); }
.bigamt .is-up { color: var(--amber); }
.bigamt small { font-size: 14px; color: var(--fg-muted); align-self: flex-end; }
.bigamt svg { color: var(--fg-subtle); align-self: center; }

/* ask launcher (rail foot) */
.asklauncher { width: 100%; appearance: none; cursor: pointer; display: flex; align-items: center; gap: 10px; padding: 11px 12px;
  border-radius: var(--radius-md); background: color-mix(in oklab, var(--plum) 12%, var(--snow)); border: 1px solid color-mix(in oklab, var(--plum) 28%, var(--veil)); text-align: left; }
.asklauncher:hover, .asklauncher.is-active { background: color-mix(in oklab, var(--plum) 20%, var(--snow)); }
.asklauncher__orb { width: 10px; height: 10px; border-radius: 50%; background: var(--tn); flex-shrink: 0; position: relative; }
.asklauncher__orb::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 1.5px solid color-mix(in oklab, var(--tn) 55%, transparent); animation: ring 2.4s var(--ease-out) infinite; }
.asklauncher b { font-size: 14px; color: var(--fg); display: block; }
.asklauncher small { font-size: 11.5px; color: var(--fg-muted); }
.asklauncher > svg { color: var(--plum); flex-shrink: 0; }

/* more grid (mobile sheet) */
.moregrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.moretile { appearance: none; cursor: pointer; display: grid; gap: 8px; justify-items: start; padding: 16px; border-radius: var(--radius-lg);
  background: var(--snow); border: 1px solid var(--veil); color: var(--ink-900); position: relative; }
.moretile:hover { border-color: var(--veil-strong); }
.moretile[data-active="true"] { border-color: var(--ember); background: color-mix(in oklab, var(--ember) 8%, var(--snow)); }
.moretile__ico { width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; color: var(--ember);
  background: color-mix(in oklab, var(--ember) 13%, transparent); border: 1px solid color-mix(in oklab, var(--ember) 24%, transparent); }
.moretile span { font-size: 14px; font-weight: 700; }
.moretile__count { position: absolute; top: 14px; right: 14px; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px;
  background: var(--ember); color: var(--paper); font-size: 11px; font-weight: 700; display: grid; place-items: center; }

/* ============================================================
   Hero context + In your world (ambient)
   ============================================================ */
.hero__context { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; color: var(--fg-muted); }
.hero__context svg { color: var(--amber); flex-shrink: 0; }

.world { background: var(--snow); border: 1px solid var(--veil); border-radius: var(--radius-lg); padding: 14px; display: grid; gap: 12px; }
.world__sky { display: flex; align-items: center; gap: 12px; }
.world__glyph { color: var(--amber); flex-shrink: 0; }
.world__temp { font-size: 26px; font-weight: 700; color: var(--fg); line-height: 1; }
.world__place { min-width: 0; }
.world__place strong { display: block; font-size: 14px; color: var(--fg); }
.world__place span { font-size: 12.5px; color: var(--fg-muted); line-height: 1.4; }
.world__micro { display: flex; flex-wrap: wrap; gap: 8px 14px; padding-top: 10px; border-top: 1px solid var(--veil); }
.world__micro span { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; color: var(--fg-muted); }
.world__micro svg { color: var(--fg-subtle); }
.world__follows { display: grid; gap: 8px; }
.world__follow { appearance: none; cursor: pointer; text-align: left; display: flex; gap: 10px; align-items: flex-start; padding: 11px;
  border-radius: var(--radius-md); background: color-mix(in oklab, var(--tn) 8%, var(--snow)); border: 1px solid color-mix(in oklab, var(--tn) 22%, var(--veil)); }
.world__follow:hover { background: color-mix(in oklab, var(--tn) 14%, var(--snow)); }
.world__fico { width: 28px; height: 28px; border-radius: 8px; display: grid; place-items: center; flex-shrink: 0; color: var(--tn);
  background: color-mix(in oklab, var(--tn) 16%, transparent); border: 1px solid color-mix(in oklab, var(--tn) 28%, transparent); }
.world__ftag { display: block; font-size: 11px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; color: var(--tn); }
.world__fline { display: block; font-size: 13px; color: var(--ink-700); line-height: 1.45; margin-top: 3px; }

/* ============================================================
   Type refinement — lighter & editorial. Glacial ships only
   400/700, so reserve bold for headlines and numerals; let
   color and size carry the rest of the hierarchy.
   ============================================================ */
.chip, .authority, .acard__kicker, .acard__due, .acard__note, .acard__age,
.held__preview, .held__ctx, .held__age, .tab span, .week__day, .week__meet,
.suggest__chip, .moretile span, .readytray strong, .readytray__l span,
.looprow strong, .subrow strong, .setrow strong, .engine strong, .erec strong,
.seg strong, .billcard__head strong, .billrow span:last-child, .grant__perm.is-do,
.prep__when, .trip__dates, .bubble__who, .navitem, .receipt b, .feeflag b,
.world__place strong, .suppressed strong
{ font-weight: 400; }

.btn--ghost, .btn--secondary, .btn--destructive { font-weight: 400; }

/* row titles: presence from ink color, not weight */
.looprow strong, .subrow strong, .setrow strong, .engine strong, .erec strong,
.seg strong, .readytray strong, .world__place strong { color: var(--fg); }

/* headlines stay bold but tighter, never oversized/round */
.acard__title { font-size: 16px; letter-spacing: -0.015em; }
.held__title, .grant__name, .trip__city, .shead h2, .sheet__title, .hero__greet,
.prep__title, .moneydecision h3 { letter-spacing: -0.018em; }
.hero__greet { font-weight: 700; }

/* eyebrows refined, not chunky */
.eyebrow { font-size: 11px; }
.acard__kicker { letter-spacing: .05em; }
.presence { white-space: nowrap; }
