/* =====================================================================
   Wander — stylesheet
   Aesthetic: warm coastal-editorial. Cream paper, deep teal brand,
   sunset coral/amber accents. Fraunces (display) + Outfit (body).
   Mobile-first; an app-style bottom tab bar.
   ===================================================================== */

:root{
  --font-display:"Fraunces","Georgia",serif;
  --font-body:"Outfit","Segoe UI",system-ui,sans-serif;

  --paper:#FBF7EF;
  --paper-2:#F4ECDC;
  --card:#FFFFFF;
  --ink:#211C16;
  --ink-soft:#5E5446;
  --ink-faint:#92866F;
  --line:#EADFCB;
  --line-soft:#F1E9DA;

  --teal:#0E7C72;       /* brand */
  --teal-deep:#0A5E56;
  --coral:#E8542E;
  --amber:#EFA13A;
  --violet:#6B57CE;
  --forest:#2F7D4F;
  --ocean:#2A6FB0;
  --rose:#D6457A;

  --good:#2E8B57;
  --good-bg:#E6F2EA;
  --bad:#C23B36;
  --bad-bg:#FBE9E7;
  --warn-bg:#FBF1DD;

  --accent:var(--teal);
  --g1:#13988B;
  --g2:#0A5E56;

  --radius:18px;
  --radius-sm:12px;
  --radius-lg:26px;
  --shadow:0 10px 30px -12px rgba(60,44,20,.28);
  --shadow-sm:0 4px 14px -8px rgba(60,44,20,.30);
  --shadow-card:0 1px 0 rgba(255,255,255,.6) inset, 0 8px 24px -16px rgba(40,30,12,.35);

  --tab-h:72px;
  --maxw:680px;
}

/* accents: each sets a solid + a gradient pair */
.accent-teal  {--accent:var(--teal);  --g1:#15A093;--g2:#0A5E56;}
.accent-coral {--accent:var(--coral); --g1:#F26b41;--g2:#C5371A;}
.accent-violet{--accent:var(--violet);--g1:#7C68E6;--g2:#4F3DAE;}
.accent-sunset{--accent:#E8682E;      --g1:#F4A23C;--g2:#E0512A;}
.accent-forest{--accent:var(--forest);--g1:#46996A;--g2:#235E3A;}
.accent-ocean {--accent:var(--ocean); --g1:#3D86CC;--g2:#1E5288;}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--paper);
  background-image:
    radial-gradient(1200px 560px at 88% -8%, rgba(239,161,58,.16), transparent 60%),
    radial-gradient(1000px 520px at -10% 4%, rgba(14,124,114,.12), transparent 55%);
  background-attachment:fixed;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{color:var(--teal-deep);text-decoration:none;}
img{max-width:100%;display:block;}

/* Inline icons: sensible default size; specific containers override below. */
svg{width:1.25em;height:1.25em;flex:0 0 auto;vertical-align:-.16em;}
.topbar__back svg{width:21px;height:21px;}
.row-icon svg{width:20px;height:20px;}
.flight__air svg{width:19px;height:19px;}
.route__plane svg{width:18px;height:18px;}
.chat-send svg{width:21px;height:21px;}
.btn svg{width:18px;height:18px;}
h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.12;margin:0;letter-spacing:-.01em;}
.muted{color:var(--ink-soft);}
.faint{color:var(--ink-faint);}
.center{text-align:center;}

/* ---------- Top bar ---------- */
.topbar{
  position:sticky;top:0;z-index:40;
  display:flex;align-items:center;gap:12px;
  padding:14px 16px;
  background:rgba(251,247,239,.82);
  backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid var(--line-soft);
}
.topbar__back{
  flex:0 0 auto;width:38px;height:38px;border-radius:50%;
  display:grid;place-items:center;color:var(--ink);
  background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-sm);
}
.topbar__back:active{transform:scale(.94);}
.topbar__titles{flex:1 1 auto;min-width:0;}
.topbar__eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);font-weight:600;}
.topbar__title{
  font-family:var(--font-display);font-size:20px;font-weight:600;color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.topbar__avatar{
  flex:0 0 auto;width:40px;height:40px;border-radius:50%;
  display:grid;place-items:center;font-weight:700;font-size:14px;color:#fff;
  background:linear-gradient(140deg,var(--g1),var(--g2));box-shadow:var(--shadow-sm);
  letter-spacing:.02em;
}
.topbar__actions{flex:0 0 auto;display:flex;align-items:center;gap:8px;}
.topbar__icon-btn{
  flex:0 0 auto;width:38px;height:38px;border-radius:50%;
  display:grid;place-items:center;color:var(--ink-soft);
  background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-sm);
}
.topbar__icon-btn:active{transform:scale(.94);}
.topbar__icon-btn svg{width:19px;height:19px;}
.topbar__brand-mark{
  flex:0 0 auto;width:38px;height:38px;border-radius:50%;
  display:grid;place-items:center;
  font-family:var(--font-display);font-weight:600;font-size:15px;color:#fff;letter-spacing:.02em;
  background:linear-gradient(140deg,#15A093,#0A5E56);box-shadow:var(--shadow-sm);
}
.topbar__brand-mark:active{transform:scale(.94);}

/* ---------- Container ---------- */
.container{
  max-width:var(--maxw);margin:0 auto;
  padding:18px 16px calc(var(--tab-h) + 28px);
}
.container--narrow{max-width:520px;}
.stack > * + *{margin-top:14px;}

/* ---------- Section titles ---------- */
.section-title{
  display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  margin:22px 2px 10px;
}
.section-title h2{font-size:22px;}
.section-title .link{font-size:13px;font-weight:600;color:var(--teal);}
.eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);font-weight:700;}

/* ---------- Cards ---------- */
.card{
  background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius);box-shadow:var(--shadow-card);
  overflow:hidden;
}
.card--pad{padding:18px;}
.card-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.card-head h3{font-size:18px;}

