:root {
  --fs-body-s: 14px;
  --fs-label: 12px;
  --fs-micro: 12px;
  --sp-4: 16px;
  --sp-5: 20px;
  --sp-6: 24px;
  --feedback-border: 1px solid var(--line);
  --feedback-card-frame: 1px solid var(--line);
}

.display-l,
.display-m {
  font-family: var(--font-ui);
  font-weight: 700;
  letter-spacing: -.025em;
}

.profile-hero__copy .display-l {
  font-family: var(--font-fig);
  font-weight: 500;
}

.eyebrow,
.field__label,
.ecard__field .k {
  text-transform: none;
  letter-spacing: 0;
}

.page-aurora {
  background: linear-gradient(145deg, var(--paper) 0%, var(--info-bg) 100%);
}

.aura {
  background: var(--paper);
}

.login__card,
.notchcard > .card--hero,
.screen > .card--hero,
.profile-hero,
.card--wash,
.covered--art .covered__tile,
.tabbar,
.receipt-thumb {
  background-image: none;
}

.map::after {
  background: none;
}

.rule-grad {
  height: 1px;
  margin: var(--sp-3) 0;
  background: var(--line);
  border: 0;
}

.login__card,
.notchcard > .card--hero,
.screen > .card--hero,
.profile-hero {
  background-color: transparent;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.profile-hero {
  color: var(--ink);
}

.profile-hero__copy .body-s,
.profile-hero__copy .eyebrow {
  color: var(--ink-soft);
}

.card,
.profile-stats,
.tabbar,
.sheet,
.frame {
  box-shadow: none;
}

.card,
.login__card,
.profile-stats,
.card--wash,
.card--hero,
.profile-hero {
  background-color: transparent;
}

.card--hero {
  color: var(--ink);
}

.card--hero .meta,
.card--hero .body,
.card--hero .body-s,
.card--hero .eyebrow {
  color: var(--text-2);
}

.card,
.profile-stats,
.tabbar,
.sheet,
.field,
.choice,
.btn,
.chip--filter,
.row:not(.row--static),
.seg,
.login__card {
  border: var(--feedback-border);
  border-image: none;
}

.card--hero,
.card--notched,
.btn,
.row:not(.row--static),
.choice,
.chip--filter,
.field,
.seg,
.login__card {
  box-shadow: none;
}

.card--hero {
  border: var(--feedback-card-frame);
  border-color: var(--line);
  border-image: none;
  outline: none;
}

.card--notched {
  border: 0;
  outline: 1px solid var(--line);
  outline-offset: -1px;
  filter: drop-shadow(0 0 1px var(--line));
}

.planset {
  border: var(--feedback-border);
  border-radius: var(--r-md);
  overflow: hidden;
}

.planset__head {
  padding: var(--sp-2) var(--sp-3);
}

.planset > .row:not(.row--static) {
  width: 100%;
  margin-inline: 0;
  padding: var(--sp-2) var(--sp-3);
  border: 0;
  border-bottom: var(--feedback-border);
  border-radius: 0;
}

.planset > .row:last-child {
  border-bottom: 0;
}

.planset > .row:not(.row--static) {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: start;
  gap: var(--sp-2);
  min-height: 88px;
}

.plan-summary__details {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.plan-summary__carrier,
.plan-summary__cover {
  display: block;
  line-height: 1.35;
}

.planset .row__yearly {
  padding-top: 2px;
}

.covered--art .covered__tile {
  min-height: 88px;
  padding: var(--sp-3) 42px var(--sp-3) var(--sp-3);
  font-size: 12px;
  line-height: 1.3;
  gap: 4px;
}

.covered--art .covered__tile svg {
  width: 24px;
  height: 24px;
}

.events {
  gap: var(--sp-2);
}

.event {
  position: relative;
  min-height: 88px;
  padding: var(--sp-3) 42px var(--sp-3) var(--sp-3);
  gap: 4px;
  border: var(--feedback-border);
  font-size: 12px;
  line-height: 1.3;
  transition: none;
}

.event svg {
  position: absolute;
  right: var(--sp-3);
  bottom: var(--sp-2);
  width: 24px;
  height: 24px;
  opacity: .45;
}

.claims-summary {
  gap: var(--sp-4);
}

.claims-summary > .row {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 52px;
  align-items: start;
  gap: var(--sp-2);
  width: 100%;
  min-height: 88px;
  padding: var(--sp-2) var(--sp-3);
  margin-inline: 0;
}

.claims-summary__details {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.claims-summary > .row > :last-child {
  display: grid;
  justify-items: end;
  align-content: start;
  gap: 6px;
  min-width: 72px;
}

.claims-summary .row__amount {
  font-size: var(--fs-figure-m);
  line-height: 1;
}

.claims-summary .meta {
  line-height: 1.35;
}

.claim-summary__provider,
.claim-summary__date,
.claim-summary__fund {
  display: block;
  line-height: 1.35;
}

.btn,
.row:not(.row--static),
.choice,
.chip--filter,
.field,
.seg,
.tabbar {
  transition: none;
}

.card--tappable:active,
.row:not(.row--static):active,
.btn:active,
.choice:active {
  box-shadow: none;
}

.card,
.notchcard,
.profile-stats,
.login__card,
.tabbar,
.sheet,
.frame,
.bubble--bot,
.covered__tile,
.event,
.dropzone,
.ecard {
  box-shadow: none;
}

.notchcard {
  filter: none;
}

.notchcard {
  filter: none;
}

.rule-grad,
.divider,
.sum__rule {
  background: var(--ink);
}

.login__proof > i {
  background: var(--ink);
}

.icongrid__tile {
  border: 0;
}

.icongrid {
  border: 0;
  outline: none;
}

.row,
.profile-row,
.faq__item,
.planset > .row:not(.row--static) {
  border-bottom-color: var(--ink);
  border-image: none;
}

.profile-stats > div + div {
  border-left: 1px solid var(--ink);
}

.sources {
  border-image: none;
  border-top-color: var(--ink);
}

.card,
.login__card,
.profile-stats,
.card--wash,
.card--hero,
.profile-hero,
.icongrid {
  /* Use the same opaque surface for every card variant. `background` clears
     the hero gradient as well as its fill, so it cannot differ by page. */
  background: var(--surface-sunk);
}

/* Cards are surfaces, not outlined containers. Hierarchy comes from spacing
   and the navy content rules below instead of a perimeter stroke. */
.card,
.login__card,
.profile-stats,
.icongrid,
.planset {
  border: 0;
  outline: 0;
}

.card--notched {
  outline: 0;
  filter: none;
}

.appbar,
.appbar[data-scrolled="true"] {
  background: var(--ink);
  color: var(--text-on-ink);
  border-bottom-color: var(--ink);
  box-shadow: none;
}

.appbar .iconbtn {
  color: var(--sky-lift);
}

/* A single divider treatment throughout the app: Deep Navy for both the
   horizontal list rules and vertical profile-stat rules. */
.row,
.profile-row,
.faq__item,
.planset > .row:not(.row--static) {
  border-bottom-color: var(--ink);
}

.profile-stats > div + div {
  border-left-color: var(--ink);
}

.rule-grad,
.divider,
.sum__rule {
  background-color: var(--ink);
}

/* Some screen rules draw separator gradients with `border-image`. Reset the
   full border declaration here so profile rows and comparable list rows can
   only render the requested solid navy divider. */
.profile-details .profile-row:not(:nth-last-child(2)),
.row:not(:last-child),
.faq__item:not(:last-child),
.planset > .row:not(.row--static):not(:last-child) {
  border-bottom: 1px solid var(--ink) !important;
  border-image: none !important;
}

.profile-stats > div + div {
  border-left: 1px solid var(--ink) !important;
}

/* Keep card bodies open: list rows no longer add a stroke below one another. */
.card .row,
.card .profile-row,
.card .faq__item,
.card .planset > .row:not(.row--static) {
  border-bottom: 0 !important;
  border-image: none !important;
}

/* Sheet action rows use the same clean, stroke-free treatment as card rows. */
.sheet .row {
  border-bottom: 0 !important;
  border-image: none !important;
}

/* Timeline connectors and positive values use the Covee blue text token. */
.timeline__item:not(:last-child)::before {
  background: var(--ink);
}

.row__amount[style*="--ok"] {
  color: var(--ink) !important;
}

/* The deadline badge shares the chip's visual baseline rather than floating
   on the card edge. This applies to every notched hero. */
.notchcard__badge {
  top: calc(var(--sp-5) - 6px);
}

/* Hero surfaces always use the screen's content width, so their left and
   right edges stay aligned with the page margin on every route. */
.notchcard,
.screen > .card--hero {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  margin-inline: 0;
}

/* A hero status is a text label, not a coloured control. */
.card--hero .chip--on-ink,
.notchcard > .card--hero .chip--on-ink,
.screen > .card--hero .chip--on-ink {
  padding: 0;
  background: transparent;
  border: 0;
  color: var(--ink);
  font: 700 var(--fs-label)/var(--lh-label) var(--font-ui);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.card--hero .chip--on-ink .chip__dot {
  display: none;
}
