@font-face { font-family:Fredoka; src:url('/fredoka.ttf') format('truetype'); font-weight:300 700; font-style:normal; font-display:swap; }
:root { --cream:#111b18; --paper:#22332a; --ink:#f4ffed; --muted:#bbd5bd; --line:#45614b; --shadow:inset 0 2px 0 #eaffd326,inset 0 -3px 0 #07170a66,0 8px 0 #060f0a66,0 14px 24px #0002; font-family:Fredoka,'Trebuchet MS',sans-serif; }
body { background:radial-gradient(circle at 8% 25%,#425f2d40,transparent 33%),radial-gradient(circle at 95% 45%,#3a27533d,transparent 32%),#111b18; }
body::before,body::after { content:''; position:fixed; width:160px; height:160px; border-radius:50%; pointer-events:none; z-index:-1; background:radial-gradient(circle at 29% 22%,#ffffff60 0%,#ffffff09 18%,#b7f49609 50%,#90d96014 70%,#b8ffad3b 85%,#213c26 96%); box-shadow:inset 0 3px 5px #dfffca3b,inset -12px -18px 20px #05130955; }
body::before { top:260px; left:-75px; transform:rotate(20deg); }
body::after { right:-60px; bottom:80px; width:220px; height:220px; }
h1,h2,h3,.brand,.button,nav a,.strip-cell strong { font-family:Fredoka,'Trebuchet MS',sans-serif; font-weight:650; letter-spacing:-.035em; }
.app-shell { display:block; padding-top:24px; }
.sidebar { position:relative; inset:auto; width:calc(100% - 64px); max-width:1180px; margin:0 auto; padding:12px 23px 21px; display:flex; flex-direction:row; flex-wrap:wrap; align-items:center; gap:8px 22px; border:2px solid #718c5e; border-radius:35px; background:linear-gradient(175deg,#4e67423d 0%,#31462c 1%,#203327 28%,#1a2b22 87%,#142319); box-shadow:inset 0 3px 0 #e9ffbd32,inset 0 -5px 0 #0b1b1266,0 9px 0 #050d0880,0 17px 30px #0003; z-index:20; }
.sidebar > .brand { display:flex; width:180px; flex-shrink:0; align-items:center; height:66px; }
.brand-jelly { width:180px; height:auto; display:block; object-fit:contain; filter:drop-shadow(0 3px 0 #081b0d66); }
.side-label,.side-note { display:none; }
.sidebar > .install-button { display:block; margin:0 5px 0 auto; padding:9px 12px; min-height:40px; color:#d8f5c7; font-size:12px; font-family:Fredoka,sans-serif; background:#17281a; border:1px solid #6c8850; border-radius:20px; box-shadow:inset 0 2px 0 #c5efa51a,0 3px 0 #09170b; }
.profile { display:flex; align-items:center; border:0; padding:0; gap:10px; min-width:158px; }
.profile strong { font-size:15px; font-weight:600; }
.profile small { font:10px Fredoka,sans-serif; color:#c5dcba; }
.avatar { width:39px; height:39px; color:#20390f; background:radial-gradient(circle at 30% 15%,#efffd8,#ceef85 55%,#7db64a); border:2px solid #d6f7a9; box-shadow:inset 0 2px 2px white,0 3px 0 #0a1b0d; }
nav { order:5; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px; width:100%; flex-basis:100%; margin-top:2px; }
nav a { --jelly-a:#e8ffba; --jelly-b:#a3d865; --jelly-edge:#6c9c3f; display:flex; flex-direction:row; justify-content:center; align-items:center; gap:8px; position:relative; overflow:hidden; padding:15px 8px; min-height:62px; color:#253d1a; font-size:15px; border:2px solid var(--jelly-edge); border-radius:23px; background:linear-gradient(180deg,#ffffffd9 0%,var(--jelly-a) 8%,var(--jelly-a) 24%,var(--jelly-b) 80%,var(--jelly-edge) 100%); box-shadow:inset 0 2px 0 #ffffffed,inset 0 -3px 1px #36542255,0 5px 0 #061009,0 8px 10px #0002; transition:transform .15s,box-shadow .15s; }
nav a::before { content:''; position:absolute; inset:4px 9px auto; height:40%; background:linear-gradient(#ffffffb3,#ffffff00); border-radius:40px 40px 65% 65%; pointer-events:none; }
nav a:nth-child(2) { --jelly-a:#ffe0ef; --jelly-b:#f499cb; --jelly-edge:#c7619d; color:#50233e; }
nav a:nth-child(3) { --jelly-a:#f1e8ff; --jelly-b:#bd9ef1; --jelly-edge:#8f69c5; color:#382750; }
nav a:nth-child(4) { --jelly-a:#d1fff8; --jelly-b:#7cd8cb; --jelly-edge:#39998d; color:#163f3a; }
nav a:nth-child(5) { --jelly-a:#fff5c2; --jelly-b:#eacd7e; --jelly-edge:#b69b4d; color:#453916; }
nav a:nth-child(6) { --jelly-a:#dceaff; --jelly-b:#93b5f1; --jelly-edge:#5d81c4; color:#213952; }
nav a b { position:relative; z-index:1; font-weight:600; }
nav a > span { position:relative; width:auto; font-size:23px; filter:drop-shadow(0 2px 0 #fff5); }
nav a:hover { color:inherit; background:linear-gradient(180deg,#ffffff,var(--jelly-a) 20%,var(--jelly-b) 85%,var(--jelly-edge)); transform:translateY(-3px) rotate(-1deg); box-shadow:inset 0 2px 0 #fff,0 8px 0 #061009,0 12px 20px #0003; }
nav a.active { color:inherit; background:linear-gradient(180deg,#ffffff,var(--jelly-a) 16%,var(--jelly-b) 86%,var(--jelly-edge)); border-color:#edffdf; outline:2px solid #aee876; outline-offset:3px; box-shadow:inset 0 2px 0 #fff,inset 0 -3px 0 #32512355,0 5px 0 #061009; }
.main-wrap { margin:0; width:100%; background:none; }
.topbar { display:none; }
main { max-width:1244px; padding:32px 32px 45px; min-height:calc(100vh - 260px); }
.home-welcome { display:flex; justify-content:space-between; align-items:center; gap:20px; margin:1px 9px 22px; color:#b8cfae; font-size:13px; }
.home-welcome > span:first-child { color:#ebf9dc; font-size:22px; font-weight:500; }
.hero { min-height:615px; padding:34px 35px 38px; text-align:center; overflow:hidden; border:2px solid #7ea65c; border-radius:48px 48px 65px 65px; background:radial-gradient(ellipse at 50% 55%,#4f74323d,transparent 65%),linear-gradient(175deg,#3d5939 0%,#223c2b 25%,#1e3528 78%,#142d20 100%); box-shadow:inset 0 4px 1px #e7ffba4d,inset 0 -8px 0 #0b211b66,0 10px 0 #07180d,0 22px 38px #0005; }
.hero::before { top:6px; left:28px; right:28px; width:auto; height:95px; border:0; border-radius:42px 42px 80% 80%; background:linear-gradient(#e9ffd529,#ffffff00); z-index:-1; }
.hero::after { content:''; position:absolute; width:130px; height:130px; right:-40px; top:120px; border-radius:50%; background:radial-gradient(circle at 30% 23%,#fff9,#ffffff14 22%,#ffb7df1a 65%,#e5b1e855 80%,#4c3a5c 94%); box-shadow:inset 0 2px 3px #f7d5ff88; pointer-events:none; }
.hero-content { width:100%; max-width:860px; margin:auto; z-index:3; }
.hero .eyebrow { font:500 11px Fredoka,sans-serif; letter-spacing:.1em; color:#dcf4cb; border:1px solid #839c5d; background:linear-gradient(#30492d,#1a301c); border-radius:22px; padding:10px 18px; margin:0 auto 0; box-shadow:inset 0 2px 0 #d1efaf1a,0 3px 0 #0b1b0d; }
.hero .wordmark-title { width:min(100%,870px); max-width:none; margin:-10px auto -12px; line-height:0; font-size:0; }
.wordmark-title img { width:100%; height:auto; display:block; filter:drop-shadow(0 9px 2px #03180766); }
.hero .lodge-title { position:relative; margin:0 0 14px; font:600 clamp(27px,3vw,41px)/1.15 Fredoka,sans-serif; letter-spacing:-.035em; color:#f5ffe4; text-shadow:0 3px 0 #152712; }
.lodge-title span { color:#ffa7d2; }
.hero p { max-width:none; color:#c9e4bf; font:400 16px/1.65 Fredoka,sans-serif; margin:0 auto 20px; }
.crew-chips { display:flex; justify-content:center; gap:10px; margin:0 auto 24px; flex-wrap:wrap; }
.crew-chips span { min-width:75px; padding:9px 13px; color:#203c15; background:linear-gradient(#f7ffdb,#c8e998 70%,#9fc767); border:2px solid #ddfcb8; border-radius:18px; font:500 14px Fredoka,sans-serif; box-shadow:inset 0 2px 0 #fff9,0 4px 0 #0b1a0d; transform:rotate(-4deg); }
.crew-chips span:nth-child(2) { color:#50243f; background:linear-gradient(#ffe9f4,#f1a7d2 75%,#c775ac); border-color:#ffd4eb; transform:rotate(3deg); }
.crew-chips span:nth-child(3) { color:#3c2b59; background:linear-gradient(#f2eaff,#bea3ec 75%,#9874cd); border-color:#e5d4ff; transform:rotate(-3deg); }
.crew-chips span:nth-child(4) { color:#153c3b; background:linear-gradient(#e5fffa,#8fdccf 75%,#5fb3aa); border-color:#c0fff0; transform:rotate(4deg); }
.button { position:relative; border-radius:22px; overflow:hidden; font-size:15px; font-weight:600; padding:15px 22px; min-height:52px; letter-spacing:0; }
.primary,.hero .button { color:#1d3513; border:2px solid #e8ffc4; background:linear-gradient(180deg,#fcfff0 0%,#e5ffb3 8%,#cced85 53%,#a7d35d 94%,#79a33b 100%); box-shadow:inset 0 3px 1px #fff,inset 0 -4px 0 #6a9f3655,0 6px 0 #071b0c,0 11px 18px #0003; }
.primary::before,.secondary::before { content:''; position:absolute; top:4px; left:12px; right:12px; height:40%; background:linear-gradient(#ffffff8c,#ffffff00); border-radius:25px 25px 65% 65%; pointer-events:none; }
.primary:hover,.hero .button:hover { transform:translateY(-3px) rotate(-1deg); box-shadow:inset 0 3px 0 #fff,0 9px 0 #071b0c,0 14px 20px #0004; }
.hero .button { font-size:16px; padding:15px 27px; min-height:54px; }
.secondary { color:#e3f8d7; background:linear-gradient(#567048,#344a2d 60%,#233a24); border:2px solid #8ba96d; box-shadow:inset 0 2px 0 #e4fbd04d,0 4px 0 #0b1b0d; }
.hero-spark { right:auto; left:7%; top:26%; color:#d9b8ff; font-size:55px; text-shadow:0 4px 0 #362c42; }
.floating-note { left:26px; right:auto; top:auto; bottom:49px; padding:18px; border:3px solid #ffe4f3; border-radius:28px; font:500 10px Fredoka,sans-serif; color:#48243c; background:linear-gradient(165deg,#fff3fc,#ffb6de 40%,#ec8bc1 90%); box-shadow:inset 0 4px 0 #fff9,inset 0 -4px 0 #ae4b8733,0 6px 0 #071a0e77; transform:rotate(-9deg); }
.floating-note span { font:600 27px Fredoka,sans-serif; margin-bottom:5px; }
.gas-scene { width:208px; height:225px; bottom:28px; right:4px; opacity:1; }
.gas-mascot { filter:drop-shadow(0 9px 2px #08130a66); }
.mascot-caption { bottom:12px; font:500 7px Fredoka,sans-serif; left:10%; color:#d1e8bd; }
.gas-mini-one { font-size:19px; }
.gas-mini-two { font-size:16px; }
.orbit-one { font-size:23px; }
.orbit-two { font-size:16px; }
.vent-button { right:17px; bottom:15px; padding:8px 13px; color:#e6ffd5; font:500 10px Fredoka,sans-serif; border:2px solid #9abf72; background:linear-gradient(#536d3e,#2d4828 72%,#1d321b); box-shadow:inset 0 2px 0 #d9f5af44,0 3px 0 #07150c; }
.trip-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; padding:0; margin:31px 0 39px; background:none; border:0; border-radius:0; box-shadow:none; }
.strip-cell { position:relative; min-height:110px; padding:20px!important; display:flex; align-items:center; gap:13px; border:2px solid #83aa60!important; border-radius:30px; color:#f1ffdf; background:linear-gradient(160deg,#426136,#2b472b 75%,#213b23); box-shadow:inset 0 3px 0 #ddffbe40,inset 0 -5px 0 #132e1a66,0 6px 0 #07180d; transform:rotate(-1deg); }
.strip-cell:nth-child(2) { border-color:#b98ab3!important; background:linear-gradient(160deg,#624460,#443045 75%,#302232); transform:rotate(1deg); }
.strip-cell:nth-child(3) { border-color:#9393d3!important; background:linear-gradient(160deg,#4d4a70,#34364f 75%,#24273e); transform:rotate(-1.5deg); }
.strip-cell:nth-child(4) { border-color:#7bb8b0!important; background:linear-gradient(160deg,#37665e,#23483e 75%,#19392f); transform:rotate(1deg); }
.strip-cell strong { color:#edffdb; font-size:20px; line-height:1.1; }
.strip-cell small { color:#ccdfbe; font-size:11px; margin-top:8px; }
.strip-cell:nth-child(2) strong { color:#ffe1f1; }
.strip-cell:nth-child(2) small { color:#ebc7e4; }
.strip-cell:nth-child(3) strong { color:#eee5ff; }
.strip-cell:nth-child(3) small { color:#d5cfee; }
.strip-cell:nth-child(4) small { color:#c0e8dd; }
.strip-icon,.strip-cell:nth-child(n) .strip-icon { flex-shrink:0; width:42px; height:42px; font-size:24px; border-radius:17px; color:#253a1a; background:linear-gradient(#f7ffe4,#cde99d 62%,#99c16c); border:1px solid #e2ffc8; box-shadow:inset 0 2px 0 #fff,0 3px 0 #08190d55; }
.strip-cell:nth-child(2) .strip-icon { background:linear-gradient(#fff0fa,#edabd7 70%,#ce86bb); border-color:#ffdaee; color:#45233e; }
.strip-cell:nth-child(3) .strip-icon { background:linear-gradient(#f5efff,#bfaae8 70%,#9c83c7); border-color:#e1d3ff; color:#392654; }
.strip-cell:nth-child(4) .strip-icon { background:linear-gradient(#e5fff9,#9cded0 70%,#77b5a9); border-color:#d0fff2; color:#213d35; }
.section-heading { margin:0 5px 22px; }
.section-heading h2 { color:#edffdb; font-size:31px; font-weight:600; text-shadow:0 3px 0 #0b1b0d; }
.section-heading .text-button { font:500 13px Fredoka,sans-serif; }
.dashboard-grid { grid-template-columns:1.06fr 1fr; gap:24px; }
.card { position:relative; overflow:hidden; padding:29px; border:2px solid #728a5d; border-radius:33px; background:linear-gradient(160deg,#334b2d,#253c28 75%,#1d3122); box-shadow:var(--shadow); }
.card::before { content:''; position:absolute; pointer-events:none; top:5px; left:17px; right:17px; height:30px; border-radius:30px 30px 75% 75%; background:linear-gradient(#ffffff17,#ffffff00); }
.card-tint { background:linear-gradient(160deg,#513b55,#372b3e 75%,#2a2432); border-color:#9e79ab; transform:rotate(.7deg); }
.card h3 { font-size:24px; font-weight:550; }
.card p { font-size:15px; line-height:1.65; color:#c9e0c0; }
.card-tint p { color:#e1cce5; }
.mini-heading { margin-bottom:23px; gap:13px; }
.mini-heading > span { font-size:32px; filter:drop-shadow(0 3px 0 #0004); }
.mini-heading h3 { font-size:25px; }
.mini-heading small { font-size:12px; color:#c1dbb4; }
.mini-row { padding:17px 0; border-color:#587547; }
.mini-row strong { font-size:16px; font-weight:500; }
.mini-row small { font-size:12px; }
.mini-date { width:47px; height:52px; font:600 23px Fredoka,sans-serif; color:#20370f; background:linear-gradient(#f2ffd5,#bedf86 75%,#96bc65); border:2px solid #d7f3ad; border-radius:17px; box-shadow:inset 0 2px 0 #fff9,0 3px 0 #0a1b0b; }
.mini-date small { color:#385324; font-size:10px; }
.quick-links { gap:19px; margin-top:27px; }
.quick-link { position:relative; border-radius:29px; padding:24px 19px; border:2px solid #b993a9; background:linear-gradient(145deg,#5b3c52,#3f2b3b 78%,#312331); box-shadow:inset 0 3px 0 #ffdcf334,inset 0 -4px 0 #1a101f55,0 6px 0 #090e0b; transform:rotate(-1deg); }
.quick-link:nth-child(2) { background:linear-gradient(145deg,#4a4464,#312f46 78%,#252639); border-color:#9289bf; transform:rotate(1deg); }
.quick-link:nth-child(3) { background:linear-gradient(145deg,#315b50,#24463b 78%,#1b352c); border-color:#7da998; transform:rotate(-.7deg); }
.quick-link:hover { transform:translateY(-4px) rotate(0); }
.quick-link > span { font-size:32px; filter:drop-shadow(0 3px 0 #09180d77); }
.quick-link strong { font:500 17px/1.15 Fredoka,sans-serif; color:#fff0fa; }
.quick-link small,.quick-link:nth-child(2) small,.quick-link:nth-child(3) small { font:400 12px/1.5 Fredoka,sans-serif; color:#dfd3df; }
.quick-link:nth-child(3) small { color:#c9e4d3; }
.quick-link > b { color:#e2ffd0; font-size:22px; }
.page-heading { margin:4px 5px 30px; align-items:center; }
.page-heading h1 { font:650 clamp(36px,4vw,49px)/1.15 Fredoka,sans-serif; letter-spacing:-.035em; color:#e5ffbf; text-shadow:0 3px 0 #345921,0 5px 0 #102411; }
.page-heading p { font-size:15px; color:#bfd8b8; }
.page-heading .eyebrow { font:500 10px Fredoka,sans-serif; letter-spacing:.12em; color:#e4c5ee; }
.tag { font:500 10px Fredoka,sans-serif; border-radius:15px; background:linear-gradient(#3e5430,#273f27); border:1px solid #87a169; color:#e2f3cd; box-shadow:inset 0 2px 0 #f0ffcf22; }
.text-button { font:500 14px Fredoka,sans-serif; padding:10px 0; }
.day-picker { gap:14px; margin-bottom:33px; }
.day-button { border:2px solid #729552; border-radius:25px; background:linear-gradient(#395333,#263f29 75%,#1a3220); box-shadow:inset 0 3px 0 #dfffc12b,0 5px 0 #07170d; padding:19px 6px; min-height:115px; }
.day-button strong { font:600 33px Fredoka,sans-serif; color:#e8ffda; }
.day-button small { font:500 11px Fredoka,sans-serif; color:#c8dfbb; }
.day-button em { font:400 10px Fredoka,sans-serif; color:#bfd4b3; }
.day-button.active { background:linear-gradient(#f4ffdb,#d3f39b 35%,#a9d166 90%,#84b44b); border-color:#e6ffc3; box-shadow:inset 0 3px 0 #fff,0 5px 0 #07170d; }
.day-button.active strong,.day-button.active small,.day-button.active em { color:#254015; }
.date-heading h2 { font:600 31px Fredoka,sans-serif; }
.plan { border:2px solid #718f5d; border-radius:29px; padding:26px; background:linear-gradient(145deg,#344e30,#233e28 85%); box-shadow:var(--shadow); }
.plan h3 { font:550 25px Fredoka,sans-serif; }
.plan p { font-size:15px; }
.plan-time { font:600 17px Fredoka,sans-serif; }
.plan-place { font-size:13px; color:#d6c0ff; }
.section-intro { background:linear-gradient(#483d56,#342c42); color:#ead7f5; border:2px solid #8b739e; border-radius:24px; box-shadow:inset 0 2px 0 #f2d6ff26,0 4px 0 #0a110e; font-size:15px; }
.ideas-grid { gap:24px; }
.idea { min-height:265px; padding:28px; border:2px solid #aa92b4; border-radius:35px 35px 42px 33px; background:linear-gradient(145deg,#594666,#392e47 83%); box-shadow:inset 0 4px 0 #f4dfff33,inset 0 -6px 0 #211b2e66,0 8px 0 #090f0b; transform:rotate(-1.5deg); }
.idea:nth-child(3n+2) { background:linear-gradient(145deg,#67465a,#432d41 83%); border-color:#ba88a8; transform:rotate(1deg); }
.idea:nth-child(3n+3) { background:linear-gradient(145deg,#42613a,#29442e 83%); border-color:#7ca965; transform:rotate(-.7deg); }
.idea h3 { font:600 31px Fredoka,sans-serif; color:#f3e7ff; }
.idea p,.idea:nth-child(3n+2) p,.idea:nth-child(3n+3) p { font-size:15px; color:#ead7eb; }
.idea:nth-child(3n+3) p { color:#d0e5c0; }
.idea-tag,.idea:nth-child(3n+2) .idea-tag,.idea:nth-child(3n+3) .idea-tag { font:500 10px Fredoka,sans-serif; color:#d6bfe5; }
.idea:nth-child(3n+3) .idea-tag { color:#c6dea9; }
.vote { font:500 15px Fredoka,sans-serif; border-radius:18px; min-height:42px; padding:10px 15px; color:#ffd5ed; background:linear-gradient(#653f5e,#3b293e); border:2px solid #be89b0; box-shadow:inset 0 2px 0 #ffd5f033,0 3px 0 #1a1422; }
.vote.voted { color:#3c2133; background:linear-gradient(#fff3fc,#ffb5da 60%,#e98cbd); border-color:#ffe1f2; }
.empty { padding:42px 25px; border:2px dashed #76975c; border-radius:35px; background:linear-gradient(160deg,#283c27,#1d3022); }
.empty > span { font-size:47px; filter:drop-shadow(0 4px 0 #08190b66); }
.empty h3 { font:600 28px Fredoka,sans-serif; color:#e8ffcf; }
.empty p { font-size:15px; max-width:400px; }
.empty .button { font-size:14px; }
.filter { font:500 14px Fredoka,sans-serif; color:#d9ebcc; border:2px solid #7b9462; border-radius:20px; background:linear-gradient(#455c38,#2d432b 75%); box-shadow:inset 0 2px 0 #e3f6c52b,0 3px 0 #0a1b0d; padding:11px 18px; }
.filter.active { background:linear-gradient(#f0ffdb,#cce993 70%,#a3cc6b); border-color:#d8f8b0; color:#274118; box-shadow:inset 0 2px 0 #fff9,0 3px 0 #0a1b0d; }
.progress-card { border:2px solid #84a168; border-radius:30px; padding:25px; background:linear-gradient(#3c5530,#2c432a 85%); box-shadow:var(--shadow); }
.progress-copy strong { font:600 22px Fredoka,sans-serif; color:#e9ffd6; }
.progress-copy small { font-size:13px; }
.progress-track { height:15px; border-radius:16px; background:#142819; border:2px solid #6d8b4e; box-shadow:inset 0 3px 3px #0005; }
.progress-track i { background:linear-gradient(#efffc6 0%,#b9e66f 45%,#72b64b 95%); box-shadow:inset 0 2px 0 #fff9; }
.checklist { border:2px solid #6a8a58; border-radius:31px; padding:0 25px; background:linear-gradient(145deg,#2a412a,#1e3526); box-shadow:var(--shadow); }
.check-row { min-height:94px; border-color:#547544; }
.check-main strong { font:500 18px Fredoka,sans-serif; color:#edffde; }
.check-main small { font-size:13px; color:#c5ddb9; }
.check-toggle { width:31px; height:31px; min-width:31px; border-radius:12px; background:linear-gradient(#20381e,#152b18); border:2px solid #88a56b; box-shadow:inset 0 3px 2px #0004,0 2px 0 #c7e9a31f; }
.check-row.done .check-toggle { background:linear-gradient(#efffc9,#c2e681 65%,#8bbd51); color:#253f16; border-color:#dcffae; box-shadow:inset 0 2px 0 #fff9,0 2px 0 #09190c; }
.check-row.done strong { color:#a3c196; }
.owner-pill { font:500 12px Fredoka,sans-serif; border:1px solid #9a88b6; color:#e7d9fa; border-radius:16px; background:linear-gradient(#574766,#3b334d); padding:8px 12px; }
.money-summary { gap:22px; margin-bottom:30px; }
.money-card { padding:28px; border:2px solid #748a65; border-radius:31px; background:linear-gradient(150deg,#354c2f,#233e29); box-shadow:var(--shadow); }
.money-card:first-child { color:#223716; background:linear-gradient(145deg,#f5ffe0,#c7e88a 65%,#9fc76b); border:2px solid #e6ffc4; box-shadow:inset 0 4px 0 #fffffff0,inset 0 -5px 0 #679b3c55,0 7px 0 #09190d; }
.money-card:first-child strong { color:#223716; font:650 48px Fredoka,sans-serif; }
.money-card:first-child small,.money-card:first-child p { color:#3a5328; }
.money-card strong { font:600 39px Fredoka,sans-serif; }
.money-card small { font:500 12px Fredoka,sans-serif; }
.money-card p { font-size:12px; }
.balance-grid { gap:18px; }
.balance-card { padding:23px; border:2px solid #788a91; border-radius:27px; background:linear-gradient(150deg,#3d4d50,#293d3b); box-shadow:inset 0 3px 0 #dffff526,0 4px 0 #091a10; }
.balance-card:nth-child(2n) { border-color:#9b83a9; background:linear-gradient(150deg,#514459,#352f42); }
.balance-card strong { font:500 16px Fredoka,sans-serif; }
.balance-card b { font:600 31px Fredoka,sans-serif; }
.balance-card small { font-size:12px; color:#cad8cb; }
.transfer { font-size:15px; border-color:#59754b; padding:20px 0; }
.transfer .button { font-size:13px; border-radius:16px; padding:11px 16px; }
.expense-main strong { font:500 18px Fredoka,sans-serif; }
.expense-main small { font-size:13px; }
.expense-amount { font:600 23px Fredoka,sans-serif; }
.expense-row { border-color:#547245; padding:22px 0; }
.list-caption { font-size:14px; }
.icon-button { border-radius:14px; color:#d7e7c9; }
.icon-button:hover { background:#4c6640; }
dialog { padding:32px; border:2px solid #99b278; border-radius:36px; background:linear-gradient(155deg,#344a2d,#213b28); box-shadow:inset 0 4px 0 #e3fbc92e,0 12px 0 #09150d77,0 30px 100px #0008; }
.dialog-heading h2 { font:600 34px Fredoka,sans-serif; color:#e6ffd0; }
label,legend { font:500 15px Fredoka,sans-serif; color:#d2e8c6; }
input,textarea,select { font-family:Fredoka,sans-serif; font-size:17px; border:2px solid #779260; border-radius:19px; padding:14px 16px; min-height:51px; background:linear-gradient(#122918,#1b3421); color:#efffde; box-shadow:inset 0 3px 3px #0004,0 1px 0 #dbf7b724; }
input::placeholder,textarea::placeholder { color:#acc69a; }
fieldset { border:2px solid #6c8954; border-radius:22px; }
fieldset input { min-height:0; padding:0; }
.dialog-heading .eyebrow { font:500 10px Fredoka,sans-serif; color:#c5ade6; }
.error { font-size:15px; }
.toast { font:500 16px Fredoka,sans-serif; border-radius:24px; border:2px solid #e6ffc3; background:linear-gradient(#f3ffd7,#c6e98a 70%,#a2cf63); box-shadow:inset 0 3px 0 #fff9,0 7px 0 #07180c,0 14px 35px #0006; }
.join-screen { background:radial-gradient(ellipse at 15% 10%,#3b643c66,transparent 60%),radial-gradient(ellipse at 90% 90%,#56407144,transparent 55%),#111b18; }
.join-card { width:min(100%,530px); max-width:530px; padding:26px 39px 37px; border:2px solid #8aaa70; border-radius:42px; background:linear-gradient(155deg,#3b5434,#263e2b 70%,#1a3024); box-shadow:inset 0 4px 0 #e4ffd047,inset 0 -7px 0 #0c211866,0 12px 0 #06120b99,0 30px 65px #0005; }
.join-card .brand { justify-content:center; margin:0 auto 8px; height:auto; }
.join-card .brand-jelly { width:360px; max-width:100%; margin:0 auto; }
.join-card h1 { font:600 42px/1.08 Fredoka,sans-serif; color:#e9ffce; text-shadow:0 3px 0 #274c24; margin-bottom:15px; }
.join-card .eyebrow { font:500 10px Fredoka,sans-serif; color:#cfb4ef; text-align:center; margin-bottom:22px; }
.join-card > p:not(.eyebrow) { font-size:16px; color:#cde5bd; line-height:1.55; }
.join-card .primary { min-height:55px; font-size:18px; margin-top:24px; }
.join-card label { font-size:15px; }
.join-foot { font:400 13px Fredoka,sans-serif!important; color:#cee4c3!important; }
.join-foot span { color:#ffb0dd; }
.join-art span:nth-child(2) { color:#d3b0ff; }
.join-art span:nth-child(1) { font-size:110px; left:10%; }
footer { max-width:1244px; padding:10px 40px 34px; color:#aeca9e; font:400 12px Fredoka,sans-serif; }
footer span { color:#c1e1b3; }
@media(max-width:1100px) {
  .sidebar { gap:8px 15px; padding:10px 18px 20px; }
  nav { gap:9px; }
  nav a { font-size:13px; gap:6px; padding:14px 5px; }
  nav a > span { font-size:21px; }
  .hero { min-height:590px; }
  .gas-scene { width:170px; height:185px; right:-3px; bottom:30px; }
  .floating-note { left:20px; bottom:51px; padding:14px; font-size:8px; }
  .floating-note span { font-size:23px; }
  .strip-cell { padding:19px 14px!important; gap:10px; }
  .strip-cell strong { font-size:18px; }
  .strip-cell small { font-size:10px; }
  .strip-icon,.strip-cell:nth-child(n) .strip-icon { width:36px; height:36px; font-size:21px; }
  .quick-link { padding:22px 15px; gap:10px; }
  .quick-link strong { font-size:16px; }
  .quick-link > b { display:none; }
}
@media(max-width:900px) {
  .sidebar { width:calc(100% - 40px); }
  main { padding-left:20px; padding-right:20px; }
  .hero { min-height:560px; padding-left:27px; padding-right:27px; }
  .hero .wordmark-title { margin:0 auto -4px; }
  .hero .lodge-title { font-size:32px; }
  .gas-scene { width:145px; height:155px; bottom:29px; right:-7px; }
  .floating-note { left:14px; bottom:36px; padding:13px; border-radius:23px; }
  .floating-note span { font-size:21px; }
  .vent-button { font-size:8px; padding:7px 10px; right:11px; bottom:12px; }
  .trip-strip { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
  .strip-cell { min-height:105px; padding:21px!important; }
  .strip-cell strong { font-size:23px; }
  .strip-cell small { font-size:12px; }
  .strip-icon,.strip-cell:nth-child(n) .strip-icon { width:45px; height:45px; font-size:26px; }
  .dashboard-grid { grid-template-columns:1fr 1fr; gap:20px; }
  .mini-heading h3 { font-size:23px; }
  .quick-links { grid-template-columns:1fr; gap:17px; }
  .quick-link { padding:22px 25px; transform:none!important; }
  .quick-link strong { font-size:20px; }
  .quick-link small { font-size:14px; }
  .quick-link > b { display:block; }
  .day-picker { gap:9px; }
  .day-button { padding:17px 3px; border-radius:22px; }
  .day-button strong { font-size:30px; }
}
@media(max-width:680px) {
  .app-shell { padding-top:13px; }
  .sidebar { width:calc(100% - 26px); padding:9px 16px 12px; margin:0 auto; border-radius:27px; min-height:75px; height:auto; gap:5px; box-shadow:inset 0 3px 0 #e9ffbd32,0 6px 0 #050d0880; }
  .sidebar > .brand { display:flex; width:148px; height:48px; }
  .sidebar .brand-jelly { width:148px; }
  .sidebar > .install-button { display:none; }
  .profile { display:flex; min-width:0; margin-left:auto; gap:7px; }
  .profile strong { font-size:14px; }
  .profile small { display:none; }
  .profile .avatar { width:31px; height:31px; font-size:12px; border-radius:14px; }
  .profile .icon-button { min-width:25px; width:25px; font-size:19px; }
  nav { position:fixed; inset:auto 8px calc(8px + env(safe-area-inset-bottom)) 8px; width:auto; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:5px; padding:10px 7px 12px; background:linear-gradient(#34472b,#182c21); border:2px solid #718d58; border-radius:25px; box-shadow:inset 0 3px 0 #dbfbc12e,0 7px 0 #051007b3,0 -8px 30px #0004; z-index:25; margin:0; }
  nav a { display:flex; flex-direction:column; gap:5px; justify-content:center; padding:8px 0; min-height:64px; border-radius:16px; border-width:1px; font-size:9px; white-space:nowrap; box-shadow:inset 0 2px 0 #fffd,0 4px 0 #07140c; }
  nav a > span { font-size:22px; width:auto; line-height:1; }
  nav a b { font-size:9px; font-weight:500; }
  nav a.active { outline-width:1px; outline-offset:2px; }
  .main-wrap { margin:0; width:100%; padding-bottom:calc(105px + env(safe-area-inset-bottom)); }
  main { padding:27px 16px 25px; min-height:calc(100dvh - 260px); }
  .home-welcome { margin:0 5px 20px; gap:12px; }
  .home-welcome > span:first-child { font-size:23px; }
  .home-welcome > span:last-child { max-width:175px; text-align:right; font-size:11px; line-height:1.4; }
  .hero { border-radius:34px 34px 43px 43px; min-height:755px; padding:25px 19px 183px; }
  .hero::before { left:13px; right:13px; top:5px; height:67px; border-radius:30px 30px 80% 80%; }
  .hero::after { width:85px; height:85px; top:180px; right:-43px; }
  .hero .eyebrow { font:500 8px Fredoka,sans-serif; letter-spacing:.06em; padding:9px 12px; margin-bottom:16px; max-width:100%; }
  .hero .wordmark-title { width:100%; margin:0 auto 11px; }
  .hero .lodge-title { font:600 30px/1.08 Fredoka,sans-serif; margin-bottom:15px; }
  .lodge-title span { display:block; font-size:43px; line-height:1.15; color:#ffb1da; }
  .hero p { font:400 14px/1.65 Fredoka,sans-serif; margin-bottom:20px; max-width:290px; }
  .crew-chips { gap:7px; margin-bottom:24px; }
  .crew-chips span { min-width:59px; font-size:12px; padding:8px 9px; border-radius:15px; }
  .hero .button { font-size:16px; padding:14px 23px; min-height:53px; }
  .gas-scene { width:168px; height:181px; right:0; bottom:28px; opacity:1; }
  .mascot-caption { display:block; font-size:6px; bottom:11px; }
  .hero-spark { left:6%; top:22%; font-size:27px; }
  .floating-note { left:20px; bottom:68px; padding:17px 13px; border-width:2px; border-radius:23px; font-size:8px; }
  .floating-note span { font-size:23px; }
  .vent-button { right:15px; bottom:14px; font-size:9px; padding:7px 11px; min-height:32px; }
  .trip-strip { margin:31px 4px 35px; gap:18px 14px; }
  .strip-cell { padding:17px 12px!important; min-height:102px; gap:9px; border-radius:27px; }
  .strip-cell strong { font-size:19px; }
  .strip-cell small { font-size:10px; max-width:105px; line-height:1.4; }
  .strip-icon,.strip-cell:nth-child(n) .strip-icon { width:33px; height:36px; font-size:20px; border-radius:14px; }
  .section-heading { gap:10px; margin:0 4px 21px; align-items:center; }
  .section-heading h2 { font-size:28px; max-width:230px; }
  .section-heading .text-button { font-size:11px; max-width:100px; }
  .dashboard-grid { grid-template-columns:1fr; gap:24px; }
  .card { border-radius:30px; padding:26px 23px; }
  .card h3 { font-size:25px; }
  .card p { font-size:15px; }
  .mini-heading h3 { font-size:26px; }
  .mini-heading small { font-size:13px; }
  .mini-row strong { font-size:16px; }
  .mini-row small { font-size:12px; }
  .quick-links { margin-top:26px; gap:20px; }
  .quick-link { padding:23px 21px; border-radius:29px; gap:14px; }
  .quick-link strong { font-size:20px; }
  .quick-link small,.quick-link:nth-child(2) small,.quick-link:nth-child(3) small { font-size:13px; }
  .quick-link > span { font-size:33px; }
  .mobile-tools { margin-top:29px; gap:23px; }
  .mobile-tools button { font:500 13px Fredoka,sans-serif; }
  .page-heading { gap:12px; margin:0 3px 27px; align-items:flex-start; }
  .page-heading h1 { font-size:35px; }
  .page-heading p { font-size:14px; line-height:1.5; max-width:245px; }
  .page-heading .eyebrow { font-size:8px; }
  .page-heading > .button { margin-top:29px; font-size:12px; padding:12px 14px; min-height:46px; border-radius:19px; }
  .day-picker { gap:11px; margin:0 -16px 30px; padding:2px 16px 11px; }
  .day-button { min-width:68px; min-height:111px; padding:17px 5px; border-radius:23px; }
  .day-button strong { font-size:31px; }
  .day-button small { font-size:10px; }
  .day-button em { font-size:10px; }
  .date-heading h2 { font-size:27px; }
  .plan { padding:23px 19px; gap:15px; border-radius:27px; }
  .plan-time { font-size:15px; min-width:47px; }
  .plan h3 { font-size:23px; }
  .plan p { font-size:14px; }
  .plan-place { font-size:12px; }
  .ideas-grid { gap:25px; padding:0 3px; }
  .idea { min-height:245px; padding:28px; border-radius:34px; }
  .idea h3 { font-size:32px; }
  .idea p { font-size:16px; }
  .section-intro { font-size:14px; padding:20px 23px; border-radius:25px; }
  .progress-card { padding:23px 20px; gap:17px; border-radius:29px; }
  .progress-copy strong { font-size:22px; }
  .progress-copy small { font-size:12px; }
  .filters { gap:8px; margin-bottom:24px; }
  .filter { font-size:13px; padding:10px 14px; border-radius:18px; }
  .checklist { padding:0 17px; border-radius:28px; }
  .check-row { gap:11px; padding:20px 0; }
  .check-main strong { font-size:17px; }
  .check-main small { font-size:13px; }
  .check-toggle { min-width:29px; width:29px; height:29px; }
  .owner-pill { font-size:10px; padding:6px 9px; }
  .money-summary { gap:17px; }
  .money-card { padding:23px 19px; border-radius:28px; }
  .money-card:first-child strong { font-size:52px; }
  .money-card strong { font-size:34px; }
  .money-card small { font-size:11px; }
  .money-card p { font-size:11px; }
  .balance-grid { gap:13px; }
  .balance-card { padding:21px 19px; border-radius:24px; }
  .balance-card strong { font-size:15px; }
  .balance-card b { font-size:31px; }
  .balance-card small { font-size:12px; }
  .transfer { font-size:14px; }
  .transfer .button { font-size:12px; padding:10px 13px; }
  .expense-main strong { font-size:17px; }
  .expense-main small { font-size:12px; }
  .expense-amount { font-size:22px; }
  dialog { padding:29px 22px; border-radius:33px; }
  .dialog-heading h2 { font-size:31px; }
  .dialog-actions .button { font-size:13px; padding:13px 16px; border-radius:19px; }
  .join-card { padding:25px 27px 30px; border-radius:35px; }
  .join-card .brand-jelly { width:100%; max-width:340px; }
  .join-card h1 { font-size:39px; }
  .join-card > p:not(.eyebrow) { font-size:15px; }
  .join-card label { font-size:14px; }
  .join-card input,.join-card select { font-size:17px; }
  .join-art span:nth-child(1) { left:-10px; top:-10px; font-size:65px; }
  .toast { bottom:calc(118px + env(safe-area-inset-bottom)); font-size:14px; }
  footer { font-size:12px; padding:8px 23px 30px; line-height:1.9; }
}
@media(max-width:370px) {
  .sidebar { padding:9px 12px; }
  .sidebar > .brand,.sidebar .brand-jelly { width:128px; }
  .profile { gap:5px; }
  .profile strong { font-size:12px; }
  .profile .avatar { width:27px; height:27px; }
  .home-welcome > span:last-child { font-size:10px; max-width:155px; }
  .hero { padding-left:15px; padding-right:15px; min-height:740px; }
  .hero .eyebrow { font-size:7px; letter-spacing:.03em; padding:9px; }
  .hero .lodge-title { font-size:27px; }
  .lodge-title span { font-size:39px; }
  .hero p { font-size:13px; }
  .crew-chips { gap:6px; }
  .crew-chips span { min-width:53px; padding:7px 8px; font-size:11px; }
  .floating-note { left:15px; padding:15px 11px; font-size:7px; }
  .floating-note span { font-size:21px; }
  .gas-scene { width:146px; height:160px; right:-2px; bottom:31px; }
  .vent-button { right:8px; font-size:8px; padding:7px 9px; }
  .trip-strip { gap:16px 11px; margin-left:0; margin-right:0; }
  .strip-cell { padding:17px 11px!important; gap:7px; }
  .strip-cell strong { font-size:17px; }
  .strip-cell small { font-size:9px; }
  .strip-icon,.strip-cell:nth-child(n) .strip-icon { width:28px; height:33px; font-size:18px; }
  .section-heading h2 { font-size:25px; }
  nav { gap:4px; padding-left:6px; padding-right:6px; }
  nav a b { font-size:8px; }
  .page-heading h1 { font-size:31px; }
  .page-heading p { font-size:13px; }
  .page-heading > .button { padding:11px; font-size:11px; }
  .join-card h1 { font-size:35px; }
}
@media(prefers-reduced-motion:reduce) {
  nav a:hover,.primary:hover,.hero .button:hover,.quick-link:hover { transform:none; }
}
/* Keep the phone dock attached to the viewport, and tab text dark on jelly. */
.sidebar { backdrop-filter:none; filter:none; transform:none; }
nav a { --jelly-text:#253d1a; }
nav a:nth-child(2) { --jelly-text:#50233e; }
nav a:nth-child(3) { --jelly-text:#382750; }
nav a:nth-child(4) { --jelly-text:#163f3a; }
nav a:nth-child(5) { --jelly-text:#453916; }
nav a:nth-child(6) { --jelly-text:#213952; }
nav a.active,nav a:hover { color:var(--jelly-text); }

/* Inflated jelly surfaces throughout the app, on the dark forest canvas. */
:root {
  --candy-top:#f3ffda;
  --candy-face:#c9ed8f;
  --candy-base:#a0ca60;
  --candy-edge:#739d42;
  --candy-ink:#233918;
  --candy-copy:#395329;
}
.hero {
  border:3px solid #8dce76;
  border-radius:62px 62px 76px 76px;
  background:radial-gradient(ellipse at 50% 45%,#5a914a4d,transparent 68%),linear-gradient(180deg,#739268 0%,#426640 4%,#315535 16%,#1b3b28 55%,#102f20 90%,#0a2318 100%);
  box-shadow:inset 0 5px 2px #e8ffd79c,inset 4px 0 5px #b2e49e29,inset -4px 0 5px #b2e49e20,inset 0 -11px 2px #041b1499,0 12px 0 #04150d,0 25px 34px #0005;
}
.hero::before { top:7px; left:25px; right:25px; height:125px; border-radius:50px 50px 80% 80%; background:linear-gradient(#efffe64d,#ffffff08 57%,#ffffff00); }
.sidebar { border-width:3px; border-radius:42px; background:linear-gradient(#6a86603d,#365b38 7%,#23402c 50%,#173322 95%); box-shadow:inset 0 4px 1px #eaffd97d,inset 0 -7px 1px #0a2014,0 9px 0 #06140b,0 18px 26px #0004; }
nav a { border-width:2px; border-radius:26px; min-height:67px; box-shadow:inset 0 4px 1px #ffffffed,inset 3px 0 3px #ffffff80,inset -3px 0 3px #ffffff47,inset 0 -5px 1px #20461666,0 7px 0 #031408,0 11px 13px #0004; }
nav a::before { top:5px; left:10px; right:10px; height:43%; background:linear-gradient(#ffffffd9,#ffffff4d 43%,#ffffff00); }
nav a.active { box-shadow:inset 0 4px 1px #fff,inset 0 -5px 1px #20461666,0 7px 0 #031408,0 0 16px #d9ffad33; }
.page-heading h1,.section-heading h2,.date-heading h2,.hero .lodge-title,.join-card h1,.dialog-heading h2 {
  font-weight:700;
  color:#dcffb4;
  background:linear-gradient(180deg,#fcffef 0%,#f1ffdb 14%,#d7ff9d 38%,#b8e87b 67%,#a1d360 84%,#e0ffb4 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  -webkit-text-stroke:1px #588c36;
  paint-order:stroke fill;
  text-shadow:none;
  filter:drop-shadow(0 -1px 0 #f4ffe1) drop-shadow(0 2px 0 #7bae45) drop-shadow(0 3px 0 #28572a) drop-shadow(0 5px 4px #001b1199);
  padding-bottom:6px;
}
.hero .lodge-title span { color:#ffc1e8; background:linear-gradient(#fff7fd,#ffd0ee 20%,#ff9dd8 58%,#dc78b8 87%,#ffc9e8); -webkit-background-clip:text; background-clip:text; -webkit-text-stroke-color:#9b4e89; }
.section-heading h2 { font-size:34px; line-height:1.18; }
.page-heading h1 { font-size:53px; }
.card,.plan,.idea,.checklist,.money-card,.balance-card,.progress-card,.section-intro,.empty,.join-card,dialog {
  position:relative;
  isolation:isolate;
  color:var(--candy-ink);
  border:3px solid var(--candy-edge);
  border-radius:39px;
  background:linear-gradient(175deg,#fffffff2 0%,var(--candy-top) 3%,var(--candy-face) 37%,var(--candy-face) 70%,var(--candy-base) 95%,var(--candy-edge) 100%);
  box-shadow:inset 0 5px 2px #fffffff2,inset 4px 0 5px #ffffff80,inset -4px 0 5px #ffffff47,inset 0 -7px 1px #163a2240,0 9px 0 #06170dcc,0 16px 23px #0004;
}
.card,.idea,.join-card { overflow:hidden; }
.card::before,.idea::before,.join-card::before {
  content:'';
  position:absolute;
  top:5px;
  left:12px;
  right:12px;
  height:74px;
  border-radius:35px 35px 75% 75%;
  background:linear-gradient(#ffffffbd,#ffffff26 50%,#ffffff00);
  pointer-events:none;
  z-index:-1;
}
.card-tint,.idea:nth-child(3n+1),dialog {
  --candy-top:#f6eaff;
  --candy-face:#d4b8f1;
  --candy-base:#b18bd7;
  --candy-edge:#9771be;
  --candy-ink:#37224e;
  --candy-copy:#382044;
}
.idea:nth-child(3n+2),.balance-card:nth-child(2n),.section-intro {
  --candy-top:#ffeaf5;
  --candy-face:#f1b5d6;
  --candy-base:#db8dbb;
  --candy-edge:#ba659f;
  --candy-ink:#472239;
  --candy-copy:#49213b;
}
.idea:nth-child(3n+3),.plan,.balance-card:nth-child(2n+1),.checklist {
  --candy-top:#e8fff7;
  --candy-face:#a3e7cf;
  --candy-base:#7bc5ab;
  --candy-edge:#4c9c7e;
  --candy-ink:#163b2e;
  --candy-copy:#204533;
}
.money-card:nth-child(2) {
  --candy-top:#e8f5ff;
  --candy-face:#b1d0f1;
  --candy-base:#8aadd7;
  --candy-edge:#6387b6;
  --candy-ink:#23394f;
  --candy-copy:#243e58;
}
.money-card:nth-child(3) {
  --candy-top:#ffeafa;
  --candy-face:#efbddf;
  --candy-base:#d893c2;
  --candy-edge:#b574a4;
  --candy-ink:#48243e;
  --candy-copy:#48243e;
}
.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 {
  color:var(--candy-ink);
  -webkit-text-fill-color:currentColor;
  -webkit-text-stroke:0;
  background:none;
  filter:none;
  text-shadow:0 2px 0 #ffffff85;
  font-weight:650;
}
.card p,.card-tint p,.card .list-caption,.card .muted,.plan p,.idea p,.idea:nth-child(3n+2) p,.idea:nth-child(3n+3) p,.empty p,.money-card p,.money-card small,.balance-card small,.progress-copy small,.check-main small,.mini-row small,.mini-heading small,.card-tint .mini-heading small,.expense-main small,.join-card>p:not(.eyebrow),dialog p,.section-intro {
  color:var(--candy-copy);
}
.mini-row strong,.expense-main strong,.expense-amount,.transfer,.transfer strong { color:var(--candy-ink); }
.card h3,.mini-heading h3 { font-weight:650; font-size:28px; line-height:1.12; }
.mini-heading small { margin-top:7px; }
.mini-row,.expense-row,.transfer { border-color:color-mix(in srgb,var(--candy-edge) 60%,transparent); }
.card .text-button,.empty .text-button { color:var(--candy-ink); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.card .icon-button,.plan .icon-button,.idea .icon-button,.checklist .icon-button,dialog .icon-button { color:var(--candy-ink); }
.card .icon-button:hover,.plan .icon-button:hover,.idea .icon-button:hover,.checklist .icon-button:hover,dialog .icon-button:hover { color:var(--candy-ink); background:#ffffff5c; }
.card .section-heading { margin-left:0; margin-right:0; }
.card .section-heading h2 { font-size:29px; }
.card .positive,.money-card .positive,.balance-card .positive { color:#235729; }
.card .negative,.money-card .negative,.balance-card .negative { color:#642246; }
.money-card:first-child,.money-card:first-child strong { color:var(--candy-ink); }
.money-card:first-child p,.money-card:first-child small { color:var(--candy-copy); }
.idea h3 { font-size:33px; }
.idea-tag,.idea:nth-child(3n+2) .idea-tag,.idea:nth-child(3n+3) .idea-tag { color:var(--candy-copy); font-weight:600; }
.plan-time { color:#235332; }
.plan-place { color:#365a48; }
.plan { padding:28px; }
.plan-content h3 { padding-top:0; }
.checklist { border-radius:35px; }
.check-row { border-color:#43886c66; }
.check-row.done strong { color:#204533; text-shadow:0 1px 0 #fff8; }
.check-toggle { width:33px; height:33px; min-width:33px; border-radius:13px; border:2px solid #4a8f6b; background:linear-gradient(#487b57,#315c43); box-shadow:inset 0 3px 2px #102c2b70,0 2px 0 #efffda8c; }
.check-row.done .check-toggle { color:#153e21; border-color:#659a38; background:linear-gradient(#fffdeb,#dcfaaf 22%,#afd56d 90%); box-shadow:inset 0 3px 0 #fff,0 3px 0 #3d745255; }
.owner-pill { color:#462846; border:2px solid #b775a9; background:linear-gradient(#fff7fd,#facde8 40%,#e6a8cf 90%); box-shadow:inset 0 2px 0 #fff,0 3px 0 #44745d66; }
.progress-card { border-radius:34px; }
.progress-track { height:20px; border:3px solid #629348; background:linear-gradient(#375e34,#537b42); box-shadow:inset 0 4px 3px #12331a80,0 2px 0 #f4ffd780; }
.progress-track i { background:linear-gradient(#fffce7,#e6ffbc 24%,#b3e46a 70%,#7bbb46 100%); box-shadow:inset 0 3px 0 #fff9,inset 0 -3px 0 #52862d4d; }
.secondary,.card .secondary,dialog .secondary {
  color:#314a20;
  border:2px solid #8eb25b;
  border-radius:23px;
  background:linear-gradient(#fffff2,#e8f6cf 15%,#d0e9a9 70%,#accd7b 96%);
  box-shadow:inset 0 3px 0 #fff,inset 0 -4px 0 #5c873c44,0 5px 0 #23432566;
}
.primary,.hero .button { border-radius:27px; border-width:3px; box-shadow:inset 0 5px 1px #fff,inset 3px 0 3px #ffffffe6,inset -3px 0 3px #ffffff99,inset 0 -6px 0 #547a2b55,0 8px 0 #061e0d,0 14px 17px #0004; }
.primary::before,.secondary::before { height:44%; top:5px; background:linear-gradient(#ffffffd9,#ffffff00); }
.button:active,nav a:active { transform:translateY(3px); }
.filter { color:#25401b; background:linear-gradient(#fffef3,#e5f6c5 18%,#cae4a1 75%,#abc678); border:2px solid #91af69; box-shadow:inset 0 3px 0 #fff,inset 0 -3px 0 #57783d40,0 4px 0 #0d2411; border-radius:23px; }
.filter.active { color:#3c234d; background:linear-gradient(#fff4ff,#ebd4ff 18%,#c6a2e8 78%,#a780cf); border-color:#e6ccff; outline:1px solid #a77ad2; outline-offset:2px; box-shadow:inset 0 3px 0 #fff,inset 0 -3px 0 #653f8340,0 4px 0 #0d2411; }
.day-button { border-radius:29px; border-width:3px; box-shadow:inset 0 4px 0 #d4ffbc80,inset 0 -6px 0 #092d1966,0 7px 0 #06190d; background:linear-gradient(#668257,#3f6539 12%,#2d4e30 75%,#1b3821); }
.day-button.active { border-color:#eaffc7; background:linear-gradient(#ffffff,#edffd3 13%,#c7ed8d 65%,#a5cf67 90%,#80af43); box-shadow:inset 0 5px 1px #fff,inset 0 -6px 0 #4d7e2d55,0 7px 0 #06190d; }
.vote { color:#4e2240; background:linear-gradient(#fff6fc,#ffd1ed 18%,#efacd3 80%,#d686ba); border:2px solid #b965a1; border-radius:22px; box-shadow:inset 0 3px 0 #fff,inset 0 -3px 0 #86386540,0 4px 0 #5e3b7066; }
.vote.voted { color:#26411a; background:linear-gradient(#ffffee,#e7ffc6 18%,#c7e98e 80%,#a4c769); border-color:#81a84d; box-shadow:inset 0 3px 0 #fff,inset 0 -3px 0 #53793040,0 4px 0 #5e3b7066; }
.quick-link { color:#44263b; border:3px solid #b37ca0; background:linear-gradient(#fff8fd,#ffe4f3 5%,#eeb6d9 47%,#e0a0cb 86%,#c984b0); border-radius:36px; box-shadow:inset 0 5px 1px #fff,inset 0 -6px 1px #85365b44,0 8px 0 #07180d; }
.quick-link:nth-child(2) { border-color:#9270b7; background:linear-gradient(#fffbff,#f0e6ff 5%,#ceb7ed 47%,#bea2e2 86%,#a182c9); }
.quick-link:nth-child(3) { border-color:#579b85; background:linear-gradient(#fafff7,#dfffee 5%,#a8e1c8 47%,#8bcfb0 86%,#69ad92); }
.quick-link strong { color:#48243b; font-weight:650; }
.quick-link:nth-child(2) strong { color:#37264e; }
.quick-link:nth-child(3) strong { color:#204934; }
.quick-link small { color:#49213b; }
.quick-link:nth-child(2) small { color:#32203d; }
.quick-link:nth-child(3) small { color:#18392b; }
.quick-link>b { color:#3d6642; }
.quick-link>span { padding:4px; filter:drop-shadow(0 3px 0 #ffffff80); }
.strip-cell { border-radius:37px; border-width:3px!important; box-shadow:inset 0 5px 0 #efffd770,inset 0 -6px 0 #0b2a1666,0 8px 0 #06170d; }
.strip-cell:nth-child(1) { background:linear-gradient(#6c8952,#496b3b 14%,#2e4c2d 85%,#203c24); }
.strip-cell:nth-child(2) { background:linear-gradient(#956e8e,#674866 14%,#4d354d 85%,#3a2b3f); }
.strip-cell:nth-child(3) { background:linear-gradient(#7d7ca9,#56537c 14%,#3b3d5d 85%,#2d304c); }
.strip-cell:nth-child(4) { background:linear-gradient(#6b9c8b,#437768 14%,#2a5547 85%,#214536); }
.strip-cell strong { font-size:23px; text-shadow:0 -1px 0 #fff9,0 2px 0 #102c2155; }
.strip-icon,.strip-cell:nth-child(n) .strip-icon { border-radius:18px; box-shadow:inset 0 4px 0 #fffffff0,inset 0 -3px 0 #39653740,0 4px 0 #0d2c1a66; }
.join-card { --candy-top:#f1ffe0; --candy-face:#cfe9a3; --candy-base:#b0ce7c; --candy-edge:#819e4f; --candy-ink:#273b1d; --candy-copy:#3d542b; border-radius:48px; }
.join-card h1,.dialog-heading h2 { color:var(--candy-ink); -webkit-text-fill-color:currentColor; -webkit-text-stroke:0; background:none; filter:none; text-shadow:0 2px 0 #ffffff99; }
.join-card .eyebrow,.dialog-heading .eyebrow { color:var(--candy-copy); }
.join-card .join-foot { color:#3d542b!important; }
.join-card .join-foot span { color:#a63d7b; }
.join-card .muted,dialog .muted { color:var(--candy-copy); }
.join-card label,.join-card legend,dialog label,dialog legend { color:var(--candy-ink); }
dialog { border-radius:44px; }
dialog::backdrop { background:#04120dcc; backdrop-filter:blur(8px); }
input,textarea,select {
  color-scheme:light;
  color:#294127;
  border:2px solid #74955d;
  border-radius:24px;
  background:linear-gradient(#e3eccf,#f7ffe9 16%,#f5ffe8 65%,#e2efcd);
  box-shadow:inset 0 4px 4px #3f622c3b,inset 0 -2px 0 #fff,0 3px 0 #ffffff8c;
}
input::placeholder,textarea::placeholder { color:#526c43; }
select option { color:#243c24; background:#f2ffe1; }
fieldset { border:2px solid #987bb1; border-radius:27px; background:#ffffff26; }
fieldset input { accent-color:#3a742d; box-shadow:none; }
.error { color:#50102c; }
.join-card .primary,dialog .primary { box-shadow:inset 0 5px 1px #fff,inset 0 -5px 0 #547a2b55,0 6px 0 #5c7a484d; }
.join-card .primary:hover,dialog .primary:hover { box-shadow:inset 0 5px 1px #fff,inset 0 -5px 0 #547a2b55,0 8px 0 #5c7a484d; }
.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:#43275c; }
@media(max-width:900px) {
  .section-heading h2 { font-size:31px; }
  .page-heading h1 { font-size:46px; }
  .card h3,.mini-heading h3 { font-size:25px; }
}
@media(max-width:680px) {
  .sidebar { border-radius:31px; border-width:2px; }
  nav { border-radius:30px; background:linear-gradient(#68875b,#365431 12%,#1b3624 87%); box-shadow:inset 0 4px 0 #e5ffd76b,inset 0 -5px 0 #091e13,0 7px 0 #051007b3,0 -8px 30px #0005; }
  nav a { min-height:64px; border-width:1px; border-radius:19px; box-shadow:inset 0 3px 1px #fff,inset 0 -4px 0 #20461655,0 5px 0 #031408; }
  nav a.active { box-shadow:inset 0 3px 1px #fff,inset 0 -4px 0 #20461655,0 5px 0 #031408; }
  .hero { border-radius:43px 43px 54px 54px; }
  .hero::before { border-radius:33px 33px 80% 80%; height:90px; }
  .page-heading h1 { font-size:39px; }
  .section-heading h2 { font-size:30px; }
  .date-heading h2 { font-size:29px; }
  .card,.plan,.idea,.money-card,.balance-card,.progress-card,.section-intro,.empty { border-radius:33px; }
  .card,.idea { padding:27px 23px; }
  .card h3,.mini-heading h3 { font-size:27px; }
  .card .section-heading h2 { font-size:27px; }
  .plan { padding:23px 20px; }
  .plan h3 { font-size:24px; }
  .idea h3 { font-size:33px; }
  .checklist { border-radius:31px; }
  .quick-link { border-radius:33px; padding:24px 21px; }
  .strip-cell { border-radius:30px; }
  .strip-cell strong { font-size:21px; }
  .money-card strong { font-size:35px; }
  .balance-card b { font-size:32px; }
  .join-card { border-radius:40px; }
  dialog { border-radius:37px; }
}
@media(max-width:370px) {
  .page-heading h1 { font-size:34px; }
  .section-heading h2 { font-size:27px; }
  .strip-cell strong { font-size:19px; }
}
@media(prefers-reduced-motion:reduce) { .button:active,nav a:active { transform:none; } }
