
:root{
  --paper:#F9F8F4;--paper-2:#F3F0E9;--ink:#2D3A31;--ink-2:#4F5C53;--sage:#8C9A84;--sage-deep:#677660;
  --clay:#DCCFC2;--terracotta:#C27B66;--stone:#E6E2DA;--white:#fffdf9;--moss:#26382C;--cream:#F7F1E8;
  --ok:#627A63;--warn:#9B6E45;--soft-red:#A76C64;--shadow:0 18px 50px rgba(45,58,49,.08);--shadow-sm:0 8px 24px rgba(45,58,49,.055);
  --serif:"Playfair Display",Georgia,"Times New Roman",serif;--sans:"DM Sans","PingFang HK","Noto Sans TC",system-ui,sans-serif;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:var(--paper);color:var(--ink);font-family:var(--sans);letter-spacing:.01em}
body:before{content:"";pointer-events:none;position:fixed;inset:0;z-index:1000;opacity:.024;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E")}
button,input,select,textarea{font:inherit}.shell{width:min(1240px,calc(100% - 28px));margin:auto;padding:18px 0 86px}.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 3px 15px;background:linear-gradient(180deg,rgba(249,248,244,.98) 72%,rgba(249,248,244,0));backdrop-filter:blur(12px)}
.brand{display:flex;align-items:center;gap:11px;min-width:0}.brand-mark{width:44px;height:44px;border-radius:50% 50% 48% 52%/44% 54% 46% 56%;background:var(--moss);color:#F9F8F4;display:grid;place-items:center;font-family:var(--serif);font-style:italic;font-size:21px;box-shadow:var(--shadow-sm)}.brand strong{display:block;font-family:var(--serif);font-size:17px}.brand span{font-size:11px;color:#6F7A72;display:block;margin-top:1px;white-space:nowrap}.top-actions{display:flex;gap:8px;align-items:center}.quiet-btn,.pill-btn{border:1px solid var(--stone);background:rgba(255,253,249,.72);color:var(--ink);border-radius:999px;padding:9px 13px;cursor:pointer;transition:.3s ease}.quiet-btn:hover,.pill-btn:hover{transform:translateY(-1px);border-color:#cfc8bd}.pill-btn.dark{background:var(--moss);border-color:var(--moss);color:#fff}.pill-btn.terra{background:var(--terracotta);border-color:var(--terracotta);color:white}.pill-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
.nav-wrap{position:sticky;top:70px;z-index:45;margin:0 0 20px}.nav{display:flex;gap:2px;padding:5px;border:1px solid var(--stone);background:rgba(255,253,249,.83);backdrop-filter:blur(16px);border-radius:999px;overflow:auto;scrollbar-width:none;box-shadow:0 8px 26px rgba(45,58,49,.035)}.nav::-webkit-scrollbar{display:none}.nav button{border:0;background:transparent;color:#70786F;border-radius:999px;padding:9px 14px;white-space:nowrap;cursor:pointer;font-size:13px}.nav button.active{background:var(--moss);color:white}.view{display:none}.view.active{display:block;animation:fade .42s ease both}@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:42px;align-items:center;min-height:505px;padding:46px 48px;border:1px solid var(--stone);border-radius:42px;background:linear-gradient(135deg,#FBFAF6 0%,#F5F1E9 100%);position:relative;overflow:hidden;box-shadow:var(--shadow)}.hero:before{content:"";position:absolute;width:260px;height:260px;left:-120px;bottom:-120px;border:1px solid rgba(140,154,132,.36);border-radius:52% 48% 44% 56%/56% 42% 58% 44%}.hero-copy{position:relative;z-index:2}.kicker{font-size:11px;letter-spacing:.17em;text-transform:uppercase;color:var(--sage-deep);font-weight:600}.hero h1{font-family:var(--serif);font-size:clamp(46px,6vw,78px);line-height:.96;margin:15px 0 18px;font-weight:600;letter-spacing:-.035em}.hero h1 em{font-weight:600;color:var(--terracotta)}.hero p{max-width:610px;color:var(--ink-2);font-size:16px;line-height:1.75;margin:0}.hero-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:26px}.arch-wrap{position:relative;display:grid;place-items:center;min-height:365px}.arch{width:min(390px,90%);aspect-ratio:.86;border-radius:190px 190px 34px 34px;overflow:hidden;background:linear-gradient(#D7DFD0 0 48%,#D8C0A6 48% 68%,#B98B6D 68%);position:relative;box-shadow:0 22px 55px rgba(45,58,49,.12)}.arch .sun{position:absolute;width:86px;height:86px;border-radius:50%;background:#F5E3BA;right:45px;top:58px}.arch .dune{position:absolute;left:-12%;right:-12%;height:42%;bottom:-9%;background:#C69A78;border-radius:50% 50% 0 0/30% 30% 0 0;transform:rotate(-3deg)}.arch .dune.two{bottom:-18%;left:12%;background:#A8745D;transform:rotate(4deg)}.arch .river{position:absolute;width:88px;height:220px;bottom:-45px;left:47%;background:rgba(93,120,117,.72);border-radius:50%;transform:rotate(11deg)}.arch .pyramid{position:absolute;left:53px;bottom:112px;width:0;height:0;border-left:70px solid transparent;border-right:70px solid transparent;border-bottom:0;border-top:112px solid #B18D6E;filter:drop-shadow(10px 8px 0 rgba(117,83,60,.16))}.leaf{position:absolute;width:112px;height:184px;border:1px solid rgba(45,58,49,.28);border-radius:100% 0 100% 0;transform:rotate(23deg);right:-8px;bottom:25px}.leaf:after{content:"";position:absolute;width:1px;background:rgba(45,58,49,.24);height:154px;left:55px;top:14px;transform:rotate(-12deg)}.quote-card{position:absolute;left:2px;bottom:8px;width:228px;padding:15px 17px;border-radius:26px;background:rgba(255,253,249,.82);backdrop-filter:blur(10px);border:1px solid rgba(230,226,218,.85);box-shadow:var(--shadow-sm)}.quote-card b{font-family:var(--serif);font-size:17px;font-weight:600}.quote-card span{display:block;color:#69746C;font-size:11px;line-height:1.5;margin-top:5px}
.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:18px 0 24px;border:1px solid #CDD6C8;background:#E8EDE4;border-radius:30px;overflow:hidden}.stat{padding:18px 22px;border-right:1px solid rgba(103,118,96,.15)}.stat:last-child{border-right:0}.stat b{font-family:var(--serif);font-size:28px;font-weight:600}.stat span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.13em;color:#687367;margin-top:2px}
.layout{display:grid;grid-template-columns:1.15fr .85fr;gap:20px}.panel{border:1px solid var(--stone);background:rgba(255,253,249,.72);border-radius:30px;box-shadow:var(--shadow-sm)}.panel-pad{padding:25px}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}.section-head h2,.section-head h3{font-family:var(--serif);font-weight:600;margin:0;letter-spacing:-.015em}.section-head h2{font-size:31px}.section-head h3{font-size:22px}.section-head p,.section-head small{color:#758077;margin:0;font-size:11px;line-height:1.5}.stack{display:grid;gap:15px}.focus-list{display:grid;gap:10px}.focus{display:grid;grid-template-columns:42px 1fr auto;gap:13px;align-items:center;padding:14px 15px;border-radius:22px;border:1px solid #EEEAE3;background:rgba(249,248,244,.74)}.focus-num{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--clay);font-family:var(--serif);font-style:italic}.focus strong{display:block;font-size:13px}.focus p{font-size:11px;line-height:1.55;color:#737C74;margin:4px 0 0}.status{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:10px;border:1px solid}.s-pending{color:#87603D;background:#FAF1E6;border-color:#E8D5BF}.s-locked{color:#586B57;background:#ECF0E8;border-color:#D5DED0}.s-verified{color:#4E6C55;background:#EBF2EA;border-color:#D2E1D2}.s-conditional{color:#875F57;background:#F5EBE8;border-color:#E6D1CB}
.readiness{display:grid;grid-template-columns:128px 1fr;gap:20px;align-items:center}.read-ring{width:128px;height:128px;border-radius:50%;background:conic-gradient(var(--sage) 0 25%,#E8E6DE 25% 100%);display:grid;place-items:center;position:relative}.read-ring:after{content:"";width:92px;height:92px;background:var(--white);border-radius:50%;position:absolute}.read-ring b,.read-ring span{position:relative;z-index:2;text-align:center}.read-ring b{font-family:var(--serif);font-size:28px;font-weight:600}.read-ring span{display:block;font-size:9px;color:#7B847C;text-transform:uppercase;letter-spacing:.12em}.small-copy{font-size:12px;color:#667168;line-height:1.7}.divider{height:1px;background:var(--stone);margin:16px 0}.route{position:relative;padding:28px 20px 18px}.route-line{position:absolute;left:11%;right:11%;top:63px;height:1px;border-top:1px dashed #9AA995}.route-stops{display:grid;grid-template-columns:repeat(5,1fr);position:relative}.stop{text-align:center;position:relative}.stop-dot{width:15px;height:15px;border-radius:50%;background:var(--paper);border:2px solid var(--sage-deep);margin:27px auto 10px}.stop:first-child .stop-dot,.stop:last-child .stop-dot{background:var(--moss)}.stop b{font-family:var(--serif);font-size:15px}.stop span{display:block;font-size:9px;color:#7C857D;margin-top:3px}
.page-title{padding:18px 4px 22px}.page-title .kicker{margin-bottom:7px}.page-title h2{font-family:var(--serif);font-size:clamp(36px,5vw,56px);font-weight:600;margin:0;letter-spacing:-.025em}.page-title p{max-width:700px;color:#677169;line-height:1.7;margin:11px 0 0;font-size:13px}.day-strip{display:flex;gap:8px;overflow:auto;padding:2px 1px 13px;scrollbar-width:none}.day-strip::-webkit-scrollbar{display:none}.day-btn{min-width:92px;border:1px solid var(--stone);background:#FDFBF7;color:#6E776F;border-radius:24px;padding:12px 13px;text-align:left;cursor:pointer;transition:.35s}.day-btn:hover{transform:translateY(-2px)}.day-btn.active{background:var(--moss);border-color:var(--moss);color:white}.day-btn strong{display:block;font-family:var(--serif);font-size:17px;font-weight:600}.day-btn span{display:block;font-size:9px;line-height:1.4;margin-top:3px;opacity:.78}.timeline{display:grid;gap:0;padding:4px 0}.event{display:grid;grid-template-columns:88px 26px 1fr;gap:10px;min-height:105px}.event-time{font-size:11px;color:#7D867E;padding-top:22px;text-align:right;line-height:1.4}.rail{position:relative}.rail:before{content:"";position:absolute;top:0;bottom:0;left:12px;width:1px;background:#D6DAD1}.rail i{position:absolute;top:25px;left:6px;width:13px;height:13px;border-radius:50%;background:var(--sage);box-shadow:0 0 0 6px var(--paper)}.event:last-child .rail:before{bottom:64px}.event-box{margin:5px 0 13px;border:1px solid var(--stone);border-radius:26px;padding:17px 18px;background:rgba(255,253,249,.76);cursor:pointer;transition:.4s ease}.event-box:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.event-box h4{font-family:var(--serif);font-size:18px;font-weight:600;margin:0 0 6px}.event-box p{margin:0;color:#707A71;font-size:12px;line-height:1.6}.meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:11px}.tag{font-size:9px;border:1px solid var(--stone);border-radius:999px;padding:5px 7px;color:#717B72;background:#FBF9F5}.tag.emph{color:#775846;border-color:#DFC9BC;background:#F7EDE8}
.booking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.booking{padding:21px;position:relative;overflow:hidden}.booking:before{content:"";position:absolute;width:105px;height:105px;border:1px solid rgba(140,154,132,.2);border-radius:100% 0 100% 0;right:-30px;bottom:-36px}.booking-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.booking h3{font-family:var(--serif);font-size:20px;font-weight:600;margin:0 0 6px}.booking p{font-size:11px;line-height:1.62;color:#707A71;margin:0}.segments{display:grid;gap:7px;margin-top:15px}.segment{display:grid;grid-template-columns:60px 1fr auto;gap:10px;align-items:center;padding:9px 10px;border-radius:15px;background:#F6F3ED;border:1px solid #ECE7DE}.segment b{font-size:11px}.segment span{font-size:10px;color:#778078}.segment em{font-style:normal;font-size:10px;color:#4E5C52}.note-box{margin-top:13px;padding:12px 13px;border-radius:18px;background:#F6EFE6;color:#755F49;font-size:10px;line-height:1.55;border:1px solid #E9DCCB}
.budget-hero{display:grid;grid-template-columns:1fr 190px;gap:24px;align-items:center}.money{font-family:var(--serif);font-size:48px;font-weight:600;letter-spacing:-.03em}.range{font-size:11px;color:#798179}.budget-bars{display:grid;gap:13px;margin-top:18px}.bar-row{display:grid;grid-template-columns:175px 1fr 76px;gap:10px;align-items:center;font-size:11px}.bar-track{height:7px;border-radius:999px;background:#ECE9E1;overflow:hidden}.bar-track i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--sage),#A8B3A1)}.bar-row b{text-align:right;font-size:10px}.budget-orb{width:160px;height:160px;border-radius:52% 48% 60% 40%/48% 56% 44% 52%;background:var(--clay);display:grid;place-items:center;text-align:center;padding:20px;transform:rotate(4deg)}.budget-orb strong{font-family:var(--serif);font-size:24px}.budget-orb span{display:block;font-size:10px;color:#6F665E;margin-top:4px;line-height:1.45}
.checklist{display:grid;gap:9px}.task{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:13px 14px;border-radius:20px;border:1px solid var(--stone);background:#FDFBF7}.task input{width:17px;height:17px;accent-color:var(--sage-deep)}.task strong{font-size:12px;display:block}.task span{font-size:9px;color:#7A837B;line-height:1.45}.task.done{opacity:.58}.task.done strong{text-decoration:line-through}
.copilot-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px}.chat-panel{min-height:620px;display:flex;flex-direction:column;overflow:hidden}.chat-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 19px;border-bottom:1px solid var(--stone);background:#F8F5EF}.ai-name strong{font-family:var(--serif);font-size:18px;font-weight:600}.ai-name span{display:block;font-size:9px;color:#7B837C;margin-top:2px}.ai-controls{display:flex;gap:7px;align-items:center}.model-select{border:1px solid var(--stone);background:var(--white);border-radius:999px;padding:7px 10px;color:var(--ink);font-size:10px;outline:none}.conn{display:inline-flex;gap:6px;align-items:center;font-size:9px;color:#788178}.conn i{width:7px;height:7px;border-radius:50%;background:#B8B8AA}.conn.ready i{background:#6E8B70}.conn.busy i{background:#C49359;animation:pulse 1s infinite}.conn.error i{background:#A7615A}@keyframes pulse{50%{opacity:.35}}.messages{flex:1;padding:20px;display:grid;align-content:start;gap:13px;max-height:650px;overflow:auto}.msg{max-width:84%;border-radius:25px;padding:12px 15px;font-size:12px;line-height:1.66;white-space:pre-wrap}.msg.ai{background:#F5F2EB;border:1px solid #EAE5DC}.msg.user{margin-left:auto;background:var(--moss);color:white}.msg small{display:block;margin-top:5px;font-size:8px;opacity:.56}.msg.error{background:#F8EDE9;border-color:#E8D1C9;color:#7F5149}.quick{display:flex;gap:7px;overflow:auto;padding:0 16px 12px;scrollbar-width:none}.quick::-webkit-scrollbar{display:none}.quick button{border:1px solid var(--stone);background:#FBF9F4;border-radius:999px;padding:7px 10px;font-size:9px;color:#657067;white-space:nowrap;cursor:pointer}.composer{display:grid;grid-template-columns:1fr auto;gap:8px;padding:13px 15px 16px;border-top:1px solid var(--stone)}.composer textarea{resize:none;min-height:46px;max-height:130px;border:1px solid #DDD9D0;background:#FBFAF6;border-radius:22px;padding:12px 14px;color:var(--ink);outline:none;line-height:1.45}.composer textarea:focus{border-color:var(--sage);box-shadow:0 0 0 2px rgba(140,154,132,.11)}.side-stack{display:grid;gap:14px;align-content:start}.proposal{padding:20px}.proposal h3{font-family:var(--serif);font-size:20px;margin:7px 0 8px;font-weight:600}.proposal p{font-size:11px;line-height:1.6;color:#707970;margin:0}.impact{display:grid;gap:7px;margin:14px 0}.impact div{font-size:10px;line-height:1.45;padding:9px 10px;border-radius:14px;background:#F6F2EA}.proposal-actions{display:flex;gap:8px;margin-top:15px}.proposal-actions button{flex:1}.api-note{font-size:9px;line-height:1.55;color:#7C837C}.key-mask{font-family:ui-monospace,monospace;background:#F4F1EA;border:1px solid var(--stone);border-radius:12px;padding:8px 9px;margin-top:8px;color:#5F685F;word-break:break-all}
.audit{display:grid;gap:8px}.audit-row{padding:10px 11px;border-radius:15px;background:#F7F4EE;border:1px solid #ECE7DE;font-size:10px;color:#657067}.audit-row small{float:right;color:#8A918A}.empty{font-size:11px;color:#7F877F;line-height:1.6;padding:8px 0}.modal{position:fixed;inset:0;background:rgba(37,51,40,.28);display:none;align-items:center;justify-content:center;padding:18px;z-index:200}.modal.open{display:flex}.modal-card{width:min(610px,100%);max-height:82vh;overflow:auto;background:var(--paper);border:1px solid var(--stone);border-radius:32px;box-shadow:0 30px 90px rgba(30,45,34,.22)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;border-bottom:1px solid var(--stone)}.modal-head h3{font-family:var(--serif);font-size:23px;margin:0}.modal-body{padding:22px}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:16px}.detail{padding:13px;border:1px solid var(--stone);border-radius:17px;background:#FDFBF7}.detail b{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.13em;color:#7E867E;margin-bottom:5px}.detail span{font-size:11px;line-height:1.45}.toast{position:fixed;left:50%;bottom:25px;transform:translate(-50%,25px);opacity:0;z-index:300;background:var(--moss);color:#fff;padding:10px 15px;border-radius:999px;font-size:10px;transition:.3s}.toast.show{opacity:1;transform:translate(-50%,0)}.footer{margin-top:28px;padding:22px 5px 0;color:#858C85;font-size:9px;text-align:center}.leaf-divider{height:34px;position:relative}.leaf-divider:before{content:"";position:absolute;left:50%;top:8px;width:34px;height:17px;border:1px solid rgba(140,154,132,.45);border-radius:100% 0 100% 0;transform:translateX(-50%) rotate(28deg)}
@media(max-width:900px){.hero{grid-template-columns:1fr;padding:35px 26px}.arch-wrap{min-height:315px}.layout,.copilot-grid{grid-template-columns:1fr}.stat-strip{grid-template-columns:repeat(2,1fr)}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid rgba(103,118,96,.15)}.booking-grid{grid-template-columns:1fr}.side-stack{grid-row:1}.budget-hero{grid-template-columns:1fr}.budget-orb{display:none}}
@media(max-width:620px){.shell{width:min(100% - 18px,1240px);padding-top:8px}.topbar{padding-top:7px}.brand span{display:none}.top-actions .quiet-btn:first-child{display:none}.nav-wrap{top:62px}.hero{min-height:auto;border-radius:32px;padding:30px 20px}.hero h1{font-size:50px}.hero p{font-size:13px}.arch{width:86%;max-width:330px}.quote-card{left:4px}.stat{padding:15px 13px}.stat b{font-size:23px}.panel-pad{padding:20px}.page-title h2{font-size:39px}.event{grid-template-columns:64px 22px 1fr;gap:7px}.event-time{font-size:9px}.event-box{padding:15px 14px}.bar-row{grid-template-columns:116px 1fr 58px}.readiness{grid-template-columns:105px 1fr}.read-ring{width:105px;height:105px}.read-ring:after{width:76px;height:76px}.route{overflow:auto}.route-stops{min-width:600px}.route-line{min-width:470px}.copilot-grid{display:flex;flex-direction:column}.side-stack{order:-1}.chat-panel{min-height:540px}.ai-controls{flex-wrap:wrap;justify-content:flex-end}.detail-grid{grid-template-columns:1fr}}

.map-stack{display:grid;gap:16px}.map-panel{padding:22px}.map-grid{display:grid;grid-template-columns:1fr;gap:16px}.map-top{display:flex;align-items:end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:14px}.map-top h3{margin:0;font-family:var(--serif);font-size:24px;font-weight:600}.map-top p{margin:6px 0 0;color:#6d766e;font-size:12px;line-height:1.6}.map-canvas{height:380px;border-radius:24px;border:1px solid var(--stone);overflow:hidden;background:linear-gradient(135deg,#f1ede4,#ebe5d8)}.map-fallback{display:none;padding:12px 14px;border:1px dashed #ccbfae;border-radius:16px;background:#fbf7ef;color:#6a6258;font-size:12px;line-height:1.6}.route-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.route-pill{display:inline-flex;align-items:center;gap:6px;padding:8px 11px;border-radius:999px;background:#F5F0E7;border:1px solid #E5D9C9;font-size:12px;color:#4a554d}.route-pill b{font-family:var(--serif);font-size:14px}.route-summary{font-size:12px;color:#687369;line-height:1.7;margin-top:12px}.leaflet-popup-content-wrapper{border-radius:18px}.leaflet-popup-content{font-family:var(--sans);font-size:12px;line-height:1.5}.leaflet-container{font-family:var(--sans)}.map-marker-label{font-size:11px;padding:2px 5px;border-radius:8px;background:#fffdf9;border:1px solid #e6e2da}.map-legend{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.legend-item{display:inline-flex;align-items:center;gap:6px;color:#657068;font-size:12px}.legend-dot,.legend-line{display:inline-block}.legend-dot{width:12px;height:12px;border-radius:50%;background:var(--terracotta)}.legend-line{width:18px;height:0;border-top:2px solid var(--sage-deep)}
@media (max-width:760px){.map-canvas{height:300px}}

.event-box.map-focus{outline:2px solid rgba(194,123,102,.55);box-shadow:0 14px 36px rgba(194,123,102,.16);transform:translateY(-2px)}
.map-pin-wrap{background:transparent;border:0}.map-pin{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#fffdf9;border:1px solid #dcd4c9;box-shadow:0 7px 18px rgba(45,58,49,.16);font-size:16px;transition:.2s}.map-pin:hover{transform:translateY(-2px) scale(1.04)}
.map-pin.airport{background:#eaf0f2}.map-pin.hotel{background:#f1ece4}.map-pin.sight{background:#f4e9e3}.map-pin.city{background:#edf0e9}.map-pin.beach{background:#e7f0ef}.map-pin.market{background:#f4efe2}
.route-flow{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:12px}.route-leg{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#7a817a;padding:4px 2px}.route-leg i{display:inline-block;width:18px;border-top:1px solid #a7aea5}.route-leg.flight i{border-top-style:dashed}.route-leg.walk i{border-top-style:dotted}.route-leg.ferry i{border-top-style:dashed}
.legend-symbol{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#fffdf9;border:1px solid var(--stone);font-size:12px}.transport-legend{display:flex;flex-wrap:wrap;gap:8px 12px;margin-top:12px;padding-top:10px;border-top:1px solid #eee8de}
.journey-story{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:17px;position:relative}.journey-story:before{content:"";position:absolute;left:5%;right:5%;top:23px;height:1px;background:#d9d3c9;z-index:0}.story-stop{position:relative;z-index:1;border:1px solid var(--stone);background:#fffdf9;border-radius:18px;padding:11px 10px;min-height:78px;cursor:pointer;transition:.25s}.story-stop:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.story-stop .story-dot{width:12px;height:12px;border-radius:50%;background:var(--terracotta);box-shadow:0 0 0 5px #f9f8f4;margin-bottom:9px}.story-stop b{display:block;font-family:var(--serif);font-size:13px}.story-stop span{display:block;font-size:9px;color:#7a827a;line-height:1.4;margin-top:3px}.story-stop em{font-style:normal;font-size:9px;color:#9a6d5c;display:block;margin-top:5px}
@media(max-width:900px){.journey-story{grid-template-columns:repeat(3,1fr)}.journey-story:before{display:none}}
@media(max-width:560px){.journey-story{grid-template-columns:repeat(2,1fr)}}

.itinerary-workspace{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);gap:18px;align-items:start}.itinerary-main{min-width:0}.itinerary-map-side{position:sticky;top:128px;min-width:0}.itinerary-map-side .map-canvas{height:470px}.itinerary-map-side .map-panel{padding:20px}.itinerary-map-note{font-size:11px;color:#7a827b;margin-top:10px;line-height:1.55}.overview-inline{margin-top:18px}.overview-inline details{border:1px solid var(--stone);background:rgba(255,253,249,.72);border-radius:30px;box-shadow:var(--shadow-sm);overflow:hidden}.overview-inline summary{list-style:none;cursor:pointer;padding:18px 22px;display:flex;align-items:center;justify-content:space-between;gap:14px;font-family:var(--serif);font-size:20px;font-weight:600}.overview-inline summary::-webkit-details-marker{display:none}.overview-inline summary:after{content:'＋';font-family:var(--sans);font-size:18px;color:#7a847b}.overview-inline details[open] summary:after{content:'−'}.overview-inline .overview-body{padding:0 20px 20px}.day-strip{scroll-margin-top:110px}
@media(max-width:960px){.itinerary-workspace{grid-template-columns:1fr}.itinerary-map-side{position:relative;top:auto;order:-1}.itinerary-map-side .map-canvas{height:360px}}
@media(max-width:560px){.itinerary-map-side .map-canvas{height:300px}.itinerary-map-side .map-panel{padding:15px}.overview-inline summary{font-size:17px;padding:15px 17px}.overview-inline .overview-body{padding:0 14px 14px}}

/* v2.7 review refinements */
.map-top-refined{display:grid;grid-template-columns:auto 1fr auto;align-items:center}.map-day-nav{width:38px;height:38px;border-radius:50%;border:1px solid var(--stone);background:#fffdf9;color:var(--moss);font-family:var(--serif);font-size:25px;line-height:1;cursor:pointer}.map-day-nav:disabled{opacity:.25;cursor:default}.map-meta{display:block;margin-top:5px;font-size:10px;color:#8a8178}.map-compact-legend{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px}.map-compact-legend span{font-size:9px;color:#777f78;background:#f5f1e9;border:1px solid #e8e1d7;border-radius:999px;padding:5px 8px}.route-pill{appearance:none;font:inherit;cursor:pointer}.route-pill.optional{border-style:dashed;background:#fbf6ee}.route-pill .precision{font-size:8px;opacity:.68;margin-left:3px}.map-pin{position:relative}.map-pin .pin-num{font-family:var(--sans);font-weight:600;font-size:11px}.map-pin.optional{background:#fffaf2!important;border-style:dashed!important}.map-pin.optional .pin-num{color:#9b6e45}.event-map-link{border:0;background:#edf1e9;color:#5d6e59;border-radius:999px;padding:5px 8px;font-size:9px;cursor:pointer}.event-map-link:hover{background:#e1e9dc}.event-map-link b{font-family:var(--sans);font-size:9px}.event-box.map-linked{border-color:#dbe2d6}.event-box.map-linked h4:before{content:'↗';font-family:var(--sans);font-size:10px;color:#86927f;margin-right:7px;vertical-align:2px}.event-box.map-focus{outline:2px solid rgba(194,123,102,.48);outline-offset:2px}.precision-note{font-size:9px;color:#8a8178}.map-pin-wrap{background:transparent!important;border:0!important}.map-pin{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--moss);color:#fff;border:2px solid #fffdf9;box-shadow:0 4px 15px rgba(45,58,49,.2)}.map-pin.airport{background:#647c8c}.map-pin.hotel{background:#9b765b}.map-pin.sight{background:#73806b}.map-pin.market{background:#a87964}.map-pin.beach{background:#5e878b}.map-pin.city{background:#495b4c}.map-pin.area:after{content:'區';position:absolute;right:-5px;bottom:-4px;width:15px;height:15px;border-radius:50%;display:grid;place-items:center;background:#f5f0e7;color:#6c716b;border:1px solid #d9d2c8;font-size:8px;font-weight:600}.route-flow{align-items:stretch}.route-pill{min-height:30px}.day-btn.active{box-shadow:0 8px 24px rgba(38,56,44,.16)}
@media(max-width:960px){.map-top-refined{grid-template-columns:38px 1fr 38px}.itinerary-map-side .map-canvas{height:330px}}
@media(max-width:560px){.page-title{padding-bottom:14px}.day-strip{padding-bottom:10px}.itinerary-map-side .map-canvas{height:285px}.map-panel .route-flow{max-height:92px;overflow:auto}.map-compact-legend{gap:5px}.map-compact-legend span{font-size:8px}.event-map-link{padding:4px 7px}}

.day-strip-shell{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;gap:8px;align-items:center;margin-bottom:4px}.day-scroll-btn{width:38px;height:38px;border-radius:50%;border:1px solid var(--stone);background:#fffdf9;color:var(--moss);font-family:var(--serif);font-size:24px;line-height:1;cursor:pointer;box-shadow:var(--shadow-sm);transition:.2s}.day-scroll-btn:hover:not(:disabled){transform:translateY(-1px)}.day-scroll-btn:disabled{opacity:.22;cursor:default;box-shadow:none}.day-strip{margin:0;cursor:grab;user-select:none;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scroll-behavior:smooth}.day-strip.dragging{cursor:grabbing;scroll-behavior:auto}.day-btn{scroll-snap-align:center;flex:0 0 auto}.day-strip-hint{display:none;text-align:center;font-size:9px;color:#8a8178;margin:0 0 10px}
@media(min-width:901px){.day-strip-shell{grid-template-columns:1fr}.day-scroll-btn{display:none}}
@media(max-width:900px){.day-strip-shell{position:relative}.day-strip{padding-left:1px;padding-right:1px}.day-strip-hint{display:block}}
@media(max-width:560px){.day-strip-shell{grid-template-columns:34px minmax(0,1fr) 34px;gap:5px}.day-scroll-btn{width:32px;height:32px;font-size:21px}.day-btn{min-width:88px;padding:11px 12px}}


.today-preview{margin:16px 0 24px}.today-preview h3{font-family:Georgia,serif;font-size:24px;margin:5px 0}.today-preview p{font-size:13px;line-height:1.6;color:#65766a}.today-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.today-card{min-width:0;display:flex;flex-direction:column;gap:8px;background:#fffdfa;border:1px solid #d9dfd6;border-radius:18px;padding:16px}.today-card small{color:#60776a}.today-card strong{font-size:16px;overflow-wrap:anywhere}.today-card span{font-size:12px;color:#67786b;line-height:1.6}@media(max-width:900px){.today-preview-grid{grid-template-columns:1fr}}


/* TEMPLATE V2 · Egypt × Türkiye editorial journey components */
:root{--desert:#CDA47B;--red-sea:#277988;--bosphorus:#314E6E;--brass:#AD8050}
.hero{background:radial-gradient(circle at 11% 10%,rgba(210,164,108,.14),transparent 37%),linear-gradient(135deg,#FFFBF2 0%,#F1ECE3 100%)}
.hero:after{content:"EGYPT   •   RED SEA   •   TÜRKIYE";position:absolute;top:20px;right:28px;font:500 9px var(--sans);letter-spacing:.23em;color:#A89883;opacity:.8}
.hero .arch{box-shadow:0 25px 80px rgba(146,104,66,.19)}
.s-booked{background:#E5EFE5;color:#315D42;border-color:#B8D2BD}
.travel-chapters{margin:24px 0 20px}
.chapters-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:0 5px 16px}
.chapters-heading h2{font:600 clamp(23px,3vw,35px)/1.2 var(--serif);letter-spacing:-.02em;margin:6px 0 0}
.chapters-heading>span{font-size:12px;line-height:1.4;color:#7D8279;text-align:right}
.chapter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.chapter-card{display:block;text-align:left;position:relative;overflow:hidden;min-width:0;min-height:284px;border:1px solid rgba(0,0,0,.065);border-radius:28px;cursor:pointer;padding:17px 20px 19px;transition:transform .38s cubic-bezier(.2,.8,.2,1),box-shadow .38s ease,border-color .38s ease;box-shadow:0 10px 35px rgba(45,58,49,.055)}
.chapter-card:hover,.chapter-card:focus-visible{transform:translateY(-5px);box-shadow:0 18px 44px rgba(45,58,49,.12);border-color:rgba(0,0,0,.12)}
.chapter-card:focus-visible{outline:3px solid #CCA470;outline-offset:3px}
.chapter-egypt{background:linear-gradient(145deg,#FBF0DA,#EED4B1)}
.chapter-redsea{background:linear-gradient(145deg,#E2F0EA,#AFCED0)}
.chapter-istanbul{background:linear-gradient(145deg,#E5EAEF,#B6C7D2)}
.chapter-card:before{content:"";position:absolute;width:108px;height:108px;border:1px solid rgba(67,82,71,.11);border-radius:50%;right:-49px;top:-38px}
.chapter-istanbul:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.07;background:repeating-conic-gradient(from 45deg,#2B5373 0% 12.5%,transparent 0% 25%) 0 0/34px 34px}
.chapter-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;position:relative;z-index:2}
.chapter-meta b{font-size:10px;letter-spacing:.16em;color:#695E50}
.chapter-meta i{font-size:11px;color:#786C60;font-style:normal;font-variant-numeric:tabular-nums}
.chapter-art{display:block;width:100%;height:154px;margin:0 auto -4px;position:relative;z-index:1;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.chapter-card:hover .chapter-art{transform:translateY(-6px) scale(1.03)}
.chapter-info{display:flex;position:relative;z-index:2;flex-direction:column;gap:4px}
.chapter-info strong{font:600 clamp(20px,2vw,28px) var(--serif);color:#263B34}
.chapter-info small{font-size:12px;color:#59655C}
.chapter-arrow{position:absolute;bottom:0;right:0;border:1px solid rgba(45,58,49,.2);width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#345145;font-size:17px}
.flight-ticket{margin:16px 0 24px;display:grid;grid-template-columns:minmax(0,1fr) 270px;border:1px solid #D7CCBA;border-radius:27px;background:linear-gradient(125deg,#273B31 0%,#324E48 66%,#E9DEC9 66%,#F7F1E5 100%);overflow:hidden;box-shadow:0 14px 40px rgba(36,51,45,.1)}
.flight-ticket-copy{padding:25px 31px;color:#F8F5EF;min-width:0}
.ticket-kicker{font-size:10px;letter-spacing:.2em;color:#DFB680;font-weight:700}
.flight-ticket-copy h2{margin:9px 0;font:600 clamp(22px,3vw,32px) var(--serif)}
.flight-ticket-copy p{font-size:13px;line-height:1.7;margin:0 0 12px;color:#E7E7DE}
.ticket-caveat{color:#D3D8C8;font-size:11px;line-height:1.6}
.flight-ticket-price{padding:20px 18px 18px 25px;display:flex;flex-direction:column;justify-content:center;gap:5px;color:#324538}
.flight-ticket-price>span{font-size:11px;letter-spacing:.04em}
.flight-ticket-price strong{font:600 clamp(29px,3vw,37px) var(--serif);font-variant-numeric:tabular-nums}
.flight-ticket-price small{font-size:11px;color:#768276}
.flight-ticket-price button{align-self:flex-start;border:0;background:none;padding:9px 0 1px;margin-top:5px;color:#2B5647;cursor:pointer;font-size:12px;font-weight:700;border-bottom:1px solid #708A78}
.flight-ticket-price button:hover{color:#152E22}
#timeline .event{transition:background .24s ease,border-color .24s ease}
#timeline .event:hover{background:rgba(221,211,192,.13)}
.day-btn:focus-visible,.map-day-nav:focus-visible{outline:2px solid #B68B59;outline-offset:3px}
@media(max-width:900px){.chapter-grid{grid-template-columns:1fr 1fr}.chapter-istanbul{grid-column:1/-1}.flight-ticket{grid-template-columns:1fr}.flight-ticket-price{background:#F7F1E5;display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:center;padding:17px 23px}.flight-ticket-price strong{grid-column:2;grid-row:1/3}.flight-ticket-price button{grid-column:1/-1}}
@media(max-width:570px){.chapters-heading{align-items:start;flex-direction:column;gap:6px}.chapters-heading>span{text-align:left}.chapter-grid{grid-template-columns:1fr;gap:12px}.chapter-istanbul{grid-column:auto}.chapter-card{min-height:229px;padding:13px 18px 16px}.chapter-art{height:112px;width:96%}.chapter-info strong{font-size:23px}.flight-ticket{margin:15px 0;border-radius:22px;background:linear-gradient(145deg,#273B31,#365A54)}.flight-ticket-copy{padding:24px 20px}.hero:after{display:none}}
@media(prefers-reduced-motion:reduce){.chapter-card,.chapter-art,#timeline .event{transition:none!important}.chapter-card:hover,.chapter-card:focus-visible,.chapter-card:hover .chapter-art{transform:none!important}}

/* Evening itinerary · compact mobile timeline. Desktop grid stays unchanged. */
.s-optional{background:#F0F2E9;color:#5D725F;border-color:#D6DECF}
@media(max-width:620px){
  #timeline .event{
    grid-template-columns:48px 18px minmax(0,1fr);
    column-gap:6px;
  }
  #timeline .event-time{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:2px;
    padding-top:22px;
    font-size:10px;
    line-height:1.2;
    letter-spacing:-.01em;
    white-space:nowrap;
    text-align:right;
  }
  #timeline .event-time .time-single{max-width:100%;white-space:normal;overflow-wrap:anywhere}
  #timeline .event-time .time-divider{display:none}
  #timeline .event-time .time-end{color:var(--moss);font-weight:600}
  #timeline .rail:before{left:8px}
  #timeline .rail i{left:2px}
  #timeline .event-box{
    min-width:0;
    padding:14px 12px;
    border-radius:21px;
  }
}
@media(max-width:360px){
  #timeline .event{grid-template-columns:46px 16px minmax(0,1fr);column-gap:5px}
  #timeline .rail:before{left:7px}
  #timeline .rail i{left:1px}
}
