/* Quiet dark surfaces, with gloss reserved for actions and the small artwork. */
:root {
  --cream:#111b16; --paper:#1b2921; --ink:#f0f5eb; --muted:#b8c7b8;
  --line:#35493b; --shadow:0 8px 24px #0000001f;
  font-family:Fredoka,'Trebuchet MS',sans-serif;
}
body { background:#111b16; }
body::before,body::after,.hero::before,.hero::after { display:none; }
.app-shell { padding-top:20px; }
.sidebar { border:1px solid #35493b; border-radius:22px; background:#1b2921; box-shadow:none; padding:12px 22px 16px; }
.sidebar>.brand { height:52px; width:155px; }
.brand-jelly { width:155px; filter:none; }
.profile small { color:#b8c7b8; }
.sidebar>.install-button { background:transparent; border-color:#4a604a; box-shadow:none; }
nav { gap:8px; }
nav a,nav a:nth-child(n) { color:#d4dfce; border:1px solid transparent; border-radius:14px; background:transparent; box-shadow:none; min-height:56px; padding:10px 8px; }
nav a::before { display:none; }
nav a:hover { color:#f3f8ed; background:#2c3c2e; box-shadow:none; transform:translateY(-2px); }
nav a.active { color:#e1f9c1; background:#31432b; border-color:#5d7944; outline:0; box-shadow:none; }
nav a>span { filter:none; }
nav a b { font-size:14px; font-weight:500; }
.nav-art { width:30px; height:30px; }
nav a>span { width:30px; flex-basis:30px; }
main { padding-top:30px; }
.home-welcome { margin-bottom:22px; }
.home-welcome>span:first-child { font:600 19px Fredoka,sans-serif; }
.home-welcome>span:last-child { color:#b8c7b8; }
.hero { min-height:0; padding:36px 28px 28px; border:1px solid #405a3b; border-radius:26px; background:#203424; box-shadow:none; }
.hero-content { max-width:720px; padding:0; }
.hero .eyebrow { display:inline-block; color:#c9dcbd; border:0; border-radius:0; background:none; box-shadow:none; padding:0; margin:0 0 18px; font:600 12px/1.5 Fredoka,sans-serif; }
.hero .wordmark-title { width:310px; max-width:90%; margin:0 auto 20px; }
.wordmark-title img { filter:none; }
.page-heading h1,.section-heading h2,.date-heading h2,.hero .lodge-title,.hero .lodge-title span,.join-card h1,.dialog-heading h2 {
  font-weight:550; color:#eff6e7; -webkit-text-fill-color:currentColor; background:none; filter:none; text-shadow:none; -webkit-text-stroke:0;
}
.hero .lodge-title { font:600 clamp(30px,3.8vw,44px)/1.15 Fredoka,sans-serif; margin:0 0 14px; padding:0; }
.hero .lodge-title span { color:#c5e992; }
.hero p { color:#cad8c4; font:400 16px/1.65 Fredoka,sans-serif; margin-bottom:22px; }
.hero-spark,.hero .gas-scene,.hero .floating-note { display:none; }
.hero .vent-button { position:static; display:inline-flex; align-items:center; background:none; border:0; border-radius:10px; box-shadow:none; color:#c4d8b5; padding:8px 12px; margin:16px auto 0; font:500 12px Fredoka,sans-serif; }
.crew-chips { gap:10px; margin-bottom:24px; }
.crew-chips>span:nth-child(n) { color:#e4efdb; background:#2d422e; border:1px solid #4e6844; border-radius:13px; transform:none; box-shadow:none; padding:7px 11px; font:500 14px Fredoka,sans-serif; min-width:96px; }
.crew-chips .member-art { width:32px; height:32px; flex-basis:32px; }
.button { border-radius:15px; min-height:48px; padding:12px 19px; font-size:15px; }
.primary,.hero .button,.join-card .primary,dialog .primary { border:1px solid #e4f9c5; border-radius:15px; box-shadow:inset 0 2px 0 #ffffffe6,inset 0 -2px 0 #60893644,0 3px 0 #071b0c; }
.primary::before,.secondary::before { height:30%; opacity:.5; }
.primary:hover,.hero .button:hover,.join-card .primary:hover,dialog .primary:hover { transform:translateY(-2px); box-shadow:inset 0 2px 0 #fff,0 5px 0 #071b0c; }
.secondary,.card .secondary,dialog .secondary { color:#e5f2d7; background:#2b402b; border:1px solid #536e43; box-shadow:none; border-radius:15px; }
.secondary::before { display:none; }
.page-heading { margin-bottom:26px; }
.page-heading h1 { font-size:42px; padding:0; }
.page-heading p { color:#b8c7b8; }
.page-heading .eyebrow { color:#b6d29a; font-family:Fredoka,sans-serif; }
.section-heading h2 { font-size:27px; padding:0; }
.date-heading h2 { font-size:29px; padding:0; }
.trip-strip { gap:0; margin:24px 0 32px; padding:21px 8px; background:#1b2921; border:1px solid #35493b; border-radius:20px; box-shadow:none; }
.strip-cell:nth-child(n) { min-height:76px; padding:8px 16px!important; color:#eef5e7; background:none; border:0!important; border-right:1px solid #35493b!important; border-radius:0; box-shadow:none; transform:none; }
.strip-cell:last-child { border-right:0!important; }
.strip-cell:nth-child(n) strong { color:#eef5e7; font-size:21px; text-shadow:none; font-weight:550; }
.strip-cell:nth-child(n) small { color:#b8c7b8; }
.strip-cell:nth-child(n) .strip-icon { width:34px; height:34px; color:#c5e992; background:#2e412b; border:0; border-radius:10px; box-shadow:none; font-size:19px; }
.card,.card-tint,.plan,.idea:nth-child(n),.checklist,.money-card:nth-child(n),.balance-card:nth-child(n),.progress-card,.section-intro,.empty,.join-card,dialog {
  --candy-ink:#eff5e8; --candy-copy:#bdccba; --candy-edge:#35493b;
  color:#eff5e8; background:#1b2921; border:1px solid #35493b; border-radius:21px; box-shadow:none; transform:none;
}
.card::before,.idea::before,.join-card::before { display:none; }
.card,.idea { padding:25px; }
.card h2,.card h3,.plan h3,.idea h3,.empty h3,.money-card strong,.balance-card strong,.balance-card b,.progress-copy strong,.check-main strong { text-shadow:none; }
.card h3,.mini-heading h3 { font-size:24px; font-weight:550; }
.card .section-heading h2 { font-size:26px; }
.mini-heading { gap:12px; margin-bottom:20px; }
.mini-heading>span,.quick-link>span { filter:none; }
.ui-art { width:36px; height:36px; }
.mini-date { color:#d9edc5; background:#2e412b; border:0; box-shadow:none; border-radius:11px; }
.mini-date small { color:#d9edc5; }
.mini-row,.expense-row,.transfer,.check-row { border-color:#35493b; }
.card .text-button,.empty .text-button { color:#c5e992; text-decoration:none; }
.idea h3 { font-size:28px; }
.idea-tag,.idea:nth-child(n) .idea-tag { color:#b6c9a6; font-weight:500; }
.section-intro { padding:18px 22px; color:#cddfc2; }
.plan-time { color:#c5e992; }
.plan-place { color:#c3d6b4; }
.quick-links { gap:15px; }
.quick-link:nth-child(n) { color:#eff5e8; border:1px solid #35493b; border-radius:19px; background:#1b2921; box-shadow:none; transform:none; padding:20px; }
.quick-link:hover { background:#24372a; transform:translateY(-2px); }
.quick-link:nth-child(n) strong { color:#eff5e8; font-size:17px; font-weight:550; }
.quick-link:nth-child(n) small { color:#bdccba; }
.quick-link>b { color:#c5e992; }
.check-toggle { background:#122016; border:1px solid #6a8657; border-radius:10px; box-shadow:none; }
.check-row.done .check-toggle { box-shadow:none; border-width:1px; }
.check-row.done strong { color:#a9bea2; text-shadow:none; }
.filter,.owner-pill,.vote { color:#d9eaca; background:#2c3f29; border:1px solid #4d6840; box-shadow:none; border-radius:12px; }
.filter.active,.vote.voted { color:#e5f6d3; background:#3b552c; border-color:#93ba6c; outline:0; box-shadow:none; }
.owner-pill { border-radius:9px; }
.day-button { background:#1b2921; border:1px solid #40533a; border-radius:17px; box-shadow:none; }
.day-button.active { border-width:1px; box-shadow:inset 0 1px 0 #fff9,0 2px 0 #081c0f; }
.day-button small,.day-button em { color:#bfd0b7; }
.day-button.active small,.day-button.active em { color:#2c431e; }
.progress-track { background:#0e1c13; border:1px solid #4c6640; box-shadow:none; height:12px; }
.progress-track i { box-shadow:none; }
.tag { color:#cce3b8; background:#2c4029; border:1px solid #4b6540; box-shadow:none; border-radius:9px; }
.card .negative,.money-card .negative,.balance-card .negative { color:#ffc0cc; }
.card .positive,.money-card .positive,.balance-card .positive { color:#c5e992; }
.money-card:first-child strong { font-size:44px; }
.money-card strong { font-size:36px; }
.balance-card b { font-size:28px; }
.join-card { max-width:480px; padding:32px; }
.join-card .brand-jelly { width:230px; margin-bottom:18px; }
.join-card h1 { font-size:36px; }
.join-card .join-foot { color:#bdccba!important; }
.join-card .join-foot span { color:#c5e992; }
.join-art { display:none; }
dialog { padding:29px; }
.dialog-heading h2 { font-size:30px; }
input,textarea,select { color-scheme:dark; color:#eff5e8; background:#132017; border:1px solid #59714c; border-radius:12px; box-shadow:none; }
input::placeholder,textarea::placeholder { color:#a9bea2; }
select option { color:#eff5e8; background:#132017; }
fieldset { background:transparent; border:1px solid #4a6340; border-radius:13px; }
fieldset input { accent-color:#c5e992; }
.error { color:#ffc0cc; }
.card .icon-button:hover,.plan .icon-button:hover,.idea .icon-button:hover,.checklist .icon-button:hover,dialog .icon-button:hover { background:#35493b; }
.join-card .primary:focus-visible,dialog .button:focus-visible,.card button:focus-visible,.plan button:focus-visible,.idea button:focus-visible,.checklist button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline-color:#c5e992; }
@media(max-width:900px) {
  .strip-cell:nth-child(n) { padding:8px 12px!important; }
  .strip-cell:nth-child(n) strong { font-size:19px; }
}
@media(max-width:680px) {
  .app-shell { padding-top:12px; }
  .sidebar { border-radius:17px; padding:10px 14px; }
  .sidebar>.brand,.sidebar .brand-jelly { width:126px; height:auto; }
  nav { gap:4px; padding:8px 5px; border:1px solid #4b6240; border-radius:20px; background:#1b2921; box-shadow:0 3px 20px #0005; }
  nav a,nav a:nth-child(n) { min-height:66px; padding:6px 0; gap:3px; border-radius:12px; }
  nav a b { font-size:10px; line-height:1.2; }
  nav a>span { width:28px; flex-basis:28px; }
  .nav-art { width:28px; height:28px; }
  nav a.active { border-color:#789e55; }
  main { padding-top:24px; }
  .home-welcome>span:first-child { font-size:18px; }
  .home-welcome>span:last-child { font-size:12px; }
  .hero { min-height:0; padding:28px 18px 22px; border-radius:23px; }
  .hero .eyebrow { font-size:12px; margin-bottom:20px; }
  .hero .wordmark-title { width:235px; margin-bottom:22px; }
  .hero .lodge-title { font-size:30px; }
  .hero .lodge-title span { display:block; font-size:35px; }
  .hero p { font-size:15px; }
  .crew-chips { gap:6px; }
  .crew-chips>span:nth-child(n) { padding:6px 5px; min-width:0; gap:3px; font-size:13px; border-radius:10px; }
  .crew-chips .member-art { width:32px; height:32px; }
  .hero .button { font-size:15px; min-height:48px; padding:12px 20px; }
  .trip-strip { padding:10px 7px; margin:20px 0 28px; gap:0; }
  .strip-cell:nth-child(n) { padding:13px 8px!important; min-height:90px; gap:9px; }
  .strip-cell:nth-child(2) { border-right:0!important; }
  .strip-cell:nth-child(-n+2) { border-bottom:1px solid #35493b!important; }
  .strip-cell:nth-child(n) strong { font-size:18px; }
  .strip-cell:nth-child(n) .strip-icon { width:28px; height:30px; min-width:28px; font-size:17px; border-radius:9px; }
  .strip-cell:nth-child(n) small { font-size:12px; margin-top:6px; }
  .section-heading h2 { font-size:25px; }
  .section-heading { margin-bottom:18px; }
  .page-heading h1 { font-size:35px; }
  .page-heading p { font-size:16px; }
  .card,.idea { padding:23px 20px; }
  .card h3,.mini-heading h3 { font-size:23px; }
  .plan h3 { font-size:22px; }
  .quick-link:nth-child(n) { padding:18px; }
  .quick-link:nth-child(n) strong { font-size:17px; }
  .progress-copy strong { font-size:20px; }
  .progress-card { padding:23px 19px; }
  .balance-card { padding:18px; }
  .balance-card b { font-size:27px; }
  .money-card { padding:21px 17px; }
  .money-card strong { font-size:32px; }
  .join-card { padding:28px 24px; }
  dialog { padding:26px 22px; }
  .dialog-heading h2 { font-size:28px; }
  .main-wrap { padding-bottom:calc(112px + env(safe-area-inset-bottom)); }
  .toast { bottom:calc(112px + env(safe-area-inset-bottom)); }
}
@media(prefers-reduced-motion:reduce) {
  nav a:hover,.primary:hover,.hero .button:hover,.quick-link:hover { transform:none; }
}
