:root{font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN",sans-serif;color:#252b2a;background:#f8f8f6}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.4;cursor:default}.app{max-width:520px;margin:auto;min-height:100dvh;background:#fff;padding:16px 16px 94px}.top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:3px 0 18px}h1{font-size:22px;margin:0}h2{font-size:17px;margin:12px 0}h3{font-size:15px;margin:0}.muted{color:#78817d}.small{font-size:12px}.line{border-top:1px solid #e9ece9;margin:15px 0}.row{display:flex;align-items:center;justify-content:space-between;gap:10px}.gap{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.iconbtn{width:36px;height:36px;display:grid;place-items:center;border:1px solid #dfe4df;border-radius:10px;background:white;font-size:21px;flex-shrink:0}.plain{border:0;background:none;color:inherit;padding:6px}.btn{border:1px solid #d9e0da;background:white;border-radius:10px;padding:10px 13px;color:#26362e}.primary{background:#2c6049;color:#fff;border-color:#2c6049}.wide{width:100%}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.weekday{text-align:center;font-size:12px;color:#858b86;padding:7px 0}.day{border:1px solid #edf0ed;background:#fff;border-radius:9px;min-height:49px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:13px}.day.active{background:#e7f1e9;border-color:#61957b;font-weight:700}.day.today .num{border-bottom:2px solid #2c6049}.dots{display:flex;gap:3px;min-height:5px}.dot{width:5px;height:5px;border-radius:50%;background:#6f91b3}.dot.money{background:#c89b60}.dot.record{background:#6c9c7a}.section{margin:17px 0}.sectionhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.entry{display:flex;gap:12px;padding:10px 2px;border-bottom:1px solid #f0f2f0;align-items:center;font-size:14px}.time{color:#78817d;min-width:50px;font-size:13px}.card{border:1px solid #e6eae6;border-radius:14px;padding:14px;margin:10px 0;background:#fff}.soft{background:#f5f7f4;border:0}.tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.tile{border:1px solid #e6eae6;border-radius:16px;background:#f8faf8;min-height:116px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:9px;padding:12px;text-align:center}.tile .emoji{font-size:29px}.tile span:last-child{font-size:12px;color:#77807a}.choice{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.choice .tile{min-height:105px}.bottom{position:fixed;bottom:0;left:50%;transform:translateX(-50%);max-width:520px;width:100%;background:#fff;border-top:1px solid #e6eae6;display:grid;grid-template-columns:repeat(3,1fr);padding:7px 9px max(9px,env(safe-area-inset-bottom));z-index:3}.nav{border:0;background:transparent;color:#8a938e;padding:8px 0;font-size:11px;display:flex;flex-direction:column;align-items:center;gap:4px}.nav b{font-size:21px;font-weight:400}.nav.active{color:#255b41;font-weight:700}label{display:block;font-size:13px;font-weight:650;margin:15px 0 6px}input,select,textarea{border:1px solid #dfe5df;border-radius:10px;padding:12px;width:100%;background:white;color:#26312b;min-width:0}textarea{min-height:80px}.chip{border:1px solid #dce4dd;background:#fff;border-radius:30px;padding:8px 12px;font-size:13px}.chip.on{background:#e2efe5;border-color:#75a388}.photoGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:12px 0}.photoGrid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:9px}.photo{position:relative}.photo button{position:absolute;top:4px;right:4px;background:#fff;border:0;border-radius:50%;width:25px;height:25px}.statgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat{background:#f4f7f3;border-radius:12px;padding:15px}.stat strong{font-size:21px;display:block;margin-top:7px}.bar{height:9px;background:#edf1ec;border-radius:8px;overflow:hidden;margin:5px 0 12px}.bar>div{height:100%;background:#6b9879}.listbutton{width:100%;text-align:left;background:#fff;border:1px solid #e8ede8;border-radius:12px;padding:13px;margin:6px 0}.heart{color:#be5970}.hint{font-size:12px;color:#7c857e;line-height:1.7}.notice{background:#fff8e9;border:1px solid #f2e1b8;border-radius:10px;padding:12px;font-size:12px;line-height:1.7}.tabs{display:flex;gap:8px;overflow:auto;margin:12px 0}.tabs button{white-space:nowrap}.mapgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mapregion{border:1px solid #ddd;border-radius:10px;padding:14px 5px;text-align:center;background:#eceeed;font-size:13px}.mapregion.logged{background:#397c56;color:white}.mapregion.visited{background:#c1dfc7}.overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:flex-end;justify-content:center;z-index:10}.sheet{background:white;width:100%;max-width:520px;border-radius:20px 20px 0 0;padding:20px 18px max(24px,env(safe-area-inset-bottom))}.hide{display:none!important}.right{margin-left:auto}.flex1{flex:1}.delete{color:#a64242}.check{display:flex;align-items:center;gap:8px}.check input{width:auto}.monthnav{display:flex;align-items:center;gap:8px}.empty{padding:16px 0;color:#8c958f;font-size:13px}.thumb{width:58px;height:58px;object-fit:cover;border-radius:9px;background:#edf1ec}.itemrow{display:flex;align-items:center;gap:10px}.itemrow .content{flex:1;min-width:0}.itemrow .content strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.itemrow .content small{color:#818b84}.space{height:8px}a{color:#2c6049}

/* Picture-book visual refresh */
:root{color:#463e36;background:#f9f5ed}body{background:#f9f5ed}.app{background:#fffaf2}.top-main{min-height:24px;margin:0 0 8px;justify-content:flex-end}.top-main:empty{min-height:0;margin:0}.tile{background:#fff8eb;border:1px solid #eadbc5;border-radius:21px;box-shadow:0 3px 9px #b49a6a15}.tile strong{color:#5c4b39}.tile .story-icon{display:block;width:94px;height:83px;object-fit:contain;border-radius:14px}.choice{grid-template-columns:repeat(2,minmax(0,1fr))}.choice .tile{min-height:140px}.tiles .tile{min-height:160px}.story-banner{height:155px;overflow:hidden;border-radius:17px;margin:5px 0 18px}.story-banner img{width:100%;height:100%;object-fit:cover;object-position:center 20%}.day.active{background:#f4e8d6;border-color:#c5a77d}.bottom{background:#fffaf2;border-top-color:#eee1cf}.nav.active{color:#906a43}.chip.on{background:#f1e3ce;border-color:#c8a77d}.primary{background:#887452;border-color:#887452}.tile span:last-child{color:#897965}

/* Neutral, playful picture-book palette; geographic maps remain accurate. */
:root{color:#313b35;background:#f2f1e9}.app,.bottom{background:#fcfaf3}.tile{background:#f6f3e9;border-color:#d9ded0;box-shadow:none}.tile strong{color:#304b3c}.tile span:last-child{color:#66766b}.story-banner{height:105px}.day.active,.chip.on{background:#dce9d8;border-color:#88a48b}.nav.active{color:#285d48}.primary{background:#376b52;border-color:#376b52}.geo-map{background:#f5f7f3;border:1px solid #dfe7df;border-radius:16px;min-height:245px;display:grid;place-items:center;overflow:hidden;padding:8px}.geo-map svg{width:100%;height:auto;max-height:510px}.georegion{stroke:#fdfcf8;stroke-width:.65;stroke-linejoin:round;cursor:pointer;transition:fill .15s}.georegion.unknown{fill:#d5d9d5}.georegion.visited{fill:#b2d2b7}.georegion.logged{fill:#427b59}.georegion.selected{stroke:#c77935;stroke-width:2}.maplegend{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0;font-size:11px;color:#66766b}.maplegend span{display:flex;align-items:center;gap:5px}.maplegend i{width:11px;height:11px;border-radius:2px;display:inline-block}.legend-dark{background:#427b59}.legend-light{background:#b2d2b7}.legend-gray{background:#d5d9d5}.map-loading{padding:28px 16px;text-align:center;color:#62746a;font-size:13px}.map-loading small{display:block;margin-top:8px}
/* Clear, gender-neutral illustrated UI */
:root{color:#293a34;background:#f4f3ed}.app,.bottom{background:#fffefa}.top-main{min-height:12px;margin-bottom:4px}.top h1{display:none}.top:not(.top-main){justify-content:flex-start;min-height:35px}.story-banner{display:none}.tile{background:#f7f6ef;border:1px solid #d9dfd7;border-radius:17px}.tile .story-icon.pictogram{width:56px;height:56px;color:#426c58}.tiles .tile{min-height:136px}.tile strong{color:#283b31}.keypad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 20px}.key{min-height:62px;border:1px solid #d8ded7;border-radius:13px;background:#f6f5ed;color:#293d33;font-size:24px;font-weight:550}.key:active{background:#dfe9df}.key[data-id="C"],.key[data-id="⌫"]{color:#9b653e;background:#f5ebdd}#moneyAmount{font-size:30px;text-align:right;font-weight:650;letter-spacing:.03em;padding:16px}.heartrow{display:flex;align-items:center;gap:9px;margin:16px 0;font-size:14px}.hearttoggle{border:0;background:transparent;color:#27352d;font-size:36px;line-height:1;min-width:48px;min-height:48px;padding:3px;cursor:pointer}.hearttoggle.is-on{color:#171d1a}.geo-map{min-height:340px;background:#f8f9f4}.geo-map svg{max-height:570px;touch-action:pan-y}.georegion{stroke:#fffefa;stroke-width:.45}.georegion.logged{fill:#2f6650}.georegion.visited{fill:#abc9ac}.georegion.unknown{fill:#e3e6e0}

/* User-supplied record icons */
.tile .story-icon.custom-icon{display:block;width:94px;height:94px;object-fit:contain;border:0;border-radius:0;margin:0 auto 5px;background:transparent}.tiles .tile{min-height:165px}.choice .tile{min-height:160px}

/* Compact photo-first entry form */
.photoPicker{margin:9px 0 16px}.photoStrip{display:flex;gap:9px;overflow-x:auto;align-items:stretch;padding:4px 2px 8px;scroll-snap-type:x proximity}.photoTile,.photoAdd{position:relative;flex:0 0 94px;width:94px;height:94px;border-radius:13px;overflow:hidden;scroll-snap-align:start}.photoTile img{width:100%;height:100%;object-fit:cover}.photoAdd{display:grid;place-items:center;border:1.5px dashed #b5c4b9;background:#f6f8f3;color:#456956}.photoAdd span{font-size:36px;font-weight:300;line-height:1}.photoRemove{position:absolute;top:3px;right:3px;width:25px;height:25px;border-radius:50%;border:0;background:#fffdf1e8;font-size:18px}.photoOptions{display:flex;justify-content:flex-end}.photoOptions .check{font-size:11px;font-weight:400;margin:2px 0 0;color:#6f7a70}.photoOptions .check input{width:15px;height:15px}.heartrow{display:inline-flex;align-items:center;gap:5px;margin:8px 0 12px;font-size:13px;vertical-align:middle}.hearttoggle{font-size:24px;min-width:28px;min-height:28px;width:28px;height:28px;padding:0;display:inline-grid;place-items:center}.tile .story-icon.custom-icon{width:110px;height:110px;object-fit:contain}.choice .tile .story-icon.custom-icon{width:85px;height:85px}.tiles .tile{min-height:170px}.tile{background:#faf9f4}

/* Large, touch-navigable geographical map */
.map-shell{position:relative;width:100%;margin:12px 0 18px}
.geo-map{width:100%;height:min(72vh,720px);min-height:480px;padding:0;display:block;overflow:hidden;background:#f7f8f3;border:1px solid #d5dfd6;border-radius:14px}
.geo-map svg{display:block;width:100%;height:100%;max-height:none;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}
.geo-map svg:active{cursor:grabbing}
.map-controls{position:absolute;right:12px;bottom:12px;display:flex;flex-direction:column;gap:7px;z-index:2}
.map-controls button{min-width:44px;min-height:44px;border:1px solid #cad5ca;border-radius:12px;background:#fffefa;color:#2f5d49;font-size:21px;font-weight:600;box-shadow:0 2px 7px #0001}
.map-controls button:last-child{font-size:13px}
@media(max-width:450px){.geo-map{height:68vh;min-height:420px}}

/* Map interactions are contained inside the map; the rest of the page scrolls normally. */
.map-shell{isolation:isolate;overflow:hidden}
.geo-map{touch-action:none;overscroll-behavior:contain;position:relative}
.geo-map svg,.geo-map svg *{touch-action:none}
.map-controls{touch-action:manipulation}

/* Records home: six user-supplied illustrations, titles only, two columns by three rows. */
.records-compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:3px}
.records-compact .tile{min-height:0;height:clamp(100px,19.2dvh,148px);padding:7px 5px 9px;gap:3px;border-radius:15px;display:flex;justify-content:center}
.records-compact .tile .story-icon.custom-icon{width:min(82px,19vw);height:clamp(59px,11.5dvh,91px);margin:0;object-fit:contain;flex-shrink:1}
.records-compact .tile strong{font-size:14px;line-height:1.3;font-weight:650;white-space:nowrap}
@media(max-height:670px){.records-compact{gap:7px}.records-compact .tile{height:clamp(90px,17.8dvh,116px)}.records-compact .tile .story-icon.custom-icon{height:clamp(51px,9.5dvh,73px)}}

/* Records home: distribute the 2 x 3 grid evenly in the usable viewport. */
.app.records-home{height:100dvh;min-height:0;display:flex;flex-direction:column;justify-content:center;padding-top:max(16px,env(safe-area-inset-top));padding-bottom:calc(82px + env(safe-area-inset-bottom));overflow:hidden}
.records-home .top-main{display:none}
.records-home .records-compact{width:100%;height:100%;max-height:590px;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:clamp(9px,1.8dvh,16px);margin:auto 0}
.records-home .records-compact .tile{height:100%;min-height:0;max-height:none;padding:clamp(5px,1dvh,11px) 5px;gap:clamp(3px,0.8dvh,9px);overflow:hidden}
.records-home .records-compact .tile .story-icon.custom-icon{width:min(98px,26vw);height:min(12dvh,100px);max-height:68%;min-height:0;flex-shrink:1;object-fit:contain;margin:0}
.records-home .records-compact .tile strong{font-size:clamp(12px,3.6vw,15px);line-height:1.25;flex-shrink:0}
@media(max-height:580px){.app.records-home{padding-top:8px;padding-bottom:calc(72px + env(safe-area-inset-bottom))}.records-home .records-compact{gap:7px}.records-home .records-compact .tile .story-icon.custom-icon{height:10dvh}}

/* Scale the supplied illustrations with their card, rather than a fixed viewport cap. */
.records-home .records-compact .tile{container-type:size;justify-content:center;gap:clamp(3px,0.8cqh,9px)}
.records-home .records-compact .tile .story-icon.custom-icon{display:block;width:auto;height:auto;max-width:94%;max-height:none;object-fit:contain;flex:1 1 auto;min-height:0;min-width:0;align-self:center;margin:0}
.records-home .records-compact .tile strong{flex:0 0 auto;margin:0;line-height:1.2}
@media(max-height:580px){.records-home .records-compact .tile .story-icon.custom-icon{height:auto;max-height:none}}

.records-home .records-compact .tile .story-icon.custom-icon{width:94%;height:0;flex:1 1 0;object-fit:contain}

/* Selected map region: immediately visible list, independent of map pan/zoom. */
.region-sheet-backdrop{position:fixed;inset:0;background:rgba(21,31,26,.28);z-index:90}
.region-sheet{position:fixed;left:0;right:0;bottom:0;z-index:91;box-sizing:border-box;max-width:680px;margin:0 auto;padding:18px 18px calc(24px + env(safe-area-inset-bottom));background:#fffefa;border-radius:22px 22px 0 0;box-shadow:0 -10px 38px rgba(0,0,0,.16);max-height:72dvh;overflow-y:auto;overscroll-behavior:contain}
.region-sheet-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.region-sheet-heading h2{margin:0}
.region-sheet-close{border:0;background:#edf1eb;border-radius:50%;width:38px;height:38px;font-size:24px;line-height:1;cursor:pointer}
.region-sheet .listbutton{width:100%}
.region-sheet .thumb{width:54px;height:54px;object-fit:cover;border-radius:10px}
.region-sheet .itemrow{min-height:70px}
.region-sheet .empty{padding:18px 6px}
