:root{
  --bg:#f6f1e8;--paper:#fffaf2;--ink:#2d2a26;--muted:#7a7065;--line:#ded1bf;
  --accent:#b35c44;--head:#f1e3d0;--biz:#e9f7e7;--bizline:#82b879;
  --eco:#fff1a8;--ecoline:#d49b22;--transfer:#eef7ff;--transferline:#9dbfe8;
  --hotel:#f7f1e8;--wedding:#fff0f6;--weddingline:#d87aa2;
  --flight:#eef7ff;--flightline:#9dbfe8;--food:#fff1dc;--foodline:#d6a25b;
  --spa:#fff0f6;--spaline:#d87aa2;--activity:#eef6ec;--activityline:#82b879;
  --diff:#fff1a8;--diffline:#d49b22;
  --page-max:1120px;--date-col:92px;--portrait-date-col:72px;--portrait-table-min:640px;
}
*{box-sizing:border-box}
body{margin:0;background:radial-gradient(circle at top,#fffdf8 0,var(--bg) 45%,#efe3d2 100%);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",Meiryo,sans-serif;line-height:1.45}
body.zh{font-family:-apple-system,BlinkMacSystemFont,"PingFang TC","Noto Sans TC","Microsoft JhengHei",sans-serif}
body.bkk{--accent:#9b6b43;--page-max:1180px;--date-col:96px;--portrait-table-min:680px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
.mobile-tip,.swipe-hint{display:none}.page{max-width:var(--page-max);margin:22px auto;padding:24px;background:var(--paper);border-radius:24px;box-shadow:0 16px 40px #0002}
header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;border-bottom:2px solid var(--line);padding-bottom:14px;margin-bottom:14px}.eyebrow{color:var(--accent);letter-spacing:.12em;font-size:13px;font-weight:900}h1{margin:2px 0 4px;font-size:40px;line-height:1.05}.sub{color:var(--muted);font-weight:700}.badge{background:#f7dfd6;color:#7a3525;padding:10px 14px;border-radius:999px;font-weight:900;white-space:nowrap}
.notes,.actions,.summary{display:grid;gap:10px;margin:14px 0}.notes{grid-template-columns:repeat(4,1fr)}.actions{grid-template-columns:repeat(5,1fr)}.summary{grid-template-columns:repeat(4,1fr)}body.xiy .summary{grid-template-columns:1fr 1fr}.notes div,.actions div,.summary div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:11px 12px;font-size:14px}.notes strong,.actions strong,.summary strong{display:block;color:var(--accent);font-size:13px;margin-bottom:5px}
.lang-link{display:inline-flex;align-items:center;gap:5px;margin-top:8px;padding:6px 10px;border-radius:999px;background:#7a3525;color:#fff!important;text-decoration:none!important;font-size:12px;font-weight:950}.lang-link:hover{filter:brightness(1.08)}
.table-wrap{overflow:visible;padding-bottom:0}.table{display:grid;grid-template-columns:var(--date-col) repeat(var(--people-count,2),minmax(0,1fr));border:1px solid var(--line);border-radius:20px;overflow:hidden;background:white}.cell{padding:12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.row-end{border-right:0}.head{background:var(--head);font-weight:950}.dayhead{background:#f4eee5;font-weight:950;color:#4d443b}.last{border-bottom:0}.person{display:flex;justify-content:space-between;align-items:center;gap:8px}.person span{font-size:13px;color:var(--muted);font-weight:800}.shared{grid-column:span var(--people-count,2)}.stack{display:grid;gap:8px;align-content:start}
.card,.flight,.hotel,.transfer,.plain,.wedding{border-radius:14px;padding:10px 11px;border:1px solid #e4d8c8;background:#fffdf9;font-weight:500}.card-title{display:block;font-weight:950;margin-bottom:5px}.flight{background:var(--flight);border-color:var(--flightline);min-height:96px;display:flex;flex-direction:column;justify-content:center}body.xiy .flight{background:#fffdf9;border-color:#e4d8c8;min-height:92px}.first-leg{min-height:122px}.final-leg{min-height:128px}.diff,.flight.diff{background:var(--diff);border-color:var(--diffline)}.transfer{background:var(--transfer);border-color:var(--transferline);font-weight:850;color:#214b73}.hotel{background:var(--hotel)}body.xiy .hotel{font-weight:800}.food{background:var(--food);border-color:var(--foodline)}.spa{background:var(--spa);border-color:var(--spaline)}.activity{background:var(--activity);border-color:var(--activityline)}.plain{background:#fffdf9;color:#4d443b;font-weight:750}.wedding{background:var(--wedding);border-color:var(--weddingline);color:#7a2f52;font-weight:950}
.top{display:flex;justify-content:space-between;align-items:center;gap:8px}.no{font-weight:950;letter-spacing:.02em}.route{font-size:18px;font-weight:950;margin-top:2px}.pill,.cabin{border-radius:999px;padding:2px 8px;font-size:12px;font-weight:950;white-space:nowrap}.pill{background:#fff;border:1px solid #d3c3ad;color:#7a4c00}.cabin{background:var(--biz);border:1px solid var(--bizline);color:#386c33}.eco{background:var(--eco);border-color:var(--ecoline);color:#7a4c00}.muted{color:var(--muted);font-weight:700;font-size:13px}.diffnote,.note{color:#704400;font-weight:850;font-size:13px;margin-top:4px}.hotel-name{display:block;margin-bottom:6px}
.link-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.link-btn,.hotel-link{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:7px 10px;border-radius:999px;text-decoration:none!important;border:1px solid #c9aa8a;font-size:12px;font-weight:900;line-height:1.1}.site-link,.hotel-link{background:#7a3525;color:#fff!important;border-color:#7a3525}.maplink{background:#fff;color:#7a3525!important}.link-btn:hover,.hotel-link:hover{filter:brightness(1.08)}
.legend{margin-top:10px;color:var(--muted);font-size:13px;font-weight:800}.oldlink{margin-top:12px;text-align:right}.oldlink a{color:#7a3525;font-weight:900}
@media(max-width:820px){.page{margin:14px;padding:16px}header{display:block}h1{font-size:30px}.badge{display:inline-block;margin-top:10px}.notes,.actions,.summary{grid-template-columns:1fr!important}.cell{padding:9px}.person{display:block}.route{font-size:15px}.flight{min-height:116px}.link-btn,.hotel-link{padding:6px 8px;font-size:11px}body.xiy .flight{min-height:104px}body.xiy .first-leg{min-height:148px}body.xiy .final-leg{min-height:138px}}
@media(max-width:820px) and (orientation:portrait){.mobile-tip,.swipe-hint{display:block}.mobile-tip{position:sticky;top:0;z-index:20;margin:0;padding:10px 14px;background:#fff1a8;border-bottom:1px solid #d49b22;color:#704400;font-weight:900;text-align:center}.mobile-tip button{margin-left:8px;border:1px solid #d49b22;background:#fffaf2;border-radius:999px;padding:4px 9px;font-weight:900;color:#704400}.swipe-hint{margin:10px 0 8px;padding:9px 12px;border:1px solid #d49b22;border-radius:14px;background:#fffaf0;color:#704400;font-weight:900}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:8px}.table-wrap::-webkit-scrollbar{height:10px}.table-wrap::-webkit-scrollbar-track{background:#eadfce;border-radius:999px}.table-wrap::-webkit-scrollbar-thumb{background:var(--accent);border-radius:999px}.table{grid-template-columns:var(--portrait-date-col) repeat(var(--people-count,2),minmax(0,1fr));min-width:var(--portrait-table-min)}.cell{padding:7px}.card,.flight,.hotel,.transfer,.plain,.wedding{padding:7px 8px}.route{font-size:14px}.muted,.note,.diffnote{font-size:11px}.pill,.cabin{font-size:10px;padding:2px 6px}.flight{min-height:92px}.link-row{gap:6px;margin-top:10px}.link-btn,.hotel-link{font-size:10px;padding:6px 7px}body.xiy .flight{min-height:86px}body.xiy .first-leg{min-height:104px}body.xiy .final-leg{min-height:108px}}
@media print{@page{size:A4;margin:7mm}body{background:white}.mobile-tip,.swipe-hint{display:none}.page{box-shadow:none;margin:0;padding:0}.table-wrap{overflow:visible}.table{min-width:0}.notes,.actions,.summary{grid-template-columns:repeat(4,1fr)!important}.notes div,.actions div,.summary div{font-size:10px;padding:6px}.cell{padding:6px}.route{font-size:13px}.card,.flight,.hotel,.transfer,.plain,.wedding{padding:6px}.flight{min-height:72px}.first-leg{min-height:88px}.final-leg{min-height:92px}.link-row,.oldlink,.legend,.hotel-link,.lang-link{display:none}}
