:root{--ink:#173128;--muted:#718078;--cream:#f7f5ef;--card:#fffefa;--line:#e8e7e0;--green:#1d6b4c;--lime:#c6ed75;--peach:#ffdfc8;--orange:#ef8058;--shadow:0 10px 30px rgba(28,48,39,.08)}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif;padding-bottom:88px}.app-shell{max-width:780px;margin:auto}.topbar{background:#17382c;color:#fff;padding:28px 20px 25px;border-radius:0 0 28px 28px}.brand-row,.section-head,.hero-meta,.next-trip,.expense-main,.expense-line,.budget-row,.opportunity-top,footer{display:flex;align-items:center;justify-content:space-between}.eyebrow{margin:0 0 5px;font-size:10px;letter-spacing:.14em;font-weight:700;opacity:.65}h1,h2,h3,p{margin-top:0}h1{font:700 38px/1 'Playfair Display',serif;letter-spacing:-1.5px;margin:0}h1 em{font-style:italic;font-weight:600}.subtitle{font-size:13px;margin:6px 0 21px;opacity:.78}.subtitle span{padding:0 5px;color:var(--lime)}.avatar{width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:#2a5543;color:#fff;font-weight:700}.hero-meta{gap:25px}.hero-meta>div:first-child{min-width:73px}.hero-meta>div span{font:700 31px/1 'Playfair Display',serif;display:block}.hero-meta small{font-size:10px;opacity:.68}.hero-progress{flex:1}.progress-label{display:flex;justify-content:space-between;font-size:11px;margin-bottom:7px;opacity:.9}.progress-track{height:8px;border-radius:999px;background:#e1e5db;overflow:hidden}.progress-track i{height:100%;display:block;border-radius:inherit;background:var(--green)}.progress-track.light{background:rgba(255,255,255,.18)}.progress-track.light i{background:var(--lime)}.section{padding:25px 20px 0}.section-head{margin-bottom:13px}.section-head h2{font:700 21px/1.12 'Playfair Display',serif;letter-spacing:-.4px;margin:0}.section-head .eyebrow{color:#668074}.icon-button,.text-button,.add-button{border:0;background:transparent;color:var(--green);font:700 12px 'DM Sans';cursor:pointer}.icon-button{height:30px;width:30px;border-radius:50%;background:#e9f1e7;font-size:15px}.text-button{padding:7px}.add-button{background:#e5f0d4;padding:8px 12px;border-radius:10px}.location-card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:19px;overflow:hidden}.location-art{height:118px;background:linear-gradient(130deg,#92c9bd,#e4e5b4);position:relative;overflow:hidden}.sun{position:absolute;width:62px;height:62px;border-radius:50%;background:#ffd87d;right:16%;top:18px}.mountain{position:absolute;bottom:-18px;width:65%;height:100px;background:#4d8c79;clip-path:polygon(0 100%,53% 0,100% 100%)}.mountain.one{left:-12%}.mountain.two{right:-18%;background:#2e6857;height:110px}.pagoda{position:absolute;right:29%;bottom:13px;font-size:55px;color:#244d40;transform:scaleX(1.3)}.location-copy{padding:15px}.location-label,.goal small,.expense-card small{font-size:9px;letter-spacing:.12em;font-weight:700;color:#789084}.location-copy h3{font:700 24px/1.1 'Playfair Display';margin:3px 0 6px}.location-copy>p:not(.location-label){font-size:12px;color:var(--muted);margin-bottom:16px}.next-trip{font-size:11px;background:#f2f5ee;padding:10px;border-radius:9px}.next-trip span{color:var(--muted)}.next-trip time{color:var(--green);font-weight:700}.overview-stats{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:9px;margin-top:10px}.overview-stats>div{background:#edf2e9;padding:12px 9px;border-radius:13px}.overview-stats b{display:block;font:700 19px/1 'Playfair Display'}.overview-stats b small{font:500 11px 'DM Sans'}.overview-stats span{font-size:10px;color:var(--muted);margin-top:4px;display:block}.percentage{font:700 22px 'Playfair Display';color:var(--green)}.progress-key{display:flex;justify-content:space-between;margin-top:8px;color:var(--muted);font-size:11px}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px}.done{background:var(--green)}.remain{background:#d7ddd5}.today-card{background:#fef5ea;border:1px solid #f0e3d4;border-radius:18px;padding:4px 14px}.goal{display:flex;align-items:center;gap:11px;padding:12px 1px;border-bottom:1px solid #eedfd0}.goal:last-child{border:0}.goal>span{width:28px;height:28px;border-radius:9px;background:#fffdf8;display:grid;place-items:center;color:#b96a48;font-size:15px}.goal.main>span{background:var(--orange);color:white}.goal small{display:block;color:#a48674;margin-bottom:2px}.goal b{font-size:12px}.achievement-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.achievement-grid article{background:var(--card);border:1px solid var(--line);border-radius:15px;padding:11px 9px}.achievement-grid span{color:var(--orange);font-size:18px}.achievement-grid b{display:block;font:700 19px/1.15 'Playfair Display';margin-top:5px}.achievement-grid small{font-size:9px;color:var(--muted);line-height:1.1;display:block;margin-top:3px}.tracker-card{background:var(--ink);color:#fff;display:grid;grid-template-columns:repeat(4,1fr);border-radius:17px;padding:17px 11px}.tracker-card div{padding-left:10px;border-left:1px solid rgba(255,255,255,.17)}.tracker-card div:first-child{border:0}.tracker-card span{font-size:9px;display:block;opacity:.62}.tracker-card b{font:700 24px 'Playfair Display';display:block;margin-top:4px}.tracker-note{font-size:11px;color:var(--muted);margin:10px 2px 0}.tracker-note span{display:inline-block;width:7px;height:7px;background:var(--lime);border-radius:50%;margin-right:5px}.expense-card{background:var(--card);border:1px solid var(--line);border-radius:17px;padding:16px}.expense-main b{font:700 26px 'Playfair Display';display:block;margin-top:4px}.budget-tag{background:#e7f2d1;color:#4b7429;padding:5px 8px;border-radius:7px;font-size:10px;font-weight:700}.expense-line{font-size:11px;color:var(--muted);margin:15px 0}.expense-line b{color:var(--ink);display:block;margin-top:3px;font-size:13px}.budget-row{font-size:11px;margin-bottom:7px}.budget-row b{font-size:12px;color:var(--green)}.budget i{background:#a4cb56}.opportunity{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;margin-bottom:9px}.company-mark{display:grid;place-items:center;width:33px;height:33px;border-radius:10px;background:#d9efd6;color:var(--green);font-size:10px;font-weight:700;margin-right:9px}.company-mark.coral{background:#ffe1d2;color:#b95d36}.opportunity-top>div{margin-right:auto}.opportunity-top b{font-size:12px;display:block}.opportunity-top small{font-size:10px;color:var(--muted)}.status{font-size:9px;font-weight:700;padding:4px 7px;border-radius:6px}.warm{background:#fff0cf;color:#ab7610}.new{background:#e2f0e1;color:#418151}.opportunity>p{font-size:11px;margin:13px 0;color:#485a51}.opportunity footer{border-top:1px solid var(--line);padding-top:10px;font-size:10px;color:var(--muted)}footer button{border:0;background:0;color:var(--green);font-size:10px;font-weight:700}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:70px;background:rgba(255,254,250,.95);backdrop-filter:blur(10px);border-top:1px solid var(--line);display:flex;justify-content:space-around;z-index:3}.bottom-nav a{color:#819087;text-decoration:none;font-size:9px;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:4px;min-width:0;flex:1}.bottom-nav a span{font-size:17px}.bottom-nav .active{color:var(--green);font-weight:700}.toast{position:fixed;z-index:5;left:50%;bottom:85px;transform:translate(-50%,20px);opacity:0;background:var(--ink);color:white;padding:11px 16px;border-radius:10px;font-size:12px;box-shadow:var(--shadow);transition:.22s;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%,0)}@media(min-width:700px){body{padding-bottom:0}.topbar{margin:16px 16px 0;border-radius:28px}.section{padding-left:36px;padding-right:36px}.bottom-nav{left:50%;right:auto;bottom:18px;width:620px;transform:translateX(-50%);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.app-shell{padding-bottom:96px}.location-card{display:grid;grid-template-columns:1fr 1.3fr}.location-art{height:auto}.achievement-grid{grid-template-columns:repeat(6,1fr)}}
