:root { --paper:#f7f3ea; --ink:#052944; --orange:#ec481d; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
html { height:100%; -webkit-text-size-adjust:100%; text-size-adjust:100%; }
html,body { margin:0; width:100%; overflow:hidden; }
body { height:100%; height:100svh; background:var(--paper); color:var(--ink); font-family:"Microsoft YaHei","PingFang SC",sans-serif; touch-action:manipulation; }
button { touch-action:manipulation; -webkit-tap-highlight-color:rgba(236,72,29,.16); }
.app-shell { height:100%; display:flex; justify-content:center; background:var(--paper); }
.phone-page { position:relative; display:flex; flex-direction:column; width:100%; height:100%; background:var(--paper); overflow:hidden; overscroll-behavior:contain; }
.home-stage { position:relative; flex:1; min-height:0; width:100%; }
.home-artwork { display:block; width:100%; height:100%; object-fit:fill; object-position:top center; user-select:none; pointer-events:none; -webkit-user-drag:none; }
.route-hotspots,.bottom-hotspots { display:block; }
.route-hotspot,.tab-hotspot { position:absolute; z-index:3; border:0; padding:0; margin:0; background:rgba(255,255,255,.01); cursor:pointer; touch-action:manipulation; -webkit-tap-highlight-color:rgba(255,255,255,.18); }
.route-hotspot { left:4%; width:92%; height:3.1%; border-radius:.6rem; }
.route-hotspot .hotspot-hit { position:absolute; inset:0; overflow:hidden; color:transparent; font-size:11px; }
.route-hotspot:nth-child(1){top:30.15%}.route-hotspot:nth-child(2){top:33.1%}.route-hotspot:nth-child(3){top:36.05%}.route-hotspot:nth-child(4){top:39%}.route-hotspot:nth-child(5){top:41.95%}.route-hotspot:nth-child(6){top:44.9%}.route-hotspot:nth-child(7){top:47.85%}
.tab-hotspot { bottom:0; width:33.333%; height:12%; }
.tab-home{left:0}.tab-add{left:33.333%}.tab-profile{right:0}
.route-hotspot:hover,.route-hotspot:focus-visible,.route-hotspot:active{background:rgba(255,255,255,.12)}
.tab-hotspot:hover,.tab-hotspot:focus-visible,.tab-hotspot:active{background:rgba(236,72,29,.08)}
.route-hotspot:focus-visible,.tab-hotspot:focus-visible{outline:3px solid rgba(236,72,29,.72);outline-offset:-3px}
.packing-entry{position:absolute;top:26.9%;right:8.2%;z-index:6;display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:0 10px 0 8px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(255,255,255,.12);color:#fff;box-shadow:none;font:700 12px "Microsoft YaHei","PingFang SC",sans-serif;cursor:pointer;backdrop-filter:blur(6px)}
.packing-entry-icon{display:grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--orange);color:#fff;font:700 10px/1 Georgia,serif}
.packing-entry:active{transform:scale(.97);background:rgba(255,255,255,.2)}
.packing-entry:focus-visible{outline:2px solid rgba(236,72,29,.9);outline-offset:2px}
.packing-backdrop{position:fixed;inset:0;z-index:30;background:rgba(3,28,45,.48);backdrop-filter:blur(4px)}
.packing-sheet{position:fixed;left:50%;bottom:0;z-index:31;display:flex;flex-direction:column;width:min(100%,430px);max-height:min(88svh,760px);transform:translateX(-50%);padding:18px 16px calc(18px + env(safe-area-inset-bottom));border-radius:28px 28px 0 0;background:linear-gradient(180deg,#fffaf2 0%,#f7f1e6 100%);box-shadow:0 -18px 50px rgba(5,41,68,.22);animation:packing-up .28s cubic-bezier(.22,.8,.25,1)}
.packing-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:2px 4px 12px}
.packing-kicker{margin:0 0 4px;color:var(--orange);font:800 11px/1.2 "Microsoft YaHei","PingFang SC",sans-serif;letter-spacing:.16em}
.packing-head h2{margin:0;color:var(--ink);font:700 28px/1.1 Georgia,"Songti SC",serif}
.packing-close{display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:50%;background:#052944;color:#fff;font:400 26px/1 Arial,sans-serif;cursor:pointer;flex-shrink:0}
.packing-progress{margin:0 4px 14px;padding:10px 14px;border-radius:14px;background:rgba(236,72,29,.1);color:#7a3a1d;font:700 13px/1.4 "Microsoft YaHei","PingFang SC",sans-serif}
.packing-body{overflow:auto;-webkit-overflow-scrolling:touch;padding:0 2px 8px;display:flex;flex-direction:column;gap:12px}
.packing-group{padding:14px 14px 10px;border-radius:18px;background:rgba(255,255,255,.72);box-shadow:inset 0 0 0 1px rgba(5,41,68,.06)}
.packing-group h3{margin:0 0 10px;display:flex;align-items:center;gap:8px;color:var(--ink);font:800 14px/1.2 "Microsoft YaHei","PingFang SC",sans-serif}
.packing-group h3 span{display:inline-grid;place-items:center;min-width:28px;height:22px;padding:0 7px;border-radius:999px;background:#052944;color:#fff;font-size:11px}
.packing-item{display:flex;align-items:flex-start;gap:10px;width:100%;padding:10px 4px;border:0;border-top:1px solid rgba(5,41,68,.06);background:transparent;color:#2b3338;text-align:left;font:400 14px/1.5 "Microsoft YaHei","PingFang SC",sans-serif;cursor:pointer}
.packing-item:first-of-type{border-top:0}
.packing-check{flex:0 0 auto;display:grid;place-items:center;width:22px;height:22px;margin-top:1px;border:1.5px solid #9aa3a8;border-radius:7px;background:#fff;color:transparent;font:700 13px/1 Arial,sans-serif}
.packing-item.done .packing-check{border-color:var(--orange);background:var(--orange);color:#fff}
.packing-item.done .packing-label{color:#8a9196;text-decoration:line-through}
.packing-label{flex:1;min-width:0}
@keyframes packing-up{from{opacity:.4;transform:translate(-50%,28px)}to{opacity:1;transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.packing-sheet{animation:none}}
.backdrop { position:fixed; inset:0; z-index:20; background:rgba(3,28,45,.52); backdrop-filter:blur(3px); }
.dialog { position:fixed; left:50%; top:50%; z-index:21; width:min(calc(100% - 1rem),430px); max-height:88svh; overflow:auto; transform:translate(-50%,-50%); padding:18px; border-radius:22px; background:#fffaf1; box-shadow:0 24px 70px rgba(3,28,45,.28); }
.dialog h2 { margin:0; font:600 1.7rem Georgia,"Songti SC",serif; }
.dialog p { margin:.65rem 0 0; color:#66747b; font-size:1rem; line-height:1.65; }
.dialog-close { position:absolute; right:12px; top:9px; z-index:20; display:grid; place-items:center; width:44px; height:44px; padding:0; border:0; border-radius:50%; background:#052944; color:#fff; font:400 25px/1 Arial,sans-serif; cursor:pointer; touch-action:manipulation; }
.dialog.image-only{padding:54px 10px 10px}.dialog.image-only .gallery{margin:0}
@media(min-width:768px){
  body,.app-shell{background:#d8d6cf}
  .phone-page{width:430px;max-width:430px;height:min(100svh,932px);box-shadow:0 0 42px rgba(15,34,45,.18)}
}

.day-view{position:relative;z-index:5;flex:1;min-height:0;width:100%;overflow:auto;-webkit-overflow-scrolling:touch;background:#fffdf9;border-top:4px solid #e46749;animation:page-slide-in .32s cubic-bezier(.22,.8,.25,1) both}
.page-bar{position:sticky;top:0;z-index:6;height:52px;padding:0 18px;display:grid;grid-template-columns:42px 1fr auto;align-items:center;border-bottom:1px solid #e7e1d7;background:#fffdf9;font-size:14px;font-weight:700}
.page-bar .back,.page-bar .overview{border:0;background:transparent;color:var(--ink);cursor:pointer;touch-action:manipulation}.page-bar .back{display:grid;place-items:center;width:44px;height:44px;margin-left:-8px;font:400 32px/1 serif;border-radius:50%}.page-bar>span{text-align:center}.page-bar .overview{color:#1754c0;font-size:11px}
.day-heading{min-height:108px;padding:24px 22px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e7e1d7}.day-heading p{margin:0 0 9px;color:var(--orange);font-size:13px;font-weight:800}.day-heading h1{margin:0;font:600 24px/1.15 Georgia,"Songti SC",serif}.clock{color:#bcc2c2;font-size:24px}
.timeline{padding:5px 12px 34px}.event{width:100%;min-height:56px;padding:14px 8px;display:grid;grid-template-columns:72px 1fr 18px;align-items:start;border:0;border-bottom:1px solid #eee9e1;background:transparent;color:#262d30;text-align:left;cursor:pointer;touch-action:manipulation}.event time{padding-top:2px;color:#f05a00;font:700 13px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}.event-copy{font-size:13px;line-height:1.55;white-space:pre-line}.event .arrow{color:#bdc4c5;font-size:21px;line-height:1.15}.event:hover,.event:focus-visible{background:#faf5ed;outline:none}.event:focus-visible{box-shadow:inset 3px 0 var(--orange)}.event-static{cursor:default;background:#f8f6f1;color:#878c8d}.event-static time{color:#a0a4a3}.event-static:hover{background:#f8f6f1}
.photo-placeholder{height:190px;margin-bottom:16px;padding:22px;display:flex;flex-direction:column;justify-content:flex-end;border-radius:15px;background:linear-gradient(145deg,#ffd9a8,#e66b3f 50%,#143b51);color:#fff;overflow:hidden}.photo-placeholder span{font-size:11px;letter-spacing:.18em;opacity:.8}.photo-placeholder strong{margin-top:7px;font:600 25px/1.15 Georgia,"Songti SC",serif}.photo-placeholder small{margin-top:9px;opacity:.8}.dialog-time{margin:0 0 5px;color:var(--orange);font-weight:800}
.gallery{position:relative;margin-bottom:16px;overflow:hidden;border-radius:15px;background:#eef0ef;touch-action:pan-x;user-select:none}.gallery-track{display:flex;height:100%;transition:transform .28s cubic-bezier(.22,.8,.25,1);will-change:transform}.gallery-track img{flex:0 0 100%;width:100%;max-height:min(72svh,620px);object-fit:contain;background:#eef0ef;pointer-events:none;-webkit-user-drag:none}.gallery-arrow{position:absolute;top:50%;z-index:2;width:44px;height:44px;transform:translateY(-50%);border:0;border-radius:50%;background:rgba(5,41,68,.78);color:white;font-size:30px;line-height:1;cursor:pointer}.gallery-prev{left:8px}.gallery-next{right:8px}.gallery-dots{position:absolute;left:50%;bottom:8px;z-index:2;display:flex;gap:2px;transform:translateX(-50%)}.gallery-dot{width:44px;height:44px;padding:0;border:0;border-radius:0;background:transparent;display:grid;place-items:center}.gallery-dot::after{content:"";width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.58);box-shadow:0 0 0 1px rgba(5,41,68,.28)}.gallery-dot.active::after{width:20px;border-radius:999px;background:var(--orange)}
@keyframes page-slide-in{from{opacity:.45;transform:translateX(42px)}to{opacity:1;transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){.day-view{animation:none}}
.event-static,.event-static:hover{cursor:default;background:transparent;color:#262d30}
.event-static time{color:#f05a00}
.event .arrow{color:var(--orange);font-weight:700}
.image-note{margin-top:12px;padding:14px 16px;border-radius:12px;background:#fff7e9;color:#4d5051;font-size:14px;line-height:1.75;white-space:pre-line}
#dialogText{white-space:pre-line;user-select:text;-webkit-user-select:text}
.dialog-copy{margin-top:14px;padding:9px 18px;border:0;border-radius:10px;background:var(--orange);color:#fff;font:700 13px "Microsoft YaHei","PingFang SC",sans-serif;cursor:pointer}
.city-view{position:relative;z-index:5;display:flex;flex-direction:column;flex:1;min-height:0;width:100%;overflow:hidden;background:#fffdf9;border-top:4px solid #e46749;animation:page-slide-in .32s cubic-bezier(.22,.8,.25,1) both}
.city-view .page-bar{position:relative;flex-shrink:0}
.city-days-viewport{flex:1;min-height:0;width:100%;overflow:hidden;touch-action:pan-y;overscroll-behavior-x:none}
.city-days-track{display:flex;height:100%;transition:transform .28s cubic-bezier(.22,.8,.25,1);will-change:transform}
.city-day{flex:0 0 100%;min-width:100%;height:100%;overflow:auto;-webkit-overflow-scrolling:touch;background:#fffdf9}
.city-events{padding:5px 12px 24px}
.city-day .event-static{min-height:72px;padding-top:19px;padding-bottom:19px;background:#fffdf9;color:#34383a}.city-day .event-static time{color:#f06a00}.city-day .day-heading{min-height:174px}.city-day .day-heading h1{font-family:"Microsoft YaHei","PingFang SC",sans-serif;font-size:20px;font-weight:800}
.day-pagination{flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:8px 16px calc(10px + env(safe-area-inset-bottom));border-top:1px solid #eee9e1;background:#fffdf9}
.pager-dots{display:flex;align-items:center;justify-content:center;gap:2px}
.pager-arrow{width:44px;height:44px;padding:0;border:0;border-radius:50%;background:#052944;color:#fff;font:400 30px/1 Georgia,serif;cursor:pointer}
.pager-arrow:disabled{opacity:.28}
.day-dot{width:44px;height:44px;padding:0;border:0;border-radius:0;background:transparent;display:grid;place-items:center;cursor:pointer}
.day-dot::after{content:"";width:8px;height:8px;border-radius:50%;background:#c5c8c7}
.day-dot.active::after{width:22px;border-radius:999px;background:var(--orange)}
.plan-switch{display:flex;gap:12px;padding:18px 16px 12px;border-bottom:1px solid #eee9e1}.plan-tab{flex:1;width:auto;min-height:44px;height:44px;border:1px solid #6f7474;border-radius:5px;background:#fffdf9;color:#303335;font:700 13px "Microsoft YaHei","PingFang SC",sans-serif;cursor:pointer;touch-action:manipulation}.plan-tab.active{border-color:#ff7900;background:#ff7900;color:#fff}.plan-tab:focus-visible{outline:3px solid rgba(236,72,29,.38);outline-offset:2px}
.cappadocia-days{display:flex;gap:8px;padding:12px 20px 0}.cappadocia-day-tab{flex:1;padding:9px 6px;border:0;border-bottom:2px solid transparent;background:transparent;color:#72777a;font:700 12px "Microsoft YaHei","PingFang SC",sans-serif;cursor:pointer}.cappadocia-day-tab.active{border-bottom-color:var(--orange);color:var(--ink)}
