/* =========================================================
   Soteria · Iris Moment — app.soteriacollective.co
   Full brand system aligned to member portal
   ========================================================= */

:root{
  /* Palette */
  --beige:        #ece5d7;   /* Soteria pan */
  --beige-warm:   #e3dccb;
  --beige-soft:   #f4f1e8;   /* Soteria cream */
  --cream:        #fbfaf3;   /* Soteria paper (lightest) */
  --gold:         #c2a15a;   /* Soteria gold */
  --gold-deep:    #a9884a;
  --gold-soft:    #cbb488;
  --terra:        #b05a3c;   /* Soteria terracotta */
  --terra-soft:   #c57a5c;
  --sage:         #5f7d59;   /* Soteria sage */
  --sage-soft:    #8aa48d;
  --charcoal:     #26271d;   /* Soteria ink2 */
  --ink:          #1b1c17;   /* Soteria ink */
  --muted:        #7c7c72;
  --hairline:     rgba(27,28,23,0.10);
  --hairline-strong: rgba(27,28,23,0.18);

  /* Typography */
  --f-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --f-sans:  'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  /* Layout */
  --tab-h: 64px;
  --sheet-radius: 20px;
  --card-radius: 18px;
  --pill-radius: 999px;

  /* Motion */
  --ease-out: cubic-bezier(.22,.61,.36,1);
  --ease-in:  cubic-bezier(.55,.055,.675,.19);
}