/* ---------- Buttons ---------- */
.btn{
  --b:var(--teal);
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--font-body);font-weight:600;font-size:15px;
  padding:12px 18px;border-radius:13px;border:1px solid transparent;
  cursor:pointer;transition:transform .08s ease, box-shadow .15s ease, background .15s ease;
  -webkit-tap-highlight-color:transparent;line-height:1;
}
.btn:active{transform:translateY(1px) scale(.99);}
.btn--primary{background:linear-gradient(140deg,var(--g1),var(--g2));color:#fff;box-shadow:var(--shadow-sm);}
.btn--accent{background:var(--accent);color:#fff;}
.btn--ghost{background:var(--card);color:var(--ink);border-color:var(--line);}
.btn--danger{background:var(--bad-bg);color:var(--bad);border-color:#F3CFCB;}
.btn--block{display:flex;width:100%;}
.btn--sm{padding:8px 13px;font-size:13px;border-radius:10px;}

/* ---------- Pills / badges ---------- */
.pill{
  display:inline-flex;align-items:center;gap:6px;
  font-size:12px;font-weight:700;letter-spacing:.02em;
  padding:5px 11px;border-radius:999px;border:1px solid transparent;white-space:nowrap;
}
.pill .dot{width:7px;height:7px;border-radius:50%;background:currentColor;}
.pill--upcoming{color:var(--ocean);background:#E8F0F8;}
.pill--active{color:var(--good);background:var(--good-bg);}
.pill--past{color:var(--ink-faint);background:var(--paper-2);}
.pill--accent{color:#fff;background:var(--accent);}
.pill--soft{color:var(--ink-soft);background:var(--paper-2);}
.pill--good{color:var(--good);background:var(--good-bg);}
.pill--bad{color:var(--bad);background:var(--bad-bg);}

/* ---------- Trip hero (overview) ---------- */
.hero{
  position:relative;border-radius:var(--radius-lg);overflow:hidden;color:#fff;
  background:linear-gradient(150deg,var(--g1),var(--g2));
  box-shadow:var(--shadow);padding:22px 20px 20px;
  isolation:isolate;
}
.hero::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(440px 200px at 84% -20%, rgba(255,255,255,.30), transparent 60%),
    radial-gradient(320px 220px at -10% 120%, rgba(0,0,0,.22), transparent 60%);
}
.hero__emoji{font-size:40px;line-height:1;filter:drop-shadow(0 4px 8px rgba(0,0,0,.18));}
.hero__row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.hero__name{font-size:30px;margin:12px 0 4px;text-shadow:0 2px 14px rgba(0,0,0,.18);}
.hero__dest{font-weight:600;opacity:.95;}
.hero__meta{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:14px;font-size:13.5px;opacity:.96;}
.hero__meta b{font-weight:700;}
.hero__badge{
  background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.34);
  border-radius:14px;padding:8px 12px;text-align:center;backdrop-filter:blur(4px);
}
.hero__badge .n{font-family:var(--font-display);font-size:22px;font-weight:600;display:block;line-height:1;}
.hero__badge .t{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;opacity:.9;}

/* ---------- Stat tiles ---------- */
.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.stat{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:15px 16px;box-shadow:var(--shadow-card);
}
.stat__label{font-size:11.5px;letter-spacing:.10em;text-transform:uppercase;color:var(--ink-faint);font-weight:700;}
.stat__value{font-family:var(--font-display);font-size:25px;font-weight:600;margin-top:4px;}
.stat__sub{font-size:12.5px;color:var(--ink-soft);margin-top:2px;}
.stat__value.is-good{color:var(--good);}
.stat__value.is-bad{color:var(--bad);}

/* ---------- Tile grid (hub navigation) ---------- */
.tile-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.tile{
  display:flex;flex-direction:column;gap:10px;
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:16px;box-shadow:var(--shadow-card);color:var(--ink);
  transition:transform .12s ease, box-shadow .18s ease;min-height:104px;
}
.tile:active{transform:scale(.975);}
.tile__icon{
  width:42px;height:42px;border-radius:12px;display:grid;place-items:center;color:#fff;
  background:linear-gradient(140deg,var(--g1),var(--g2));
}
.tile__icon svg{width:22px;height:22px;}
.tile__icon.c-teal{background:linear-gradient(140deg,#15A093,#0A5E56);}
.tile__icon.c-coral{background:linear-gradient(140deg,#F26B41,#C5371A);}
.tile__icon.c-violet{background:linear-gradient(140deg,#7C68E6,#4F3DAE);}
.tile__icon.c-amber{background:linear-gradient(140deg,#F4B24A,#E08A22);}
.tile__icon.c-ocean{background:linear-gradient(140deg,#3D86CC,#1E5288);}
.tile__icon.c-rose{background:linear-gradient(140deg,#E36195,#C23467);}
.tile__icon.c-forest{background:linear-gradient(140deg,#46996A,#235E3A);}
.tile__icon.c-slate{background:linear-gradient(140deg,#6B7C8C,#3F4B59);}
.tile__label{font-weight:600;font-size:15.5px;}
.tile__sub{font-size:12.5px;color:var(--ink-soft);margin-top:-4px;}
.tile__count{margin-left:auto;font-size:12px;color:var(--ink-faint);font-weight:700;}
.tile__top{display:flex;align-items:center;width:100%;}

/* ---------- Trip cards (dashboard) ---------- */
.trip-card{
  position:relative;display:block;color:#fff;border-radius:var(--radius-lg);
  overflow:hidden;box-shadow:var(--shadow);
  background:linear-gradient(145deg,var(--g1),var(--g2));isolation:isolate;
  transition:transform .14s ease, box-shadow .2s ease;
}
.trip-card:active{transform:scale(.985);}
.trip-card::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:radial-gradient(420px 180px at 85% -30%, rgba(255,255,255,.28), transparent 60%);
}
.trip-card__body{padding:18px 18px 16px;display:flex;gap:14px;align-items:center;}
.trip-card__emoji{font-size:34px;line-height:1;filter:drop-shadow(0 3px 6px rgba(0,0,0,.2));}
.trip-card__txt{flex:1 1 auto;min-width:0;}
.trip-card__name{font-family:var(--font-display);font-size:21px;font-weight:600;text-shadow:0 1px 8px rgba(0,0,0,.18);}
.trip-card__sub{font-size:13px;opacity:.95;margin-top:2px;}
.trip-card__chev{opacity:.85;}
.trip-card__foot{
  display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding:11px 18px;background:rgba(0,0,0,.16);font-size:12.5px;font-weight:600;
}
.trip-card .pill{background:rgba(255,255,255,.22);color:#fff;border-color:rgba(255,255,255,.3);}

/* ---------- Lists ---------- */
.list{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-card);}
.list-row{display:flex;align-items:center;gap:13px;padding:14px 16px;border-bottom:1px solid var(--line-soft);}
.list-row:last-child{border-bottom:0;}
.list-row__main{flex:1 1 auto;min-width:0;}
.list-row__title{font-weight:600;font-size:15.5px;}
.list-row__sub{font-size:13px;color:var(--ink-soft);margin-top:1px;}
.list-row__meta{flex:0 0 auto;text-align:right;font-weight:700;font-size:15px;}
.list-row__meta small{display:block;font-weight:500;font-size:11.5px;color:var(--ink-faint);}
.row-icon{
  flex:0 0 auto;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;color:#fff;
  background:linear-gradient(140deg,var(--g1),var(--g2));font-size:18px;
}

/* ---------- Itinerary timeline ---------- */
.day{margin-top:18px;}
.day__label{
  display:inline-flex;align-items:center;gap:8px;font-family:var(--font-display);
  font-size:17px;font-weight:600;margin:0 2px 10px;
}
.day__label .num{
  width:30px;height:30px;border-radius:9px;background:var(--accent);color:#fff;
  display:grid;place-items:center;font-family:var(--font-body);font-size:13px;font-weight:700;
}
.timeline{position:relative;margin-left:8px;padding-left:22px;}
.timeline::before{content:"";position:absolute;left:6px;top:6px;bottom:6px;width:2px;background:var(--line);}
.tl-item{position:relative;padding:0 0 16px;}
.tl-item:last-child{padding-bottom:2px;}
.tl-item::before{
  content:"";position:absolute;left:-22px;top:5px;width:12px;height:12px;border-radius:50%;
  background:var(--card);border:3px solid var(--accent);
}
.tl-time{font-size:12.5px;font-weight:700;color:var(--accent);letter-spacing:.02em;}
.tl-title{font-weight:600;font-size:16px;margin-top:1px;}
.tl-loc{font-size:13px;color:var(--ink-soft);margin-top:1px;}
.tl-desc{font-size:13.5px;color:var(--ink-soft);margin-top:5px;}

/* ---------- Flights ---------- */
.flight{padding:16px;}
.flight + .flight{margin-top:12px;}
.flight__head{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.flight__air{width:34px;height:34px;border-radius:10px;background:var(--paper-2);display:grid;place-items:center;color:var(--teal-deep);}
.flight__name{font-weight:700;font-size:14.5px;}
.flight__num{font-size:12.5px;color:var(--ink-faint);}
.route{display:flex;align-items:center;gap:10px;}
.route__end{flex:1 1 0;min-width:0;text-align:center;}
.route__code{font-family:var(--font-display);font-size:26px;font-weight:600;letter-spacing:.01em;}
.route__city{font-size:11.5px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.route__time{font-size:13px;font-weight:700;margin-top:4px;}
.route__date{font-size:11px;color:var(--ink-faint);}
.route__mid{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;color:var(--ink-faint);width:64px;}
.route__line{width:100%;height:2px;background:repeating-linear-gradient(90deg,var(--line) 0 6px,transparent 6px 11px);position:relative;}
.route__plane{margin-bottom:2px;color:var(--accent);}
.flight__foot{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;padding-top:13px;border-top:1px solid var(--line-soft);}

/* ---------- Info pairs (hotel / details) ---------- */
.kv{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;font-size:14px;}
.kv dt{color:var(--ink-faint);font-weight:600;}
.kv dd{margin:0;font-weight:500;text-align:right;}
.detail-row{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line-soft);font-size:14px;}
.detail-row:last-child{border-bottom:0;}
.detail-row dt{color:var(--ink-faint);font-weight:600;}
.detail-row dd{margin:0;text-align:right;font-weight:600;}

/* ---------- People ---------- */
.people{display:grid;grid-template-columns:1fr;gap:10px;}
.person{display:flex;align-items:center;gap:13px;background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius);padding:13px 15px;box-shadow:var(--shadow-card);}
.avatar{
  width:44px;height:44px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;
  color:#fff;font-weight:700;font-size:15px;background:linear-gradient(140deg,var(--g1),var(--g2));
}
.avatar.a0{background:linear-gradient(140deg,#15A093,#0A5E56);}
.avatar.a1{background:linear-gradient(140deg,#F26B41,#C5371A);}
.avatar.a2{background:linear-gradient(140deg,#7C68E6,#4F3DAE);}
.avatar.a3{background:linear-gradient(140deg,#3D86CC,#1E5288);}
.avatar.a4{background:linear-gradient(140deg,#E36195,#C23467);}
.avatar.a5{background:linear-gradient(140deg,#46996A,#235E3A);}
.avatar.a6{background:linear-gradient(140deg,#F4B24A,#E08A22);}
.person__name{font-weight:600;font-size:15.5px;}
.person__role{font-size:12.5px;color:var(--ink-soft);}

/* ---------- Chat / messages ---------- */
.chat{display:flex;flex-direction:column;gap:14px;padding:4px 2px 8px;}
.msg{max-width:84%;}
.msg--me{align-self:flex-end;text-align:right;}
.msg__author{font-size:12px;font-weight:700;color:var(--ink-soft);margin:0 6px 3px;}
.msg__bubble{
  display:inline-block;text-align:left;padding:10px 14px;border-radius:16px;
  background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-card);
  font-size:14.5px;white-space:pre-wrap;word-wrap:break-word;border-bottom-left-radius:5px;
}
.msg--me .msg__bubble{
  background:linear-gradient(140deg,var(--g1),var(--g2));color:#fff;border-color:transparent;
  border-bottom-left-radius:16px;border-bottom-right-radius:5px;
}
.msg__time{font-size:11px;color:var(--ink-faint);margin:4px 7px 0;}
.chat-form{
  position:sticky;bottom:calc(var(--tab-h) + 8px);z-index:20;
  display:flex;gap:9px;align-items:flex-end;
  background:rgba(251,247,239,.9);backdrop-filter:blur(8px);
  padding:10px;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);
  margin-top:8px;
}
.chat-form textarea{
  flex:1 1 auto;resize:none;border:1px solid var(--line);border-radius:12px;
  padding:11px 13px;font-family:var(--font-body);font-size:15px;background:#fff;color:var(--ink);
  max-height:120px;
}
.chat-send{
  flex:0 0 auto;width:46px;height:46px;border-radius:13px;border:none;cursor:pointer;
  background:linear-gradient(140deg,var(--g1),var(--g2));color:#fff;display:grid;place-items:center;
}
.chat-send:active{transform:scale(.94);}

/* ---------- Forms (admin + login) ---------- */
.field{margin-bottom:14px;}
.field > label{display:block;font-weight:600;font-size:13.5px;margin-bottom:6px;color:var(--ink-soft);}
.input,.textarea,select{
  width:100%;font-family:var(--font-body);font-size:15px;color:var(--ink);
  padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:#fff;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.input:focus,.textarea:focus,select:focus{
  outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(14,124,114,.15);
}
.textarea{resize:vertical;min-height:88px;}
.help{font-size:12.5px;color:var(--ink-faint);margin-top:5px;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px;}
.form-grid .full{grid-column:1 / -1;}
.checkbox{display:flex;align-items:flex-start;gap:10px;font-size:14px;}
.checkbox input{width:18px;height:18px;margin-top:2px;accent-color:var(--teal);}

/* ---------- Flash ---------- */
.flash{padding:12px 15px;border-radius:13px;font-size:14px;font-weight:500;border:1px solid;margin-bottom:14px;display:flex;gap:9px;align-items:flex-start;}
.flash--success{background:var(--good-bg);border-color:#BFE0CC;color:#216B41;}
.flash--error{background:var(--bad-bg);border-color:#F1C8C4;color:#9E2C28;}
.flash--info{background:#E8F0F8;border-color:#CADEF0;color:#235E8A;}

/* ---------- Empty state ---------- */
.empty{
  text-align:center;padding:34px 22px;background:var(--card);border:1px dashed var(--line);
  border-radius:var(--radius);color:var(--ink-soft);
}
.empty__emoji{font-size:34px;}
.empty h3{font-size:18px;margin:10px 0 4px;color:var(--ink);}
.empty p{margin:0;font-size:14px;}

/* ---------- Bottom tab bar ---------- */
.tabbar{
  position:fixed;left:0;right:0;bottom:0;z-index:50;
  display:flex;justify-content:space-around;align-items:stretch;
  max-width:var(--maxw);margin:0 auto;
  height:var(--tab-h);padding:8px 8px calc(8px + env(safe-area-inset-bottom));
  background:rgba(251,247,239,.92);backdrop-filter:saturate(150%) blur(12px);
  border-top:1px solid var(--line);
}
.tabbar__item{
  flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  color:var(--ink-faint);font-size:10.5px;font-weight:600;letter-spacing:.01em;
  border-radius:12px;-webkit-tap-highlight-color:transparent;
}
.tabbar__item svg{width:23px;height:23px;}
.tabbar__item.is-active{color:var(--teal);}
.tabbar__item.is-active .tabbar__icon{transform:translateY(-1px);}
.tabbar__icon{transition:transform .15s ease;}

/* ---------- Login ---------- */
.auth{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 18px;}
.auth__card{
  width:100%;max-width:400px;background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:30px 26px 26px;
}
.brand{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:22px;}
.brand__mark{
  width:62px;height:62px;border-radius:19px;display:grid;place-items:center;color:#fff;font-size:30px;
  background:linear-gradient(140deg,#15A093,#0A5E56);box-shadow:var(--shadow);margin-bottom:12px;
}
.brand__name{font-family:var(--font-display);font-size:30px;font-weight:600;}
.brand__tag{font-size:14px;color:var(--ink-soft);}

/* ---------- Admin ---------- */
.admin-bar{
  position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:12px;
  padding:13px 18px;background:var(--ink);color:#fff;
}
.admin-bar a{color:#fff;}
.admin-bar__brand{font-family:var(--font-display);font-size:18px;font-weight:600;display:flex;align-items:center;gap:8px;}
.admin-bar__spacer{flex:1 1 auto;}
.admin-bar__link{font-size:13px;font-weight:600;opacity:.85;}
.admin-bar__link:hover{opacity:1;}
.admin-wrap{max-width:920px;margin:0 auto;padding:20px 18px 60px;}
.admin-nav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;}
.admin-nav a{
  font-size:13.5px;font-weight:600;padding:8px 14px;border-radius:11px;
  background:var(--card);border:1px solid var(--line);color:var(--ink);box-shadow:var(--shadow-sm);
}
.admin-nav a.is-active{background:var(--ink);color:#fff;border-color:var(--ink);}
.toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;}
.toolbar h1{font-size:26px;}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);background:var(--card);}
table.table{width:100%;border-collapse:collapse;font-size:14px;min-width:520px;}
table.table th{
  text-align:left;font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);
  font-weight:700;padding:12px 14px;border-bottom:1px solid var(--line);background:var(--paper);white-space:nowrap;
}
table.table td{padding:12px 14px;border-bottom:1px solid var(--line-soft);vertical-align:middle;}
table.table tr:last-child td{border-bottom:0;}
table.table td.actions{white-space:nowrap;}
table.table td.actions > *{display:inline-flex;vertical-align:middle;}
table.table td.actions > * + *{margin-left:7px;}
.tag{display:inline-block;font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--paper-2);color:var(--ink-soft);}
.tag--admin{background:var(--good-bg);color:var(--good);}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:20px;margin-bottom:18px;}
.panel h2{font-size:19px;margin-bottom:14px;}
.split{display:grid;grid-template-columns:1fr;gap:18px;}
.inline-form{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;}
.danger-link{color:var(--bad);font-weight:600;font-size:13px;background:none;border:none;cursor:pointer;padding:0;}

/* ---------- Reveal animation ---------- */
@keyframes rise{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
.reveal{animation:rise .5s cubic-bezier(.2,.7,.3,1) both;}
.reveal:nth-child(2){animation-delay:.04s;}
.reveal:nth-child(3){animation-delay:.08s;}
.reveal:nth-child(4){animation-delay:.12s;}
.reveal:nth-child(5){animation-delay:.16s;}
.reveal:nth-child(6){animation-delay:.2s;}
.reveal:nth-child(7){animation-delay:.24s;}
.reveal:nth-child(8){animation-delay:.28s;}

/* ---------- Desktop niceties ---------- */
@media (min-width:680px){
  .stat-grid{grid-template-columns:repeat(4,1fr);}
  .tile-grid{grid-template-columns:repeat(3,1fr);}
  .people{grid-template-columns:1fr 1fr;}
  .form-grid{gap:0 18px;}
  .split{grid-template-columns:1fr 1fr;}
  .tabbar{
    bottom:16px;border-radius:20px;border:1px solid var(--line);
    box-shadow:var(--shadow);left:50%;right:auto;transform:translateX(-50%);
    width:min(var(--maxw),calc(100% - 32px));
  }
  .chat-form{bottom:calc(var(--tab-h) + 26px);}
}

@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important;}
}
