/* Approved visual design */
.photo-crop.fish{height:auto;display:block;vertical-align:initial}
.list-grid .photo-crop.fish{background-size:123% auto}
:root{--green:#176e5b;--mint:#eaf3ed;--ink:#103d35;--muted:#7a858b;--cream:#faf9f4;--line:#e1e8e5;--danger:#b9433f}
body{background:#eceee8;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;line-height:1.6}button,a{touch-action:manipulation}button{transition:background .18s,box-shadow .18s}button:hover,.primary:hover{filter:brightness(.97)}.primary{background:linear-gradient(120deg,#1b715e,#287563);box-shadow:inset 0 1px 1px #ffffff20}.primary,.secondary{border-radius:15px;min-height:50px}.review-bar{position:relative;z-index:45;background:#123e35;color:#eef5ee;min-height:40px;display:flex;align-items:center;justify-content:center;gap:16px;padding:3px 16px;font-size:12px}.review-bar span{margin-right:auto}.review-bar button,.review-bar a{font-size:12px;color:inherit;min-height:34px;padding:4px 9px;white-space:nowrap}.review-bar a{opacity:.8}.app{max-width:1220px;background:var(--cream);grid-template-columns:210px minmax(0,1fr)}main{padding:36px 40px 70px}.side{background:linear-gradient(180deg,#faf9f4 60%,#e9f0e7);border-right:1px solid #e3e7df;top:0}.side:after{content:'';height:170px;margin:auto -23px -32px;background:url('./waterside-watercolor.png') center bottom/cover;opacity:.65;mask-image:linear-gradient(transparent,#000)}.brand{font-weight:800;letter-spacing:1px}.mobile-brand{display:none}.side nav a{min-height:52px}.header h1{font-size:34px;letter-spacing:-1px;font-weight:850}.header{margin-bottom:14px}.page-subtitle{font-size:15px;color:var(--muted);margin:-3px 0 25px}.search{border-radius:14px;height:52px;margin-bottom:16px}.search .icon{width:24px;height:24px}.search input{background:transparent}.filter-bar{gap:14px}.filter-bar .secondary{padding:12px 24px;font-size:16px}.sort-label{flex:0 1 200px}.sort-label select{background:#fff;border:1px solid var(--line);padding:12px 16px;border-radius:14px}.list-caption{display:flex;align-items:center;justify-content:space-between;margin:20px 0 14px;font-size:14px}.list-caption span{font-size:12px}.list-grid{gap:22px;align-items:start}.spot{background:#fff;border:1px solid #e8ede9;border-radius:20px;padding:0;overflow:hidden;box-shadow:0 3px 12px #2e534007;transition:transform .2s,box-shadow .2s}.spot:hover{box-shadow:0 8px 25px #2e534013;transform:translateY(-2px)}.spot-info{min-width:0;padding:15px 17px 17px;flex:1}.spot h3{font-size:19px;font-weight:800;line-height:1.5}.spot .meta{font-size:13px;margin:3px 0 10px}.badge{font-size:12px;padding:4px 10px;border-radius:8px;white-space:nowrap}.distance{font-size:17px;font-weight:650;padding-top:2px}.list-grid .spot{display:block}.list-grid .spot>.thumb{width:100%;height:170px;display:block;border-radius:0;object-fit:cover}.photo-crop{display:block;background-image:none;background-repeat:no-repeat;background-size:109.8% auto;aspect-ratio:3.3;flex-shrink:0}.photo-crop.river{background-position:50% 46.35%}.photo-crop.fish{background-position:50% 75.55%}.list-grid .spot .photo-crop{width:100%;border-radius:19px 19px 13px 13px}.list-grid .spot-info .row{flex-wrap:wrap;gap:2px 10px}.list-grid .spot h3{flex:1;min-width:145px}.mine-tabs{gap:9px;margin:22px 0 18px}.mine-tabs .chip{flex:1;border-radius:13px;font-size:14px;white-space:nowrap;padding:10px 7px}.mine-tabs .chip[href*="wish"].active{background:#fff0c9;color:var(--ink)}
.map{height:470px;border-radius:22px;background:#e9eee3;touch-action:pan-y}.illustrated-map{position:absolute;inset:-3%;background:url('./map-art.svg') center/cover;transition:transform .3s}.map-river-label,.map-place{position:absolute;font-size:13px;color:#7c8b87;pointer-events:none}.map-river-label{left:41%;top:61%;color:#5a9fae;transform:rotate(-20deg);font-size:17px;letter-spacing:8px}.p1{left:13%;top:21%}.p2{right:22%;top:38%}.p3{right:10%;bottom:21%;font-size:21px}.map-tools{right:16px;top:17px;gap:10px}.map-tools button{border-radius:15px;width:46px;height:48px}.map-caption{position:absolute;bottom:8px;left:10px;font-size:10px;background:#fffaf0d9;padding:3px 7px;border-radius:5px;color:#6a7c70}.demo-pins{position:absolute;inset:0;pointer-events:none}.demo-pin{position:absolute;pointer-events:auto;width:42px;height:46px;border:3px solid white;box-shadow:0 4px 12px #1a5a4430;border-radius:50% 50% 50% 5px;background:var(--green);color:#fff;font-size:31px;padding:0;transform:rotate(-45deg)}.demo-location{position:absolute;left:66%;top:65%;width:16px;height:16px;border:3px solid white;background:#30a7f3;border-radius:50%;box-shadow:0 0 0 22px #74caff26,0 2px 8px #176e5b20}.sheet-grip{width:42px;height:5px;background:#dce1dd;border-radius:6px;margin:18px auto 4px}[data-page=map] #results{display:grid;gap:12px}[data-page=map] #results .spot{padding:12px;gap:12px}[data-page=map] #results .spot-info{padding:3px 0}[data-page=map] #results .photo-crop{width:90px;height:96px;border-radius:12px;background-size:auto 720%;background-position:50% 46.35%}[data-page=map] #results .photo-crop.fish{background-position:50% 75.55%}[data-page=map] #results .spot .thumb{width:90px;height:96px}[data-page=map] .section-title{margin-top:3px}.location-bar{margin-bottom:16px}
[data-page=profile] main{background-image:linear-gradient(to right,var(--cream) 35%,transparent),url('./waterside-watercolor.png');background-repeat:no-repeat;background-position:right top;background-size:100% 220px,440px auto}.account-header{display:flex;align-items:center;gap:25px;background:#e8f1e9dd;border-radius:23px;padding:28px;margin:25px 0 28px;position:relative;overflow:hidden}.account-header:after{content:'';position:absolute;inset:0 0 0 65%;background:repeating-radial-gradient(ellipse at 100% 50%,transparent 0 18px,#8eb8a516 19px 20px);pointer-events:none}.profile-fish{width:105px;height:105px;border-radius:50%;border:2px solid #fff;background:#d6e8d9;margin:0;flex-shrink:0}.profile-fish .fish{width:76px;height:60px}.account-header h2{font-size:27px}.account-header .secondary{border:1px solid #93b29e;background:transparent;border-radius:30px;min-height:38px;padding:6px 15px;font-size:14px}.account-header p{font-size:16px;margin:3px 0 10px}.field-notes small{font-size:10px;letter-spacing:4px}.field-notes h2{font-size:25px}.personal-links{display:grid;gap:12px;border:0}.personal-links>a{background:#fff;border:0;border-radius:18px;padding:16px 20px;gap:16px}.profile-icon{width:62px;height:62px;border-radius:17px;display:grid;place-items:center;background:var(--mint);color:var(--green);flex-shrink:0}.profile-icon.wish{background:#fff3d7;color:#687b63}.profile-icon .icon{width:32px;height:32px}.personal-links strong{font-size:19px}.personal-links small{display:block;color:var(--muted);font-size:13px;margin-top:3px}.personal-links b{font-size:30px;font-weight:650;color:var(--green);margin-right:4px}.personal-links>a>.icon{color:#84938e;width:16px}.profile-footer{height:200px;margin:12px -40px -70px;background:linear-gradient(var(--cream),transparent 70%),url('./waterside-watercolor.png') center 65%/cover}.profile-footer p{text-align:center;padding-top:26px;font:18px KaiTi,STKaiti,serif;color:#718e81;letter-spacing:2px}.empty{padding:30px 10px 60px}.empty-art{height:160px;max-width:270px;margin:auto auto 18px;background:linear-gradient(#faf9f488,#faf9f400),url('./waterside-watercolor.png') center/cover;mask-image:radial-gradient(ellipse,#000 40%,transparent 74%);display:flex;align-items:center;justify-content:center}.empty-art .fish{width:100px;height:90px}.empty>.icon{display:none}.empty h3{font-size:23px}.empty p{font-size:15px;line-height:1.8;margin:16px 0 24px}
.detail-topline{text-align:center;font-size:18px;font-weight:650;margin-bottom:-39px;pointer-events:none}.hero-button{margin:15px 0 22px;border-radius:20px}.hero-button .photo-crop{width:100%;height:275px;aspect-ratio:auto;background-size:110% auto}.hero-button .photo-crop.river{background-position:50% 44.8%}.hero-button .photo-crop.fish{background-position:50% 77%}.large-crop .photo-crop{width:100%;border-radius:16px}.position-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:23px}.position-card>.icon:first-child{width:46px;height:46px;border-radius:50%;background:var(--mint);padding:10px}.personal-state{padding:16px 20px;background:#fff;border:1px solid var(--line);border-radius:18px}.personal-state>.chips{gap:8px}.personal-state [data-state=wish]{background:#fff5dc;color:#64765d}.personal-state [data-state=wish].active{background:#e6b944;color:#233b31}.personal-state [data-state=visited].active{background:var(--green);color:white}.more{background:#fff;border:1px solid var(--line);border-radius:16px;padding:6px 20px}.note-section{padding:20px;margin:15px 0;background:#fff;border:1px solid var(--line);border-radius:18px}.note-section h2{font-size:16px}.note-text{font-size:14px;color:#60756c}.action-bar{gap:12px}.action-bar>*{border-radius:16px}.form-card,#regionFields{background:#fff;padding:20px;border:1px solid #e8ece6;border-radius:18px;margin-bottom:15px}.form-card h2{font-size:19px}.form-card .section-title{margin-top:0}.photo-section .photos{margin-top:10px;float:left;margin-right:12px}.upload-row{display:flex;flex-direction:column;justify-content:center;gap:0;width:104px;height:100px;margin-top:14px;border:1px dashed #cbd6cf;border-radius:13px;background:#f7f9f5;font-size:13px}.upload-row>span{font-size:30px}.photo-section:after{content:'';display:block;clear:both}.photo img{width:104px;height:100px}.position-art{height:90px;width:115px;border-radius:12px;float:right;background:url('./map-art.svg') center/cover;margin:0 0 10px 10px}.position-section .button-row{clear:both;padding-top:10px}.field>span{font-size:15px}.field{margin:21px 0}.field small{color:#85918a}.position-section #locStatus{font-size:12px}.position-section .button-row button{font-size:13px;background:#fff;border:1px solid #bdcdc3;padding:10px}.check.visibility{background:#eaf1ea}.settings-card{padding:20px;background:#fff;border-radius:20px;margin-bottom:15px}.settings-card h2{font-size:19px}.settings-avatar{width:88px;height:88px;display:grid;place-items:center;margin:20px auto 0;border-radius:50%;background:#dce8d4}.settings-avatar .fish{width:62px;height:55px}input:disabled{background:#f0f2ee}.danger{border:1px solid #c46860;background:#fff6f1;color:var(--danger)}.dialog{border-radius:25px;background:var(--cream);box-shadow:0 15px 90px #122e3420}.dialog:before{content:'';display:block;width:42px;height:5px;background:#bdc6bf;border-radius:5px;margin:-9px auto 20px}.dialog h2{font-size:24px}.filter-dialog #filterTags{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:15px 0 18px}.filter-dialog .chip{height:70px;border-radius:15px;border:1px solid #d5e0d9;background:#fff;color:var(--ink);font-size:16px}.filter-dialog .chip.active{background:#e6f0e9;border-color:var(--green);color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.filter-dialog #applyFilters{width:calc(68% - 12px);margin:20px 0 0 12px}.filter-dialog #resetFilters{width:32%;margin-top:20px}.filter-dialog .field{margin:22px 0}.filter-dialog select{height:52px}
.signed-out .app{background:var(--cream)}.signed-out main{padding:0;min-height:100dvh}.auth-page{max-width:none;padding:0;min-height:100dvh;position:relative;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(370px,.9fr);grid-template-rows:1fr auto;align-items:center;isolation:isolate;background:var(--cream)}.auth-scenery{grid-column:1;grid-row:1/3;align-self:stretch;min-height:740px;background:url('./waterside-watercolor.png') 42% bottom/auto 100%;position:relative;padding:70px 45px;display:flex;flex-direction:column;align-items:center}.auth-brand .mobile-brand{display:flex;font-size:36px}.auth-brand .fish{width:64px;height:54px}.auth-brand{justify-content:center}.auth-intro{margin:34px 0 0;text-align:center}.auth-intro h1{font-family:KaiTi,STKaiti,"Microsoft YaHei",serif;font-size:37px;letter-spacing:2px}.auth-intro p{margin:14px 0;font-size:15px;color:#3b6b5b}.hero-quote{position:absolute;right:36px;top:250px;transform:rotate(-7deg);font:20px/1.8 KaiTi,serif;color:#4d7c6e}.auth-card{width:calc(100% - 90px);max-width:440px;justify-self:center;margin:65px 0 10px;grid-column:2;grid-row:1;align-self:center;padding:28px 30px 30px;border:1px solid #fff;border-radius:25px;box-shadow:0 10px 60px #46614409}.auth-card .field{margin:0 0 24px}.auth-card .field>span{font-size:16px;margin-bottom:10px;color:#243d42}.phone-field,.password-field{display:flex;align-items:center;border:1px solid #d8dfdd;border-radius:12px;height:53px;background:#fff}.phone-field>span{padding:0 15px;border-right:1px solid #d2d7d4;font-size:17px;color:#2c4547}.phone-field input,.password-field input{border:0;background:none;padding:12px;min-width:0}.password-field button{padding:9px 12px;color:#476267;min-width:44px}.auth-card input::placeholder{color:#a3aaa9}.auth-card .primary{min-height:55px;font-size:20px;margin-top:1px;border-radius:14px}.auth-bottom{grid-column:2;grid-row:2;justify-self:center;align-self:start;text-align:center;margin:-25px 0 80px;position:relative;z-index:2}.auth-bottom p{font-size:15px}.auth-bottom button{font-size:15px;font-weight:650;padding:0 4px;color:var(--green)}.auth-bottom small{font-size:12px}.auth-footer{display:none}
@media(min-width:761px){[data-page=profile] main{padding-left:65px;padding-right:65px}[data-page=profile] .profile-footer{margin-left:-65px;margin-right:-65px}.task-page main{max-width:850px;width:100%;margin:auto}}
@media(max-width:1000px) and (min-width:761px){.auth-card{width:calc(100% - 40px);padding:24px}.auth-scenery{padding:65px 16px}.auth-intro h1{font-size:29px}.auth-page{grid-template-columns:1fr 1fr}.hero-quote{right:25px;top:255px;font-size:17px}.list-grid{grid-template-columns:1fr}}
@media(max-width:760px){
 .review-bar{gap:3px;padding:3px 9px;font-size:10px;min-height:36px}.review-bar span{font-size:10px}.review-bar button,.review-bar a{font-size:10px;padding:4px 6px;min-height:30px}.app{display:block;max-width:none}.side{display:none}main{padding:22px 18px 100px}.mobile-brand{display:flex;font-size:24px;gap:10px;margin:0 0 16px}.mobile-brand .fish{width:44px;height:36px}.header h1{font-size:31px;letter-spacing:-1px}.header{margin-bottom:10px}.page-subtitle{margin:0 0 22px;font-size:13px}.header .compact{min-height:44px;font-size:13px;border-radius:14px;padding:10px 14px}.list-grid{grid-template-columns:1fr;gap:16px}.list-grid .spot .photo-crop{aspect-ratio:3.3}.spot-info{padding:12px 13px 14px}.spot h3{font-size:19px}.spot .meta{font-size:13px;margin:3px 0 8px}.distance{font-size:18px}.badge{font-size:12px;padding:4px 10px}.search{height:48px}.search input{font-size:15px}.filter-bar{gap:11px}.filter-bar .secondary{padding:10px 21px;min-height:48px;font-size:15px}.sort-label{flex:1;min-width:100px}.sort-label select{height:48px;font-size:14px}.filter-bar .text-button{font-size:11px;min-height:35px}.list-caption{font-size:13px;margin:18px 0 12px}.list-caption span{font-size:10px}.bottom{display:flex;border:0;border-radius:22px 22px 0 0;box-shadow:0 -5px 22px #294c3006;min-height:76px;padding:7px 18px max(10px,env(safe-area-inset-bottom));justify-content:space-around}.bottom>a{min-width:75px;min-height:55px;font-size:13px;border-radius:15px;gap:2px}.bottom .icon{width:26px;height:26px}.bottom>a.active{background:var(--mint);font-weight:650}.map{height:47dvh;max-height:500px;min-height:330px;border-radius:0;margin:0 -18px}.location-bar{font-size:12px;margin-top:-2px}.location-bar button{border:0}.map-tools button{width:41px;height:44px}.map-tools{right:15px;top:18px;gap:9px}.sheet-grip{margin-top:13px}.section-title h2{font-size:21px}.section-title>a{font-size:14px}[data-page=map] #results .spot{padding:10px;gap:10px}[data-page=map] #results .photo-crop{width:77px;height:90px;background-size:auto 740%}[data-page=map] .spot h3{font-size:18px}[data-page=map] .spot .meta{font-size:11px}[data-page=map] .spot .badge{font-size:10px;padding:3px 6px}[data-page=map] .distance{font-size:15px}[data-page=map] .list-caption{font-size:11px;text-align:center;display:block;color:#9ca5a2}.account-header{padding:22px 20px;gap:18px;margin:18px 0 25px;border-radius:20px}.profile-fish{width:89px;height:89px}.profile-fish .fish{width:63px;height:55px}.account-header h2{font-size:23px}.account-header p{font-size:13px}.account-header .secondary{font-size:13px}.field-notes h2{font-size:23px}.personal-links>a{padding:14px 13px;gap:14px;border-radius:17px}.profile-icon{width:60px;height:60px;border-radius:16px}.personal-links strong{font-size:18px}.personal-links small{font-size:12px}.personal-links b{font-size:28px}.profile-footer{height:180px;margin:10px -18px -25px}.profile-footer p{font-size:14px;padding-top:23px}[data-page=profile] main{background-size:100% 170px,310px auto}.empty{padding:35px 10px 50px}.empty h3{font-size:23px}.empty-art{height:165px}.empty p{font-size:15px}.mine-tabs{gap:8px;margin:20px 0 15px}.mine-tabs .chip{font-size:12px;min-height:43px}.task-page main{padding:18px 15px 100px}.task-page .header h1{font-size:28px}.detail-topline{font-size:17px;margin-bottom:-36px}.hero-button{margin-top:15px;border-radius:17px}.hero-button .photo-crop{height:230px;background-size:auto 740%}.hero-button .photo-crop.river{background-position:50% 46.2%}.hero-button .photo-crop.fish{background-position:50% 75.5%}.hero{height:230px}.detail-meta{font-size:14px;margin:4px 0 13px}.position-card{padding:17px}.personal-state{padding:12px 14px;font-size:14px}.personal-state .chip{font-size:14px;min-height:42px;padding:9px 17px}.task-page .action-bar{padding:12px 16px max(13px,env(safe-area-inset-bottom));gap:9px}.task-page .action-bar>*{font-size:15px}.form-card,#regionFields{padding:16px}.field>span{font-size:14px}.position-art{width:95px;height:80px}.position-section .button-row button{font-size:12px}.dialog{padding:23px 19px 25px;max-height:92dvh;border-radius:25px 25px 0 0}.modal{padding:0;align-items:flex-end}.dialog .header h2{font-size:26px}.dialog .header button{font-size:28px}.modal-map{margin:15px 0;height:38dvh;border-radius:16px}.filter-dialog .chip{height:78px}.settings-card{padding:16px}.settings-card h2{font-size:19px}.settings-card .field{margin:17px 0}.settings-avatar{width:85px;height:85px}.photo-preview{max-height:60dvh}
 .signed-out main{padding:0;min-height:100dvh}.auth-page{display:block;padding:0;min-height:100dvh;overflow:hidden;background:var(--cream)}.auth-scenery{min-height:355px;padding:35px 15px 0;background-position:50% bottom;background-size:auto 390px;display:block}.auth-brand .mobile-brand{font-size:29px;justify-content:center;margin:0}.auth-brand .fish{width:55px;height:45px}.auth-brand{display:block}.auth-intro{margin:20px 0 0}.auth-intro h1{font-size:27px;letter-spacing:1px;line-height:1.5}.auth-intro p{font-size:12px;margin:7px 0}.hero-quote{right:23px;top:182px;font-size:14px;line-height:1.6}.auth-card{width:calc(100% - 32px);max-width:450px;margin:-35px auto 0;padding:23px 21px 24px;position:relative;z-index:1;border-radius:22px;box-shadow:none}.auth-card .field{margin:0 0 21px}.auth-card .field>span{font-size:15px;margin-bottom:9px}.phone-field,.password-field{height:50px;border-radius:11px}.auth-card input{font-size:15px}.auth-card .primary{min-height:52px;font-size:19px;margin-top:0}.auth-bottom{margin:13px auto 0;padding:0 18px;text-align:center;position:relative;z-index:2}.auth-bottom p{font-size:14px}.auth-bottom button{font-size:15px;min-height:39px}.auth-bottom small{font-size:11px;color:#90958f}.auth-footer{display:block;height:165px;margin-top:-20px;background:linear-gradient(var(--cream),transparent 60%),url('./waterside-watercolor.png') center bottom/cover;position:relative}.auth-footer span{position:absolute;right:27px;top:52px;transform:rotate(-8deg);color:#4a7768;font-size:10px;letter-spacing:3px;line-height:1.9}.auth-page:has(#authConfirm) .auth-scenery{min-height:300px;background-size:auto 350px}.auth-page:has(#authConfirm) .hero-quote{display:none}
}
@media(max-width:370px){.review-bar span{max-width:65px;font-size:9px}.review-bar{gap:0}.review-bar a,.review-bar button{font-size:9px}.header h1{font-size:28px}.account-header{padding:18px 13px;gap:13px}.profile-fish{width:72px;height:72px}.account-header h2{font-size:20px}.list-caption span{font-size:9px}.personal-links strong{font-size:16px}.personal-links small{font-size:11px}.profile-icon{width:51px;height:55px}.personal-links>a{gap:10px}.auth-intro h1{font-size:24px}.auth-brand .mobile-brand{font-size:27px}.personal-state{display:flex}.personal-state .chip{padding:8px 12px}.personal-state .chips{margin:0}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Review revision: small illustrated choices and a quieter edit form. */
.compact-options{display:grid;gap:8px;margin:10px 0 20px}
.water-options{grid-template-columns:repeat(3,minmax(0,1fr))}
.tag-options{grid-template-columns:repeat(2,minmax(0,1fr))}
.compact-options .chip,.filter-dialog .compact-options .chip{display:flex;align-items:center;justify-content:flex-start;gap:8px;min-height:44px;height:44px;margin:0;padding:8px 10px;font-size:13px;border-radius:11px;border:1px solid #dce5df;background:#fff;color:#456457;white-space:nowrap}
.compact-options .chip.active,.filter-dialog .compact-options .chip.active{background:#e6f1e9;border-color:#37866a;box-shadow:inset 0 0 0 1px #37866a30;color:#135f48}
.compact-options .icon{width:21px;height:21px;flex-shrink:0;stroke-width:1.65}
.filter-dialog #filterTags{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0 18px}
.filter-dialog .field-grid{gap:12px}.filter-dialog .field{margin:8px 0 18px}.filter-dialog .field-label{margin-top:8px}.filter-dialog select{height:44px;min-height:44px;padding:9px 11px;font-size:14px}
.field-label small{color:var(--muted);font-size:12px;font-weight:400;margin-left:5px}
.filter-actions{display:flex;gap:12px;margin-top:18px}.filter-dialog .filter-actions #resetFilters{width:auto;flex:1;margin:0}.filter-dialog .filter-actions #applyFilters{width:auto;flex:2;margin:0}
#city[readonly],#district[readonly]{background:#f2f5f0;color:#577267;border-color:#e4eae3}
.delete-section{border-top:1px solid var(--line);padding-top:22px;margin-top:22px}
.delete-section .danger{min-height:46px;gap:8px;font-weight:500;background:transparent}
[data-page=edit] #spotForm>.action-bar{position:static;padding:15px 0 0;background:none;border:0;backdrop-filter:none;margin:0}
[data-page=edit] main{padding-bottom:40px}
.share-address{display:flex;gap:8px;align-items:flex-start;color:#567268;font-size:13px;margin:0 0 16px;overflow-wrap:anywhere}
.detail-actions{display:flex;gap:10px;padding:14px 0 8px;border-bottom:1px solid rgba(18,62,53,.1)}
.coord-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}.coord-row .secondary{min-height:36px;padding:6px 16px;border-radius:10px;font-size:13px}.position-address{display:flex;align-items:center;gap:8px;font-weight:650}.position-address .icon{width:20px;color:var(--green)}
.toggle-control{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:#fff;margin:12px 0}.toggle-control>input{position:absolute;opacity:0;pointer-events:none}.toggle-copy{display:flex;flex-direction:column;gap:2px;flex:1}.toggle-copy strong{font-size:15px}.toggle-copy small{font-size:12px;color:var(--muted)}.switch{width:48px;height:28px;border:0;border-radius:20px;background:#c8d2cc;padding:3px;position:relative}.switch i{display:block;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform .18s}.switch.on{background:var(--green)}.switch.on i{transform:translateX(20px)}
.detail-actions button{flex:1;border:1px solid rgba(18,62,53,.16);background:var(--cream);color:var(--ink);border-radius:14px;padding:10px 8px;display:flex;align-items:center;justify-content:center;gap:6px;font-weight:600}
.detail-actions button.active{background:var(--mint);border-color:var(--green);color:var(--green)}
.detail-actions svg{width:17px;height:17px}
.badge{display:inline-flex!important;align-items:center;gap:4px}.badge svg{width:13px;height:13px;stroke-width:1.8}
.map-sheet{position:relative;margin:0 -18px;padding:0 16px 18px;background:var(--cream);border-radius:24px 24px 0 0;max-height:230px;overflow:hidden;transition:max-height .3s ease;z-index:2;box-shadow:0 -5px 18px rgba(18,62,53,.08)}
.map-sheet.expanded{max-height:66vh;overflow:auto}.map-sheet .section-title{padding-top:2px}
.sheet-grip{width:48px;height:5px;border-radius:4px;background:#aec2b8;margin:10px auto 8px;cursor:grab}
.share-link-note{text-align:center;margin:8px 0 14px}.mine-tabs .chip{flex:0 1 150px;min-width:0}
@media(max-width:760px){.mine-tabs{gap:6px}.mine-tabs .chip{flex:1 1 0;font-size:12px;padding:8px 4px;white-space:nowrap}.map-sheet{margin:0 -14px;padding-left:14px;padding-right:14px}}
@media(max-width:370px){.compact-options .chip,.filter-dialog .compact-options .chip{font-size:11px;padding:8px 7px;gap:5px}.compact-options .icon{width:19px;height:19px}}
.switch{width:64px;height:32px;border-radius:18px;padding:4px}.switch i{width:24px;height:24px}.switch.on i{transform:translateX(32px)}
.task-page .position-card .coord-row .meta{display:none}.task-page .position-card .coord-row:before{content:none}.task-page .position-card .coord-row .secondary{flex:1;min-height:42px;font-size:14px}
.mine-tabs{display:flex;flex-wrap:wrap;justify-content:space-between}.mine-tabs+.search{display:flex;width:100%;flex-basis:100%;margin-top:4px}.filter-bar{width:100%;display:flex;flex-wrap:wrap}.filter-bar .secondary{flex:1}.filter-bar .sort-label{flex:1}.filter-bar .text-button{margin-left:auto}
.task-page .position-card .coord-row{justify-content:flex-start}.task-page .position-card .coord-row .secondary{max-width:none;width:100%}
[data-page=list] .list-grid{width:100%;justify-items:stretch}[data-page=list] .list-grid>.spot{width:100%;justify-self:stretch}
[data-page=list] .search{display:flex!important;width:100%!important;max-width:none!important;clear:both;float:none}
.bottom .tab-fish{display:grid;place-items:center;width:26px;height:26px;color:currentColor}.bottom .tab-fish .fish{width:26px;height:24px}.bottom>a.active .tab-fish{color:var(--green)}
.loading{font-family:"Comic Sans MS","幼圆","YouYuan","STKaiti",cursive;font-size:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:45vh;color:var(--green)}.loading::before{display:none!important}.loading-fish{font-family:"Segoe UI Emoji",sans-serif;font-size:46px;display:block;animation:fish-bob 1.8s ease-in-out infinite}@keyframes fish-bob{0%,100%{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-7px) rotate(5deg)}}
.loading-welcome{position:fixed;inset:0;z-index:4;min-height:0;background:var(--cream);gap:14px;font-size:20px}.loading-welcome .loading-fish{font-size:54px}.loading-fish svg{display:block;width:68px;height:50px}
.auth-intro{padding:0;background:transparent;box-shadow:none;backdrop-filter:none}.auth-intro h1{color:#184d3f;font-weight:800;text-shadow:0 1px 2px rgba(255,255,255,.85)}.auth-intro p{color:#2d6654;font-weight:650;text-shadow:0 1px 2px rgba(255,255,255,.9)}.hero-quote{padding:0;background:transparent;box-shadow:none;color:#356b59;font-weight:650;text-shadow:0 1px 2px rgba(255,255,255,.9)}.auth-footer span{text-shadow:0 1px 2px rgba(255,255,255,.95);font-weight:650}
.detail-gallery-track{display:flex;width:100%;height:100%;transition:transform .25s ease}.detail-gallery-track>img{width:100%;height:100%;object-fit:cover;flex:0 0 100%}.hero-button{position:relative;overflow:hidden}.gallery-count{position:absolute;right:12px;bottom:12px;background:#123e35cc;color:#fff;border-radius:12px;padding:4px 9px;font-size:12px}

/* Layout and interaction adjustments for live data. */
.user-location-marker{width:64px;height:72px;position:relative;pointer-events:none;filter:drop-shadow(0 2px 3px #174b3d33)}.user-location-marker svg{display:block;width:64px;height:72px}.user-location-marker span{position:absolute;left:50%;top:73px;transform:translateX(-50%);white-space:nowrap;color:#176e5b;background:#fffef5;border:1px solid #c5ded1;border-radius:9px;padding:1px 7px;font-size:11px;font-weight:600}.fallback-user-location{position:absolute;transform:translate(-32px,-64px);z-index:160}
#main{display:block;min-width:0}#main .search{display:flex;width:100%;margin:0 0 16px}#main .search input{flex:1;min-width:0}
.personal-list .mine-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:8px;margin:18px 0 14px}.personal-list .mine-tabs .chip{min-width:0;padding:8px;min-height:42px}
.personal-list #listCount{display:none}.personal-list #results{margin-top:18px;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row;justify-content:start}.personal-list #results>*{min-width:0}
.visit-toggle{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:46px;margin:12px 0;border:1px solid var(--line);border-radius:14px;background:#fff}.visit-toggle.active{background:var(--mint);border-color:var(--green);color:var(--green)}
.visibility-control{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;background:#fff;border:1px solid var(--line);border-radius:16px;margin:12px 0}.visibility-control small{display:block;margin-top:4px}.visibility-switch{flex:0 0 68px;width:68px;min-height:30px;height:30px;padding:4px;background:#c8d2cc;border-radius:20px}.visibility-switch span{display:block;background:white;border-radius:50%;height:22px;width:22px;transition:transform .2s}.visibility-switch[aria-checked=true]{background:var(--green)}.visibility-switch[aria-checked=true] span{transform:translateX(38px)}
.photo-carousel{position:relative;width:100%;margin:16px 0 0;border-radius:20px;overflow:hidden;background:var(--mint)}.photo-track{display:flex;width:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}.photo-track::-webkit-scrollbar{display:none}.photo-slide{flex:0 0 100%;width:100%;min-width:0;padding:0;border-radius:0;scroll-snap-align:start}.photo-slide img{display:block;width:100%;height:300px;object-fit:cover;user-select:none}.photo-prev,.photo-next{position:absolute;top:45%;background:#123e3588;color:white;font-size:26px;padding:0;width:38px;min-height:42px}.photo-prev{left:10px}.photo-next{right:10px}.photo-count{position:absolute;bottom:12px;right:14px;background:#123e35bd;color:white;padding:3px 10px;border-radius:12px;pointer-events:none}.expanded-photo img{object-fit:contain;height:min(65vh,600px)}
.map-sheet{margin-top:-20px}.map-sheet.expanded{height:66dvh;max-height:66dvh}.map-sheet .sheet-grip{width:100%;height:32px;background:none;margin:0;display:grid;place-items:center;touch-action:none}.map-sheet .sheet-grip:before{content:'';width:46px;height:5px;background:#aec2b8;border-radius:4px}#listCaption{display:none}
.position-art{background-image:url('./map-art.svg')}.auth-scenery{isolation:isolate}.hero-quote{z-index:1}.auth-intro{z-index:2}.loading{min-height:35vh}
@media(max-width:1000px){.personal-list #results{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){.photo-slide img{height:240px}.expanded-photo img{height:60vh}.map-sheet{margin-left:-18px;margin-right:-18px}.auth-intro{position:relative}.hero-quote{top:200px}}
@media(prefers-reduced-motion:reduce){.loading-fish{animation:none}.photo-track{scroll-behavior:auto}}
@media(max-width:760px){body[data-page=map] #main{padding-bottom:310px}body[data-page=map] .map-sheet{position:fixed;left:0;right:0;bottom:76px;margin:0;height:220px;max-height:220px;padding:0 16px 16px;transition:height .25s,max-height .25s}body[data-page=map] .map-sheet.expanded{height:66dvh;max-height:66dvh}.map-sheet .section-title{margin:0 0 8px}}
