/* Chicago 2026. One theme, one cascade. Mobile <768; tablet 768–1023; desktop 1024+. */
:root {
  color-scheme:light;
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-6:24px; --space-8:32px;
  --bg:#f7f9fb; --surface-0:#f0f4f7; --surface-1:#fff; --surface-2:#edf2f6; --surface-3:#e3eaf0;
  --text:#334655; --text-strong:#122c3f; --muted:#566a79; --soft:#bac7d1;
  --line:#e0e7ed; --line-strong:#c5d2dc;
  --teal:#12647c; --teal-dim:#125970; --teal-soft:#e8f2f5;
  --coral:#ad3d30; --coral-soft:#faece9; --red:var(--coral); --red-soft:var(--coral-soft);
  --gold:#855c1c; --gold-soft:#f8f1e5; --blue:#356581; --blue-soft:#eaf1f7;
  --green:#287052; --green-soft:#e8f3ed; --purple:#68558b; --purple-soft:#f0ecf7;
  --sans:"Manrope",system-ui,sans-serif; --serif:"Fraunces",Georgia,serif;
  --radius-md:8px; --radius-lg:12px; --radius-xl:16px;
  --shadow:0 4px 16px #132e4006; --shadow-lg:0 20px 70px #132e4026;
}
*,*::before,*::after { box-sizing:border-box; }
html { background:var(--bg); scroll-padding-top:16px; }
body { margin:0; color:var(--text); font:1rem/1.55 var(--sans); -webkit-font-smoothing:antialiased; }
button,input,select,textarea { font:inherit; }
button,a,input,select,summary { -webkit-tap-highlight-color:transparent; }
button,a,summary { touch-action:manipulation; }
button,summary { cursor:pointer; }
a { color:inherit; }
button { color:inherit; }
img { max-width:100%; }
:focus-visible { outline:3px solid #1c80a0; outline-offset:3px; }
[hidden] { display:none!important; }
.svg-defs { position:absolute; }
.skip-link { position:fixed; top:-100px; left:16px; z-index:10000; background:white; padding:12px; }
.skip-link:focus { top:12px; }
.app-shell { max-width:1140px; margin:auto; padding:16px 12px calc(112px + env(safe-area-inset-bottom)); }
.app-header { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
.header-copy { min-width:0; }
.app-header h1 { margin:0; font-size:1rem; letter-spacing:-.025em; line-height:1.4; }
.eyebrow,.section-kicker { margin:0 0 8px; color:var(--teal); font-size:.75rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.app-header .eyebrow { color:var(--muted); font-size:.75rem; margin-bottom:4px; letter-spacing:.04em; }
.flag-stars { display:inline-flex; gap:4px; align-items:center; vertical-align:middle; }
.header-copy .flag-stars { display:none; }
.chicago-star { width:16px; height:16px; fill:var(--coral); flex:none; }
.day-star { width:12px; height:12px; }
.header-actions { display:flex; flex-direction:column; gap:4px; flex:none; }
button.ghost-btn { min-height:44px; padding:8px; font-size:.75rem; }
.app-nav { display:flex; position:fixed; inset:auto 0 0; z-index:100; padding:8px 8px calc(8px + env(safe-area-inset-bottom)); background:#fffffff5; backdrop-filter:blur(16px); border-top:1px solid var(--line); gap:4px; }
.nav-tab { display:flex; flex:1; flex-direction:column; align-items:center; justify-content:center; gap:4px; min-height:52px; border:0; border-radius:8px; padding:8px 2px; color:var(--muted); background:transparent; font-size:.75rem; font-weight:600; }
.nav-tab.active { background:var(--teal-soft); color:var(--teal); }
.nav-icon { width:20px; height:20px; flex:none; }
.app-view { margin-top:16px; }
.page,.list,.expense-grid,.settlement-panel,.money-layout { display:grid; gap:12px; }
.card,.table-card,.timeline-card,.mini-card { padding:16px; border:1px solid var(--line); border-radius:12px; background:white; min-width:0; }
.section-title { font-family:var(--serif); font-size:1.4rem; line-height:1.3; font-weight:500; letter-spacing:-.03em; margin:0 0 12px; color:var(--text-strong); }
.section-copy,.supporting-copy,.metric-note { margin:0; font-size:.875rem; color:var(--muted); line-height:1.6; }
.two-col,.three-col,.four-col,.summary-grid { display:grid; grid-template-columns:1fr; gap:12px; }
.stats-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border:1px solid var(--line); background:white; border-radius:12px; overflow:hidden; }
.metric-card { padding:16px; min-width:0; border-bottom:1px solid var(--line); }
.metric-card:nth-child(odd) { border-right:1px solid var(--line); }
.metric-card:nth-last-child(-n+2) { border-bottom:0; }
.metric-label { font-size:.75rem; font-weight:700; letter-spacing:.065em; text-transform:uppercase; margin:0 0 8px; color:var(--muted); }
.metric-value { margin:0 0 4px; font-size:1.7rem; line-height:1.3; font-weight:600; letter-spacing:-.045em; color:var(--text-strong); font-variant-numeric:tabular-nums; }
.metric-value > .money-pair { font-size:1.1rem; }
.metric-value.teal,.money-value.teal { color:var(--teal); }
.metric-value.coral,.money-value.coral { color:var(--coral); }
.metric-value.gold { color:var(--gold); }
.money-pair { display:inline-flex; flex-direction:column; gap:2px; max-width:100%; font-variant-numeric:tabular-nums; vertical-align:top; }
.money-secondary { color:var(--muted); font-size:.8125rem; font-weight:500; letter-spacing:0; line-height:1.5; }
.number { color:var(--text-strong); font-variant-numeric:tabular-nums; }
.primary-btn,.chip-btn,.link-btn,.ghost-btn,.mini-btn,.participant-pill,.filter-chip { display:inline-flex; align-items:center; justify-content:center; min-height:44px; border:1px solid var(--line-strong); border-radius:8px; background:#fff; color:var(--text); padding:8px 12px; text-decoration:none; font-size:.875rem; font-weight:600; line-height:1.3; }
.primary-btn { background:var(--text-strong); color:white; border-color:var(--text-strong); }
.link-btn { color:var(--teal); border-color:transparent; background:transparent; }
.ghost-btn { background:transparent; border-color:var(--line); }
.mini-btn { font-size:.8125rem; }
.chip-btn.active,.participant-pill.active { background:var(--teal-soft); border-color:var(--teal); color:var(--teal); }
.inline-actions,.item-actions,.pill-row,.timeline-actions,.participant-pills,.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.pill,.tag { display:inline-flex; align-items:center; gap:4px; border-radius:6px; padding:4px 8px; font-size:.75rem; font-weight:600; background:var(--surface-0); }
.pill.teal,.pill.blue { background:var(--teal-soft); color:var(--teal); }
.pill.coral,.pill.red { background:var(--coral-soft); color:var(--coral); }
.pill.gold { background:var(--gold-soft); color:var(--gold); }
.hero-card { position:relative; isolation:isolate; overflow:hidden; border-radius:16px; background:#102c3f; padding:24px 20px 36px; min-height:240px; }
.hero-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:60% center; z-index:-2; }
.hero-card::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#102c3ff5,#102c3fbb 55%,#102c3f38); z-index:-1; }
.hero-content { max-width:620px; }
.hero-card .eyebrow { display:inline-block; border:1px solid #ffffff4d; padding:4px 12px; border-radius:24px; color:white; background:#102c3f70; font-size:.75rem; margin-bottom:12px; }
.hero-dates { color:#e2edf3; font-size:.8125rem; margin:0; }
.hero-title { color:white; font-family:var(--serif); font-weight:500; font-size:3.5rem; letter-spacing:-.06em; line-height:1.05; margin:8px 0; }
.hero-period { color:#acd3e0; }
.hero-body { color:#e2edf3; margin:0; font-size:1rem; }
.hero-actions { margin-top:16px; }
.hero-actions .primary-btn { background:white; color:var(--text-strong); border-color:white; width:100%; justify-content:space-between; }
.hero-actions .chip-btn { background:#ffffff12; color:white; border-color:#ffffff66; flex:1; font-size:.8125rem; }
.hero-caption { position:absolute; right:16px; bottom:12px; font-size:.75rem; color:white; letter-spacing:.025em; }
.weekend-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.weekend-heading .section-title { margin:0; }
.weekend-heading .link-btn { flex:none; padding-right:0; }
.day-card { display:grid; grid-template-columns:72px minmax(0,1fr); padding:0; overflow:hidden; }
.day-photo { display:block; width:72px; height:100%; object-fit:cover; }
.day-card-body { padding:16px; }
.day-number { font-family:var(--serif); font-size:1rem; margin:0 0 4px; color:var(--teal); }
.day-number span { font-family:var(--sans); font-size:.75rem; margin-left:8px; color:var(--muted); letter-spacing:.04em; }
.day-card-title { font-family:var(--serif); font-size:1.4rem; font-weight:500; margin:0 0 8px; }
.day-card .metric-value { font-size:1rem; }
.day-card-link { display:flex; align-items:center; justify-content:space-between; border:0; border-top:1px solid var(--line); background:transparent; color:var(--teal); padding:8px 0; margin-top:8px; min-height:44px; width:100%; font-size:.875rem; font-weight:600; }
.prog-track { height:4px; border-radius:4px; background:var(--surface-3); overflow:hidden; }
.prog-fill { height:100%; border-radius:4px; background:var(--teal); }
.list-item,.expense-row,.note-box,.address-box { border:1px solid var(--line); background:var(--bg); border-radius:8px; padding:12px; min-width:0; }
.list-item { display:grid; gap:12px; }
.list-title,.booking-title,.person-name { margin:0 0 4px; font-size:1rem; color:var(--text-strong); font-weight:700; }
.expense-row { display:grid; gap:8px; }
.split-line { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; }
.empty { padding:16px; border:1px solid #d5e5eb; background:var(--teal-soft); color:var(--teal); border-radius:8px; font-size:.875rem; line-height:1.6; }
.who-grid { display:grid; gap:16px; }
.who-row { display:flex; flex-direction:column; gap:4px; align-items:flex-start; }
.who-mail { font-size:.875rem; text-decoration:none; overflow-wrap:anywhere; }
.who-mail:hover { text-decoration:underline; }
/* Checklist: schedule is a deliberate action, never an accidental picker while scrolling. */
.checklist-page { padding-bottom:64px; }
.filter-row { display:flex; flex-wrap:wrap; gap:4px; }
.filter-chip { padding:8px 10px; background:var(--surface-0); border-color:transparent; font-size:.8125rem; }
.filter-chip.active { background:var(--text-strong); color:white; }
.filter-count { margin-left:6px; opacity:.75; font-size:.75rem; }
.add-activity-btn { position:fixed; right:16px; bottom:calc(88px + env(safe-area-inset-bottom)); z-index:102; border-radius:24px; box-shadow:var(--shadow-lg); margin:0; }
.day-block { display:grid; gap:8px; }
.day-head { display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:8px 0; }
.day-head-title { display:flex; gap:8px; align-items:center; margin:0; color:var(--text-strong); font:500 1.3rem var(--serif); }
.day-head-meta { font-size:.8125rem; color:var(--muted); }
.day-head-spacer { flex:1; }
.check-item { display:grid; grid-template-columns:44px minmax(0,1fr); gap:8px; padding:12px; background:white; border:1px solid var(--line); border-radius:12px; }
.check-item.is-anchor { border-left:3px solid var(--coral); }
.check-item.is-optional { border-left:3px solid var(--soft); }
.check-item.done { background:var(--surface-0); }
.check-item.done .check-title { text-decoration:line-through; color:var(--muted); }
.check-box { display:grid; place-items:center; width:44px; height:44px; border:1px solid var(--line-strong); border-radius:50%; background:white; color:transparent; padding:0; font-size:1rem; }
.check-box.on { background:var(--teal); border-color:var(--teal); color:white; }
.check-main { min-width:0; }
.activity-heading { display:flex; align-items:center; gap:12px; justify-content:space-between; }
.check-title { margin:0; font-size:1rem; line-height:1.4; color:var(--text-strong); font-weight:700; letter-spacing:-.015em; }
.type-icon { display:inline-flex; color:var(--teal); flex:none; }
.ti { width:20px; height:20px; }
.activity-meta { margin:4px 0 0; color:var(--muted); font-size:.875rem; }
.activity-meta > span { margin:0 3px; }
.anchor-label { color:var(--coral); }
.activity-cost { display:flex; flex-wrap:wrap; gap:6px; align-items:baseline; margin-top:8px; color:var(--muted); font-size:.75rem; }
.activity-cost .money-pair { flex-direction:row; flex-wrap:wrap; gap:6px; font-size:.8125rem; }
.activity-cost .money-secondary { font-size:.8125rem; }
.activity-cost .money-secondary::before { content:"· "; }
.activity-toolbar { margin-top:8px; }
.schedule-trigger { display:inline-flex; flex-wrap:wrap; align-items:center; gap:12px; min-height:44px; border:1px solid var(--line); background:var(--bg); border-radius:8px; padding:8px 12px; font-size:.875rem; font-weight:600; color:var(--text-strong); }
.schedule-trigger-label { color:var(--teal); font-size:.8125rem; font-weight:500; }
.schedule-note { margin:8px 0 0; color:var(--gold); font-size:.8125rem; line-height:1.5; }
.activity-more summary,.activity-details summary { width:fit-content; min-height:44px; padding:12px 0 8px; cursor:pointer; font-size:.8125rem; color:var(--muted); }
.activity-more .check-detail { margin:8px 0 12px; font-size:.9375rem; line-height:1.6; }
.activity-photo { display:block; width:128px; height:88px; object-fit:cover; border-radius:8px; margin:8px 0; }
.delete-btn { color:var(--coral); }
.warn-box { padding:12px 16px; border:1px solid #e6dac4; border-left:3px solid var(--gold); border-radius:8px; background:var(--gold-soft); font-size:.875rem; }
.warn-box summary { font-weight:600; min-height:32px; padding:4px 0; cursor:pointer; }
.warn-box .metric-label { margin-top:12px; color:var(--gold); }
.warn-box p { margin:8px 0 0; line-height:1.6; }
/* Flight details live in Bookings; Home gets one compact link. */
.flight-quickbar { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; padding:16px; text-align:left; background:white; border:1px solid var(--line); border-radius:12px; color:var(--text); font-size:.875rem; }
.flight-quickbar > span:first-child { display:grid; gap:4px; }
.flight-quickbar strong { color:var(--text-strong); }
.flight-quickbar > span:last-child { flex:none; color:var(--teal); }
.flight-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.flight-heading .section-title { margin:0; }
.flight-grid { display:grid; gap:16px; margin-top:16px; }
.flight-leg + .flight-leg { border-top:1px solid var(--line); padding-top:16px; }
.flight-route { display:grid; grid-template-columns:1fr 32px 1fr; gap:12px; align-items:center; margin:8px 0; }
.flight-route > div { display:grid; gap:4px; }
.flight-route strong { color:var(--text-strong); font-size:1.4rem; letter-spacing:.04em; }
.flight-route time { font-size:1rem; font-weight:600; color:var(--text-strong); }
.flight-route span:not(.flight-arrow) { font-size:.8125rem; color:var(--muted); }
.flight-arrow { font-size:1.4rem; color:var(--teal); }
.flight-other { border-top:1px solid var(--line); padding-top:12px; margin-top:16px; }
.flight-other summary { min-height:44px; padding:8px 0; font-size:.9375rem; font-weight:600; }
/* Money: balances precede history, and entry is a disclosure. */
.expense-composer > summary { min-height:44px; display:list-item; padding:8px 0; color:var(--teal); font-size:1rem; font-weight:700; }
.expense-composer[open] > summary { margin-bottom:16px; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.field { display:grid; gap:6px; min-width:0; font-size:.875rem; color:var(--text); }
.field label { font-size:.8125rem; font-weight:600; }
.field input,.field select,.field textarea { width:100%; min-width:0; min-height:44px; border:1px solid var(--line-strong); border-radius:8px; padding:10px; color:var(--text-strong); background:var(--bg); font-size:1rem; }
.field textarea { min-height:96px; resize:vertical; }
.field input[readonly] { color:var(--muted); }
.balance-list { display:grid; }
.balance-person { border-top:1px solid var(--line); padding:16px 0; min-width:0; }
.balance-person:last-child { padding-bottom:0; }
.balance-person-header { display:flex; align-items:center; gap:8px; }
.balance-avatar { display:grid; place-items:center; width:36px; height:36px; flex:none; background:var(--teal-soft); color:var(--teal); border-radius:50%; font-weight:700; font-size:.875rem; }
.balance-person-header h4 { margin:0; font-size:1rem; color:var(--text-strong); }
.balance-person-header p { margin:0; font-size:.75rem; color:var(--muted); }
.balance-direction { margin-left:auto; padding:4px 8px; background:var(--teal-soft); color:var(--teal); font-size:.75rem; border-radius:6px; white-space:nowrap; }
.balance-person--pay .balance-direction { background:var(--coral-soft); color:var(--coral); }
.balance-person--even .balance-direction { background:var(--surface-0); color:var(--muted); }
.balance-amount { margin:12px 0 4px 44px; font-size:1.5rem; color:var(--text-strong); font-weight:600; letter-spacing:-.04em; }
.balance-breakdown summary { margin-left:44px; min-height:44px; padding:12px 0 8px; font-size:.8125rem; color:var(--muted); width:fit-content; }
.balance-breakdown dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:0; padding:12px; background:var(--bg); border-radius:8px; }
.balance-breakdown dt { font-size:.75rem; color:var(--muted); margin-bottom:4px; }
.balance-breakdown dd { margin:0; font-size:.875rem; }
.balance-breakdown .money-secondary { font-size:.75rem; }
.transfer-list { display:grid; gap:8px; padding:0; margin:16px 0 0; list-style:none; }
.transfer-step { padding:12px; background:var(--bg); border:1px solid var(--line); border-radius:8px; }
.transfer-route { display:flex; flex-wrap:wrap; gap:8px; font-size:.9375rem; font-weight:600; color:var(--text-strong); }
.transfer-route > span:nth-child(2) { color:var(--muted); }
.transfer-amount { margin-top:8px; font-size:1.2rem; font-weight:600; }
/* Dialogs and access screen. */
#activity-dialog { width:calc(100% - 16px); max-width:560px; max-height:92dvh; overflow:auto; margin:auto auto 8px; border:1px solid var(--line); border-radius:16px; padding:0; background:white; color:var(--text); box-shadow:var(--shadow-lg); }
#activity-dialog::backdrop { background:#102c3f85; backdrop-filter:blur(4px); }
.activity-form { display:grid; gap:16px; padding:20px 16px; }
.editor-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.editor-heading h2 { margin:0; font:500 1.5rem var(--serif); }
.editor-schedule { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.editor-footer { position:sticky; bottom:-20px; display:flex; justify-content:flex-end; gap:8px; padding:12px 0; background:white; }
.trip-feedback:empty { display:none; }
.trip-feedback { position:fixed; bottom:calc(152px + env(safe-area-inset-bottom)); left:50%; transform:translateX(-50%); width:max-content; max-width:calc(100% - 24px); border-radius:8px; background:var(--text-strong); color:white; padding:12px; z-index:110; font-size:.8125rem; pointer-events:none; }
#lock-screen { display:none; position:fixed; inset:0; z-index:9999; align-items:center; justify-content:center; padding:16px; overflow:auto; background:linear-gradient(#102c3fdb,#102c3fed),url('assets/theatre.jpg') center/cover; }
.lock-card { display:flex; flex-direction:column; align-items:center; width:min(420px,100%); padding:32px 24px; border:1px solid #ffffffaa; border-radius:16px; background:#fffffff7; box-shadow:var(--shadow-lg); }
.lock-overline,.lock-dates { font-size:.75rem; letter-spacing:.13em; margin:0 0 16px; color:var(--muted); }
.lock-icon { gap:8px; margin:0 0 16px; }
.lock-icon .chicago-star { width:24px; height:24px; }
.lock-title { font:500 2.7rem/1.1 var(--serif); letter-spacing:-.05em; text-align:center; color:var(--text-strong); margin:0 0 16px; }
.lock-dates { color:var(--teal); }
.lock-sub { font-size:.875rem; color:var(--muted); text-align:center; margin:0 0 16px; }
#lock-form { display:grid; gap:8px; width:100%; }
.lock-input { width:100%; min-height:48px; padding:12px; background:var(--bg); border:1px solid var(--line-strong); border-radius:8px; color:var(--text-strong); font-size:1rem; }
.lock-btn { min-height:48px; border:0; border-radius:8px; padding:12px; background:var(--text-strong); color:white; font-weight:600; }
.password-toggle { justify-self:end; min-height:44px; border:0; background:transparent; color:var(--teal); font-size:.875rem; padding:8px; }
.lock-error { color:var(--coral); font-size:.875rem; margin:0 0 8px; }
@media(min-width:768px) {
  .app-shell { padding:24px 24px 64px; }
  .app-header { margin-bottom:16px; }
  .app-header h1 { font-size:1.25rem; }
  .header-actions { flex-direction:row; gap:8px; }
  button.ghost-btn { font-size:.8125rem; padding:8px 12px; }
  .header-copy .flag-stars { display:inline-flex; margin-left:8px; }
  .app-nav { position:static; padding:4px; border:1px solid var(--line); border-radius:12px; background:white; backdrop-filter:none; }
  .nav-tab { flex-direction:row; gap:8px; min-height:44px; font-size:.875rem; padding:8px 12px; }
  .page,.two-col,.three-col,.four-col,.settlement-panel,.money-layout { gap:16px; }
  .card,.mini-card,.table-card { padding:20px; }
  .hero-card { padding:28px 32px; min-height:260px; }
  .hero-title { font-size:4rem; }
  .hero-actions .primary-btn { width:auto; gap:20px; }
  .hero-actions .chip-btn { flex:none; }
  .three-col,.four-col { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .day-cards { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .day-card { display:block; padding:0; }
  .day-photo { width:64px; height:64px; float:right; border-radius:8px; margin:16px 16px 0 8px; }
  .day-card-body { padding:16px; }
  .who-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .flight-grid { grid-template-columns:1fr 1fr; }
  .flight-leg + .flight-leg { border-top:0; border-left:1px solid var(--line); padding:0 0 0 16px; }
  .balance-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 24px; }
  .balance-person:last-child { padding-bottom:16px; }
  .list-item { grid-template-columns:minmax(0,1fr) auto; align-items:center; }
  .checklist-page { max-width:880px; margin:auto; padding-bottom:0; }
  .check-item { padding:16px; gap:12px; }
  .add-activity-btn { position:static; margin:12px 0; border-radius:8px; box-shadow:none; }
  #activity-dialog { margin:auto; }
  .trip-feedback { bottom:24px; }
}
@media(min-width:1024px) {
  .app-shell { padding:32px 24px 80px; }
  .stats-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .metric-card { border-bottom:0; border-right:1px solid var(--line); }
  .metric-card:last-child { border-right:0; }
  .metric-value > .money-pair { font-size:1.3rem; }
  .two-col { grid-template-columns:1.15fr 1fr; }
  .three-col { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .four-col { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .form-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .money-layout { grid-template-columns:1.2fr 1fr; align-items:start; }
  .balance-list { grid-template-columns:1fr; }
}
@media(hover:hover) {
  .nav-tab:hover,.mini-btn:hover,.chip-btn:hover,.ghost-btn:hover,.schedule-trigger:hover { background:var(--surface-2); }
  .primary-btn:hover { background:var(--teal); }
  .check-item:hover { border-color:var(--line-strong); }
}
@media(prefers-reduced-motion:no-preference) {
  button,.check-item { transition:background .15s ease,border-color .15s ease; }
  .prog-fill { transition:width .2s ease; }
  #activity-dialog[open] { animation:dialog-in .18s ease-out; }
  @keyframes dialog-in { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
}
.note-section > summary { min-height:44px; padding:8px 0; font-weight:600; color:var(--text-strong); }
.copy-btn { margin-top:12px; }
.flight-location-photo { float:right; width:64px; height:44px; object-fit:cover; border-radius:6px; margin:0 0 8px 12px; }
.flight-leg .flight-route { clear:both; }
