:root{--bg:#f8f7f2;--paper:#fffefa;--cream:#f3f0e8;--cream2:#eae9df;--ink:#2d3730;--forest:#365344;--sage:#e2eee3;--soft:#758377;--border:#e6e7de;--terracotta:#c17957;--yellow:#f6d89d;--shadow:0 18px 55px rgba(31,51,39,.085);--radius:22px;font-family:'Malgun Gothic','Apple SD Gothic Neo','Noto Sans KR',sans-serif;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}a{color:inherit;text-decoration:none}input,textarea,select{width:100%;outline:none}textarea{resize:vertical}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #a8c7a9;outline-offset:2px}
.app-shell{min-height:100vh;display:grid;grid-template-columns:242px minmax(0,1fr)}.sidebar{padding:34px 18px 26px;background:#fffefa;border-right:1px solid var(--border);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:23px}.brand{display:flex;align-items:center;gap:11px;padding:0 8px}.brand-icon{background:var(--forest);color:#fff3df;width:42px;height:42px;border-radius:15px;display:grid;place-items:center;font-size:23px;box-shadow:0 5px 12px #3653442e}.brand-title{font-weight:800;letter-spacing:-.8px;font-size:19px;line-height:1.13}.brand-sub{font-size:10px;letter-spacing:.08em;color:#99a296;margin-top:4px;font-weight:700}.nav-group{display:grid;gap:6px}.nav-heading{font-size:10px;text-transform:uppercase;color:#adb5aa;letter-spacing:.15em;margin:2px 12px 7px;font-weight:800}.nav-item{border:0;background:transparent;border-radius:13px;display:flex;gap:12px;align-items:center;padding:13px 15px;font-size:13px;font-weight:650;color:#7a867a;text-align:left;width:100%}.nav-item .ico{font-size:19px;line-height:1}.nav-item:hover{background:#f3f5ed}.nav-item.active{background:#e8eee5;color:var(--forest);font-weight:800}.side-bottom{margin-top:auto;border-radius:18px;background:#edf1e9;padding:17px 15px;display:grid;gap:9px}.side-bottom strong{font-size:12px}.side-bottom p{font-size:11px;line-height:1.7;color:#697b69;margin:0}.small-link{font-size:11px;background:transparent;border:0;text-align:left;padding:3px;color:#657c62;text-decoration:underline}.main{padding:39px max(34px,calc((100vw - 1350px)/2)) 70px;min-width:0}.topline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:29px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.18em;color:#829582;display:flex;align-items:center;gap:8px}.dot{height:7px;width:7px;display:inline-block;border-radius:50%;background:#9abb9a}.user-tools{display:flex;align-items:center;gap:10px}.user-pill{padding:8px 12px;border:1px solid var(--border);background:var(--paper);border-radius:999px;font-size:11px;color:#677668;display:flex;align-items:center;gap:7px}.user-pill i{width:7px;height:7px;border-radius:50%;background:#70ac83}.button{border:0;border-radius:13px;padding:12px 17px;background:var(--forest);color:white;font-weight:750;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}.button:hover{filter:brightness(1.06)}.button.ghost{border:1px solid var(--border);background:var(--paper);color:var(--forest)}.button.light{background:var(--sage);color:var(--forest)}.button.danger{background:#fff1eb;color:#b0523c}.button.small{padding:9px 12px;font-size:11px;border-radius:10px}.button.wide{width:100%}.hero-title{font-size:clamp(29px,3vw,43px);letter-spacing:-2.2px;line-height:1.23;margin:4px 0 10px;font-weight:800}.hero-title em{font-style:normal;color:#739077}.hero-sub{font-size:13px;color:#8b948b;line-height:1.9;margin:0}.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 18px}.section-title{font-weight:800;font-size:17px;letter-spacing:-.55px}.section-sub{font-size:12px;color:#969f95;margin:6px 0 0}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:28px 0}.stat{background:#fffefa;border:1px solid #e9e9e2;border-radius:17px;padding:17px 19px;min-width:0}.stat-title{font-size:11px;font-weight:650;color:#9aa498;display:flex;justify-content:space-between;gap:5px}.stat-value{font-size:26px;font-weight:800;letter-spacing:-1.6px;margin-top:6px}.stat-value small{font-size:11px;color:#8d9a90;letter-spacing:0;font-weight:500;margin-left:4px}.stat:nth-child(2) .stat-value{color:#b77e5c}.stat:nth-child(3) .stat-value{color:#889973}.stat:nth-child(4) .stat-value{color:#6a827b}.dashboard-grid{display:grid;grid-template-columns:minmax(380px,1.1fr) minmax(280px,.9fr);gap:19px;align-items:start}.panel{border:1px solid var(--border);background:var(--paper);border-radius:var(--radius);padding:22px;box-shadow:0 8px 34px rgba(30,43,28,.025)}.map-panel{overflow:hidden;position:relative}.map-head{display:flex;align-items:center;justify-content:space-between;gap:10px;position:relative;z-index:2}.mini-label{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#899789}.map-filters{display:flex;gap:5px}.filter{border:1px solid #dfe5dd;border-radius:100px;background:#fffefa;color:#758575;padding:7px 11px;font-size:11px;font-weight:750;white-space:nowrap}.filter.selected{background:#3f5c49;color:white;border-color:#3f5c49}.map-frame{border-radius:19px;background:radial-gradient(ellipse at 33% 42%,#e6eee7,#f2f4eb 68%,#f9f8ef 100%);position:relative;overflow:hidden;margin:17px -2px 0;min-height:535px;display:grid;place-items:center}.map-frame:after{content:'';position:absolute;inset:0;pointer-events:none;opacity:.35;background-image:radial-gradient(#b6c4b0 .65px,transparent .65px);background-size:13px 13px}.map-svg{position:relative;z-index:1;width:100%;height:535px;overflow:visible;touch-action:manipulation}.map-svg .south{fill:#cddfc9;stroke:#9fba9d;stroke-width:1.1;stroke-linejoin:round;fill-rule:evenodd}.map-svg .north{fill:#e4e7d8;stroke:#bcc9b6;stroke-width:1.05;stroke-linejoin:round;fill-rule:evenodd}.map-svg .dmz{fill:none;stroke:#aabd9e;stroke-width:1.2;stroke-dasharray:5 5}.map-label{font-family:'Noto Sans KR',sans-serif;font-size:12px;fill:#819b80;letter-spacing:.02em;font-weight:750;paint-order:stroke;stroke:#edf3e9;stroke-width:2.5px}.sea-label{fill:#9fb3a7;font-size:12px;letter-spacing:.16em}.map-pin{cursor:pointer;filter:drop-shadow(0 3px 2px #3551392c);transform-box:fill-box;transform-origin:center bottom}.map-pin:hover{filter:drop-shadow(0 4px 3px #35513955);transform:scale(1.15)}.map-pin.selected g.marker{transform:scale(1.23);transform-origin:center bottom}.map-pin .pin-number{font-size:10px;font-weight:bold;fill:white;pointer-events:none}.map-tip{position:absolute;bottom:16px;left:16px;right:16px;z-index:3;background:#fffefaf0;border:1px solid #fff;border-radius:13px;padding:11px 13px;font-size:11px;color:#6f8672;display:flex;justify-content:space-between;gap:7px;backdrop-filter:blur(8px)}.legend{display:flex;gap:13px;align-items:center;flex-wrap:wrap;font-size:11px;color:#879789;padding-top:15px}.legend span{display:flex;align-items:center;gap:6px}.legend b{width:8px;height:8px;border-radius:50%;display:inline-block}.right-column{display:flex;flex-direction:column;gap:18px}.small-stack{display:grid;gap:10px}.recent-card,.place-list-card,.wish-card,.expense-card,.visit-card{border-radius:16px;border:1px solid #e9ebe3;background:#fffefa;padding:14px;display:flex;align-items:center;gap:12px;text-align:left;width:100%;color:inherit}.recent-card:hover,.place-list-card:hover,.wish-card:hover,.visit-card:hover{border-color:#b3c6b1;background:#fbfcf7}.place-emoji{width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;background:#ebf0e7;border-radius:13px;font-size:25px}.place-emoji.wish{background:#fff1dd}.place-emoji.plan{background:#e9eff7}.card-info{min-width:0;flex:1}.card-info strong{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-info span{display:block;font-size:11px;color:#9aa499;margin-top:6px;line-height:1.45}.card-arrow{font-size:21px;color:#afbcad}.banner{background:#edf2e8;border:1px solid #dde9d7;border-radius:19px;padding:23px;position:relative;overflow:hidden}.banner h3{font-size:17px;margin:0 0 7px;letter-spacing:-.5px}.banner p{font-size:12px;color:#7e917b;line-height:1.8;max-width:260px}.banner>.decor{position:absolute;right:12px;bottom:0;font-size:83px;opacity:.3;pointer-events:none}.thin-note{font-size:11px;color:#829181;line-height:1.8}.empty{text-align:center;padding:35px 18px;color:#99a397}.empty .empty-icon{font-size:39px;margin-bottom:10px}.empty strong{display:block;font-size:15px;color:#566858}.empty p{font-size:12px;line-height:1.9;max-width:270px;margin:9px auto 18px}.intro-note{background:#fff8e9;border:1px solid #f3e7c8;border-radius:14px;color:#8b744b;padding:12px 15px;font-size:11px;line-height:1.85;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:9px}.intro-note button{border:0;background:transparent;text-decoration:underline;color:inherit;font-weight:800;white-space:nowrap}.page-bar{display:flex;justify-content:space-between;align-items:end;gap:12px;margin:7px 0 22px}.list-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.list-card{background:#fffefa;border:1px solid var(--border);border-radius:20px;overflow:hidden;transition:transform .16s}.list-card:hover{transform:translateY(-2px)}.list-cover{height:112px;background:linear-gradient(132deg,#e4eee0,#f2ece1);display:flex;align-items:center;justify-content:center;position:relative;font-size:45px}.list-cover .status-chip{position:absolute;left:13px;top:12px;font-size:10px}.list-body{padding:16px}.list-body strong{font-size:15px}.list-body .line{font-size:11px;color:#97a096;margin:7px 0 14px}.list-actions{display:flex;gap:8px}.status-chip{background:#dcebdd;color:#497052;padding:5px 9px;border-radius:99px;font-size:10px;font-weight:800}.status-chip.wish{background:#fff0d7;color:#b88342}.status-chip.plan{background:#dfebf7;color:#567fa2}.list-filters{display:flex;gap:6px;overflow:auto;margin:16px 0}.ledger-summary{background:#334e40;border-radius:22px;padding:28px;color:white;display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;margin-bottom:18px}.ledger-summary small{font-size:11px;color:#c0d2c5}.ledger-summary .money{font-size:33px;letter-spacing:-1.5px;font-weight:800;margin:6px 0 10px}.ledger-info{display:flex;gap:18px;flex-wrap:wrap;font-size:11px;color:#d1ded2}.round-icon{font-size:28px;background:#486556;padding:13px;border-radius:16px}.spending-cats{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 18px}.cat-pill{padding:8px 11px;border-radius:100px;background:#eaf0e8;font-size:11px;color:#617764;font-weight:650}.expense-list{display:grid;gap:9px}.expense-card{justify-content:space-between}.expense-card .right-money{font-weight:800;white-space:nowrap}.expense-card .receipt-mark{font-size:10px;color:#7f9c77}.inline-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.detail-cover{background:linear-gradient(140deg,#e4eee0,#f5efde);height:130px;margin:-21px -21px 18px;border-radius:20px 20px 10px 10px;display:grid;place-items:center;font-size:60px}.detail-section{margin:25px 0 0}.detail-section h4{font-size:14px;margin:0 0 11px}.detail-kv{display:grid;grid-template-columns:75px 1fr;gap:10px;padding:9px 0;font-size:12px;border-bottom:1px solid #f0efe8}.detail-kv span:first-child{color:#929d93}.mini-media{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.media-tile{position:relative;overflow:hidden;border-radius:12px;background:#ebeee7;aspect-ratio:1/1;border:0;padding:0}.media-tile img,.media-tile video{width:100%;height:100%;object-fit:cover}.video-play{position:absolute;inset:0;display:grid;place-items:center;color:white;font-size:29px;text-shadow:0 2px 7px #142d1e}.receipt-tag{font-size:10px;padding:3px 5px;color:#3b6843;background:#e3efdf;border-radius:5px;position:absolute;top:5px;left:5px}.mini-expense{font-size:11px;color:#95a194}.mini-expense strong{font-size:13px;color:var(--ink)}.split-card{background:#f3f6ec;border-radius:15px;padding:18px;display:grid;gap:12px}.split-line{display:flex;justify-content:space-between;gap:12px;font-size:12px}.split-line strong{font-weight:800}.split-net{padding-top:13px;border-top:1px dashed #becdbb;color:#456b4b;font-weight:800}.stat-bars{display:grid;gap:14px;margin:20px 0}.bar-line{display:grid;grid-template-columns:70px 1fr 28px;align-items:center;gap:10px;font-size:12px}.bar-line .track{height:9px;background:#e9ede6;border-radius:99px;overflow:hidden}.bar-line .fill{height:100%;background:#8eae8d;border-radius:99px}.mode-tag{border-radius:100px;color:#a47b43;background:#fff3d8;border:1px solid #f1e0bd;display:inline-flex;align-items:center;gap:4px;padding:5px 10px;font-size:10px;font-weight:800}
/* Dialog */
.overlay{position:fixed;inset:0;z-index:50;background:#172b1cc2;display:flex;align-items:center;justify-content:center;padding:14px;animation:appear .15s ease}.dialog{background:var(--paper);border-radius:24px;width:min(570px,100%);max-height:min(91dvh,900px);overflow:auto;box-shadow:0 30px 100px #091e126b;position:relative;scrollbar-width:thin}.dialog-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:21px 22px 16px;border-bottom:1px solid #f0f0ea;position:sticky;top:0;background:#fffefa;z-index:4}.dialog-header h2{font-size:17px;margin:0;letter-spacing:-.6px}.close{border:0;background:#f0f1ea;color:#667d67;border-radius:50%;width:32px;height:32px;font-size:17px;display:grid;place-items:center}.dialog-content{padding:21px 22px 28px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.field{display:grid;gap:7px;font-size:11px;font-weight:800;color:#788777;margin:0 0 14px}.field input,.field select,.field textarea{border:1px solid #e2e7dc;background:#fafaf6;border-radius:11px;padding:12px 13px;font-weight:500;color:#344236;font-size:13px;min-width:0}.field input:focus,.field textarea:focus,.field select:focus{border-color:#88a488;background:#fff}.field textarea{min-height:85px;line-height:1.7}.field-hint{font-size:10px;color:#9caa9b;line-height:1.7;font-weight:400}.form-footer{display:flex;gap:8px;justify-content:flex-end;margin-top:13px}.section-divider{height:1px;background:#e9ece5;margin:20px 0}.helper-text{font-size:12px;line-height:1.8;color:#93a091}.file-label{display:grid;place-items:center;min-height:92px;border:1px dashed #b6cbb4;border-radius:13px;background:#f7faf5;cursor:pointer;text-align:center;font-size:12px;font-weight:650;color:#658269;padding:15px}.file-label input{position:absolute;opacity:0;width:1px;height:1px}.login-wrap{min-height:100dvh;background:radial-gradient(circle at 55% 20%,#e9f0e4,#f8f7f2 65%);display:grid;place-items:center;padding:20px}.login-card{max-width:410px;width:100%;background:#fffefa;border:1px solid #e9ece3;border-radius:28px;padding:34px;box-shadow:var(--shadow)}.login-icon{font-size:35px;background:#e9f0e5;border-radius:20px;display:grid;place-items:center;width:75px;height:75px;margin-bottom:18px}.login-card h1{font-size:29px;line-height:1.3;letter-spacing:-1.2px;margin:0 0 10px}.login-card p{font-size:12px;line-height:1.9;color:#91a093;margin-bottom:23px}.login-card .users{display:flex;gap:8px;margin:0 0 15px}.login-card .users label{flex:1}.login-card .users input{position:absolute;opacity:0}.login-card .users span{display:block;padding:14px;text-align:center;border:1px solid #e2e9df;border-radius:12px;font-size:13px}.login-card .users input:checked+span{color:#3c6144;background:#e6f0e3;border-color:#90b194;font-weight:800}.boot-loading{height:100vh;display:grid;place-items:center;color:var(--forest);font-size:14px}.bottom-nav{display:none}.fab{display:none}.file-progress{background:#f2f3ed;border-radius:999px;height:8px;overflow:hidden;margin:10px 0}.file-progress>div{height:100%;background:#729672;transition:width .2s}.gallery-view{background:#162419;display:grid;place-items:center;min-height:250px;border-radius:12px;overflow:hidden}.gallery-view img,.gallery-view video{max-height:65dvh;max-width:100%;object-fit:contain}.year-tag{font-size:11px;color:#7a967e;font-weight:750;padding:8px 0}.icon-btn{border:0;background:transparent;color:#77907c;padding:4px 6px;font-size:17px}.danger-text{color:#bd7254}.picker-empty{padding:15px;background:#f5f7ef;color:#859483;border-radius:12px;font-size:12px}.center{text-align:center}.desktop-hide{display:none}#toast{position:fixed;z-index:100;bottom:28px;left:50%;transform:translateX(-50%) translateY(20px);background:#2f493b;color:white;font-size:12px;border-radius:13px;padding:12px 18px;box-shadow:0 9px 28px #1d331849;opacity:0;pointer-events:none;transition:.22s;max-width:min(90vw,410px);text-align:center}#toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}@keyframes appear{from{opacity:0}to{opacity:1}}
@media(max-width:1120px){.sidebar{width:200px}.app-shell{grid-template-columns:200px minmax(0,1fr)}.main{padding:32px 25px 80px}.dashboard-grid{grid-template-columns:minmax(0,1fr) minmax(270px,.8fr)}.map-frame,.map-svg{min-height:490px;height:490px}}
@media(max-width:820px){.app-shell{display:block}.sidebar{display:none}.main{padding:22px 17px 112px;max-width:650px;margin:0 auto}.bottom-nav{position:fixed;z-index:30;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-around;padding:9px 6px calc(9px + env(safe-area-inset-bottom));background:#fffefaf5;border-top:1px solid #e7e8e1;backdrop-filter:blur(17px)}.bottom-nav button{background:transparent;border:0;display:grid;place-items:center;gap:3px;min-width:56px;font-size:10px;font-weight:750;color:#a0aa9e;padding:5px 3px}.bottom-nav .ico{font-size:21px}.bottom-nav button.active{color:var(--forest)}.topline{margin-bottom:22px}.dashboard-grid{grid-template-columns:1fr}.right-column{display:grid;grid-template-columns:1fr;gap:15px}.stat{padding:14px}.stat-value{font-size:24px}.map-frame,.map-svg{min-height:460px;height:460px}.hero-title{font-size:33px}.fab{display:grid;position:fixed;bottom:91px;right:21px;z-index:20;box-shadow:0 12px 30px #24472c51;border:0;border-radius:50%;background:#3b5944;color:white;place-items:center;width:54px;height:54px;font-size:27px}.desktop-hide{display:block}#toast{bottom:94px}}
@media(max-width:490px){.main{padding:19px 13px 104px}.eyebrow{font-size:10px}.user-tools .button{padding:9px;font-size:11px}.hero-title{font-size:30px}.hero-sub{font-size:11px}.stats{gap:7px;margin:21px 0}.stat{padding:12px 11px;border-radius:14px}.stat-title{font-size:9px}.stat-value{font-size:22px;margin-top:7px}.stat-value small{display:none}.panel{padding:15px;border-radius:19px}.map-frame{margin:12px -1px 0}.map-frame,.map-svg{height:475px;min-height:475px}.map-tip{font-size:10px;bottom:12px;left:10px;right:10px}.map-label{font-size:13px}.map-filters{gap:3px}.filter{font-size:10px;padding:6px 9px}.ledger-summary{padding:23px}.ledger-summary .money{font-size:29px}.dialog{max-height:93dvh;border-radius:21px}.dialog-header,.dialog-content{padding-left:17px;padding-right:17px}.form-grid{gap:8px}.list-grid{grid-template-columns:1fr 1fr;gap:9px}.list-cover{height:90px}.list-body{padding:12px}.list-body strong{font-size:12px}.list-body .line{font-size:10px}.list-actions .button{padding:8px 7px;font-size:10px}.user-pill{display:none}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}

@media(max-width:490px){.page-bar{display:flex;flex-direction:column;align-items:stretch;gap:10px}.page-bar>.button{align-self:flex-end}.page-bar .hero-title{font-size:27px;white-space:nowrap;letter-spacing:-1.5px}.stats .stat:nth-child(4) .stat-value{font-size:20px}.map-svg{touch-action:manipulation}}

/* v2 · quiet diary typography and soft, consistent navigation glyphs */
.top-wordmark{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:800;letter-spacing:.075em;color:#839a86}
.top-sprout{font-size:17px;font-weight:500;line-height:1;color:#8aa98e}
.tab-svg{width:23px;height:23px;display:block;flex:none}
.nav-item .ico{display:grid;place-items:center;width:25px;height:25px;flex-shrink:0}
.nav-item{gap:12px}
.side-bottom{background:transparent;border-top:1px solid #e7ebe4;border-radius:0;padding:13px 4px 0}
.small-link{text-decoration:none;font-weight:650;color:#7b8e7b}
.hero .hero-title{margin-bottom:0}
.hero-mark{display:inline-block;color:#9ab39a;font-size:19px;font-weight:400;vertical-align:top;margin:4px 0 0 8px}
.stats{margin-top:20px;margin-bottom:21px}
.stat-title span:last-child:empty{display:none}
.map-head .section-title{font-size:16px}
.map-tip{justify-content:center;left:23px;right:23px}
.page-bar .hero-title{margin:0}
.empty p:empty{display:none}
@media(max-width:820px){
 .bottom-nav{justify-content:space-between;gap:0;padding:7px 7px calc(8px + env(safe-area-inset-bottom));background:rgba(255,254,250,.96);box-shadow:0 -5px 22px rgba(41,57,43,.04)}
 .bottom-nav button{min-width:0;flex:1;gap:2px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:10px;font-weight:600;color:#a3aca1;min-height:49px;padding:2px}
 .bottom-nav .ico{display:grid;place-items:center;width:42px;height:30px;border-radius:12px;transition:background-color .2s,color .2s}
 .bottom-nav .tab-svg{width:22px;height:22px;stroke-width:1.7}
 .bottom-nav button.active{color:#3e634a;font-weight:800}
 .bottom-nav button.active .ico{background:#e8f0e7;color:#416a4c}
 .topline{margin-bottom:19px}
 .hero-title{letter-spacing:-1.7px}
 .hero-mark{font-size:18px}
 .stats{margin-top:18px;margin-bottom:18px}
 .main{padding-bottom:108px}
 .intro-note{padding:10px 12px;font-size:10px;line-height:1.4;background:#faf8ef;border-color:#eeece2;margin-bottom:14px}
 .fab{bottom:90px}
 .page-bar{align-items:center}
}
@media(max-width:490px){
 .top-wordmark{font-size:10px}
 .mode-tag{font-size:10px;letter-spacing:-.3px}
 .settings-button{padding:7px 8px!important}
 .settings-button span{display:none}
 .hero-title{font-size:27px!important}
 .stats .stat{padding:12px 10px}
 .stat-title{font-size:10px;line-height:1.3}
 .stat-value{font-size:23px}
 .section-head{margin-bottom:14px}
 .page-bar{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:8px}
 .page-bar>.button{align-self:center}
}

/* Receipt itemized editor */
.receipt-head{display:flex;justify-content:space-between;align-items:center;margin:22px 0 10px;font-size:13px;color:#667866}.receipt-head span{padding-right:56px;font-size:11px}.receipt-item{display:grid;grid-template-columns:22px minmax(0,1fr) minmax(92px,120px) 30px;gap:7px;align-items:center;margin:8px 0}.receipt-index{font-size:12px;color:#758875;text-align:center}.receipt-item input{width:100%;min-width:0;border:1px solid #dfe4d9;background:#fafaf7;border-radius:11px;padding:12px 9px;font-size:13px;color:#34483b}.receipt-remove{border:0;background:#f0f2ed;color:#7b8678;border-radius:50%;height:30px;font-size:20px}.receipt-add{width:100%;border:1px dashed #9fb49d;border-radius:12px;padding:13px;background:#f2f7ef;color:#52755b;font-weight:700;margin-top:6px}.receipt-total{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #e5e8df;margin:19px 0;padding:18px 3px;color:#4b6753}.receipt-total strong{font-size:21px}.receipt-detail-lines{padding:10px 0;border-block:1px solid #e5e8df;margin:14px 0}.receipt-detail-lines>div{display:flex;justify-content:space-between;gap:10px;padding:8px 0;font-size:13px}.receipt-detail-lines strong{white-space:nowrap}@media(max-width:430px){.receipt-item{grid-template-columns:17px minmax(0,1fr) minmax(85px,105px) 26px;gap:5px}.receipt-item input{font-size:12px;padding:11px 6px}}

/* v3: breathing room between empty-state text and action buttons */
.empty > strong + .button, .empty > strong + button, .empty > p + .button, .empty > p + button{margin-top:19px}
.empty > strong{line-height:1.55}
@media(max-width:820px){.empty > strong + .button, .empty > strong + button, .empty > p + .button, .empty > p + button{margin-top:22px}}

/* v4 — compact itemized receipt on Galaxy */
.receipt-head-grid,.receipt-item{display:grid;grid-template-columns:17px minmax(76px,1fr) minmax(67px,.78fr) minmax(80px,.95fr) minmax(80px,1.1fr) 25px;gap:5px;align-items:center}.receipt-head-grid{color:#788878;font-size:10px;font-weight:700;margin:23px 0 8px;text-align:center}.receipt-item{margin:6px 0}.receipt-item select,.receipt-item input{min-width:0;width:100%;height:43px;border:1px solid #dfe4d9;background:#fafaf7;border-radius:10px;padding:7px 5px;font-size:12px;color:#34483b}.receipt-item select{padding-right:0}.receipt-index{font-size:11px}.receipt-person-totals{border-top:1px solid #edf0e8;margin:-12px 0 18px;padding:13px 3px;display:grid;gap:9px}.receipt-person{display:flex;justify-content:space-between;color:#728073;font-size:12px}.receipt-person strong{color:#4a6651}.receipt-remove{height:26px;width:26px;line-height:1}.receipt-total{margin-bottom:14px}@media(max-width:430px){.receipt-head-grid,.receipt-item{grid-template-columns:12px minmax(65px,1fr) minmax(55px,.78fr) minmax(66px,.93fr) minmax(70px,1.05fr) 22px;gap:3px}.receipt-item select,.receipt-item input{font-size:11px;padding:6px 3px;height:39px}.receipt-head-grid{font-size:9px}.receipt-remove{height:22px;width:22px;font-size:16px}.dialog-content{padding-inline:14px}}

/* v5: interactive illustrated map */
.map-frame{position:relative;overflow:hidden}.map-svg{touch-action:none;user-select:none;cursor:grab}.map-svg:active{cursor:grabbing}
.map-zoom{position:absolute;top:12px;right:12px;z-index:9;display:flex;flex-direction:column;align-items:center;background:#fffefaee;border:1px solid #dce5d8;border-radius:14px;box-shadow:0 3px 13px #324b3018;overflow:hidden}
.map-zoom button{height:35px;width:38px;border:0;border-bottom:1px solid #e4e9df;background:transparent;color:#496b50;font-size:22px;cursor:pointer;line-height:1}
.map-zoom button:last-child{font-size:20px;border-bottom:0}.map-zoom span{font-size:9px;color:#819284;padding:7px 2px;border-bottom:1px solid #e4e9df}
.map-local-label{display:none;fill:#4e6956;stroke:#e7f0e6;stroke-width:1.8px;paint-order:stroke;font-size:8px;font-weight:750;pointer-events:none}
.map-svg.zoom-detail .map-local-label{display:block}.map-svg.zoom-local .map-local-label{font-size:7px}
.map-svg.zoom-detail .map-label:not(.sea-label){opacity:.55}
.map-svg .map-label,.map-svg .map-local-label{pointer-events:none}

/* v6 — keep native one-finger page scrolling on the map */
.map-svg{touch-action:pan-y!important;overscroll-behavior: auto;}
.stat-title{white-space:nowrap;display:block;overflow:hidden;text-overflow:clip;}
@media(max-width:820px){.stat{padding:14px 10px}.stat-title{font-size:10px;letter-spacing:-.35px}.stat-value{font-size:23px}}

/* v7: keep dashboard stat labels on one line */
.stats .stat-title{white-space:nowrap;overflow:visible;text-overflow:clip;letter-spacing:-.45px;}
@media(max-width:490px){.stats .stat-title{font-size:clamp(8px,2.35vw,10px);letter-spacing:-.55px}.stats .stat{padding-left:8px;padding-right:8px}}
