    /* Content sections */
    .page{display:none;opacity:0;transform:translateY(8px)}
    .page.active{display:block;animation:pageIn .3s ease forwards}
    @keyframes pageIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

    .day-hdr{background:var(--surface);backdrop-filter:blur(10px);border-radius:var(--radius);
      padding:16px;margin-bottom:14px;border:1px solid rgba(255,255,255,0.06);border-left:3px solid var(--accent)}
    .day-hdr h2{font-size:17px;font-weight:700}
    .day-hdr .meta{color:var(--text-dim);font-size:12px;margin-top:4px;display:flex;gap:12px;flex-wrap:wrap}

    /* Timeline — single gradient line per day */
    .tl{position:relative;padding-left:30px}
    .tl::before{content:'';position:absolute;left:12px;top:0;bottom:0;width:3px;border-radius:2px;opacity:.6}
    /* Gradient variants */
    .tl-am-pm-ev::before{background:linear-gradient(180deg,#fbbf24 0%,#60a5fa 45%,#a78bfa 100%)}
    .tl-pm-ev::before{background:linear-gradient(180deg,#60a5fa 0%,#a78bfa 100%)}
    .tl-am-pm::before{background:linear-gradient(180deg,#fbbf24 0%,#60a5fa 100%)}
    .tl-am::before{background:#fbbf24}
    .tl-pm::before{background:#60a5fa}
    .tl-ev::before{background:#a78bfa}
    .tl-item{position:relative;margin-bottom:16px}
    .tl-item::before{content:'';position:absolute;top:14px;width:11px;height:11px;left:-24px;
      border-radius:50%;background:var(--accent);border:2px solid var(--bg);box-shadow:0 0 8px rgba(167,139,250,0.4)}
    .tl-item.ok::before{background:var(--green);box-shadow:0 0 6px rgba(52,211,153,0.4)}
    .tl-item.maybe::before{background:var(--orange);box-shadow:0 0 6px rgba(251,146,60,0.3)}
    .tl-item.tbd::before{background:var(--text-dim);box-shadow:none}

    .ev{background:var(--surface);backdrop-filter:blur(8px);border-radius:var(--radius);
      padding:16px;border:1px solid rgba(255,255,255,0.06);transition:all .25s ease}
    .ev:hover{border-color:rgba(167,139,250,0.25);transform:translateX(4px);box-shadow:0 4px 16px rgba(0,0,0,0.2)}
    .ev[data-poi]{cursor:pointer}
    .ev[data-poi].has-detail{border-color:rgba(167,139,250,0.12)}
    .ev[data-poi].has-detail .ev-h::before{content:'點擊查看詳情';font-size:9px;font-weight:500;
      color:var(--accent);opacity:0;position:absolute;right:12px;top:12px;
      padding:2px 8px;background:rgba(167,139,250,0.1);border-radius:4px;transition:opacity .2s}
    .ev[data-poi].has-detail:hover .ev-h::before{opacity:1}
    .ev[data-poi].has-detail .ev-h{position:relative}
    .ev[data-poi] .ev-h::after{content:'';display:inline-block;width:12px;height:12px;margin-left:6px;opacity:.35;
      background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E") center/contain no-repeat;
      mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E") center/contain no-repeat;
      transition:opacity .2s;vertical-align:middle}
    .ev[data-poi]:hover .ev-h::after{opacity:1}
    .ev.poi-active{border-color:var(--accent)!important;box-shadow:0 0 16px rgba(167,139,250,0.15)}
    .ev-t{font-size:12px;color:var(--accent2);font-weight:600;margin-bottom:2px}
    .ev-h{font-size:14px;font-weight:700;margin-bottom:4px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
    .ev-d{font-size:12px;color:var(--text-dim);line-height:1.7}
    .badge{font-size:10px;padding:2px 7px;border-radius:8px;font-weight:600}
    .badge.ok{background:rgba(52,211,153,0.15);color:var(--green)}
    .badge.maybe{background:rgba(251,146,60,0.15);color:var(--orange)}
    .badge.tbd{background:rgba(139,143,163,0.15);color:var(--text-dim)}
    .ev-det{margin-top:6px;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:4px}
    .ev-det .di{font-size:12px;color:var(--text-dim);display:flex;gap:4px}
    .ev-det .di b{color:var(--text);min-width:40px}
    .tb{background:var(--surface2);border-radius:10px;padding:10px 14px;margin:8px 0;
      font-size:12px;color:var(--text-dim);border-left:3px solid var(--purple);cursor:pointer;transition:all .25s ease}
    .tb:hover{border-color:var(--accent);background:var(--surface3);transform:translateX(2px)}
    .tb .tb-main{display:flex;align-items:center;gap:6px}
    .tb-ico{width:16px;height:16px;flex-shrink:0;opacity:.7}

    /* Transport bar with cost + expandable detail */
    .tb .cost{margin-left:auto;color:var(--gold);font-weight:600;white-space:nowrap;font-size:12px}
    .tb .tb-detail{display:none;margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,0.06);
      font-size:12px;line-height:1.8;color:var(--text-dim)}
    .tb.tb-exp .tb-detail{display:block}
    .tb .tb-detail b{color:var(--text);font-weight:600}
    .tb .tb-arrow{font-size:9px;opacity:.7;transition:all .2s;display:inline-flex;align-items:center;gap:2px;
      color:var(--accent);margin-left:8px;white-space:nowrap;padding:2px 7px;border-radius:4px;background:rgba(167,139,250,0.1)}
    .tb .tb-arrow::before{content:'展開';font-size:9px;font-weight:500}
    .tb .tb-arrow .arr{display:inline-block;transition:transform .2s}
    .tb.tb-exp .tb-arrow{opacity:.9}
    .tb.tb-exp .tb-arrow::before{content:'收合'}
    .tb.tb-exp .tb-arrow .arr{transform:rotate(180deg)}

    .sec-t{font-size:14px;font-weight:700;margin:24px 0 12px;padding-left:12px;border-left:3px solid var(--gold)}

    /* Hotel */
    .htl{background:linear-gradient(135deg,rgba(167,139,250,0.06),rgba(56,189,248,0.04));
      backdrop-filter:blur(8px);border-radius:var(--radius);padding:16px;
      border:1px solid rgba(255,255,255,0.08);margin-bottom:12px}
    .htl h3{font-size:14px;color:var(--accent2);margin-bottom:6px}
    .htl .hd{font-size:12px;color:var(--text-dim);line-height:1.7}
    .hr{display:inline-block;background:var(--green);color:#000;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:700}
    .htl-info{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:8px;border-top:1px solid rgba(255,255,255,0.06)}
    .htl-info span{font-size:11px;color:var(--text-dim);padding:3px 8px;background:var(--surface);border-radius:6px}
    .htl:hover{border-color:rgba(167,139,250,0.25)}

    /* Overview cards */
    .ovg{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
    .ovc{background:var(--surface);backdrop-filter:blur(8px);border-radius:var(--radius);
      padding:16px;border:1px solid rgba(255,255,255,0.06);cursor:pointer;transition:all .25s ease;
      position:relative}
    .ovc:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,0.3);border-color:rgba(255,255,255,0.15)}
    .ovc .od{font-size:11px;font-weight:700;letter-spacing:.5px;margin-bottom:2px;color:var(--accent)}
    .ovc .odt{font-size:18px;font-weight:700;margin:2px 0 4px}
    .ovc .oth{font-size:12px;color:var(--gold);margin-bottom:8px;font-weight:600}
    .ovc .oi{font-size:12px;color:var(--text-dim);line-height:1.9}

    /* Decision */
    .dp{background:linear-gradient(135deg,rgba(167,139,250,0.05),rgba(56,189,248,0.03));
      border-radius:var(--radius);padding:14px;border:1px solid rgba(167,139,250,0.12);margin:12px 0}
    .dp h3{font-size:14px;color:var(--accent);margin-bottom:8px}
    .dl{list-style:none}
    .dl li{font-size:12px;color:var(--text-dim);padding:5px 0;border-bottom:1px solid rgba(255,255,255,0.04);display:flex;align-items:center;gap:6px}
    .dl li:last-child{border:none}
    .ck{width:16px;height:16px;border:2px solid rgba(255,255,255,0.12);border-radius:4px;
      cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s}
    .ck.checked{background:var(--green);border-color:var(--green)}
    .ck.checked::after{content:'\2713';color:#000;font-size:10px}

    /* Float */
    .selfloat{position:fixed;bottom:16px;right:16px;background:rgba(20,20,35,0.9);
      backdrop-filter:blur(16px);border:1px solid rgba(167,139,250,0.25);border-radius:var(--radius);
      padding:10px 14px;font-size:11px;z-index:200;cursor:pointer;transition:all .3s;box-shadow:0 6px 24px rgba(0,0,0,0.4)}
    .selfloat:hover{transform:translateY(-2px)}
    .selfloat .sc{color:var(--green);font-weight:700;font-size:14px}

    /* Highlight card */
    .ev.hl{border-color:rgba(251,191,36,0.2);background:linear-gradient(135deg,rgba(251,191,36,0.04),rgba(167,139,250,0.03))}
    .ev.hl2{border-color:rgba(167,139,250,0.2);background:linear-gradient(135deg,rgba(167,139,250,0.04),rgba(56,189,248,0.03))}