*{ box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
html,body{ margin:0; padding:0; }
html{ background:#EAE3D3; }
body{
  font-family:var(--f-sans);
  color:var(--ink);
  background:var(--beige);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow:hidden;
  height:100vh;
}

button{
  font-family:inherit; font-size:inherit; color:inherit;
  background:none; border:0; padding:0; cursor:pointer;
}

/* ---------- Splash ---------- */
.splash{
  position:fixed; inset:0; z-index:60;
  background:var(--beige);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:36px;
  transition: opacity .55s var(--ease-out);
}
.splash--hidden{ opacity:0; pointer-events:none; }
.splash__brand{ display:flex; flex-direction:column; align-items:center; gap:8px; }
.splash__wordmark{
  font-family:var(--f-serif);
  font-weight:500;
  font-size:32px;
  letter-spacing:.28em;
  margin:0;
  color:var(--charcoal);
}
.splash__sub{
  font-family:var(--f-sans);
  font-size:10.5px;
  letter-spacing:.4em;
  margin:0;
  color:var(--muted);
}
.splash__tag{
  font-family:var(--f-sans);
  font-size:10px;
  letter-spacing:.42em;
  color:var(--gold);
  margin:0;
}
.splash__mark{ display:block; }

/* ---------- iPhone Frame (desktop) ---------- */
.stage{
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  padding:32px 16px;
  background:linear-gradient(180deg, #EAE3D3 0%, #DCD3BF 100%);
}
.device{
  width:100%; max-width:390px; height:100vh; min-height:640px;
  background:var(--beige); position:relative;
  overflow:hidden;
  display:flex; flex-direction:column;
}
@media (min-width:640px){
  .stage{ padding:40px 24px; }
  .device{
    height:844px; min-height:844px;
    border-radius:52px;
    box-shadow:
      0 0 0 12px #1a1815,
      0 0 0 14px #322d27,
      0 40px 100px -20px rgba(0,0,0,.5),
      0 20px 40px -12px rgba(0,0,0,.3);
  }
  .device::before{
    /* dynamic island */
    content:''; position:absolute; top:11px; left:50%;
    transform:translateX(-50%);
    width:120px; height:35px; background:#000;
    border-radius:20px; z-index:20;
  }
  .status-bar{ padding-top:14px; }
}
.status-bar{
  height:44px; display:flex; align-items:center; justify-content:space-between;
  padding:0 22px; font-family:var(--f-sans);
  font-size:15px; font-weight:600; color:var(--charcoal);
  flex-shrink:0;
}
.status-bar__time{ letter-spacing:-.01em; }
.status-bar__icons{ display:flex; align-items:center; gap:5px; opacity:.85; }

/* ---------- App shell ---------- */
.app{ flex:1; display:flex; flex-direction:column; min-height:0; position:relative; }

.header{
  padding:10px 20px 12px;
  display:flex; align-items:center; justify-content:space-between;
  border-bottom:1px solid var(--hairline);
  background:var(--beige);
  flex-shrink:0;
}
.brand{ display:flex; align-items:center; gap:10px; }
.brand__mark{
  width:28px; height:28px; border-radius:50%;
  border:1px solid rgba(139,125,94,.5);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--f-serif); font-size:14px; color:var(--charcoal);
  font-weight:500;
}
.brand__name{
  font-family:var(--f-serif); font-size:17px; color:var(--charcoal);
  line-height:1;
}
.brand__sub{
  font-family:var(--f-sans); font-size:9px; letter-spacing:.28em;
  color:var(--muted); text-transform:uppercase; margin-top:3px;
  line-height:1;
}
.voice-toggle{
  display:flex; align-items:center; gap:6px;
  padding:6px 12px; border-radius:var(--pill-radius);
  border:1px solid var(--hairline-strong);
  background:var(--beige-soft);
  font-family:var(--f-sans); font-size:10px; font-weight:600;
  letter-spacing:.16em; color:var(--charcoal);
  transition:all .18s var(--ease-out);
}
.voice-toggle[aria-pressed="true"]{
  background:var(--charcoal); color:var(--beige);
  border-color:var(--charcoal);
}
.voice-toggle:hover{ transform:translateY(-1px); }
.voice-toggle__bars{
  display:inline-flex; align-items:end; gap:2px; height:12px;
}
.voice-toggle__bars span{
  width:2px; background:currentColor; border-radius:1px;
  animation:vb 1.2s ease-in-out infinite;
}
.voice-toggle__bars span:nth-child(1){ height:5px; animation-delay:.0s; }
.voice-toggle__bars span:nth-child(2){ height:9px; animation-delay:.15s; }
.voice-toggle__bars span:nth-child(3){ height:11px; animation-delay:.3s; }
.voice-toggle__bars span:nth-child(4){ height:7px; animation-delay:.45s; }
.voice-toggle[aria-pressed="false"] .voice-toggle__bars span{ animation:none; height:6px; }
@keyframes vb{ 0%,100%{transform:scaleY(.4);} 50%{transform:scaleY(1);} }

/* ---------- Scrollable body ---------- */
.body{
  flex:1; overflow:hidden; position:relative; min-height:0;
}
.screen{
  position:absolute; inset:0;
  overflow-y:auto; -webkit-overflow-scrolling:touch;
  padding: 16px 20px calc(var(--tab-h) + 84px);
  opacity:0; pointer-events:none;
  transition:opacity .28s var(--ease-out);
}
.screen--active{ opacity:1; pointer-events:auto; }
.screen::-webkit-scrollbar{ display:none; }

.eyebrow{
  font-family:var(--f-sans); font-size:10px; letter-spacing:.32em;
  text-transform:uppercase; color:var(--muted);
  margin:6px 0 12px;
}
.h1{
  font-family:var(--f-serif); font-weight:400;
  font-size:36px; line-height:1.05; letter-spacing:-.01em;
  color:var(--charcoal); margin:0 0 14px;
}
.h1 em{ font-style:italic; color:var(--gold); font-weight:400; }
.h2{
  font-family:var(--f-serif); font-weight:500;
  font-size:22px; line-height:1.15; color:var(--charcoal);
  margin:0 0 8px;
}
.lede{
  font-family:var(--f-sans); font-size:15px; line-height:1.55;
  color:var(--ink); margin:0 0 20px; max-width:44ch;
}

/* ---------- Moment (scene 1 hero) ---------- */
.moment-hero{ padding:8px 0 20px; }
.moment-meta{
  font-family:var(--f-sans); font-size:10px; letter-spacing:.28em;
  color:var(--muted); text-transform:uppercase; margin-bottom:14px;
}
.readiness-pill{
  display:inline-flex; align-items:center; gap:14px;
  padding:14px 22px; border-radius:var(--pill-radius);
  border:1px solid var(--hairline-strong);
  background:var(--beige-soft);
  margin:16px 0 20px;
}
.readiness-pill__label{
  font-family:var(--f-sans); font-size:10px; letter-spacing:.24em;
  color:var(--muted); text-transform:uppercase;
}
.readiness-pill__num{
  font-family:var(--f-serif); font-size:32px; color:var(--charcoal);
  line-height:1;
}
.readiness-pill__of{
  font-family:var(--f-sans); font-size:12px; color:var(--muted);
}

a.cta{ text-decoration:none; }
.cta{
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 24px;
  border-radius:var(--pill-radius);
  font-family:var(--f-sans); font-weight:600;
  font-size:14px; letter-spacing:.01em;
  transition:all .18s var(--ease-out);
  border:1px solid transparent;
}
.cta--primary{
  background:var(--gold); color:var(--beige);
}
.cta--primary:hover{ background:var(--gold-deep); transform:translateY(-1px); }
.cta--ghost{
  background:transparent; color:var(--charcoal);
  border-color:var(--gold);
}
.cta--ghost:hover{ background:var(--beige-soft); }
.cta__arrow{ display:inline-block; transition:transform .18s var(--ease-out); }
.cta:hover .cta__arrow{ transform:translateX(2px); }
.cta--primary .cta__arrow{ color:var(--beige); }

.moment-signature{
  border-top:1px solid var(--hairline);
  padding-top:16px; margin-top:28px;
  display:grid; gap:8px;
}
.moment-sig-row{
  display:grid; grid-template-columns: 108px 1fr; gap:10px;
  font-family:var(--f-sans); font-size:12px;
}
.moment-sig-row dt{
  color:var(--muted); font-size:10px; letter-spacing:.24em;
  text-transform:uppercase; padding-top:2px;
}
.moment-sig-row dd{
  margin:0; color:var(--charcoal); text-align:right; line-height:1.4;
}

/* ---------- Video card ---------- */
.video-card{
  border-radius:var(--card-radius);
  background:var(--charcoal);
  overflow:hidden;
  box-shadow: 0 8px 24px -12px rgba(44,40,37,.25);
  margin:12px 0 16px;
}
.video-card video{
  display:block; width:100%; aspect-ratio:9/16;
  background:var(--charcoal);
}
.video-caption{
  padding:10px 14px;
  font-family:var(--f-sans); font-size:10px; letter-spacing:.22em;
  text-transform:uppercase; color:rgba(240,235,224,.72);
  background:rgba(0,0,0,.4);
  display:flex; gap:8px; align-items:center;
}
.video-caption__len{ color:var(--gold-soft); font-weight:600; }

/* ---------- Cards ---------- */
.card{
  border:1px solid var(--hairline-strong);
  background:var(--beige-soft);
  border-radius:var(--card-radius);
  padding:18px 20px;
  margin-bottom:14px;
}
.card--head{
  display:flex; align-items:center; justify-content:space-between;
  gap:8px; margin-bottom:12px;
}
.card__label{
  font-family:var(--f-sans); font-size:10px; letter-spacing:.24em;
  text-transform:uppercase; color:var(--muted);
}
.card__value{
  font-family:var(--f-serif); font-size:28px; line-height:1.05;
  color:var(--charcoal); margin:6px 0 4px;
}
.card__hint{
  font-family:var(--f-sans); font-size:12px; color:var(--muted);
}

.stat-row{
  display:grid; grid-template-columns:1fr 1fr; gap:12px;
  margin-bottom:16px;
}
.stat{
  border:1px solid var(--hairline-strong);
  background:var(--beige-soft);
  border-radius:var(--card-radius);
  padding:14px 16px;
}
.stat__label{
  font-family:var(--f-sans); font-size:9.5px; letter-spacing:.24em;
  text-transform:uppercase; color:var(--muted);
}
.stat__value{
  font-family:var(--f-serif); font-size:24px; color:var(--charcoal);
  line-height:1.05; margin:6px 0 4px;
}
.stat__sub{ font-family:var(--f-sans); font-size:11px; color:var(--muted); line-height:1.4; }

/* ---------- Readiness ring ---------- */
.ring-block{
  display:grid; grid-template-columns:180px 1fr; gap:16px; align-items:center;
  margin:20px 0;
}
.ring{ position:relative; width:180px; height:180px; }
.ring__num{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center; flex-direction:column;
  pointer-events:none;
}
.ring__num-val{
  font-family:var(--f-serif); font-size:56px; line-height:1;
  color:var(--charcoal); font-weight:500;
}
.ring__num-of{
  font-family:var(--f-sans); font-size:11px; color:var(--muted);
  letter-spacing:.12em; margin-top:2px;
}
.ring-side{ padding-left:4px; }
.ring-side__label{
  font-family:var(--f-sans); font-size:10px; letter-spacing:.24em;
  text-transform:uppercase; color:var(--muted); margin-bottom:6px;
}
.ring-side__val{
  font-family:var(--f-serif); font-size:44px; line-height:1;
  color:var(--sage); font-weight:500;
}
.ring-side__delta{
  display:inline-block; padding:3px 10px;
  border-radius:var(--pill-radius);
  background:rgba(91,122,94,.15);
  color:var(--sage);
  font-family:var(--f-sans); font-size:11px; font-weight:600;
  margin-top:8px;
}

/* Pillar bars */
.pillars{ display:grid; gap:14px; margin-top:24px; }
.pillar{ display:grid; grid-template-columns:130px 1fr 32px; gap:12px; align-items:center; }
.pillar__label{
  font-family:var(--f-sans); font-size:13px; color:var(--charcoal);
  font-weight:500;
}
.pillar__track{
  height:6px; background:rgba(139,125,94,.22); border-radius:3px;
  overflow:hidden;
}
.pillar__fill{
  height:100%; border-radius:3px;
  background:var(--gold);
  transition:width .8s var(--ease-out);
}
.pillar__fill--terra{ background:var(--terra); }
.pillar__fill--sage{ background:var(--sage); }
.pillar__num{
  font-family:var(--f-sans); font-size:12px; color:var(--muted);
  text-align:right; font-variant-numeric:tabular-nums;
}
.pillar[data-clickable]{ cursor:pointer; }
.pillar[data-clickable]:hover .pillar__label{ color:var(--gold-deep); }

/* ---------- Program economics ---------- */
.policy-list{ margin-top:8px; }
.policy-row{
  display:grid; grid-template-columns:1fr auto;
  gap:12px; padding:14px 0;
  border-bottom:1px solid var(--hairline);
  cursor:pointer; align-items:center;
  transition:background .18s var(--ease-out);
  padding-left:2px; padding-right:2px;
}
.policy-row:hover{ background:rgba(139,125,94,.06); }
.policy-row:last-child{ border-bottom:none; }
.policy-row__name{
  font-family:var(--f-sans); font-size:14px; color:var(--charcoal);
  font-weight:500;
}
.policy-row__meta{
  font-family:var(--f-sans); font-size:11px; color:var(--muted);
  margin-top:2px;
}
.policy-row__amount{
  font-family:var(--f-serif); font-size:16px; color:var(--charcoal);
  text-align:right; font-variant-numeric:tabular-nums;
}
.policy-row--bench .policy-row__amount{
  font-style:italic; color:var(--gold-deep);
}
.chip{
  display:inline-block; padding:2px 8px; border-radius:var(--pill-radius);
  font-family:var(--f-sans); font-size:9px; letter-spacing:.16em;
  text-transform:uppercase; font-weight:600;
  border:1px solid transparent;
}
.chip--bench{
  background:rgba(139,125,94,.14); color:var(--gold-deep);
  border-color:rgba(139,125,94,.28);
}
.chip--filed{
  background:rgba(91,122,94,.14); color:var(--sage);
  border-color:rgba(91,122,94,.28);
}
.chip--critical{
  background:rgba(168,75,47,.14); color:var(--terra);
  border-color:rgba(168,75,47,.32);
}
.chip--advisory{
  background:rgba(91,122,94,.14); color:var(--sage);
  border-color:rgba(91,122,94,.28);
}
.chip--significant{
  background:rgba(139,125,94,.18); color:var(--gold-deep);
  border-color:rgba(139,125,94,.32);
}
.list-head{
  display:grid; grid-template-columns:1fr auto;
  padding:0 2px 10px;
  border-bottom:1px solid var(--hairline-strong);
  font-family:var(--f-sans); font-size:10px; letter-spacing:.24em;
  text-transform:uppercase; color:var(--muted);
}

/* ---------- Findings ---------- */
.finding{
  border:1px solid var(--hairline-strong);
  background:var(--beige-soft);
  border-left:3px solid var(--terra);
  border-radius:var(--card-radius);
  padding:18px 20px; margin-bottom:14px;
  cursor:pointer;
  transition:transform .2s var(--ease-out), box-shadow .2s var(--ease-out);
}
.finding:hover{ transform:translateY(-2px); box-shadow:0 6px 20px -12px rgba(44,40,37,.25); }
.finding--significant{ border-left-color:var(--gold-deep); }
.finding--advisory{ border-left-color:var(--sage); }
.finding__head{
  display:flex; align-items:center; justify-content:space-between;
  gap:8px; margin-bottom:10px;
}
.finding__ref{
  font-family:var(--f-sans); font-size:11px; color:var(--muted);
  letter-spacing:.16em;
}
.finding__title{
  font-family:var(--f-serif); font-weight:500;
  font-size:20px; line-height:1.2;
  color:var(--charcoal); margin:0 0 10px;
}
.finding__body{
  font-family:var(--f-sans); font-size:13.5px; line-height:1.55;
  color:var(--ink); margin:0 0 12px;
}
.finding__facts{
  display:grid; grid-template-columns:1fr 1fr; gap:12px;
  padding-top:12px; margin-top:8px;
  border-top:1px solid var(--hairline);
}
.finding__facts > div dt{
  font-family:var(--f-sans); font-size:9.5px; letter-spacing:.24em;
  color:var(--muted); text-transform:uppercase;
}
.finding__facts > div dd{
  margin:4px 0 0; font-family:var(--f-sans); font-size:13px;
  color:var(--charcoal); font-weight:500;
}
.finding__expand{
  display:none; padding-top:14px; margin-top:14px;
  border-top:1px solid var(--hairline);
}
.finding--open .finding__expand{ display:block; }
.finding__expand p{
  font-family:var(--f-sans); font-size:13px; line-height:1.55;
  color:var(--ink); margin:0 0 10px;
}
.finding__actions{
  display:flex; gap:8px; margin-top:12px; flex-wrap:wrap;
}
.action-chip{
  display:inline-flex; align-items:center; gap:6px;
  padding:8px 14px; border-radius:var(--pill-radius);
  background:var(--beige); border:1px solid var(--hairline-strong);
  font-family:var(--f-sans); font-size:11px; font-weight:600;
  color:var(--charcoal); letter-spacing:.02em;
  transition:all .16s var(--ease-out);
}
.action-chip:hover{ background:var(--charcoal); color:var(--beige); border-color:var(--charcoal); }
.finding__caret{
  display:inline-block; transition:transform .2s var(--ease-out);
  color:var(--muted);
}
.finding--open .finding__caret{ transform:rotate(180deg); }

/* ---------- Trajectory ---------- */
.trajectory-panel{
  background:var(--beige-soft);
  border:1px solid var(--hairline-strong);
  border-radius:var(--card-radius);
  padding:16px 16px 12px;
  margin-bottom:16px;
}
.trajectory-chart{ position:relative; height:220px; }
.trajectory-chart svg{ display:block; width:100%; height:100%; }
.scenario-toggle{
  display:flex; gap:6px; margin:14px 0 8px; flex-wrap:wrap;
}
.scenario-btn{
  padding:8px 12px; border-radius:var(--pill-radius);
  border:1px solid var(--hairline-strong);
  background:var(--beige);
  font-family:var(--f-sans); font-size:11px; font-weight:600;
  color:var(--charcoal); letter-spacing:.02em;
}
.scenario-btn--active{
  background:var(--charcoal); color:var(--beige); border-color:var(--charcoal);
}
.move-item{
  padding:14px 0;
  border-bottom:1px solid var(--hairline);
  cursor:pointer;
}
.move-item:last-child{ border-bottom:none; }
.move-item__meta{
  font-family:var(--f-sans); font-size:10px; letter-spacing:.22em;
  color:var(--muted); text-transform:uppercase;
  display:flex; align-items:center; gap:8px;
}
.move-item__title{
  font-family:var(--f-serif); font-size:17px;
  color:var(--charcoal); margin:4px 0 0;
  line-height:1.3;
}
.move-item__delta{
  display:inline-block; padding:1px 8px; border-radius:var(--pill-radius);
  background:rgba(91,122,94,.16); color:var(--sage);
  font-family:var(--f-sans); font-size:10px; font-weight:700;
}

/* ---------- Iris chat ---------- */
.chat{
  display:flex; flex-direction:column; gap:14px;
  padding-bottom:12px;
}
.msg{
  max-width:82%; padding:14px 16px;
  border-radius:18px;
  font-family:var(--f-sans); font-size:14px; line-height:1.5;
}
.msg--iris{
  background:var(--beige-soft);
  border:1px solid var(--hairline);
  color:var(--ink); border-top-left-radius:6px;
  align-self:flex-start;
}
.msg--user{
  background:var(--charcoal); color:var(--beige);
  border-top-right-radius:6px;
  align-self:flex-end;
}
.msg--iris strong{ color:var(--charcoal); }
.msg__meta{
  font-family:var(--f-sans); font-size:9.5px; letter-spacing:.22em;
  color:var(--muted); text-transform:uppercase;
  margin-bottom:6px;
  display:flex; align-items:center; gap:8px;
}
.msg__dot{
  width:6px; height:6px; border-radius:50%; background:var(--sage);
  display:inline-block;
}
.chat-suggestions{
  display:flex; gap:8px; flex-wrap:wrap;
  padding:4px 0 6px;
}
.suggestion{
  padding:9px 14px; border-radius:var(--pill-radius);
  border:1px solid var(--hairline-strong);
  background:var(--beige);
  font-family:var(--f-sans); font-size:12px;
  color:var(--charcoal); font-weight:500;
  transition:all .16s var(--ease-out);
}
.suggestion:hover{ background:var(--charcoal); color:var(--beige); border-color:var(--charcoal); }
.chat-empty{
  padding:20px 0;
  text-align:center;
}
.chat-empty h3{
  font-family:var(--f-serif); font-size:22px; color:var(--charcoal);
  margin:0 0 8px;
}
.chat-empty p{
  font-family:var(--f-sans); font-size:13px; color:var(--muted);
  margin:0 auto 18px; max-width:32ch;
}

.typing{
  display:inline-flex; gap:4px; align-items:center;
}
.typing span{
  width:6px; height:6px; border-radius:50%; background:var(--muted);
  animation: typing 1.2s infinite ease-in-out;
}
.typing span:nth-child(2){ animation-delay:.15s; }
.typing span:nth-child(3){ animation-delay:.3s; }
@keyframes typing{
  0%,60%,100%{ transform:translateY(0); opacity:.4; }
  30%{ transform:translateY(-4px); opacity:1; }
}

/* ---------- Team screen ---------- */
.team-card{
  border:1px solid var(--hairline-strong);
  background:var(--beige-soft);
  border-radius:var(--card-radius);
  padding:18px 20px; margin-bottom:14px;
}
.team-card__head{
  display:flex; justify-content:space-between; align-items:center;
  padding-bottom:12px; margin-bottom:12px;
  border-bottom:1px solid var(--hairline);
}
.team-card__label{
  font-family:var(--f-sans); font-size:10px; letter-spacing:.24em;
  text-transform:uppercase; color:var(--muted); font-weight:600;
}
.team-role{ display:flex; align-items:center; gap:12px; padding:8px 0; }
.team-role__avatar{
  width:36px; height:36px; border-radius:50%;
  background:rgba(139,125,94,.22); color:var(--gold-deep);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--f-serif); font-size:15px;
}
.team-role__name{
  font-family:var(--f-serif); font-size:17px; color:var(--charcoal); line-height:1.2;
}
.team-role__title{
  font-family:var(--f-sans); font-size:12px; color:var(--muted);
}

.disclaimer{
  font-family:var(--f-sans); font-size:11.5px; line-height:1.6;
  color:var(--muted); padding:16px 2px; font-style:italic;
  border-top:1px solid var(--hairline); margin-top:12px;
}

.footer-note{
  font-family:var(--f-sans); font-size:9px; letter-spacing:.24em;
  color:var(--muted); text-transform:uppercase;
  text-align:center; margin-top:20px;
}

/* ---------- Chat input bar ---------- */
.chat-input{
  position:absolute; bottom:calc(var(--tab-h) + env(safe-area-inset-bottom));
  left:12px; right:12px;
  display:flex; align-items:center; gap:8px;
  padding:8px 12px 8px 16px;
  background:var(--charcoal);
  border-radius:var(--pill-radius);
  box-shadow:0 12px 30px -12px rgba(44,40,37,.35);
  z-index:15;
}
.chat-input__dot{
  width:8px; height:8px; border-radius:50%;
  background:var(--gold-soft);
  flex-shrink:0;
  animation: pulse 2s ease-in-out infinite;
}
@keyframes pulse{ 0%,100%{opacity:.5;} 50%{opacity:1;} }
.chat-input__input{
  flex:1; background:transparent; border:0; outline:none;
  font-family:var(--f-sans); font-size:14px;
  color:var(--beige); padding:8px 0;
  -webkit-appearance:none;
}
.chat-input__input::placeholder{ color:rgba(240,235,224,.5); }
.chat-input__send{
  width:34px; height:34px; border-radius:50%;
  background:var(--gold); color:var(--beige);
  display:flex; align-items:center; justify-content:center;
  transition:all .18s var(--ease-out);
  flex-shrink:0;
}
.chat-input__send:hover{ background:var(--gold-deep); transform:scale(1.05); }
.chat-input__send:disabled{ opacity:.4; cursor:not-allowed; transform:none; }
.chat-input--hidden{ display:none; }

/* ---------- Tab bar ---------- */
.tabbar{
  position:absolute; bottom:0; left:0; right:0; z-index:12;
  height:calc(var(--tab-h) + env(safe-area-inset-bottom));
  padding-bottom:env(safe-area-inset-bottom);
  display:grid; grid-template-columns:repeat(5, 1fr);
  background:rgba(240,235,224,.94);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-top:1px solid var(--hairline-strong);
}
.tab{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:3px; color:var(--muted); padding:8px 0 6px;
  transition:color .16s var(--ease-out);
}
.tab__ico{ width:20px; height:20px; }
.tab__name{
  font-family:var(--f-sans); font-size:10px; font-weight:600;
  letter-spacing:.02em;
}
.tab--active{ color:var(--charcoal); }
.tab--active .tab__ico{ color:var(--gold); }

/* ---------- Bottom sheet ---------- */
.sheet-scrim{
  position:absolute; inset:0;
  background:rgba(44,40,37,.4);
  opacity:0; pointer-events:none;
  transition:opacity .3s var(--ease-out);
  z-index:20;
}
.sheet-scrim--open{ opacity:1; pointer-events:auto; }

.sheet{
  position:absolute; left:0; right:0; bottom:0;
  background:var(--beige);
  border-radius:var(--sheet-radius) var(--sheet-radius) 0 0;
  max-height:78%;
  overflow-y:auto; -webkit-overflow-scrolling:touch;
  padding:12px 20px 32px;
  transform:translateY(100%);
  transition:transform .32s var(--ease-out);
  z-index:22;
  box-shadow:0 -10px 30px -12px rgba(44,40,37,.3);
}
.sheet--open{ transform:translateY(0); }
.sheet__handle{
  width:38px; height:4px; border-radius:2px;
  background:var(--hairline-strong);
  margin:6px auto 12px;
}
.sheet__title{
  font-family:var(--f-serif); font-size:22px;
  color:var(--charcoal); margin:0 0 6px;
}
.sheet__sub{
  font-family:var(--f-sans); font-size:11px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--muted); margin:0 0 16px;
}
.sheet__section{ margin:14px 0; }
.sheet__body{
  font-family:var(--f-sans); font-size:14px; line-height:1.55;
  color:var(--ink); margin:0 0 12px;
}
.sheet__list{ display:grid; gap:8px; margin:12px 0; }
.sheet__row{
  display:flex; justify-content:space-between; padding:8px 0;
  border-bottom:1px solid var(--hairline);
  font-family:var(--f-sans); font-size:13px;
}
.sheet__row dt{ color:var(--muted); }
.sheet__row dd{ margin:0; color:var(--charcoal); font-weight:500; text-align:right; }
.sheet__actions{
  display:flex; gap:8px; margin-top:16px;
  flex-wrap:wrap;
}

/* ---------- Toast ---------- */
.toast{
  position:absolute; bottom:calc(var(--tab-h) + 96px + env(safe-area-inset-bottom));
  left:50%; transform:translateX(-50%) translateY(20px);
  background:var(--charcoal); color:var(--beige);
  padding:10px 18px; border-radius:var(--pill-radius);
  font-family:var(--f-sans); font-size:12px;
  opacity:0; pointer-events:none;
  transition:all .3s var(--ease-out);
  z-index:30;
}
.toast--show{ opacity:1; transform:translateX(-50%) translateY(0); }

/* ---------- Utility ---------- */
.divider{ height:1px; background:var(--hairline); margin:20px 0; }
.gutter-top{ margin-top:24px; }
