:root{--bg:#f8f7f3;--card:#fff;--ink:#242b2b;--muted:#687273;--line:#e4e6e2;--green:#177f70;--pale:#e9f5f0;--red:#bd4e46;--pink:#fff0ed;--gold:#f4e8ca;--shadow:0 4px 18px #24312b0a}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}button,input{font:inherit}a{color:inherit}.shell{width:min(980px,calc(100% - 28px));margin:0 auto}.site-head{padding:24px 0 20px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;gap:12px;align-items:center}.passport{font-size:1.65rem;display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--line);border-radius:13px;background:var(--card)}h1{font-size:1.24rem;line-height:1.25;margin:0;font-weight:800}.brand p{font-size:.85rem;color:var(--muted);margin:4px 0 0}.head-links{display:flex;gap:15px;font-size:.86rem;color:var(--muted)}.head-links a{text-decoration:none}.head-links a:hover,.head-links a:focus-visible{color:var(--green);text-decoration:underline}main{display:grid;gap:32px}.card{background:var(--card);border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow)}.checklist-section{padding:24px}.section-head{display:flex;justify-content:space-between;align-items:end;gap:15px;margin-bottom:14px}.kicker{font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;color:var(--green);font-weight:800}.section-head h2{font-size:1.31rem;margin:3px 0 0;line-height:1.35}.count-pill,.smalltag{font-size:.77rem;white-space:nowrap;background:var(--pale);color:var(--green);padding:6px 10px;border-radius:999px;font-weight:700}.bar{height:7px;border-radius:30px;background:#e8ece8;overflow:hidden;margin-bottom:17px}.bar span{display:block;background:var(--green);height:100%;width:0;transition:width .25s}.todo-groups{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.todo-group{border:1px solid var(--line);border-radius:13px;padding:14px;background:#fff}.todo-group h3{margin:0 0 9px;font-size:.9rem}.todo-item{display:flex;gap:8px;align-items:start;padding:7px 0;font-size:.87rem;cursor:pointer;line-height:1.45}.todo-item input{width:17px;height:17px;margin:2px 0 0;flex:none;accent-color:var(--green)}.todo-item:has(input:checked) span{color:#97a09b;text-decoration:line-through}.footnote{font-size:.78rem;color:var(--muted);margin:12px 0 0}.overview{display:grid;gap:15px}.trip-intro h2{font-size:clamp(1.65rem,3.5vw,2.45rem);line-height:1.25;margin:5px 0 8px;letter-spacing:-.025em}.trip-intro p{color:var(--muted);margin:0;max-width:680px;font-size:.92rem}.status-row{display:flex;flex-wrap:wrap;gap:8px}.status{font-size:.76rem;padding:6px 10px;border-radius:6px;font-weight:700}.status.ok{background:#e6f5e9;color:#17745d}.status.pending{background:#faecea;color:#a54a41}.next-card{padding:20px 23px;border-left:4px solid var(--red)}.next-label{font-size:.74rem;letter-spacing:.12em;color:var(--muted);font-weight:800}.live-dot{display:inline-block;width:8px;height:8px;background:var(--red);border-radius:50%;margin-right:5px}.next-grid{display:flex;align-items:center;justify-content:space-between;gap:16px}.next-grid h3{font-size:1.25rem;margin:7px 0 0}.next-grid p{font-size:.82rem;color:var(--muted);margin:3px 0}.countdown{font-size:clamp(1.2rem,3vw,1.9rem);font-weight:850;color:var(--red);font-variant-numeric:tabular-nums;white-space:nowrap}.next-note{font-size:.83rem;color:var(--muted);margin:9px 0 0}.pill-nav{display:flex;gap:7px;overflow:auto;padding:2px 0 3px}.pill-nav a{border:1px solid var(--line);background:var(--card);border-radius:999px;font-size:.82rem;padding:6px 12px;text-decoration:none;white-space:nowrap}.pill-nav a:hover,.pill-nav a:focus-visible{border-color:var(--green);color:var(--green)}.route-card{padding:24px}.section-desc{font-size:.88rem;color:var(--muted);margin:0 0 16px}.sketch-map{border:1px solid #dcded3;border-radius:11px;background:repeating-linear-gradient(0deg,#f1f1e8 0 1px,transparent 1px 24px),repeating-linear-gradient(90deg,#f1f1e8 0 1px,#faf9f3 1px 24px);overflow:hidden}.sketch-map svg{width:100%;display:block;height:auto}.sketch-map .land{fill:#eff2e8;stroke:#d8e4d0;stroke-width:2}.sketch-map .road{fill:none;stroke:#c95750;stroke-width:4;stroke-dasharray:8 7}.sketch-map .road2{stroke:#e4a052}.sketch-map .river{fill:none;stroke:#a5c7d8;stroke-width:11;opacity:.75}.sketch-map circle{fill:#c95750;stroke:white;stroke-width:4}.sketch-map text{font-family:inherit;fill:#2c4541;font-weight:700;font-size:18px}.sketch-map text.note{font-size:14px;fill:#7a7e76}.route-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:15px}.route-steps div{display:flex;gap:9px;align-items:start;padding:9px;border-radius:10px;background:#f7f8f3;font-size:.79rem}.route-steps b{color:var(--red);white-space:nowrap}.info-section{display:grid;gap:12px}.transport-grid,.stay-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.transport,.stay{padding:18px}.label{display:inline-block;font-size:.73rem;font-weight:800;padding:4px 7px;border-radius:5px}.label.good{background:var(--pale);color:var(--green)}.label.wait{background:var(--pink);color:var(--red)}.airport-line{display:flex;align-items:center;gap:12px;margin-top:13px}.airport-line strong{font-size:1.32rem}.airport-line span{color:var(--muted);font-size:.78rem;border-bottom:1px dashed var(--line);flex:1;text-align:center;padding-bottom:4px}.transport p,.stay p{font-size:.84rem;color:var(--muted);margin:8px 0 0}.city-mark{font-size:.75rem;letter-spacing:.1em;color:var(--green);font-weight:800}.stay h3{margin:8px 0 0;font-size:1.07rem}.text-link{display:inline-block;color:var(--green);font-size:.84rem;font-weight:700;margin-top:13px}.day-stack{display:grid;gap:16px}.day-card{overflow:hidden}.day-top{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px}.date-badge{background:var(--red);color:white;width:51px;height:51px;border-radius:10px;display:grid;place-content:center;text-align:center;font-weight:900;line-height:1.05;flex:none;font-size:.9rem}.day-title{display:flex;gap:12px;align-items:center}.day-title h3{margin:0;font-size:1.08rem}.day-title p{margin:3px 0 0;color:var(--muted);font-size:.78rem}.day-route{font-size:.74rem;color:var(--green);font-weight:700;white-space:nowrap;text-decoration:none}.map-toggle{border:0;background:#f7f8f5;width:100%;display:flex;justify-content:space-between;padding:10px 20px;font-size:.81rem;font-weight:700;color:var(--green);cursor:pointer}.map-toggle:hover{background:#edf4ee}.day-map{padding:14px 20px;border-bottom:1px solid var(--line)}.day-map[hidden]{display:none}.day-map iframe{width:100%;height:250px;border:1px solid var(--line);border-radius:9px}.day-map p{font-size:.79rem;color:var(--muted);margin:7px 0 0}.timeline{padding:2px 20px 12px}.stop{display:grid;grid-template-columns:62px 1fr;gap:9px;border-bottom:1px solid #edf0ec;padding:12px 0}.stop:last-child{border-bottom:0}.stop time{color:var(--red);font-size:.81rem;font-weight:800;font-variant-numeric:tabular-nums}.stop-title{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.stop-title strong{font-size:.87rem}.stop p{font-size:.79rem;color:var(--muted);margin:3px 0}.stop a{font-size:.77rem;color:var(--green);text-decoration:none;font-weight:700}.stop a:hover{text-decoration:underline}.mini-label{font-size:.68rem;color:#a64d40;background:var(--pink);padding:2px 5px;border-radius:4px}.mini-label.rain{background:#eaf1fa;color:#496e9c}.day-note{background:#fbf7eb;border-top:1px solid #eee7d1;padding:10px 20px;color:#806949;font-size:.79rem}.food-switch{display:flex;gap:6px}.food-switch button{background:var(--card);border:1px solid var(--line);padding:9px 14px;border-radius:9px;cursor:pointer;font-size:.86rem}.food-switch button[aria-selected="true"]{background:var(--green);color:#fff;border-color:var(--green)}.food-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.food-card{border:1px solid var(--line);background:var(--card);border-radius:12px;padding:14px}.food-top{display:flex;justify-content:space-between;gap:8px}.food-card h3{font-size:.92rem;margin:0}.food-card h3 a{text-decoration:none}.food-card h3 a:hover{text-decoration:underline}.star{font-size:.78rem;color:#b76d2a;white-space:nowrap;font-weight:800}.food-card p{margin:5px 0 0;color:var(--muted);font-size:.79rem}.food-card .price{color:var(--ink);font-weight:700}.source{font-size:.73rem;color:var(--green);text-decoration:none}footer{border-top:1px solid var(--line);padding:24px 0 35px;color:var(--muted);font-size:.77rem;margin-top:40px}footer p{margin:5px 0}@media(max-width:720px){.site-head{align-items:start}.head-links{display:none}.todo-groups,.transport-grid,.stay-grid,.food-grid{grid-template-columns:1fr}.checklist-section,.route-card{padding:17px}.todo-group{padding:11px}.route-steps{grid-template-columns:repeat(2,1fr)}.next-grid{align-items:start;display:block}.countdown{margin-top:9px}.day-top{padding:15px}.day-route{font-size:.72rem}.timeline{padding:2px 15px 10px}.stop{grid-template-columns:49px 1fr}.map-toggle,.day-map{padding-left:15px;padding-right:15px}.smalltag{font-size:.7rem}}@media(prefers-color-scheme:dark){:root{--bg:#1c2321;--card:#27312d;--ink:#f0f3ee;--muted:#b2c0b8;--line:#3c4b43;--green:#80cfb2;--pale:#30463d;--red:#f09385;--pink:#463432;--gold:#4e4633;--shadow:none}.todo-group{background:#27312d}.bar{background:#3a4841}.route-steps div,.map-toggle{background:#303a34}.map-toggle:hover{background:#36493e}.stop{border-color:#3c4b43}.day-note{background:#39382c;color:#dfc693;border-color:#504c39}.sketch-map{background:#303b34;border-color:#4b594c}.sketch-map .land{fill:#37453b;stroke:#4a5a4d}.sketch-map text{fill:#dbe8de}.sketch-map text.note{fill:#b5c0b8}.sketch-map circle{stroke:#27312d}.status.ok{background:#304c3e;color:#a2dfb5}.status.pending{background:#503934;color:#f5b3a4}}
.night{--bg:#1c2321;--card:#27312d;--ink:#f0f3ee;--muted:#b2c0b8;--line:#3c4b43;--green:#80cfb2;--pale:#30463d;--red:#f09385;--pink:#463432;--gold:#4e4633;--shadow:none;color-scheme:dark}.night .todo-group{background:#27312d}.night .bar{background:#3a4841}.night .route-steps div,.night .map-toggle{background:#303a34}.night .stop{border-color:#3c4b43}.night .day-note{background:#39382c;color:#dfc693;border-color:#504c39}.night .sketch-map{background:#303b34;border-color:#4b594c}.night .sketch-map .land{fill:#37453b;stroke:#4a5a4d}.night .sketch-map text{fill:#dbe8de}.night .sketch-map text.note{fill:#b5c0b8}.night .sketch-map circle{stroke:#27312d}.night .status.ok{background:#304c3e;color:#a2dfb5}.night .status.pending{background:#503934;color:#f5b3a4}
.edit-stop{display:inline-block;margin-left:12px;border:0;background:none;color:var(--green);font-size:.77rem;font-weight:700;cursor:pointer;padding:2px 0}.edit-stop:hover{text-decoration:underline}.edit-dialog{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:16px;padding:24px;width:min(460px,calc(100% - 28px));box-shadow:0 18px 60px #0003}.edit-dialog::backdrop{background:#14211ba8}.edit-dialog h2{margin:0 0 4px;font-size:1.2rem}.edit-dialog p{font-size:.82rem;color:var(--muted);margin:0 0 15px}.edit-dialog label,.note-form label{display:grid;gap:5px;font-size:.84rem;font-weight:700;margin-bottom:11px}.edit-dialog input,.edit-dialog textarea,.note-form input,.note-form textarea{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);font:inherit}.edit-actions,.note-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}.edit-actions button,.note-actions button{border:1px solid var(--green);border-radius:8px;padding:8px 14px;background:var(--green);color:#fff;font:inherit;font-size:.83rem;font-weight:700;cursor:pointer}.edit-actions button:first-child{background:var(--card);color:var(--green)}.edit-actions button:disabled,.note-actions button:disabled{opacity:.55;cursor:wait}#editStatus,#noteStatus{color:var(--red);font-size:.78rem;margin-right:auto}.note-form{padding:18px}.note-form .honeypot{position:absolute;left:-10000px;width:1px;height:1px;opacity:0}.note-list{display:grid;gap:9px;font-size:.85rem;color:var(--muted)}.note-card{padding:14px 16px}.note-card div{display:flex;justify-content:space-between;gap:10px;color:var(--ink)}.note-card time{font-size:.73rem;color:var(--muted)}.note-card p{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 0}.sync-warning{color:var(--red);font-size:.82rem;margin:0}
