:root{--ink:#173b35;--muted:#66766d;--cream:#f7f5ed;--line:#dce2d8;--gold:#d7a645}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:system-ui,-apple-system,"PingFang SC",sans-serif}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ddac4c;outline-offset:3px}header{height:80px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;background:var(--ink);color:#fff9e6}.brand{display:flex;gap:13px;align-items:center;font-size:26px}.brand span{font-size:14px;letter-spacing:2px}.brand small{display:block;font-size:11px;letter-spacing:3px;opacity:.65;margin-top:5px}.date{font-size:12px;letter-spacing:2px;opacity:.8}main{max-width:1600px;margin:auto;padding:30px 4vw}.intro{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.eyebrow{font-size:11px;letter-spacing:3px;color:#8a713b;font-weight:700}h1{font-size:clamp(25px,3.2vw,40px);letter-spacing:-1px;margin:8px 0 12px}p{font-size:13px;line-height:1.7;color:var(--muted)}#progress{background:#fffdf6;border:1px solid #e3dfce;border-radius:18px;padding:16px 22px;white-space:nowrap;font-size:13px}#progress strong{font-size:30px;color:var(--ink)}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 320px;background:white;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 8px 32px #15392e08}.mapcol{min-width:0}.tools{display:flex;padding:18px 18px 8px;gap:10px}.search{background:#f3f6f0;display:flex;align-items:center;gap:8px;padding:0 12px;flex:1;border-radius:10px;min-width:0}.search span{font-size:27px}input{width:100%;background:none;border:0;padding:13px 0;outline:0;color:var(--ink);font-size:13px}select{max-width:150px;border:1px solid var(--line);background:white;border-radius:10px;font-size:12px;padding:0 8px;color:var(--ink)}.filters{padding:8px 18px 15px;display:flex;gap:6px;overflow-x:auto}.filters button{white-space:nowrap;border:1px solid transparent;background:#f3f5ee;border-radius:30px;padding:9px 12px;font-size:12px;color:#53625b}.filters button.active{background:var(--ink);color:white}.maptop{background:#edf1e7;display:flex;justify-content:space-between;align-items:center;padding:9px 16px;font-size:12px;color:#576958}.zoom{display:flex;gap:5px}.zoom button{min-height:36px;min-width:36px;border:1px solid #d5ddce;border-radius:8px;background:white;color:var(--ink)}#fit{font-size:12px;padding:0 10px}.mapwindow{height:640px;overflow:auto;background:#cbdab5;overscroll-behavior:contain;scrollbar-width:thin;position:relative}.mapwindow svg{display:block;width:1100px;max-width:none;height:auto}.maplabel{cursor:pointer}.maplabel:hover rect,.maplabel:focus rect{stroke:#c48509;stroke-width:2.4;filter:drop-shadow(0 2px 2px #0003)}.maplabel:focus{outline:none}.legend{display:flex;gap:15px;flex-wrap:wrap;padding:14px 18px 5px;font-size:11px;color:#66736a}.legend i{display:inline-block;width:15px;height:4px;border-radius:3px;vertical-align:middle;margin-right:5px}.purple{background:#8d35b3}.gold{background:#e9b81c}.note{font-size:11px;padding:0 18px 12px;line-height:1.65}aside{border-left:1px solid var(--line);display:flex;flex-direction:column;max-height:900px;background:#fbfcf8}.listhead{display:flex;align-items:center;justify-content:space-between;padding:18px}.listhead h2{font-size:17px;margin:0}.listhead span{font-size:12px;color:var(--muted)}#results{overflow:auto;padding:0 12px 14px}.card{width:100%;text-align:left;background:white;border:1px solid #e0e5db;border-radius:12px;padding:13px;margin-bottom:8px;color:var(--ink);display:block}.card:hover{border-color:#7c9c8a}.card .topline{font-size:10px;color:#7d887e;display:flex;justify-content:space-between;margin-bottom:6px}.card strong{display:block;font-size:14px}.card small{display:block;font-size:11px;color:#758278;margin:5px 0;line-height:1.5}.stars{color:#9c6d10;letter-spacing:2px;font-size:13px}.card .synopsis{font-size:11px;color:#65726a;margin:7px 0 0;line-height:1.6}.times{color:#83339e;font-weight:650;font-size:12px}.empty{padding:30px 12px;text-align:center;color:#64736b;line-height:1.8}.schedule{padding:35px 0 15px}.schedule h2{margin:6px 0;font-size:25px}.schedule p{margin:8px 0}#events{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0}#events button{text-align:left;padding:18px;background:#fffdf8;border:1px solid #dedfce;border-radius:13px;color:var(--ink)}#events strong{display:block;margin:8px 0;font-size:15px}#events .clock{font-size:20px;font-weight:700;color:#906e28}#events small{font-size:11px;line-height:1.6;display:block;color:#6d7c70}footer{border-top:1px solid #dfe2d7;font-size:11px;color:#7c857d;line-height:1.9;padding:20px 0 30px}a{color:#376e5d}dialog{border:0;border-radius:22px;width:min(540px,calc(100vw - 24px));max-height:88dvh;padding:0;color:var(--ink);background:#fffdf8;box-shadow:0 20px 80px #0004}dialog::backdrop{background:#102c256e;backdrop-filter:blur(3px)}.sheet{padding:30px 26px}.close{position:absolute;right:12px;top:12px;border:0;background:#ebeee5;border-radius:50%;width:36px;height:36px;color:var(--ink)}.sheet h2{font-size:25px;margin:10px 35px 6px 0}.sheet .english{font-size:13px;line-height:1.5;color:#768277;margin-bottom:15px}.badge{display:inline-block;background:#eef1e8;border-radius:30px;font-size:11px;padding:6px 10px}.sheet h3{font-size:14px;margin:22px 0 7px}.sheet p{font-size:14px;margin:5px 0;color:#55685d}.sheet .rating{padding:15px;border:1px solid #e2d8b9;border-radius:12px;background:#faf5e5}.sheet .rating .stars{font-size:23px}.sheet .rating p{font-size:11px}.actions{display:flex;gap:8px;margin:24px 0 12px}.actions button{flex:1;padding:12px 6px;border-radius:10px;background:white;border:1px solid #cfdbd0;color:var(--ink)}.actions button.selected{background:var(--ink);color:white}.mapjump{width:100%;border:0;border-radius:9px;background:#edf1e7;color:var(--ink);padding:12px}.official{display:block;margin-top:16px;font-size:12px;text-align:center}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#163c32;color:white;padding:11px 18px;border-radius:20px;font-size:12px;display:none;z-index:100}@media(max-width:900px){main{padding:22px 12px}.workspace{grid-template-columns:1fr}aside{border-left:0;border-top:1px solid var(--line);max-height:440px}#results{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.card{margin:0}#events{grid-template-columns:repeat(2,1fr)}.mapwindow{height:65dvh;min-height:430px}.intro{gap:10px}.intro>div>p:not(.eyebrow){font-size:12px}#progress{padding:10px 13px}#progress strong{font-size:22px}}@media(max-width:500px){header{height:65px;padding:0 17px}.brand span{font-size:11px}.date{font-size:10px}h1{font-size:25px}.intro{align-items:flex-start}.tools{padding:12px 10px 5px}select{max-width:100px;font-size:11px}.filters{padding:8px 10px 12px}.filters button{font-size:11px;padding:8px 10px}.maptop{padding:7px 10px}.mapwindow{height:62dvh}.legend{gap:9px;padding:12px 10px 2px}.note{padding:0 10px 10px}dialog{width:100%;max-width:none;max-height:88dvh;border-radius:22px 22px 0 0;margin:auto 0 0}.sheet{padding:27px 22px max(24px,env(safe-area-inset-bottom))}.schedule{padding:26px 4px 12px}}

.listtabs{display:flex;gap:6px;padding:14px 12px 0}.listtabs button{flex:1;border:1px solid #d6e1d3;border-radius:9px;padding:10px;background:white;color:#225a3c;font-size:12px}.listtabs button.active{background:#205e43;color:white}

/* Completion is visible through both color and a timestamp. */
.card{color:#202020}.card small{color:#404040}.card.completed{background:#86efac;border:2px solid #08752e;color:#064e1c}.card.completed small,.card.completed .topline,.card.completed .synopsis,.card.completed .stars,.card.completed .times{color:#064e1c}.completed-time{font-size:11px;font-weight:700;margin-top:9px;line-height:1.5;color:#064e1c}.completion-banner{background:#86efac;border:2px solid #08752e;color:#064e1c;padding:14px;border-radius:12px;margin-top:20px;font-weight:700;font-size:15px}.completion-banner small{display:block;font-size:11px;margin-top:6px;font-weight:400}.actions button#toggleDone.selected{background:#86efac;color:#064e1c;border:2px solid #08752e}

.timing{margin-top:20px;background:#f0f4ef;border:1px solid #d5dfd1;border-radius:12px;padding:14px}.timing h3{margin:0 0 12px}.timing>div{display:flex;justify-content:space-between;gap:12px;margin:10px 0;font-size:13px}.timing span{color:#5b6f60}.timing small{display:block;font-size:11px;line-height:1.6;color:#657766;margin-top:12px}.actions{flex-wrap:wrap}.actions button{min-width:115px}.actions button:disabled{opacity:.6;cursor:default;background:#e1e9dd}

.visit{border-top:1px solid #c8d7c5;margin-top:12px;padding-top:8px}.visit h4{font-size:14px;margin:8px 0;color:#08682a}.visit>div{display:flex;justify-content:space-between;gap:12px;margin:9px 0;font-size:12px}.visit.ongoing{background:#fff7da;padding:10px;border-radius:8px;border:1px solid #e8d59b}.visit-tools{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.visit-tools button{border:1px solid #cbd8c7;background:#f1f5ef;color:#28553b;border-radius:8px;padding:10px;font-size:12px}

.parknav{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;max-width:1470px;margin:14px auto 0;padding:0 12px}.parknav a{text-align:center;text-decoration:none;border:1px solid #cbd8c7;border-radius:11px;background:#fffdf6;color:#233d34;padding:12px 5px;font-size:13px;font-weight:650}.parknav a small{display:block;font-size:10px;margin-top:4px;font-weight:400}.parknav a[aria-current=page]{background:#173b35;color:#fff9e6;border-color:#173b35}@media(max-width:500px){.parknav{gap:5px}.parknav a{font-size:12px;padding:10px 2px}.parknav a small{font-size:8px}}

.card.completed,.completion-banner,.actions button#toggleDone.selected{background:var(--visit-bg,#86efac);color:var(--visit-fg,#064e1c);border-color:var(--visit-border,#08752e)}.card.completed small,.card.completed .topline,.card.completed .synopsis,.card.completed .stars,.card.completed .times,.card.completed .completed-time{color:var(--visit-fg,#064e1c)}.visit-legend{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;color:#394c40;padding:6px 18px 0}.visit-legend span{display:inline-flex;align-items:center;gap:4px}.visit-legend i{width:14px;height:14px;border:1px solid #0004;border-radius:4px;display:inline-block}

.transport-steps{padding-left:22px;color:#3d5650;font-size:14px;line-height:1.8}.transport-steps li{margin:10px 0}.destination-links{display:grid;gap:9px;margin:20px 0}.destination-links a{display:block;padding:12px;background:#e1edff;border:1px solid #aac4ec;border-radius:9px;text-decoration:none;color:#12448f;font-size:13px}.timing>div strong{max-width:76%;line-height:1.7}.schedule-reference{font-size:11px;color:#72582d;padding:0 18px;margin:10px 0 0;line-height:1.6}#events .clock{font-size:13px;line-height:1.8;overflow-wrap:anywhere}.rating .times{font-size:15px;line-height:1.9}.rating a{font-size:12px}.times{line-height:1.8}

.my-comment{margin:20px 0;padding:16px;border:1px solid #c9d7c7;border-radius:12px;background:#f2f6ef}.my-comment h3{margin:0 0 7px}.my-comment p{font-size:12px;margin:0 0 12px}.my-comment textarea{width:100%;min-height:120px;padding:12px;border:1px solid #bbcbbb;border-radius:9px;background:#fff;color:#1d352b;font:inherit;font-size:16px;line-height:1.7;resize:vertical;box-sizing:border-box}.my-comment textarea:focus{outline:2px solid #24714d;outline-offset:2px}.comment-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}.comment-footer span{font-size:11px;line-height:1.5;color:#42624b}.comment-footer button{border:0;background:#205e43;color:white;border-radius:8px;padding:10px 13px;font-size:12px;white-space:nowrap}.my-comment small{display:block;color:#697a6a;font-size:10px;margin-top:10px;line-height:1.6}.card .comment-preview{font-size:12px;border-left:3px solid currentColor;padding-left:8px;white-space:pre-wrap;overflow-wrap:anywhere;color:inherit;margin:10px 0 5px}.card.completed .comment-preview{color:var(--visit-fg,#064e1c)}

.record-recovery{border:1px solid #c5d3bd;background:#fffef6;border-radius:12px;margin:0 0 20px;padding:14px;color:#263e30}.record-recovery summary{cursor:pointer;font-size:14px;font-weight:700}.record-recovery summary span{display:block;font-size:11px;color:#766333;margin-top:7px}.record-body{padding-top:10px}.record-body ul{padding:0;list-style:none}.record-body li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #e3e5d8;font-size:12px}.record-body li span{max-width:70%;line-height:1.7}.record-controls{display:flex;flex-wrap:wrap;gap:10px}.record-controls button,.record-controls label,.record-backup button{border:1px solid #b3c5aa;border-radius:8px;padding:12px;background:#f0f5ea;color:#264b33;font-size:12px;cursor:pointer}.record-controls input{display:block;font-size:12px}.record-body h3{font-size:14px}.record-backup{border:1px solid #d4dec9;border-radius:9px;padding:12px;margin:8px 0}.record-backup span,.record-backup small{display:block;font-size:11px;margin:6px 0}.record-backup button{padding:8px}.record-body p{font-size:12px}#recoveryStatus{color:#755221}
.account-panel{background:#fffdf4;border:1px solid #c8d5c7;border-radius:14px;padding:16px;margin:14px 0 20px}.account-title{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.account-panel p{margin:9px 0;font-size:14px;line-height:1.6}.account-panel small,.community small{display:block;font-size:12px;line-height:1.6;color:#586859}.account-actions{display:flex;gap:8px;flex-wrap:wrap}.account-actions button,.publish-controls button{border:1px solid #91ad95;padding:9px 12px;border-radius:8px;background:#e4efe1;color:#183f2c;cursor:pointer}.community{border-top:1px solid #d6d9c8;margin-top:24px;padding-top:15px}.publish-controls{background:#f3f5e9;border-radius:12px;padding:14px;margin-top:12px}.publish-controls label{display:block;margin:12px 0}.publish-controls input[type=text],#reviewNickname{display:block;width:100%;max-width:100%;padding:10px;border:1px solid #b6c1b0;border-radius:7px;margin-top:7px}.publish-controls button{margin:8px 0}.public-review{border:1px solid #dde3d5;border-radius:10px;padding:12px;margin:10px 0;background:#fff}.public-review p{white-space:normal;overflow-wrap:anywhere}.public-review small{display:inline;margin-left:10px}.publish-controls button:disabled{opacity:.5;cursor:wait}
.name-language{display:flex;flex-direction:column;gap:3px;font-size:11px;color:#516454;min-width:118px}.name-language select{min-height:39px;width:100%}.tools{flex-wrap:wrap}.tools .search{flex:1 1 210px}html[data-name-language=zh] [data-name-lang=en],html[data-name-language=en] [data-name-lang=zh]{display:none}html[data-name-language=en] .parknav small{font-size:12px;font-weight:700}.parknav small[data-name-lang=en]{line-height:1.35}
#guestImportStatus:not(:empty){padding:10px 12px;background:#fff0b8;border:1px solid #d8b44a;border-radius:8px;color:#593d0c;font-weight:650}
.daily-plan-panel{background:#fffdf4;border:1px solid #c6d4bd;border-radius:16px;margin:0 0 24px;padding:15px 18px}.daily-plan-panel>summary{cursor:pointer;font-weight:750;color:#214d3b;padding:3px 0}.plan-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap;margin-top:14px}.plan-heading h2{margin:4px 0;font-size:23px}.plan-heading label,.show-time-grid label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:650}.plan-heading input,.show-time-grid input,.show-time-grid select{max-width:100%;min-width:0;background:white;color:#203d31;border:1px solid #b0c2ab;border-radius:8px;padding:10px;font:inherit;min-height:44px}.plan-heading input{width:170px}.daily-plan-panel p{line-height:1.65}.plan-nudge,.plan-warning{background:#fff0bd;border:1px solid #e2c674;border-radius:10px;padding:12px;font-size:14px}.plan-warning p{margin:5px 0}.plan-list{list-style:none;padding:0;margin:15px 0}.plan-list>li{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #dce4d5;padding:12px;margin:9px 0;border-radius:12px}.plan-rank{font-size:19px;font-weight:800;background:#245442;color:white;width:33px;height:33px;display:grid;place-content:center;border-radius:50%;flex-shrink:0}.plan-item-info{flex:1;min-width:0}.plan-title{border:0;background:none;text-align:left;color:#183f30;font:inherit;font-weight:750;cursor:pointer;padding:0;overflow-wrap:anywhere}.plan-item-info small{display:block;font-size:12px;color:#526a57;margin-top:6px;line-height:1.6}.plan-edit{font-size:12px;padding:5px 8px;margin-top:7px;border:1px solid #bccdb4;background:#f1f5e9;border-radius:6px;color:#234c35}.plan-reorder{display:flex;gap:5px;align-items:center}.plan-reorder button,.plan-reorder select{border:1px solid #bdcbb4;background:#f8faf3;color:#244935;border-radius:7px;min-height:38px;padding:5px 8px;font-size:14px}.plan-reorder button:disabled{opacity:.3}.plan-controls{display:flex;gap:8px;flex-wrap:wrap;margin:13px 0}.plan-controls button,#closeShowReminder,.show-reminder-message button{border:1px solid #9eb595;border-radius:8px;padding:10px 13px;background:#e4f0dd;color:#214632;cursor:pointer;font:inherit;font-size:13px}.reminder-limit{font-size:12px;color:#596a59;background:#edf2e7;padding:12px;border-radius:10px}.show-plan-editor{margin:18px 0;padding:16px;background:#f6f3e3;border:1px solid #d8d0a7;border-radius:13px}.show-plan-editor p{font-size:13px;line-height:1.7}.show-time-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.show-remind-check{display:flex;gap:8px;align-items:center;font-size:14px;line-height:1.6}.show-remind-check input{width:20px;height:20px;flex-shrink:0}.show-plan-editor small{display:block;font-size:12px;color:#63715b;line-height:1.65}.show-reminder-dialog{width:min(94vw,560px);border:2px solid #a88a27;border-radius:20px;padding:0;background:#fffbee;box-shadow:0 18px 70px #0005}.show-reminder-dialog::backdrop{background:#122c21aa}.show-reminder-dialog .sheet{padding:22px}.show-reminder-message{padding:12px 0;border-bottom:1px solid #e1d6b2;margin-bottom:12px}.show-reminder-message strong{font-size:19px}.show-reminder-message p{line-height:1.75}.show-reminder-dialog>div>p{font-size:12px;color:#6b715e}#plannerStatus,#showPlanStatus{font-size:13px;line-height:1.65;color:#245337}@media(max-width:560px){.daily-plan-panel{padding:13px 11px}.plan-list>li{flex-wrap:wrap;gap:9px}.plan-item-info{flex-basis:calc(100% - 50px)}.plan-reorder{margin-left:42px}.plan-heading{gap:8px}.show-time-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.show-plan-editor{padding:12px}.show-time-grid input{width:100%;box-sizing:border-box}.plan-controls button{flex:1 1 145px}.show-reminder-dialog{max-height:85vh;overflow-y:auto}}
.restore-panel{border:2px solid #b29b3e;background:#fff7d8;border-radius:15px;padding:18px;margin:18px 0}.restore-panel[hidden]{display:none}.restore-panel h2{margin-top:0}.restore-panel p,.restore-panel li{line-height:1.8}.restore-panel button{background:#24513c;color:white;border:0;border-radius:9px;padding:13px 16px;font-size:15px}.restore-panel button:disabled{opacity:.6}.restore-panel a{font-weight:700}
.record-importing main>:not(#restorePanel){pointer-events:none;opacity:.6}

/* Personal project ratings; finger-sized controls and keyboard focus. */
.rating-group{border:0;border-top:1px solid #dce4df;padding:12px 0;margin:8px 0;min-width:0}.rating-group legend{font-weight:700;padding:0 5px}.rating-stars{display:flex;align-items:center;flex-wrap:wrap;gap:2px}.rating-stars label{position:relative;display:inline-flex!important;align-items:center;justify-content:center;width:44px;height:44px;margin:0!important;cursor:pointer}.rating-stars input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.rating-stars span{font-size:34px;color:#b7bfc1;line-height:1}.rating-stars .selected span{color:#b76b00}.rating-stars label:focus-within{outline:3px solid #24786e;border-radius:6px}.rating-stars output{font-size:13px;margin:0 7px}.rating-stars .rating-clear{font-size:12px;padding:6px 10px;min-height:36px}.rating-group small{display:block;color:#5c6866}.rating-readout{font-size:13px;margin:5px 0}.rating-readout span{color:#a96200;letter-spacing:2px}.rating-editor p{font-size:13px;color:#5c6866}

.review-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0}.review-photo-grid img{display:block;width:100%;height:110px;object-fit:cover;border-radius:10px;background:#e6ece7}.review-photo-grid button{font-size:12px;width:100%;padding:8px 3px;min-height:40px;margin-top:4px}.photo-editor input{max-width:100%;font-size:14px}.photo-editor p{font-size:13px;color:#5b6c64}@media(max-width:380px){.review-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.community-score{display:grid;grid-template-columns:1fr auto;gap:3px 12px;padding:10px 0;border-bottom:1px solid #dde6de}.community-score strong{color:#205e50}.community-score small{text-align:right;color:#69756f}.average-stars{position:relative;display:block;width:5ch;letter-spacing:0;line-height:22px;font-size:18px;font-family:monospace;color:#bcc5be}.average-stars i{position:absolute;left:0;top:0;white-space:nowrap;overflow:hidden;color:#b76b00;font-style:normal}.score-note{font-size:12px;color:#617068}

.spot-controls{padding:14px;background:#fff2f7;border:1px solid #eac7d6;border-radius:12px;margin:10px 0}.spot-controls[hidden]{display:none}.spot-controls button{padding:10px 14px;margin:3px;min-height:44px}.spot-controls p{font-size:13px;color:#7a455d}.spot-controls~.mapwindow [data-spot]{cursor:pointer}#spotContent>label{display:block;margin:14px 0}#spotContent input:not([type=checkbox]),#spotContent textarea{display:block;width:100%;box-sizing:border-box;padding:12px;border:1px solid #b5c7bb;border-radius:8px;font:inherit;margin-top:6px}#spotContent button{min-height:44px}#spotsLayer [role=button]:focus{outline:none}#spotsLayer [role=button]:focus circle{stroke:#273e80;stroke-width:5}

.site-feedback{margin:28px 0;padding:24px;border:1px solid #cdded1;background:#f6faf4;border-radius:18px}.site-feedback h2{margin:6px 0 10px}.site-feedback label{display:block;font-weight:600;margin:14px 0 6px}.site-feedback select,.site-feedback textarea{font:inherit;display:block;width:100%;box-sizing:border-box;padding:12px;border:1px solid #afc5b6;border-radius:9px;background:white}.site-feedback textarea{resize:vertical;min-height:120px}.site-feedback button{min-height:46px;padding:10px 22px;background:#205c4c;color:white;border:0;border-radius:9px}.site-feedback button:disabled{opacity:.55}.site-feedback details{margin-top:20px}.site-feedback article{padding:14px 0;border-bottom:1px solid #dbe5dc}.site-feedback article p{white-space:pre-wrap;overflow-wrap:anywhere}.site-feedback small{display:block;text-align:right;color:#607267}#feedbackStatus{font-size:14px;color:#205c4c}

.community-progress{margin:28px 0;padding:24px;border:1px solid #bfd6d0;border-radius:18px;background:#f3f8f6}.community-progress details{margin:16px 0}.community-progress summary{cursor:pointer;font-weight:650;padding:8px 0}.progress-settings{background:white;border:1px solid #d5e3db;border-radius:12px;padding:16px;margin:18px 0}.progress-settings label{display:block;margin:10px 0}.progress-settings input:not([type=checkbox]){display:block;width:100%;box-sizing:border-box;padding:10px;border:1px solid #a7c0b4;border-radius:8px;font:inherit}.community-progress button{padding:10px 16px;min-height:44px;border-radius:8px}.progress-averages{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.progress-summary{background:white;border:1px solid #d4e1d7;border-radius:12px;padding:14px}.progress-summary h4{margin:0}.progress-summary dl{font-size:13px;margin:8px 0}.progress-summary dt{color:#566c62;margin-top:9px}.progress-summary dd{margin:3px 0;font-weight:600}.progress-summary small{font-weight:400;color:#697c72}.public-progress-person{background:white;padding:12px;border-radius:10px}.public-visit{font-size:13px;border-left:3px solid #adccba;padding:6px 12px;color:#455e51}.community-progress .note{font-size:12px}

.filter-order-tools{display:flex;gap:12px;align-items:center;padding:8px 14px;flex-wrap:wrap}.filter-order-tools button{border:1px solid #a6bdb5;background:#fff;border-radius:20px;padding:9px 14px;color:#17463a}.filter-order-tools span{font-size:12px;color:#52685e}.filters.sorting button{touch-action:none;user-select:none;cursor:grab;border-style:dashed}.filters.sorting button:before{content:'⠿ ';opacity:.65}.filters button.dragging{background:#f9ce61;color:#252315;box-shadow:0 4px 16px #1234;transform:scale(1.04)}
.achievements{margin:12px 0 20px;padding:18px 22px;border:1px solid #d9dfc8;border-radius:20px;background:linear-gradient(120deg,#e9f9ef,#fff4d5);color:#17463a}.achievement-numbers{display:flex;flex-wrap:wrap;gap:24px;margin:12px 0}.achievement-numbers span{font-size:13px}.achievement-numbers b{font-size:30px;margin-right:5px}.achievements p{margin:8px 0}.achievements small,.achievement-detail small{display:block;color:#5b6b60;font-size:11px;line-height:1.6}.achievement-detail{background:#edf9f1;padding:12px;border-radius:12px;margin:12px 0}
.magic-effect{position:fixed;z-index:99999;pointer-events:none;left:50%;top:38%;width:min(86vw,360px);transform:translate(-50%,-50%);text-align:center}.magic-effect strong{position:relative;z-index:2;display:block;background:#174b40;color:white;padding:16px;border-radius:18px;box-shadow:0 8px 35px #1235;font-size:16px}.magic-effect i{position:absolute;left:50%;top:50%;font-style:normal;color:var(--color);font-size:22px;animation:magic-bloom 1.7s var(--delay) ease-out both}.magic-effect.queue strong{background:#3f508d}.magic-effect.queue i{animation-name:magic-queue}@keyframes magic-bloom{0%{transform:translate(0,0) scale(.2);opacity:0}15%{opacity:1}100%{transform:translate(var(--dx),var(--dy)) rotate(120deg) scale(1.3);opacity:0}}@keyframes magic-queue{0%{transform:translate(var(--dx),50px);opacity:0}25%{opacity:1}100%{transform:translate(var(--dx),-100px);opacity:0}}@media(prefers-reduced-motion:reduce){.magic-effect i{animation:none;display:none}.filters button.dragging{transform:none}}
.story-guide{background:#f5f7ff;border:1px solid #d9e0f1;border-radius:16px;padding:16px;margin:20px 0}.story-guide h3{margin-top:0}.story-guide h4{margin:18px 0 8px;color:#384979}.story-vocab{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0 14px}.story-vocab>div{background:white;border:1px solid #e2e5f1;border-radius:10px;padding:10px;overflow-wrap:anywhere}.story-vocab dt{font-weight:700;color:#263864}.story-vocab dd{margin:4px 0 0;font-size:13px;line-height:1.5}.story-guide small{display:block;font-size:11px;line-height:1.6;color:#657185}.story-guide details{border-top:1px solid #dde3f2;margin-top:16px;padding-top:12px}.story-guide summary{cursor:pointer;font-weight:600;font-size:14px}@media(max-width:360px){.story-vocab{grid-template-columns:1fr}}
.site-help{border:1px solid #dce5df;border-radius:14px;margin:12px 0 20px;padding:14px 18px;background:#fff}.site-help summary{font-weight:700;cursor:pointer;color:#264d40}.site-help ol{padding-left:22px}.site-help li{margin:10px 0;font-size:14px;line-height:1.7}.site-help p{font-size:12px;color:#617268}.schedule-source{font-size:12px;margin:8px 0}.schedule-source summary{cursor:pointer}
.intro.compact-progress{padding:8px 0;margin:0;display:flex;justify-content:flex-end}.compact-progress #progress{font-size:12px;padding:8px 14px;min-width:0}.compact-progress #progress strong{font-size:24px}#progressSharingStatus:empty{display:none}
.workspace{grid-template-columns:minmax(0,1fr)}.workspace>aside[hidden]{display:none!important}
.compact-progress #progress{display:flex;align-items:center;gap:12px;width:min(100%,340px);padding:10px 14px;background:transparent;border:0;border-radius:0;box-shadow:none;box-sizing:border-box}.park-progress-bar{display:block;flex:1;min-width:0;width:100%;height:12px;appearance:none;-webkit-appearance:none;border:0;border-radius:999px;overflow:hidden;background:#deebe3;color:#249864}.park-progress-bar::-webkit-progress-bar{background:#deebe3;border-radius:999px}.park-progress-bar::-webkit-progress-value{background:linear-gradient(90deg,#38b87b,#187a54);border-radius:999px}.park-progress-bar::-moz-progress-bar{background:linear-gradient(90deg,#38b87b,#187a54);border-radius:999px}.park-progress-count{font-size:16px;font-weight:750;color:#1c4a39;font-variant-numeric:tabular-nums;white-space:nowrap}
.op-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.op-heading h2{margin:0}.op-heading button,.major-event button{padding:9px 14px;border:1px solid #bed0c7;border-radius:12px;background:#f1f8f3;color:#254f3d}.park-hours{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.park-hour-card{padding:16px;border:1px solid #d7e4db;border-radius:16px;background:#fff}.park-hour-card.current{border:2px solid #368463}.park-hour-card strong{font-size:16px}.park-hour-card b,.park-hour-card small{display:block;margin-top:6px}.park-hour-card b{font-size:18px}.park-hour-card small{font-size:11px;color:#687b6c}.ride-hours{margin:18px 0;padding:14px;background:white;border:1px solid #d7e4db;border-radius:14px}.ride-hours summary{cursor:pointer;font-weight:700}.ride-hour-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;background:none;border:0;border-bottom:1px solid #edf0ea;padding:13px 0;text-align:left;color:#244537}.ride-hour-row:disabled{opacity:1;cursor:default}.ride-hour-row small,.major-event small{display:block;font-size:11px;color:#687869;margin-top:4px}.ride-hour-row>span:last-child{text-align:right;flex-shrink:0;max-width:48%}.ride-hour-row b{font-size:12px}.op-warning{color:#ae4437!important;font-weight:700}.operation-detail{background:#edf7ef;border-radius:12px;padding:14px;margin:14px 0;font-size:13px}.operation-detail p{margin:6px 0}.operation-detail small{display:block;margin-top:8px;color:#637369;font-size:11px}.operation-detail.op-alert{background:#fff0dc;color:#8b4522}.major-event{background:#fff;border:1px solid #dce2d3;border-radius:16px;padding:18px}.major-event p{font-size:20px;font-weight:700;color:#926f27;margin:10px 0}.op-source,#operationStatus,#operationDate{font-size:12px;color:#708071}.op-source a{color:inherit}.op-empty{font-size:14px;color:#617468}@media(max-width:700px){.park-hours{grid-template-columns:repeat(2,minmax(0,1fr))}.park-hour-card{padding:12px}.park-hour-card b{font-size:16px}}
.maplabel.time-glow>rect{stroke:#d79009;stroke-width:3.5;filter:drop-shadow(0 0 4px #ffc947);animation:map-time-glow 2.8s ease-in-out infinite}.major-event.time-glow{border:2px solid #d79009;box-shadow:0 0 16px #ffc94780;animation:card-time-glow 2.8s ease-in-out infinite}.imminent-badge{display:inline-block!important;color:#714500!important;background:#fff0b8;padding:5px 9px;border-radius:8px;font-weight:800!important;margin-top:10px!important}@keyframes map-time-glow{50%{filter:drop-shadow(0 0 8px #ffb700)}}@keyframes card-time-glow{50%{box-shadow:0 0 24px #ffc947b0}}@media(prefers-reduced-motion:reduce){.maplabel.time-glow>rect,.major-event.time-glow{animation:none}}
.category-sort-dialog{position:fixed;inset:0;margin:auto;width:min(92vw,440px);max-height:90dvh;padding:0;border:1px solid #d3e1d7;border-radius:22px;box-shadow:0 20px 80px #102d4266;background:#f8fbf8;color:#214638;overflow:hidden}.category-sort-dialog::backdrop{background:#152c276b;backdrop-filter:blur(3px)}.category-sort-heading{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 4px}.category-sort-heading h2{font-size:19px;margin:0}.sort-close{font-size:26px;border:0;background:transparent;width:44px;height:44px;color:#325a46}.category-sort-dialog>p{font-size:12px;margin:4px 20px 12px;color:#67816e}.category-sort-list{list-style:none;padding:4px 14px;margin:0;max-height:56dvh;overflow:auto;overscroll-behavior:contain}.category-sort-list li{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #dce8df;border-radius:13px;margin-bottom:8px;padding:5px 6px 5px 12px;min-height:54px;box-sizing:border-box}.sort-number{display:grid;place-items:center;flex:0 0 25px;height:25px;border-radius:50%;background:#edf5ee;color:#4e745c;font-size:12px;font-weight:700}.sort-name{flex:1;font-size:14px;font-weight:650}.sort-handle{flex:0 0 48px;height:48px;border:0;background:#f0f6f0;border-radius:10px;font-size:28px;color:#4e725d;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.sort-handle:focus-visible{outline:3px solid #77b28f}.category-sort-list li.sort-dragging{background:#e3f0e6;border:2px dashed #5b9670;opacity:.35}.category-sort-ghost{position:fixed;display:flex;align-items:center;padding:0 18px;box-sizing:border-box;pointer-events:none;z-index:5;border:2px solid #397b54;border-radius:13px;background:#effbf2;color:#1c4b30;box-shadow:0 10px 28px #184b3644;font-weight:700;opacity:.97}.category-sort-actions{display:flex;gap:10px;padding:14px 18px 10px}.category-sort-actions button{padding:12px;border-radius:12px;border:1px solid #cbdccf;background:#fff;font-size:14px;color:#315c40}.category-sort-actions .sort-save{flex:1;background:#246545;color:white;border-color:#246545}.category-sort-dialog .sort-status:empty{display:none}.category-sort-dialog .sort-status{color:#9b3d2a}

.ride-hours-common{margin-top:12px;padding:16px;border-radius:12px;background:#edf7ef;color:#244537}.ride-hours-common strong{display:block;font-size:18px}.ride-hours-common small{display:block;margin-top:6px;font-size:12px;color:#687869}.ride-hours-unknown{margin-top:12px}.ride-hours-unknown>summary{font-size:13px;color:#687869;font-weight:400}

.lightning-legend{margin:12px 0;padding:12px;border:1px solid #d7e4db;border-radius:14px;background:#f6faf7}.lightning-legend>div{display:flex;flex-wrap:wrap;gap:10px}.lane-sample{border:2px solid #244b3e;border-radius:7px;padding:6px 9px;font-size:12px;font-weight:700}.lane-sample.single{border-style:dashed}.sr-sample{color:#125ba9;padding:8px;font-size:12px;font-weight:800}.lightning-legend p{font-size:12px;line-height:1.7;margin:8px 0}.lightning-legend small{font-size:11px;color:#637369}.lightning-detail{margin:16px 0;padding:14px;border:1px solid #becfc6;border-radius:12px;background:#f3f8f5}.lightning-detail p{font-size:14px;line-height:1.7}.lightning-detail small,.lightning-detail a{font-size:12px}.single-rider-note{color:#125ba9}.maplabel.lane-single>rect{stroke-dasharray:6 3}

.map-hours{padding:10px 14px;border-bottom:1px solid #d7e4db;background:#f2f7ef}.map-hours-line{display:flex;align-items:center;justify-content:space-between;gap:8px}.map-hours-line strong{font-size:14px;line-height:1.5}.map-hours-line button{flex-shrink:0;min-height:38px;padding:5px 10px;border:1px solid #c7d7ca;border-radius:9px;background:#fff;color:#24533e;font-size:12px}.map-hours-line button:disabled{opacity:.65}.map-hours #operationStatus{display:block;font-size:10px;margin-top:3px}.map-hours details{font-size:11px;margin-top:5px;color:#66766d}.map-hours details div{margin-top:4px}

.compact-lane-legend{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;padding:9px 12px}.compact-lane-legend>details{min-width:0}.compact-lane-legend>details[open]{flex-basis:100%}.compact-lane-legend summary{display:inline-block}.compact-lane-legend summary{cursor:pointer;list-style:none;font-size:11px}.compact-lane-legend summary::-webkit-details-marker{display:none}.compact-lane-legend details>p{flex-basis:100%;margin:3px 0 7px;padding:10px 12px;background:white;border-radius:9px}.compact-lane-legend .lane-no-ll{padding:8px 4px;color:#637369}.compact-lane-legend details[open]>summary{background:#e1eee5}

.map-connector{pointer-events:none}.map-connector.connector-active path:last-child{stroke-width:3;stroke:#136ab3}.pin-active{filter:drop-shadow(0 0 4px #1978c9)}

.mapcol.timeline-mode>.maptop,.mapcol.timeline-mode>.mapwindow,.mapcol.timeline-mode>.lightning-legend,.mapcol.timeline-mode>.visit-legend,.mapcol.timeline-mode>.schedule-reference,.mapcol.timeline-mode>.legend,.mapcol.timeline-mode>.note{display:none}.visit-timeline{padding:12px 16px 24px}.visit-timeline h3{margin:6px 0}.timeline-caption{font-size:11px}.visit-timeline ol{list-style:none;padding:0;margin:12px 0}.visit-timeline li{border-left:2px solid #bfdac7;padding:0 0 10px 10px}.visit-timeline button{display:grid;grid-template-columns:1fr auto;gap:6px 10px;width:100%;text-align:left;padding:12px;border:1px solid #dce7de;border-radius:12px;background:#f9fcf7;color:#173b35}.visit-timeline time{grid-column:1/-1;font-size:12px;color:#647369}.visit-timeline strong{font-size:14px}.visit-timeline span small{display:block;font-size:11px;margin-top:4px;color:#718177}.visit-timeline button>small{font-size:11px;white-space:nowrap}

.vocab-fold{margin:16px 0;border:1px solid #d8e3d9;border-radius:12px;padding:12px;background:#f6faf5}.vocab-fold>summary{cursor:pointer;font-size:14px;font-weight:700;line-height:1.6}.vocab-fold>summary span{display:block;font-weight:400;font-size:11px;color:#718173}.vocab-fold .story-vocab{margin-top:14px}

.story-guide .story-english{line-height:1.75}.story-guide p[lang="zh-CN"]+.story-english{margin-top:12px;padding-top:12px;border-top:1px solid #e0e6dc}

.story-guide > summary{cursor:pointer;font-size:1.05rem;font-weight:700;line-height:1.6}.story-guide[open] > summary{margin-bottom:14px}.item-progress{margin:18px 0;padding:16px;border:1px solid #d7e3dd;border-radius:16px;background:#f4f8f5}.item-progress h3{margin-top:0}.item-progress dl{display:grid;grid-template-columns:1fr auto;gap:8px}.item-progress dd{margin:0;text-align:right}.item-progress small{color:#667970}
