/**
 * Trip2Where Planner V2 — OVERRIDES (Facility Layer · Critical Overrides · Preset Course)
 * Split from travel-planner-v2.css 2026-04-17 (P2-2)
 * Enqueued as: t2w-planner-overrides (handle 4/4)
 */

/* ========================================
   v41: Facility Layer Toggle Control
   ======================================== */

/* Control container */
.t2w-map-facility-ctrl {
    display: flex;
    flex-direction: column;
    gap: 6px;
    background: #fff;
    border-radius: 10px;
    padding: 6px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}

/* Toggle buttons */
#t2w-planner-v2 .t2w-facility-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 7px 12px;
    border: 1.5px solid #E5E7EB;
    border-radius: 8px;
    background: #fff;
    color: #6B7280;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
    min-width: 0;
    width: auto;
    line-height: 1;
    white-space: nowrap;
}
#t2w-planner-v2 .t2w-facility-btn i {
    font-size: 13px;
    width: 16px;
    text-align: center;
}
#t2w-planner-v2 .t2w-facility-btn:hover {
    background: #F3F4F6;
    border-color: #D1D5DB;
    color: #374151;
}

/* Active state — toilet: blue, bbq: orange */
#t2w-planner-v2 .t2w-facility-btn.active[data-type="toilet"] {
    background: #EFF6FF;
    border-color: #3B82F6;
    color: #2563EB;
}
#t2w-planner-v2 .t2w-facility-btn.active[data-type="bbq"] {
    background: #FFF7ED;
    border-color: #F97316;
    color: #EA580C;
}

/* Loading spinner */
.t2w-facility-btn.loading {
    pointer-events: none;
    opacity: 0.7;
}
.t2w-facility-btn.loading i {
    animation: t2w-facility-spin 0.8s linear infinite;
}
@keyframes t2w-facility-spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* Facility markers */
.t2w-facility-dot {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 2px solid #fff;
    box-shadow: 0 1px 4px rgba(0,0,0,0.25);
    color: #fff;
    font-size: 11px;
}

/* Facility popup */
.t2w-facility-popup {
    font-family: var(--font-primary, 'Pretendard', sans-serif);
    font-size: 13px;
    line-height: 1.5;
}
.t2w-facility-popup strong {
    display: block;
    font-size: 14px;
    margin-bottom: 4px;
    color: #111827;
}
.t2w-facility-popup .t2w-fp-addr {
    margin: 0 0 6px;
    color: #6B7280;
    font-size: 12px;
}
.t2w-facility-popup .t2w-fp-addr i {
    width: 14px;
    color: #9CA3AF;
    margin-right: 2px;
}
.t2w-facility-popup .t2w-fp-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 6px;
}
.t2w-facility-popup .t2w-fp-badge {
    display: inline-block;
    padding: 2px 6px;
    background: #F3F4F6;
    border-radius: 4px;
    font-size: 11px;
    color: #374151;
    white-space: nowrap;
}
.t2w-facility-popup .t2w-fp-hours,
.t2w-facility-popup .t2w-fp-desc {
    margin: 0 0 4px;
    color: #6B7280;
    font-size: 12px;
}
.t2w-facility-popup .t2w-fp-hours i {
    width: 14px;
    color: #9CA3AF;
    margin-right: 2px;
}
.t2w-facility-popup .t2w-fp-dist {
    margin: 4px 0 0;
    color: #9CA3AF;
    font-size: 11px;
}
.t2w-facility-popup .t2w-fp-dist i {
    width: 14px;
    margin-right: 2px;
}

/* Facility tooltip */
.t2w-facility-tooltip {
    font-family: var(--font-primary, 'Pretendard', sans-serif);
    font-size: 12px;
    padding: 4px 8px;
    border-radius: 6px;
}

/* ── v41: Mobile responsive ── */
@media (max-width: 768px) {
    .t2w-map-facility-ctrl {
        flex-direction: row;
        padding: 4px;
        gap: 4px;
    }
    .t2w-facility-btn {
        padding: 6px 8px;
        font-size: 11px;
    }
    .t2w-facility-btn span {
        display: none;
    }
    .t2w-facility-btn i {
        font-size: 15px;
        width: auto;
    }
}

/* ── v7: Collapsed card adjustments ── */
.t2w-v29-card--collapsed .t2w-v7-content { padding: 0; }

/* ── v7 Mobile ── */
@media (max-width: 768px) {
    /* Wrap header: row1=grip+title, row2=duration+toggle */
    .t2w-v29-card-header {
        flex-wrap: wrap;
    }
    .t2w-v7-grip { width: 26px; min-height: 38px; }
    .t2w-v7-grip-label { font-size: 6px; }
    .t2w-v7-grip-dots { gap: 1.5px; }
    .t2w-v7-grip-dots span { width: 2.5px; height: 2.5px; }
    #t2w-planner-v2 .t2w-v7-content {
        /* Force content to fill row → dur+toggle wrap to next line */
        flex: 0 0 calc(100% - 30px);
        min-width: 0;
    }
    #t2w-planner-v2 .t2w-v29-card-title {
        overflow: hidden;
    }
    .t2w-v29-card-title h3 {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .t2w-v7-dur {
        padding: 1px; height: 28px;
        margin-left: 26px; /* align under content, past grip */
        margin-top: 2px;
    }
    /* v42.2: Mobile touch target — minimum 44px for WCAG compliance */
    .t2w-v7-dur-btn { width: 36px; max-width: 36px; min-width: 36px; height: 36px; font-size: 16px; }
    .t2w-v7-dur-time { font-size: 10px; }
    .t2w-v7-dur-range { font-size: 7px; }
    .t2w-v7-toggle { margin: auto 0 auto 6px; margin-top: 4px; }
    .t2w-v7-toggle--collapsed,
    .t2w-v7-toggle:not(.t2w-v7-toggle--collapsed) { padding: 3px 6px; }
    .t2w-v7-toggle-text { font-size: 8px; }
    .t2w-v7-toggle > i { font-size: 7px; }
}

/* ═══════════════════════════════════════════════════════════════════
   v42.3: Transport Card — Centered Badge Design
   ═══════════════════════════════════════════════════════════════════ */

/* v42.5: Place item before transport — minimal spacing */
#t2w-planner-v2 .t2w-v29-item + .t2w-v29-transport {
    margin-top: -26px;
}

/* ═══ v43.3: Transport v2 — inline, aligned with cards, compact spacing ═══ */
#t2w-planner-v2 .t2w-trp-v2 {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px 6px 68px; /* aligned with card content (badge 56px + gap) */
    margin: -4px 0 -2px 0; /* negative margin to tighten gap */
    background: none;
    border: none;
    border-radius: 0;
    position: relative;
    flex-direction: row;
}
#t2w-planner-v2 .t2w-trp-v2::before { display: none; }
#t2w-planner-v2 .t2w-v29-item + .t2w-trp-v2 { margin-top: -8px; }

.t2w-trp-v2-info {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 11px;
    color: var(--t2w-text-dim, #9CA3AF);
    flex-shrink: 0;
}
.t2w-trp-v2-icon {
    font-size: 15px;
    color: var(--t2w-text-sec, #6B7280);
}
.t2w-trp-v2-label {
    font-weight: 600;
    color: var(--t2w-text-sec, #6B7280);
    white-space: nowrap;
}
.t2w-trp-v2-dot {
    width: 3px; height: 3px; border-radius: 50%;
    background: var(--t2w-text-dim, #9CA3AF);
    flex-shrink: 0;
}
.t2w-trp-v2-dist { font-size: 11px; white-space: nowrap; }
.t2w-trp-v2-warn {
    font-size: 9px; font-weight: 600; color: #D97706;
    background: #FFFBEB; padding: 1px 6px; border-radius: 4px;
    white-space: nowrap;
}

.t2w-trp-v2-modes {
    display: flex;
    gap: 3px;
    margin-left: auto;
    align-items: center;
    flex-shrink: 0;
}
.t2w-trp-v2-chip {
    display: inline-flex; align-items: center; gap: 2px;
    padding: 2px 7px; border-radius: 6px;
    font-size: 10px; font-weight: 600;
    border: 1px solid var(--t2w-border-warm, #E5E7EB);
    background: #fff; color: var(--t2w-text-sec, #6B7280);
    cursor: pointer; font-family: 'Plus Jakarta Sans', sans-serif;
    transition: all .12s; line-height: 1;
}
.t2w-trp-v2-chip .material-symbols-outlined { font-size: 13px; }
.t2w-trp-v2-chip:hover { border-color: var(--color-primary); color: #E5A400; }
.t2w-trp-v2-chip--on {
    background: var(--t2w-dark, #181610); color: #fff;
    border-color: var(--t2w-dark, #181610);
}
.t2w-trp-v2-chip--on:hover { opacity: 0.85; color: #fff; }
.t2w-trp-v2-nav {
    display: inline-flex; align-items: center; justify-content: center;
    width: 24px; height: 24px; border-radius: 6px;
    color: #3B82F6; text-decoration: none;
    transition: background .12s;
}
.t2w-trp-v2-nav:hover { background: rgba(59,130,246,.08); }
.t2w-trp-v2-nav .material-symbols-outlined { font-size: 15px; }

@media (max-width: 768px) {
    .t2w-trp-v2 { padding-left: 28px; gap: 6px; }
    .t2w-trp-v2-chip { min-height: 32px; padding: 3px 8px; font-size: 11px; }
}

/* Override inline PHP layout → centered column */
#t2w-planner-v2 .t2w-v29-transport {
    margin: 0 0 6px 0;
    padding: 0;
    background: none;
    border: none;
    flex-direction: column;
    align-items: center;
    gap: 0;
    border-radius: 0;
    position: relative;
}

/* Hide old connector — replaced by centered vertical line */
.t2w-trp-connector { display: none; }

/* ── Vertical line through center (pseudo-element on transport) ── */
.t2w-v29-transport::before {
    content: '';
    position: absolute;
    top: 0; bottom: 0;
    left: 50%;
    width: 2px;
    background: repeating-linear-gradient(
        to bottom,
        var(--t2w-border-warm, #e8e0d0) 0px,
        var(--t2w-border-warm, #e8e0d0) 4px,
        transparent 4px,
        transparent 8px
    );
    transform: translateX(-1px);
    z-index: 0;
}

/* ── Body: centered, narrow ── */
.t2w-trp-body {
    position: relative; z-index: 1;
    display: flex; flex-direction: column; align-items: center;
    padding: 0;
    width: 100%;
}

/* ── v42.5: Ultra-compact transport — icon+number, single row ── */
.t2w-trp-summary {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 2px 8px;
    background: #fff;
    border: 1px solid var(--t2w-border-warm, #e8e0d0);
    border-radius: 16px;
    cursor: pointer;
    transition: all 0.15s;
    box-shadow: 0 1px 2px rgba(29,24,12,0.04);
}
.t2w-trp-summary:hover {
    border-color: #d4cbb8;
    box-shadow: 0 1px 4px rgba(29,24,12,0.08);
}
.t2w-trp-expanded .t2w-trp-summary {
    border-color: var(--color-accent-coral, #F59E0B);
    background: #FFFDF7;
    border-radius: 10px 10px 0 0;
}
.t2w-trp-summary .t2w-trp-modes { margin-bottom: 0; }

/* Micro mode chips */
.t2w-trp-modes {
    display: flex; gap: 2px;
    align-items: center;
}
.t2w-transport-chip {
    display: inline-flex; align-items: center; gap: 2px;
    padding: 2px 6px; border-radius: 10px;
    font-size: 11px; font-weight: 600;
    border: 1px solid transparent; background: transparent;
    color: #9CA3AF; cursor: pointer;
    transition: all 0.15s; white-space: nowrap;
    line-height: 1.3;
}
.t2w-transport-chip i { font-size: 9px; }
.t2w-transport-chip:hover { color: #6B7280; background: #F9FAFB; }
.t2w-transport-chip--active {
    background: var(--color-accent-coral, #F59E0B); color: #fff;
    border-color: var(--color-accent-coral, #F59E0B);
    border-radius: 10px;
}
.t2w-transport-chip--active:hover { opacity: 0.9; }

/* Distance — muted separator */
.t2w-trp-dist-label {
    font-size: 10px; color: #B0A898;
    white-space: nowrap; font-weight: 500;
}

/* Warning */
.t2w-trp-warn-inline {
    font-size: 9px; color: #D97706; font-weight: 600;
    padding: 1px 5px; border-radius: 6px;
    display: inline-flex; align-items: center; gap: 2px; white-space: nowrap;
}
.t2w-trp-warn-inline i { font-size: 8px; }

/* Chevron */
.t2w-trp-chevron {
    font-size: 7px; color: #C4C4C4;
    transition: transform 0.25s ease; flex-shrink: 0;
}
.t2w-trp-expanded .t2w-trp-chevron { transform: rotate(180deg); color: var(--color-accent-coral, #F59E0B); }

/* ── Expanded detail panel ── */
.t2w-trp-detail {
    display: none;
    padding: 6px 10px 8px;
    background: #FFFDF7;
    border: 1px solid var(--color-accent-coral, #F59E0B);
    border-top: none;
    border-radius: 0 0 10px 10px;
    max-width: 85%;
    width: auto;
    min-width: 200px;
    box-shadow: 0 2px 8px rgba(245,158,11,0.06);
}
.t2w-trp-expanded .t2w-trp-detail { display: block; }

/* Actions row */
.t2w-trp-actions {
    display: flex; gap: 4px; flex-wrap: wrap;
    align-items: center; justify-content: center;
}

/* Override transport-add */
#t2w-planner-v2 .t2w-v29-transport .t2w-transport-add {
    width: auto; height: auto;
    border-radius: 8px; padding: 6px 12px;
    font-size: 12px; gap: 4px;
    margin-left: 0; border-style: dashed;
    display: inline-flex;
}
.t2w-v29-transport .t2w-transport-add i { width: auto; font-size: 11px; }

/* Override transport-route */
.t2w-v29-transport .t2w-transport-route {
    width: auto; height: auto;
    border-radius: 8px; padding: 6px 12px;
    font-size: 12px; gap: 4px;
    display: inline-flex;
}
.t2w-v29-transport .t2w-transport-route i { width: auto; font-size: 11px; }

/* Google Maps deeplink (segment) */
.t2w-trp-nav {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 6px 12px; border-radius: 8px;
    border: 1.5px solid rgba(59,130,246,0.25);
    background: #fff; color: var(--color-primary);
    font-size: 12px; font-weight: 500;
    text-decoration: none; cursor: pointer; white-space: nowrap;
    transition: all 0.15s;
}
.t2w-trp-nav:hover { border-color: var(--color-primary); background: rgba(59,130,246,0.06); color: var(--color-primary); text-decoration: none; }
.t2w-trp-nav i { font-size: 11px; }

/* ── Full-Day Navigation Button ── */
.t2w-fullday-nav {
    display: flex; align-items: center; gap: 10px;
    width: 100%; padding: 12px 16px; margin-top: 12px;
    background: linear-gradient(135deg, #4285F4 0%, #34A853 100%);
    border: none; border-radius: 12px;
    cursor: pointer; transition: all 0.2s;
}
.t2w-fullday-nav:hover { opacity: 0.92; transform: translateY(-1px); box-shadow: 0 4px 16px rgba(66,133,244,0.3); }
.t2w-fullday-nav-icon {
    width: 36px; height: 36px; border-radius: 8px;
    background: rgba(255,255,255,0.2);
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.t2w-fullday-nav-icon i { font-size: 16px; color: #fff; }
.t2w-fullday-nav-text { text-align: left; flex: 1; min-width: 0; }
.t2w-fullday-nav-title { font-size: 14px; font-weight: 700; color: #fff; display: flex; align-items: center; gap: 4px; }
.t2w-fullday-nav-title i { font-size: 12px; }
.t2w-fullday-nav-sub { font-size: 11px; color: rgba(255,255,255,0.8); margin-top: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.t2w-fullday-nav-ext { color: rgba(255,255,255,0.5); font-size: 13px; flex-shrink: 0; }

/* ── Mobile: Transport card ── */
@media (max-width: 768px) {
    .t2w-v29-transport { margin-left: 0; }
    .t2w-trp-summary { padding: 8px 16px 8px 12px; min-height: 44px; max-width: 90%; }
    .t2w-trp-expanded .t2w-trp-summary { max-width: 95%; }
    .t2w-trp-detail { max-width: 95%; min-width: 0; width: 95%; }
    .t2w-v29-transport .t2w-transport-chip { min-height: 36px; padding: 4px 10px; font-size: 12px; }
    .t2w-v29-transport .t2w-transport-add,
    .t2w-v29-transport .t2w-transport-route {
        min-height: 40px; padding: 6px 12px; font-size: 13px;
    }
    .t2w-trp-nav { min-height: 40px; padding: 6px 12px; font-size: 13px; }
    .t2w-fullday-nav { padding: 10px 12px; }
    .t2w-fullday-nav-icon { width: 32px; height: 32px; }
    .t2w-fullday-nav-title { font-size: 13px; }
    .t2w-fullday-nav-sub { font-size: 10px; }
}

/* ── Tablet: Transport card ── */
@media (min-width: 769px) and (max-width: 1024px) {
    .t2w-trp-summary { max-width: 70%; }
    .t2w-trp-detail { max-width: 75%; }
}

/* ═══════════════════════════════════════════════════════════════════
   v42: Route Buffer Facility Filter — Slider UI
   ═══════════════════════════════════════════════════════════════════ */

.t2w-facility-slider-wrap {
    display: none;
    padding: 6px 8px 4px;
    border-top: 1px solid #E5E7EB;
}

.t2w-facility-slider-wrap.t2w-fac-slider--visible {
    display: block;
}

.t2w-facility-slider-label {
    display: flex;
    justify-content: space-between;
    font-size: 10px;
    color: #6B7280;
    margin-bottom: 2px;
}

.t2w-facility-slider-val {
    font-weight: 600;
    color: #374151;
}

.t2w-facility-range {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: 4px;
    border-radius: 2px;
    background: #E5E7EB;
    outline: none;
}

.t2w-facility-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--color-primary);
    cursor: pointer;
    border: 2px solid #fff;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}

.t2w-facility-range::-moz-range-thumb {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--color-primary);
    cursor: pointer;
    border: 2px solid #fff;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}

/* Route mode indicator on facility control */
.t2w-fac-route-badge {
    font-size: 9px;
    color: #059669;
    text-align: center;
    padding: 2px 0;
    line-height: 1;
}

@media (max-width: 768px) {
    .t2w-facility-slider-wrap {
        padding: 4px 6px 2px;
    }
    .t2w-facility-range::-webkit-slider-thumb {
        width: 22px;
        height: 22px;
    }
    .t2w-facility-range::-moz-range-thumb {
        width: 22px;
        height: 22px;
    }
}

/* ═══════════════════════════════════════════════════════════════
   PICK MODE — 직접 고르기 (v42.7 → v42.8 CSS extraction + polish)
   ═══════════════════════════════════════════════════════════════ */

/* --- Container --- */
.t2w-pick-mode {
    display: none;
    flex-direction: column;
    background: #F8F6F0;
}
.t2w-pick-mode.active {
    display: flex;
    height: calc(100vh - 50px);
    overflow: hidden;
}
.t2w-pick-mode.active ~ .t2w-v5-main,
.t2w-pick-mode.active ~ .t2w-cal,
.t2w-pick-mode.active ~ .t2w-weather {
    display: none;
}

/* --- Header --- */
.t2w-pick-header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 20px;
    background: #fff;
    border-bottom: 1px solid var(--t2w-border);
    flex-shrink: 0;
    z-index: 30;
}
.t2w-pick-back {
    display: flex;
    align-items: center;
    gap: 4px;
    background: none;
    border: 1px solid var(--t2w-border);
    border-radius: 8px;
    padding: 6px 12px;
    cursor: pointer;
    font-size: 13px;
    color: #374151;
    transition: all var(--t2w-transition);
}
.t2w-pick-back:hover {
    border-color: var(--color-primary);
    background: rgba(255, 183, 0, 0.08);
}
.t2w-pick-header-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--color-primary);
    background: var(--color-primary-light);
    padding: 3px 10px;
    border-radius: 99px;
}
.t2w-pick-header-count {
    margin-left: auto;
    font-size: 13px;
    color: var(--t2w-text-secondary);
}

/* --- Body Layout --- */
.t2w-pick-body {
    display: flex;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}
.t2w-pick-browse {
    flex: 1;
    min-width: 0;
    overflow-y: auto;
}

/* --- AI Recommendation Section --- */
.t2w-pick-ai-rec {
    background: linear-gradient(180deg, #FFFDF7 0%, var(--color-bg-light, #F8F6F0) 100%);
    padding: 14px 20px 10px;
    border-bottom: 1px solid rgba(255, 183, 0, 0.1);
    flex-shrink: 0;
}
.t2w-pick-ai-rec__head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
}
.t2w-pick-ai-rec__badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: linear-gradient(135deg, #FFF8E1, #FFF3D0);
    border: 1px solid rgba(255, 183, 0, 0.2);
    border-radius: 99px;
    padding: 4px 12px;
    font-size: 11px;
    font-weight: 700;
    color: #E5A400;
    flex-shrink: 0;
}
.t2w-pick-ai-rec__badge .material-symbols-outlined {
    font-size: 14px;
    color: var(--color-primary);
}
.t2w-pick-ai-rec__query {
    font-size: 12px;
    color: #374151;
    flex: 1;
}
.t2w-pick-ai-rec__add-all {
    padding: 5px 14px;
    border-radius: 99px;
    font-size: 11px;
    font-weight: 700;
    background: var(--color-primary);
    color: #fff;
    border: none;
    cursor: pointer;
    transition: all var(--t2w-transition);
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 3px;
    flex-shrink: 0;
}
.t2w-pick-ai-rec__add-all:hover {
    background: #E5A400;
    transform: translateY(-1px);
}
.t2w-pick-ai-rec__add-all .material-symbols-outlined {
    font-size: 14px;
}
/* AI Rec Filter Chips */
.t2w-pick-ai-rec__filters {
    display: flex;
    gap: 5px;
    margin-bottom: 10px;
    overflow-x: auto;
    scrollbar-width: none;
}
.t2w-pick-ai-rec__filters::-webkit-scrollbar {
    display: none;
}
.t2w-pick-ai-filter {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 4px 11px;
    border-radius: 99px;
    font-size: 11px;
    font-weight: 600;
    color: var(--t2w-text-secondary);
    border: 1px solid #e5e7eb;
    background: #fff;
    cursor: pointer;
    white-space: nowrap;
    transition: all var(--t2w-transition);
}
.t2w-pick-ai-filter .material-symbols-outlined {
    font-size: 13px;
}
.t2w-pick-ai-filter:hover {
    border-color: var(--color-primary);
    color: #E5A400;
}
.t2w-pick-ai-filter.active {
    background: var(--t2w-text, #111827);
    color: #fff;
    border-color: var(--t2w-text, #111827);
}

/* AI Rec Carousel */
.t2w-pick-ai-rec__carousel {
    position: relative;
    display: flex;
    align-items: center;
}
.t2w-pick-ai-rec__scroll {
    display: block;
    overflow-x: hidden;
    padding-bottom: 6px;
    flex: 1;
}

/* v43.1: AI Intent Section (grouped categories) */
.t2w-pick-ai-section {
    margin-bottom: 16px;
}
.t2w-pick-ai-section__head {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0 0 8px;
}
.t2w-pick-ai-section__head .material-symbols-outlined {
    font-size: 18px;
    color: var(--color-primary);
}
.t2w-pick-ai-section__title {
    font-size: 13px;
    font-weight: 700;
    color: var(--t2w-text-primary, #181610);
}
.t2w-pick-ai-section__count {
    font-size: 11px;
    color: var(--t2w-text-sec, #9ca3af);
    margin-left: auto;
}
.t2w-pick-ai-section__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 10px;
}
/* AI Rec inside carousel: horizontal scroll */
.t2w-pick-ai-rec__scroll {
    position: relative;
}
.t2w-pick-ai-rec__scroll .t2w-pick-ai-section__grid {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: 12px;
    padding-bottom: 8px;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}
.t2w-pick-ai-rec__scroll .t2w-pick-ai-section__grid::-webkit-scrollbar {
    display: none;
}
.t2w-pick-ai-rec__scroll .t2w-pick-ai-card,
.t2w-pick-ai-rec__scroll .t2w-pick-card {
    min-width: 180px;
    max-width: 200px;
    flex-shrink: 0;
    scroll-snap-align: start;
}
/* Fade hint: more cards to the right */
.t2w-pick-ai-rec__scroll::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 60px;
    height: calc(100% - 8px);
    background: linear-gradient(90deg, transparent, var(--color-bg-light, #F8F6F0) 80%);
    pointer-events: none;
    z-index: 2;
}
/* AI Recommendation feedback */
.t2w-pick-ai-feedback {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 0 0;
    font-size: 11px;
    color: var(--t2w-text-secondary);
}
.t2w-pick-ai-feedback__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 1px solid #e5e7eb;
    background: #fff;
    cursor: pointer;
    color: #9ca3af;
    transition: all var(--t2w-transition);
}
.t2w-pick-ai-feedback__btn:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
    background: rgba(255, 183, 0, 0.06);
}
/* Show nav arrows on desktop for carousel */
.t2w-pick-ai-rec__carousel .t2w-pick-ai-rec__nav {
    display: flex;
}
.t2w-pick-ai-rec__scroll::-webkit-scrollbar {
    display: none;
}
.t2w-pick-ai-rec__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.95);
    border: 1px solid #e5e7eb;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 3;
    transition: all var(--t2w-transition);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.t2w-pick-ai-rec__nav:hover {
    border-color: var(--color-primary);
    background: #fff;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.t2w-pick-ai-rec__nav .material-symbols-outlined {
    font-size: 18px;
    color: #374151;
}
.t2w-pick-ai-rec__nav--prev {
    left: -8px;
}
.t2w-pick-ai-rec__nav--next {
    right: -8px;
}

@media (max-width: 768px) {
    .t2w-pick-ai-rec__nav {
        display: none;
    }
    .t2w-pick-ai-filter {
        font-size: 10px;
        padding: 3px 9px;
    }
}

/* AI Recommendation Card — v43.1: grid-based (no fixed width) */
.t2w-pick-ai-card {
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    cursor: pointer;
    transition: all var(--t2w-transition);
    position: relative;
    scroll-snap-align: start;
}
.t2w-pick-ai-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
}
.t2w-pick-ai-card.selected {
    outline: 2.5px solid var(--color-primary);
    outline-offset: -2.5px;
}
.t2w-pick-ai-card__img {
    position: relative;
    height: 100px;
    overflow: hidden;
}
.t2w-pick-ai-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.t2w-pick-ai-card__score {
    position: absolute;
    top: 6px;
    left: 6px;
    background: linear-gradient(135deg, rgba(255, 183, 0, 0.92), rgba(229, 164, 0, 0.92));
    color: #fff;
    font-size: 9px;
    font-weight: 800;
    padding: 2px 7px;
    border-radius: 99px;
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    gap: 2px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
}
.t2w-pick-ai-card__score .material-symbols-outlined {
    font-size: 10px;
}
.t2w-pick-ai-card__check {
    position: absolute;
    top: 6px;
    right: 6px;
    color: var(--color-primary);
    filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.4));
    display: none;
}
.t2w-pick-ai-card.selected .t2w-pick-ai-card__check {
    display: block;
}
.t2w-pick-ai-card__check .material-symbols-outlined {
    font-size: 22px;
    font-variation-settings: 'FILL' 1;
}
.t2w-pick-ai-card__body {
    padding: 8px 10px 10px;
}
.t2w-pick-ai-card__name {
    font-size: 12px;
    font-weight: 700;
    line-height: 1.25;
    margin-bottom: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.t2w-pick-ai-card__meta {
    font-size: 10px;
    color: var(--t2w-text-secondary);
}
.t2w-pick-ai-card__desc {
    font-size: 9px;
    color: #9ca3af;
    line-height: 1.3;
    margin-bottom: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
/* AI card compact add button */
.t2w-pick-ai-card__add-btn {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    margin-top: 6px;
    padding: 4px 10px;
    border-radius: 6px;
    border: none;
    background: var(--color-primary);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    cursor: pointer;
    font-family: inherit;
    transition: all var(--t2w-transition);
}
.t2w-pick-ai-card__add-btn:hover {
    background: #E5A400;
}
.t2w-pick-ai-card.selected .t2w-pick-ai-card__add-btn {
    background: #10B981;
}
/* v45.5: Reason tags on AI recommendation cards */
.t2w-pick-ai-card__tags {
    display: flex;
    gap: 3px;
    flex-wrap: wrap;
    margin-top: 3px;
}
.t2w-pick-ai-card__tag {
    font-size: 9px;
    font-weight: 600;
    color: var(--color-primary);
    background: rgba(255, 183, 0, 0.1);
    padding: 1px 6px;
    border-radius: 4px;
    white-space: nowrap;
    line-height: 1.4;
}
.t2w-pick-ai-card__info {
    position: absolute;
    bottom: 6px;
    right: 6px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9);
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: all var(--t2w-transition);
    backdrop-filter: blur(4px);
    z-index: 2;
}
.t2w-pick-ai-card:hover .t2w-pick-ai-card__info {
    opacity: 1;
}
.t2w-pick-ai-card__info:hover {
    background: #fff;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}
.t2w-pick-ai-card__info .material-symbols-outlined {
    font-size: 14px;
    color: #374151;
}

/* AI Rec + Category Sections Mobile */
@media (max-width: 768px) {
    .t2w-pick-ai-rec {
        padding: 10px 12px 6px;
    }
    .t2w-pick-ai-section__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
    }
    .t2w-pick-ai-card__img {
        height: 80px;
    }
    .t2w-pick-ai-rec__query {
        font-size: 11px;
    }
    .t2w-pick-ai-card__info {
        opacity: 1;
    }
    .t2w-pick-ai-card__desc {
        display: none;
    }
    .t2w-pick-cat-section__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
    }
    .t2w-pick-cat-section__head {
        padding: 0 0 6px;
        margin-bottom: 8px;
    }
    .t2w-pick-cat-section__title {
        font-size: 13px;
    }
}

/* --- Region Bar + Search --- */
.t2w-pick-region-bar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 20px;
    background: #fff;
    border-bottom: 1px solid #f3f4f6;
    position: sticky;
    top: 0;
    z-index: 20;
    margin-top: 0;
}
.t2w-pick-region-chips {
    display: flex;
    gap: 4px;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    flex: 1;
    min-width: 0;
}
.t2w-pick-region-chips::-webkit-scrollbar {
    display: none;
}
.t2w-pick-region-chip {
    padding: 4px 10px;
    border-radius: 99px;
    font-size: 11px;
    font-weight: 600;
    color: var(--t2w-text-secondary);
    cursor: pointer;
    white-space: nowrap;
    transition: all var(--t2w-transition);
    border: 1px solid transparent;
}
.t2w-pick-region-chip:hover {
    color: var(--color-primary);
    background: rgba(255, 183, 0, 0.06);
}
.t2w-pick-region-chip.active {
    color: var(--color-primary);
    background: rgba(255, 183, 0, 0.1);
    border-color: rgba(255, 183, 0, 0.3);
    font-weight: 700;
}
.t2w-pick-search-wrap {
    display: flex;
    align-items: center;
    gap: 4px;
    background: #f3f4f6;
    border-radius: 8px;
    padding: 5px 12px;
    flex: 1;
    max-width: 280px;
    min-width: 120px;
    transition: all var(--t2w-transition);
}
.t2w-pick-search-wrap:focus-within {
    background: #fff;
    box-shadow: 0 0 0 2px rgba(255, 183, 0, 0.2);
}
.t2w-pick-search-wrap .material-symbols-outlined {
    font-size: 16px;
    color: #9ca3af;
}
#t2w-pick-search {
    border: none;
    background: transparent;
    outline: none;
    font-size: 12px;
    width: 100%;
    color: var(--t2w-text);
}
#t2w-pick-search::placeholder {
    color: #9ca3af;
}

/* --- Category Filters --- */
.t2w-pick-filters {
    padding: 10px 20px;
    background: #fff;
    border-bottom: 1px solid #f3f4f6;
    position: sticky;
    top: 37px;
    z-index: 19;
}
.t2w-pick-cat-chips {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}
.t2w-pick-cat-chips::-webkit-scrollbar {
    display: none;
}
.t2w-pick-cat-chip {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 5px 12px;
    border-radius: 99px;
    font-size: 12px;
    font-weight: 500;
    border: 1px solid var(--t2w-border);
    background: #fff;
    cursor: pointer;
    white-space: nowrap;
    transition: all var(--t2w-transition);
}
.t2w-pick-cat-chip .material-symbols-outlined {
    font-size: 14px;
}
.t2w-pick-cat-chip:hover {
    border-color: var(--color-primary);
    background: rgba(255, 183, 0, 0.08);
}
.t2w-pick-cat-chip.active {
    background: var(--t2w-text);
    color: #fff;
    border-color: var(--t2w-text);
}

/* --- Place Grid --- */
.t2w-pick-grid {
    padding: 16px 20px;
    display: block;
    align-content: start;
}

/* v43.1: Category Section within grid */
.t2w-pick-cat-section {
    margin-bottom: 20px;
}
.t2w-pick-cat-section__head {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0 0 10px;
    border-bottom: 1px solid rgba(0,0,0,0.05);
    margin-bottom: 10px;
}
.t2w-pick-cat-section__head .material-symbols-outlined {
    font-size: 20px;
}
.t2w-pick-cat-section__title {
    font-size: 14px;
    font-weight: 700;
    color: var(--t2w-text-primary, #181610);
}
.t2w-pick-cat-section__count {
    font-size: 11px;
    color: var(--t2w-text-sec, #9ca3af);
    background: var(--color-bg-light, #f5f5f5);
    padding: 2px 8px;
    border-radius: 99px;
    margin-left: auto;
}
.t2w-pick-cat-section__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 12px;
}
/* v51 P5: "N곳 더 보기" 버튼 — 카테고리 섹션 확장 */
.t2w-pick-cat-section__more {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 100%;
    min-height: 44px;
    margin-top: 10px;
    padding: 10px 16px;
    background: var(--color-bg-light, #f5f5f5);
    border: 1px dashed rgba(0,0,0,0.08);
    border-radius: 10px;
    color: var(--t2w-text-primary, #181610);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: all var(--t2w-transition);
}
.t2w-pick-cat-section__more:hover {
    background: var(--t2w-accent-bg, #fff6e1);
    border-color: var(--t2w-accent-border, #ffcf4a);
    color: var(--t2w-accent, #b8860b);
}
.t2w-pick-cat-section__more .material-symbols-outlined {
    font-size: 18px;
}
/* v51 P2: "다른 지역" 토글 chip — specificity로 기본 chip 스타일 덮기 */
#t2w-pick-region-chips .t2w-pick-region-chip.t2w-pick-region-chip--toggle {
    background: transparent;
    border: 1px dashed rgba(0,0,0,0.15);
    color: var(--t2w-text-sec, #6b7280);
    font-weight: 500;
}
#t2w-pick-region-chips .t2w-pick-region-chip.t2w-pick-region-chip--toggle:hover {
    border-style: solid;
    color: var(--t2w-text-primary, #181610);
}
/* v51 P6: 진입 맥락 서브 레이블 */
.t2w-pick-ai-rec__lead {
    color: var(--t2w-text-sec, #6b7280);
    font-weight: 500;
    font-size: 0.9em;
}

/* v51 P4: Desktop Cart → Slide-in 패널 + Bottom Mini Cart Bar
   기존 모바일 bottom-sheet 패턴을 데스크톱에도 확장.
   그리드 풀폭 + 필요 시 오른쪽에서 슬라이드. */
@media (min-width: 769px) {
    #t2w-planner-v2 .t2w-pick-cart {
        display: none;
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        width: min(460px, 90vw);
        height: 100vh;
        max-height: 100vh;
        border-left: 1px solid var(--t2w-border);
        border-radius: 0;
        box-shadow: -6px 0 30px rgba(0, 0, 0, 0.18);
        z-index: 120;
        padding-bottom: env(safe-area-inset-bottom, 0px);
    }
    #t2w-planner-v2 .t2w-pick-cart.mobile-open {
        display: flex;
    }
    /* Backdrop desktop에서도 활성화 */
    #t2w-planner-v2 .t2w-pick-cart-backdrop {
        z-index: 115;
    }
    /* Mini cart bar — 하단 중앙 고정 (데스크톱) */
    .t2w-pick-mode.active ~ .t2w-pick-mini-cart {
        display: flex;
        left: 50%;
        right: auto;
        bottom: 18px;
        transform: translate(-50%, 200%);
        width: auto;
        max-width: 560px;
        min-width: 320px;
        padding: 12px 16px;
    }
    .t2w-pick-mode.active ~ .t2w-pick-mini-cart.visible {
        transform: translate(-50%, 0);
    }
}

/* --- Place Card --- */
.t2w-pick-card {
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    box-shadow: var(--t2w-shadow-card);
    cursor: pointer;
    transition: all var(--t2w-transition);
    position: relative;
}
.t2w-pick-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--t2w-shadow-elevated);
}
.t2w-pick-card.selected {
    outline: 2.5px solid var(--color-primary);
    outline-offset: -2.5px;
    box-shadow: 0 4px 16px rgba(255, 183, 0, 0.2);
}
.t2w-pick-card.selected .t2w-pick-card__img-wrap::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(255, 183, 0, 0.08);
    z-index: 1;
    pointer-events: none;
}
.t2w-pick-card__img-wrap {
    position: relative;
    height: 130px;
    overflow: hidden;
}
.t2w-pick-card__img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s;
}
.t2w-pick-card:hover .t2w-pick-card__img-wrap img {
    transform: scale(1.04);
}
.t2w-pick-card__no-img {
    height: 100%;
    background: #f3f4f6;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #d1d5db;
}
.t2w-pick-card__no-img .material-symbols-outlined {
    font-size: 36px;
}
.t2w-pick-card__check {
    position: absolute;
    top: 8px;
    right: 8px;
    color: var(--color-primary);
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.3));
    animation: t2w-pick-pop 0.25s ease;
}
.t2w-pick-card__check .material-symbols-outlined {
    font-size: 26px;
    font-variation-settings: 'FILL' 1;
}
@keyframes t2w-pick-pop {
    0% { transform: scale(0); opacity: 0; }
    60% { transform: scale(1.2); }
    100% { transform: scale(1); opacity: 1; }
}
.t2w-pick-card__body {
    padding: 10px 12px 12px;
}
.t2w-pick-card__region {
    font-size: 10px;
    font-weight: 600;
    color: #E5A400;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.t2w-pick-card__name {
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
    margin: 2px 0 4px;
    color: var(--t2w-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.t2w-pick-card__meta {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 11px;
    color: var(--t2w-text-secondary);
    flex-wrap: wrap;
}
.t2w-pick-card__star {
    color: var(--color-primary);
    font-weight: 600;
}
.t2w-pick-card__cat {
    display: inline-flex;
    align-items: center;
    gap: 2px;
}
.t2w-pick-card__dur {
    margin-left: auto;
}
.t2w-pick-card__price {
    font-size: 10px;
    font-weight: 600;
    color: #10B981;
}

/* Card description — hidden by default, show on hover/expand only */
.t2w-pick-card__desc {
    display: none;
}

/* Best time badge */
.t2w-pick-card__time-badge {
    position: absolute;
    top: 8px;
    left: 8px;
    background: rgba(0, 0, 0, 0.6);
    color: #fff;
    font-size: 10px;
    font-weight: 600;
    padding: 3px 8px;
    border-radius: 99px;
    backdrop-filter: blur(6px);
    display: flex;
    align-items: center;
    gap: 3px;
    z-index: 1;
}
.t2w-pick-card__time-badge .material-symbols-outlined {
    font-size: 12px;
    color: var(--color-primary);
}

/* Reason tags — max 2 visible, rest hidden */
.t2w-pick-card__reasons {
    display: flex;
    gap: 4px;
    flex-wrap: nowrap;
    margin-top: 6px;
    overflow: hidden;
}
.t2w-pick-card__reason {
    font-size: 10px;
    font-weight: 600;
    color: var(--color-primary);
    background: rgba(255, 183, 0, 0.08);
    padding: 2px 7px;
    border-radius: 6px;
    white-space: nowrap;
    flex-shrink: 0;
}
.t2w-pick-card__reason:nth-child(n+3) {
    display: none;
}

/* Card footer (담기 + 자세히 보기) */
.t2w-pick-card__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 12px 10px;
}
.t2w-pick-card__detail {
    font-size: 11px;
    font-weight: 600;
    color: #E5A400;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 2px;
    transition: color var(--t2w-transition);
}
.t2w-pick-card__detail:hover {
    color: var(--color-primary);
}
.t2w-pick-card__detail .material-symbols-outlined {
    font-size: 14px;
}
.t2w-pick-card__add {
    padding: 8px 18px;
    border-radius: 10px;
    border: none;
    background: var(--color-primary);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 4px;
    transition: all var(--t2w-transition);
    font-family: inherit;
    min-height: 36px;
    box-shadow: 0 2px 8px rgba(255, 183, 0, 0.25);
}
.t2w-pick-card__add:hover {
    background: #E5A400;
    transform: scale(1.04);
    box-shadow: 0 4px 12px rgba(255, 183, 0, 0.35);
}
.t2w-pick-card__add--added {
    background: #10B981;
    box-shadow: 0 2px 8px rgba(16, 185, 129, 0.25);
}
.t2w-pick-card__add--added:hover {
    background: #059669;
}
.t2w-pick-card__add .material-symbols-outlined {
    font-size: 14px;
}

/* ═══ Place Detail Modal ═══ */
/* ── Place Detail Full-Screen Modal (iframe) ── */
.t2w-pick-detail-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 9000;
    backdrop-filter: blur(4px);
}
.t2w-pick-detail-overlay.active {
    display: block;
}
.t2w-pick-detail-modal {
    display: flex;
    position: fixed;
    top: 0;
    right: 0;
    width: 720px;
    height: 100vh;
    height: 100dvh;
    background: #fff;
    z-index: 9010;
    flex-direction: column;
    box-shadow: -8px 0 40px rgba(0, 0, 0, 0.15);
    transform: translateX(100%);
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    visibility: hidden;
    pointer-events: none;
}
.t2w-pick-detail-modal.active {
    transform: translateX(0);
    visibility: visible;
    pointer-events: auto;
}
.t2w-pick-detail-modal__header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 16px;
    border-bottom: 1px solid #f3f4f6;
    flex-shrink: 0;
    background: #fff;
    z-index: 2;
}
.t2w-pick-detail-modal__close {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #f3f4f6;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #374151;
    transition: all var(--t2w-transition);
    flex-shrink: 0;
}
.t2w-pick-detail-modal__close:hover {
    background: #e5e7eb;
}
.t2w-pick-detail-modal__close .material-symbols-outlined {
    font-size: 20px;
}
.t2w-pick-detail-modal__nav {
    display: flex;
    align-items: center;
    gap: 6px;
    flex: 1;
    justify-content: center;
}
.t2w-pick-detail-modal__arrow {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #f3f4f6;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #374151;
    transition: all var(--t2w-transition);
}
.t2w-pick-detail-modal__arrow:hover:not(:disabled) {
    background: #e5e7eb;
}
.t2w-pick-detail-modal__arrow:disabled {
    opacity: 0.3;
    cursor: not-allowed;
}
.t2w-pick-detail-modal__arrow .material-symbols-outlined {
    font-size: 20px;
}
.t2w-pick-detail-modal__counter {
    font-size: 12px;
    font-weight: 600;
    color: var(--t2w-text-secondary);
    min-width: 50px;
    text-align: center;
}
.t2w-pick-detail-modal__add-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 18px;
    border-radius: 10px;
    border: none;
    background: var(--color-primary);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: all var(--t2w-transition);
    font-family: inherit;
    flex-shrink: 0;
    white-space: nowrap;
}
.t2w-pick-detail-modal__add-btn:hover {
    background: #E5A400;
}
.t2w-pick-detail-modal__add-btn--added {
    background: #10B981;
}
.t2w-pick-detail-modal__add-btn--added:hover {
    background: #059669;
}
.t2w-pick-detail-modal__add-btn .material-symbols-outlined {
    font-size: 18px;
}
.t2w-pick-detail-modal__body {
    flex: 1;
    position: relative;
    overflow: hidden;
}
.t2w-pick-detail-modal__loading {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: #fff;
    z-index: 5;
    font-size: 13px;
    color: var(--t2w-text-secondary);
}
#t2w-pick-detail-iframe {
    width: 100%;
    height: 100%;
    border: none;
}

/* Tablet: narrower panel */
@media (max-width: 1024px) {
    .t2w-pick-detail-modal {
        width: 560px;
    }
}

/* Mobile: full screen */
@media (max-width: 768px) {
    .t2w-pick-detail-modal {
        width: 100%;
        top: 0;
        left: 0;
        right: 0;
    }
    .t2w-pick-detail-modal__header {
        padding: 8px 12px;
        padding-top: max(8px, env(safe-area-inset-top));
    }
    .t2w-pick-detail-modal__add-btn .t2w-pick-detail-modal__add-text {
        display: none;
    }
    .t2w-pick-detail-modal__add-btn {
        padding: 8px 12px;
    }
    .t2w-pick-card__desc {
        display: none;
    }
    .t2w-pick-card__foot {
        padding: 0 8px 8px;
    }
}

/* --- Cart Sidebar --- */
.t2w-pick-cart {
    width: 340px;
    border-left: 1px solid var(--t2w-border);
    background: #fff;
    display: flex;
    flex-direction: column;
    height: 100%;
    flex-shrink: 0;
    overflow-y: auto;
}
.t2w-pick-cart-header {
    padding: 16px 16px 10px;
}
.t2w-pick-cart-header h3 {
    font-size: 15px;
    font-weight: 700;
    margin: 0;
}
.t2w-pick-cart-header p {
    font-size: 12px;
    color: #9ca3af;
    margin: 2px 0 0;
}
.t2w-pick-cart-setup {
    padding: 0 16px 10px;
}
.t2w-pick-cart-setup select {
    width: 100%;
    padding: 7px 10px;
    border: 1px solid var(--t2w-border);
    border-radius: 8px;
    font-size: 13px;
    background: #fff;
    cursor: pointer;
    transition: border-color var(--t2w-transition);
}
.t2w-pick-cart-setup select:focus {
    outline: none;
    border-color: var(--color-primary);
}
.t2w-pick-cart-list {
    flex: 1;
    overflow-y: auto;
    padding: 8px 16px;
}

/* Cart empty state */
.t2w-pick-cart-empty {
    text-align: center;
    padding: 20px 16px;
    color: #9ca3af;
}
.t2w-pick-cart-empty .material-symbols-outlined {
    font-size: 28px;
    color: #e5e7eb;
    display: block;
    margin-bottom: 4px;
}
.t2w-pick-cart-empty p {
    font-size: 12px;
    line-height: 1.4;
}

/* Cart items */
.t2w-pick-cart-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 0;
    border-bottom: 1px solid #f3f4f6;
    animation: t2w-pick-fadeIn 0.25s ease;
}
@keyframes t2w-pick-fadeIn {
    from { opacity: 0; transform: translateX(12px); }
    to   { opacity: 1; transform: translateX(0); }
}
.t2w-pick-cart-num {
    width: 20px;
    height: 20px;
    background: rgba(255, 183, 0, 0.15);
    color: #E5A400;
    border-radius: 50%;
    font-size: 10px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.t2w-pick-cart-img {
    width: 36px;
    height: 36px;
    border-radius: 6px;
    object-fit: cover;
    flex-shrink: 0;
}
.t2w-pick-cart-info {
    flex: 1;
    min-width: 0;
}
.t2w-pick-cart-name {
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.t2w-pick-cart-detail {
    font-size: 11px;
    color: #9ca3af;
}
.t2w-pick-cart-remove {
    width: 24px;
    height: 24px;
    border: none;
    background: none;
    cursor: pointer;
    color: #9ca3af;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all var(--t2w-transition);
}
.t2w-pick-cart-remove:hover {
    background: #fee2e2;
    color: #dc2626;
}
.t2w-pick-cart-remove .material-symbols-outlined {
    font-size: 14px;
}

/* Cart footer */
.t2w-pick-cart-footer {
    padding: 12px 16px;
    border-top: 1px solid var(--t2w-border);
    background: #fafaf8;
}
.t2w-pick-cart-stats {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    color: var(--t2w-text-secondary);
    margin-bottom: 10px;
}
.t2w-pick-generate {
    width: 100%;
    padding: 11px;
    border: none;
    border-radius: 10px;
    background: var(--color-primary);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    transition: all var(--t2w-transition);
}
.t2w-pick-generate:hover {
    background: #E5A400;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(255, 183, 0, 0.3);
}
.t2w-pick-generate:disabled {
    background: #e5e7eb;
    color: #9ca3af;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}
.t2w-pick-generate .material-symbols-outlined {
    font-size: 18px;
}

/* --- Balance Gauge --- */
.t2w-pick-gauge {
    padding: 10px 16px;
    border-top: 1px solid #f3f4f6;
}
.t2w-pick-gauge-title {
    font-size: 11px;
    font-weight: 700;
    color: var(--t2w-text-secondary);
    margin-bottom: 6px;
}
.t2w-pick-gauge-row {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 3px;
}
.t2w-pick-gauge-label {
    font-size: 10px;
    width: 42px;
    color: var(--t2w-text-secondary);
    text-align: right;
    flex-shrink: 0;
}
.t2w-pick-gauge-bar {
    flex: 1;
    height: 6px;
    background: #f3f4f6;
    border-radius: 3px;
    overflow: hidden;
}
.t2w-pick-gauge-fill {
    height: 100%;
    border-radius: 3px;
    transition: width 0.3s ease;
}
.t2w-pick-gauge-count {
    font-size: 10px;
    color: #9ca3af;
    width: 16px;
    text-align: center;
    flex-shrink: 0;
}
.t2w-pick-gauge-hint {
    font-size: 10px;
    color: #E5A400;
    margin-top: 6px;
    display: flex;
    align-items: center;
    gap: 3px;
}
.t2w-pick-gauge-hint .material-symbols-outlined {
    font-size: 13px;
}

/* Loading state */
.t2w-pick-loading-grid {
    text-align: center;
    padding: 60px;
    color: #9ca3af;
    font-size: 14px;
}
.t2w-spin {
    animation: t2w-spin 1s linear infinite;
}
@keyframes t2w-spin {
    to { transform: rotate(360deg); }
}

/* --- Result Timeline --- */
.t2w-pick-result {
    display: none;
    padding: 16px 20px;
    overflow-y: auto;
}
.t2w-pick-result.active {
    display: block;
    flex: 1;
}

/* Result header */
.t2w-pick-result-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
    padding-bottom: 14px;
    border-bottom: 1px solid #f3f4f6;
}
.t2w-pick-result-back {
    width: 36px;
    height: 36px;
    border: 1px solid var(--t2w-border);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    background: #fff;
    flex-shrink: 0;
    transition: all var(--t2w-transition);
}
.t2w-pick-result-back:hover {
    border-color: var(--color-primary);
    background: rgba(255, 183, 0, 0.08);
}
.t2w-pick-result-back .material-symbols-outlined {
    font-size: 18px;
}
.t2w-pick-result-header-info {
    flex: 1;
}
.t2w-pick-result-header-info h3 {
    font-size: 16px;
    font-weight: 700;
    margin: 0;
}
.t2w-pick-result-header-info span {
    font-size: 12px;
    color: var(--t2w-text-secondary);
}
.t2w-pick-result-use {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 8px 16px;
    border: none;
    border-radius: 10px;
    background: var(--color-primary);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
    transition: all var(--t2w-transition);
}
.t2w-pick-result-use:hover {
    background: #E5A400;
    transform: translateY(-1px);
}
.t2w-pick-result-use .material-symbols-outlined {
    font-size: 16px;
}

.t2w-pick-result-day {
    margin-bottom: 20px;
}
.t2w-pick-result-day-label {
    font-size: 12px;
    font-weight: 700;
    color: #E5A400;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.t2w-pick-result-day-label::after {
    content: '';
    flex: 1;
    height: 1px;
    background: rgba(255, 183, 0, 0.2);
}
.t2w-pick-result-item {
    display: flex;
    gap: 12px;
    padding: 12px;
    background: #fff;
    border-radius: 10px;
    box-shadow: var(--t2w-shadow-card);
    margin-bottom: 8px;
}
.t2w-pick-result-img {
    width: 60px;
    height: 60px;
    border-radius: 8px;
    object-fit: cover;
    flex-shrink: 0;
}
.t2w-pick-result-body {
    flex: 1;
}
.t2w-pick-result-name {
    font-weight: 700;
    font-size: 14px;
    margin-bottom: 2px;
}
.t2w-pick-result-meta {
    font-size: 12px;
    color: var(--t2w-text-secondary);
}
.t2w-pick-result-time {
    font-size: 11px;
    color: #E5A400;
    font-weight: 600;
    margin-top: 3px;
}
.t2w-pick-result-connector {
    width: 2px;
    height: 16px;
    background: rgba(255, 183, 0, 0.2);
    margin: 0 0 0 30px;
}

/* --- Pick Mode Map View --- */
.t2w-pick-map {
    width: 100%;
    height: calc(100vh - 200px);
    min-height: 400px;
    border-radius: 0;
}
/* Map/List toggle FAB */
.t2w-pick-map-toggle {
    display: none;
    position: fixed;
    bottom: calc(140px + env(safe-area-inset-bottom, 0px));
    right: 16px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #fff;
    border: 1px solid var(--t2w-border, #E5E7EB);
    box-shadow: 0 2px 12px rgba(0,0,0,0.12);
    cursor: pointer;
    align-items: center;
    justify-content: center;
    z-index: 100;
    transition: all 0.2s;
}
.t2w-pick-map-toggle:active {
    transform: scale(0.92);
    background: #f3f4f6;
}
.t2w-pick-map-toggle .material-symbols-outlined {
    font-size: 22px;
    color: var(--t2w-text, #111827);
}
/* Show toggle only when pick mode is active */
.t2w-pick-mode.active ~ .t2w-pick-map-toggle {
    display: flex;
}
/* Desktop: always hide toggle (sidebar map exists) */
@media (min-width: 769px) {
    .t2w-pick-map-toggle { display: none; }
}

/* --- Mobile Mini Cart Bar --- */
.t2w-pick-mini-cart {
    display: none;
    position: fixed;
    bottom: calc(62px + env(safe-area-inset-bottom, 0px));
    left: 10px;
    right: 10px;
    background: #111827;
    border-radius: 16px;
    padding: 10px 12px;
    align-items: center;
    gap: 10px;
    z-index: 100;
    box-shadow: 0 -2px 20px rgba(0,0,0,0.12), 0 4px 30px rgba(0,0,0,0.15);
    cursor: pointer;
    transform: translateY(120%);
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.t2w-pick-mini-cart.visible {
    transform: translateY(0);
}
.t2w-pick-mini-cart__thumbs {
    display: flex;
    flex-shrink: 0;
}
.t2w-pick-mini-cart__thumb {
    width: 36px; height: 36px;
    border-radius: 10px;
    overflow: hidden;
    border: 2px solid #111827;
    margin-left: -6px;
    flex-shrink: 0;
}
.t2w-pick-mini-cart__thumb:first-child { margin-left: 0; }
.t2w-pick-mini-cart__thumb img {
    width: 100%; height: 100%;
    object-fit: cover; display: block;
}
.t2w-pick-mini-cart__thumb--more {
    background: #1F2937;
    display: flex; align-items: center; justify-content: center;
    font-size: 10px; font-weight: 700; color: #9CA3AF;
}
.t2w-pick-mini-cart__info {
    flex: 1; min-width: 0;
}
.t2w-pick-mini-cart__count {
    font-size: 13px; font-weight: 700; color: #fff;
}
.t2w-pick-mini-cart__count strong {
    color: var(--color-primary); font-weight: 800;
}
.t2w-pick-mini-cart__hint {
    font-size: 10px; color: #9CA3AF; margin-top: 1px;
}
.t2w-pick-mini-cart__cta {
    display: flex; align-items: center; gap: 5px;
    padding: 9px 14px;
    border-radius: 11px; border: none;
    background: var(--color-primary, var(--t2w-accent, #FFB700)); color: #111827;
    font-size: 12px; font-weight: 800;
    cursor: pointer; font-family: inherit;
    white-space: nowrap; flex-shrink: 0;
    box-shadow: 0 2px 12px rgba(255,183,0,0.25);
    transition: all 0.2s;
}
.t2w-pick-mini-cart__cta:active {
    transform: scale(0.96);
    background: #E5A400;
}
.t2w-pick-mini-cart__cta .material-symbols-outlined {
    font-size: 16px;
    font-variation-settings: 'FILL' 1;
}

/* ═══ PICK MODE — Responsive ═══ */

/* Tablet (769–1024px) */
@media (max-width: 1024px) {
    .t2w-pick-cart {
        width: 280px;
    }
    .t2w-pick-grid {
        grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
        gap: 10px;
        padding: 12px 16px;
    }
    .t2w-pick-card__img-wrap {
        height: 110px;
    }
}

/* Mobile (≤768px) */
@media (max-width: 768px) {
    .t2w-pick-header {
        padding: 8px 12px;
        gap: 8px;
    }
    .t2w-pick-back {
        padding: 5px 8px;
        font-size: 12px;
    }
    .t2w-pick-header-label {
        font-size: 12px;
    }

    /* Cart → bottom sheet (95vh for maximum visibility) */
    .t2w-pick-cart {
        display: none;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        width: 100%;
        max-height: 92vh;
        border-left: none;
        border-radius: 20px 20px 0 0;
        box-shadow: 0 -4px 30px rgba(0, 0, 0, 0.2);
        z-index: 120;
        padding-bottom: env(safe-area-inset-bottom, 0px);
    }
    .t2w-pick-cart.mobile-open {
        display: flex;
    }
    .t2w-pick-cart-header {
        padding: 14px 16px 10px;
        position: relative;
    }
    .t2w-pick-cart-header::before {
        content: '';
        position: absolute;
        top: 8px;
        left: 50%;
        transform: translateX(-50%);
        width: 36px;
        height: 4px;
        background: #d1d5db;
        border-radius: 2px;
    }

    /* Mini Cart Bar — now outside pick-mode, use sibling selector */
    .t2w-pick-mini-cart {
        display: none;
    }
    .t2w-pick-mode.active ~ .t2w-pick-mini-cart {
        display: flex;
    }

    /* Grid 2-column — all grid types */
    .t2w-pick-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
        padding: 12px;
    }
    #t2w-planner-v2 .t2w-pick-cat-section__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
    }
    #t2w-planner-v2 .t2w-pick-ai-section__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
    }
    .t2w-pick-card__img-wrap {
        height: 100px;
    }
    .t2w-pick-card__name {
        font-size: 12px;
    }
    .t2w-pick-card__meta {
        font-size: 10px;
    }
    .t2w-pick-card__region {
        font-size: 9px;
    }

    /* AI rec: limit to 2 sections on mobile */
    .t2w-pick-ai-rec__scroll .t2w-pick-ai-section:nth-child(n+3) {
        display: none;
    }

    /* Touch targets: minimum 44px */
    .t2w-pick-cat-chips {
        padding-bottom: 2px;
    }
    .t2w-pick-cat-chips .t2w-pick-cat-chip {
        padding: 10px 14px;
        min-height: 44px;
    }
    .t2w-pick-region-bar {
        padding: 6px 12px;
        gap: 6px;
    }
    .t2w-pick-region-chips .t2w-pick-region-chip {
        font-size: 11px;
        padding: 8px 12px;
        min-height: 36px;
    }
    .t2w-pick-search-wrap {
        width: 120px;
        padding: 4px 8px;
    }
    #t2w-pick-search {
        font-size: 11px;
    }
    .t2w-pick-filters {
        padding: 8px 12px;
    }

    /* Result timeline mobile */
    .t2w-pick-result {
        padding: 12px;
    }
    .t2w-pick-result-header {
        gap: 8px;
        margin-bottom: 14px;
        padding-bottom: 10px;
    }
    .t2w-pick-result-header-info h3 {
        font-size: 14px;
    }
    .t2w-pick-result-use {
        padding: 7px 12px;
        font-size: 12px;
    }
    .t2w-pick-result-item {
        gap: 8px;
        padding: 10px;
    }
    .t2w-pick-result-img {
        width: 48px;
        height: 48px;
    }
    .t2w-pick-result-name {
        font-size: 13px;
    }

    /* (v51 P4: backdrop 전역으로 이동됨 — 본 미디어쿼리 밖 참조) */
}

/* v51 P4: Cart overlay backdrop (모바일/데스크톱 공통) */
.t2w-pick-cart-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 110;
}
.t2w-pick-cart-backdrop.active {
    display: block;
}

/* ═══ AI Loading — Brand Experience ═══ */
.t2w-ai-loading {
    text-align: center;
    padding: 48px 24px;
    max-width: 380px;
    margin: 0 auto;
}
.t2w-ai-loading__icon {
    width: 56px; height: 56px;
    border-radius: 50%;
    background: linear-gradient(135deg, #FFF8E1, #FFE082);
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 20px;
    animation: t2w-ai-pulse 2s ease-in-out infinite;
}
.t2w-ai-loading__icon .material-symbols-outlined {
    font-size: 28px;
    color: var(--color-primary);
    font-variation-settings: 'FILL' 1;
    animation: t2w-spin 3s linear infinite;
}
@keyframes t2w-ai-pulse {
    0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(255, 183, 0, 0.3); }
    50% { transform: scale(1.08); box-shadow: 0 0 0 12px rgba(255, 183, 0, 0); }
}
.t2w-ai-loading__copy {
    font-size: 15px;
    font-weight: 600;
    color: var(--t2w-text, #111827);
    line-height: 1.6;
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.4s;
}
.t2w-ai-loading__copy.fade-out { opacity: 0; }
.t2w-ai-loading__copy.fade-in { opacity: 1; }
.t2w-ai-loading__sub {
    font-size: 12px;
    color: var(--t2w-text-secondary, #9CA3AF);
    margin-top: 8px;
}
.t2w-ai-loading__progress {
    margin-top: 16px;
    height: 3px;
    background: #E5E7EB;
    border-radius: 2px;
    overflow: hidden;
}
.t2w-ai-loading__progress-bar {
    height: 100%;
    background: linear-gradient(90deg, var(--color-primary), #F59E0B);
    border-radius: 2px;
    width: 0%;
    animation: t2w-ai-progress 8s ease-out forwards;
}
@keyframes t2w-ai-progress {
    0% { width: 0%; }
    20% { width: 30%; }
    50% { width: 60%; }
    80% { width: 85%; }
    100% { width: 95%; }
}
/* Skeleton cards */
.t2w-ai-loading__skeleton {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 24px;
}
.t2w-ai-loading__skel-card {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.04);
    animation: t2w-skel-fade 1.5s ease-in-out infinite;
}
.t2w-ai-loading__skel-card:nth-child(2) { animation-delay: 0.2s; }
.t2w-ai-loading__skel-card:nth-child(3) { animation-delay: 0.4s; }
@keyframes t2w-skel-fade {
    0%, 100% { opacity: 0.6; }
    50% { opacity: 1; }
}
.t2w-ai-skel-thumb {
    width: 44px; height: 44px;
    border-radius: 10px;
    background: linear-gradient(135deg, #FFF8E1, #FEF3C7);
    flex-shrink: 0;
}
.t2w-ai-skel-lines {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.t2w-ai-skel-line {
    height: 8px;
    border-radius: 4px;
    background: #F3F4F6;
}
.t2w-ai-skel-line--w70 { width: 70%; }
.t2w-ai-skel-line--w50 { width: 50%; }
.t2w-ai-skel-line--w40 { width: 40%; }

/* ═══════════════════════════════════════════════════════════
   v44.0: Timeline v4 — Prototype CSS Matching
   All 16 features mapped from prototype-timeline-v4.html
   ═══════════════════════════════════════════════════════════ */

/* --- F13: Completeness bar — gradient fill --- */
.t2w-tl-progress { gap: 10px; }
.t2w-tl-progress-label { font-size: 12px; }
.t2w-tl-progress-fill {
    background: linear-gradient(90deg, var(--color-primary), #E5A400);
    transition: width .6s cubic-bezier(.4,0,.2,1);
}
.t2w-tl-progress-pct { color: #E5A400; min-width: 32px; text-align: right; }

/* --- F10: Number badge — white border + shadow --- */
.t2w-v29-circle--num {
    border: 3px solid #fff;
    box-shadow: 0 2px 6px rgba(0,0,0,.12);
    font-size: 12px;
}

/* --- F9: Time range — gold-deep, 13px --- */
.t2w-v29-time-range {
    font-size: 13px;
    font-weight: 700;
    color: #E5A400;
    gap: 5px;
    padding: 10px 0 8px;
}
.t2w-v29-time-range .material-symbols-outlined { font-size: 16px; }

/* --- F14: Filter chips --- */
.t2w-tl-filters {
    padding: 4px 0 12px;
    background: none;
    border-bottom: none;
}
.t2w-tl-filter-chip { padding: 7px 14px; }

/* --- F3: Time budget warning — yellow-soft card --- */
.t2w-zone-time-warn {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    background: rgba(255,183,0,.10);
    border: 1px solid rgba(255,183,0,.2);
    border-radius: 8px;
    font-size: 12px;
    font-weight: 500;
    color: #181610;
    line-height: 1.4;
    margin: 0 0 10px;
}
.t2w-zone-time-warn i,
.t2w-zone-time-warn .material-symbols-outlined {
    font-size: 18px;
    color: #E5A400;
    flex-shrink: 0;
}
.t2w-zone-time-warn strong { font-weight: 700; color: #E5A400; }

/* --- F2: Zone crowd badge --- */
.t2w-crowd-hint {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 12px;
    margin: 2px 0;
    border-radius: 6px;
    background: rgba(255,183,0,.10);
    border: 1px solid rgba(255,183,0,.15);
    font-size: 11px;
    font-weight: 600;
    color: #E5A400;
}

/* --- F4: Insight bar — clean tags, no gradient --- */
.t2w-insight-bar {
    margin: 0 0 12px;
    padding: 0;
    background: none;
    border-radius: 0;
    border-left: none;
}
.t2w-insight-tags { margin-bottom: 0; gap: 8px; }
.t2w-insight-tag {
    padding: 5px 10px;
    border-radius: 6px;
    background: rgba(16,185,129,.08);
    color: #10B981;
}
.t2w-insight-verified { background: rgba(16,185,129,.08); color: #10B981; }
.t2w-insight-verified i { color: #10B981; }
.t2w-insight-crowd-high { background: rgba(239,68,68,.06); color: #EF4444; }
.t2w-insight-crowd-high i { color: #EF4444; }
.t2w-insight-crowd-low { background: rgba(16,185,129,.08); color: #10B981; }
.t2w-insight-crowd-low i { color: #10B981; }
.t2w-insight-time { background: rgba(59,130,246,.08); color: #3B82F6; }
.t2w-insight-time i { color: #3B82F6; }
.t2w-insight-validated { background: rgba(255,183,0,.10); color: #E5A400; }
.t2w-insight-validated i { color: #E5A400; }
.t2w-insight-tip { display: none; }

/* --- F5: Review CTA — blue text, clean --- */
.t2w-tl-review-cta {
    background: none;
    padding: 8px 0;
    margin: 0 0 10px;
    font-size: 12px;
    color: #3B82F6;
    font-weight: 600;
    gap: 6px;
}
.t2w-tl-review-cta i,
.t2w-tl-review-cta .material-symbols-outlined { color: #3B82F6; font-size: 16px; }
.t2w-tl-review-karma { color: #E5A400; font-weight: 700; font-family: 'Plus Jakarta Sans', sans-serif; }
.t2w-tl-review-btn { display: none; }

/* --- F7: Detail CTA + Delete — gold shadow, 44px delete --- */
.t2w-card-detail-row { margin-bottom: 10px; padding: 0; }
.t2w-card-detail-cta {
    padding: 11px 16px;
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(255,183,0,.25);
}
.t2w-card-detail-cta .material-symbols-outlined { font-size: 18px; }
.t2w-card-detail-delete { width: 44px; height: 44px; border-radius: 10px; }
.t2w-card-detail-delete .material-symbols-outlined { font-size: 20px; }

/* --- F8: Day move + Delete — clean border --- */
.t2w-card-actions { border-top: none; padding: 0 0 4px; }
.t2w-card-action-move-btn { padding: 8px 12px; font-size: 12px; border-radius: 8px; }
.t2w-card-action-delete { padding: 8px 14px; font-size: 12px; border-radius: 8px; }

/* --- F11: Transport — white card wrapper --- */
#t2w-planner-v2 .t2w-trp-v2 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-direction: row;
    background: #fff;
    border: 1px solid #f3f4f6;
    border-radius: 8px;
    padding: 8px 14px;
    margin: 4px 0;
}
.t2w-v29-item + .t2w-trp-v2 { margin-top: 4px; }
.t2w-trp-v2-info {
    display: flex; align-items: center; gap: 6px;
    font-size: 12px; font-weight: 500; color: #6B7280;
}
.t2w-trp-v2-icon { font-size: 16px; color: #9CA3AF; }
.t2w-trp-v2-info strong { font-weight: 700; color: #181610; font-family: 'Plus Jakarta Sans', sans-serif; }
.t2w-trp-v2-modes { display: flex; gap: 4px; margin-left: auto; }
.t2w-trp-v2-chip {
    display: flex; align-items: center; gap: 3px;
    padding: 4px 8px; border-radius: 6px;
    border: 1px solid #E5E7EB; background: #fff;
    font-size: 11px; font-weight: 600; color: #6B7280;
    cursor: pointer; transition: all .15s;
}
.t2w-trp-v2-chip .material-symbols-outlined { font-size: 14px; }
.t2w-trp-v2-chip:hover { border-color: var(--color-primary); color: #E5A400; }
#t2w-planner-v2 .t2w-trp-v2-chip--on {
    border-color: var(--color-primary);
    background: rgba(255,183,0,.08);
    color: #E5A400;
}
.t2w-trp-v2-chip--on:hover { opacity: 0.85; }

/* --- F15: Departure card — white card --- */
.t2w-departure-v3 {
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 1px 4px rgba(0,0,0,.06);
    border: 1px solid #E5E7EB;
    padding: 12px 16px;
    margin-bottom: 4px;
}
.t2w-departure-v3-icon { font-size: 20px; }
.t2w-departure-v3-time-badge {
    font-size: 13px; font-weight: 700; color: #E5A400;
    background: none; padding: 0;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

/* --- F16: Return card — dashed border card --- */
.t2w-v29-return {
    padding: 14px 16px;
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 1px 4px rgba(0,0,0,.06);
    border: 1px dashed #E5E7EB;
    margin-top: 4px;
}
.t2w-v29-return-icon {
    width: 36px; height: 36px;
    border-radius: 10px;
    background: #f3f4f6;
    border: none; box-shadow: none;
    font-size: 20px;
}
.t2w-v29-return-text { font-size: 13px; font-weight: 600; }
.t2w-v29-return-time {
    font-size: 14px; font-weight: 800; color: #181610;
    font-family: 'Plus Jakarta Sans', sans-serif;
    margin-left: auto;
}

/* --- Place card — v4 radius + must border --- */
.t2w-v29-card { border-radius: 14px; }
.t2w-v29-card--must::before { width: 3.5px; }

/* Card body — photo 180px, desc line-height */
.t2w-v29-card-thumb { border-radius: 10px; }
.t2w-v29-card-desc { line-height: 1.7; }

/* Vibe tags — v4 gold pill */
.t2w-v29-vibe {
    font-size: 11px; padding: 4px 10px;
    border-radius: 99px;
    background: rgba(255,183,0,.08); color: #E5A400;
    font-weight: 600;
}

/* --- F6: Inline nearby — dot + chip style --- */
.t2w-v29-inline-reco { background: none; padding: 0; margin: 0 0 12px; }
.t2w-v29-inline-head { font-size: 12px; font-weight: 700; color: #181610; margin-bottom: 8px; }
.t2w-inline-cat-tab {
    padding: 6px 12px; border-radius: 99px;
    font-size: 12px; font-weight: 600;
}
.t2w-inline-cat-tab:hover { background: rgba(255,183,0,.08); }

/* --- F1: Tour compare — gold border card --- */
.t2w-tour-compare {
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 1px 4px rgba(0,0,0,.06);
    overflow: hidden;
    border: 1px solid rgba(255,183,0,.2);
    margin-bottom: 4px;
}
.t2w-tour-compare-head {
    padding: 10px 14px;
    background: rgba(255,183,0,.08);
    border-bottom: 1px solid rgba(255,183,0,.12);
}
.t2w-tour-compare-badge {
    font-size: 11px; font-weight: 700;
    padding: 3px 8px; border-radius: 99px;
    background: var(--color-primary); color: #fff;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.t2w-tour-compare-cta {
    display: flex; align-items: center; justify-content: center;
    gap: 6px; padding: 10px;
    background: var(--color-primary); color: #181610;
    font-size: 13px; font-weight: 700;
    border: none; width: 100%; cursor: pointer;
    transition: background .15s;
}
.t2w-tour-compare-cta:hover { background: #E5A400; }

/* --- F12: Meal card — v4 restaurant grid --- */
.t2w-v29-card--meal,
.t2w-tl-meal-wrap {
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 1px 4px rgba(0,0,0,.06);
    border: 1px solid rgba(255,183,0,.15);
    overflow: hidden;
}
.t2w-tl-meal-hint-header {
    padding: 10px 14px;
    background: rgba(255,183,0,.08);
    font-size: 13px; font-weight: 700; color: #181610;
}
.t2w-tl-meal-mini-cards {
    padding: 12px 14px; gap: 10px;
}
.t2w-tl-meal-mini {
    flex: 1; padding: 10px; border-radius: 10px;
    gap: 10px; flex-shrink: 1;
}
.t2w-tl-meal-mini-thumb { width: 48px; height: 48px; border-radius: 8px; }
.t2w-tl-meal-mini-name { font-size: 12px; max-width: none; }
.t2w-tl-meal-mini-meta { font-size: 10px; }
.t2w-tl-meal-add-btn {
    display: flex; align-items: center; justify-content: center;
    gap: 6px; padding: 10px; width: 100%;
    border-top: 1px solid #f3f4f6;
    background: none; font-size: 12px; font-weight: 700;
    color: #E5A400; border-radius: 0;
    margin-top: 0;
}
.t2w-tl-meal-add-btn:hover { background: rgba(255,183,0,.08); }

/* ═══ v44.0: Animations ═══ */
@keyframes t2wFadeInUp {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}
.t2w-v29-item,
.t2w-trp-v2,
.t2w-departure-v3,
.t2w-v29-return,
.t2w-tour-compare {
    animation: t2wFadeInUp .4s cubic-bezier(.16,1,.3,1) both;
}
.t2w-v29-item:nth-child(2) { animation-delay: .05s; }
.t2w-v29-item:nth-child(3) { animation-delay: .1s; }
.t2w-trp-v2 { animation-delay: .07s; }

/* ═══ v44.0: Mobile ═══ */
@media (max-width: 768px) {
    #t2w-planner-v2 .t2w-trp-v2 {
        padding: 10px 12px;
        margin: 4px 0;
        flex-wrap: wrap;
        gap: 6px;
        justify-content: flex-start;
    }
    .t2w-trp-v2-info {
        width: 100%; flex-shrink: 1; min-width: 0;
        font-size: 13px;
    }
    .t2w-trp-v2-icon { font-size: 18px; }
    .t2w-trp-v2-modes {
        width: 100%;
        display: flex; gap: 6px;
        margin-left: 0;
    }
    .t2w-trp-v2-chip {
        flex: 1;
        min-height: 38px;
        padding: 6px 10px;
        font-size: 13px;
        justify-content: center;
    }
    .t2w-trp-v2-chip .material-symbols-outlined { font-size: 16px; }
    .t2w-trp-v2-nav {
        width: 38px; height: 38px;
        flex: none;
    }
    .t2w-tl-filters { padding: 4px 0 8px; }
    .t2w-v29-return { padding: 12px; }
    .t2w-departure-v3 { padding: 10px 12px; }
    .t2w-tl-meal-mini-cards { flex-direction: column; }
    .t2w-tl-meal-mini { flex: none; }
    .t2w-card-detail-delete { width: 40px; height: 40px; }
}

/* --- v44.0: Home icon in planner header --- */
.t2w-v29-ph-home {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px; height: 36px;
    border-radius: 10px;
    color: var(--t2w-text-warm-secondary, #6B7280);
    text-decoration: none;
    transition: all .15s;
    flex-shrink: 0;
}
.t2w-v29-ph-home:hover {
    background: rgba(255,183,0,.08);
    color: var(--color-primary);
}
.t2w-v29-ph-home .material-symbols-outlined { font-size: 22px; }

/* --- v44.0: Tour Day Badge --- */
.t2w-tour-day-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    border-radius: 99px;
    background: linear-gradient(135deg, var(--color-primary), #F59E0B);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    font-family: 'Plus Jakarta Sans', sans-serif;
    white-space: nowrap;
    margin-left: 6px;
}
.t2w-tour-day-badge .material-symbols-outlined { font-size: 13px; }

/* ═══ v44.0: Tablet ═══ */
@media (min-width: 769px) and (max-width: 1024px) {
    .t2w-trp-v2 { padding: 8px 12px; }
    .t2w-tl-meal-mini-cards { gap: 8px; }
}

/* ═══════════════════════════════════════════════════════════════
   v44.2: UX Phase 3 — Skeleton, Empty States, Micro-interactions
   ═══════════════════════════════════════════════════════════════ */

/* ── Inline Reco Shimmer Skeleton ── */
.t2w-inline-skel {
    display: flex; gap: 8px; padding: 4px 0;
}
.t2w-inline-skel-chip {
    width: 64px; height: 28px;
    border-radius: 14px;
    background: linear-gradient(90deg, #f3f4f6 25%, #e5e7eb 50%, #f3f4f6 75%);
    background-size: 200% 100%;
    animation: t2w-skeleton-shimmer 1.5s infinite;
}
.t2w-inline-skel-chip--sm { width: 48px; }

/* ── Improved Empty State ── */
.t2w-v29-inline-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 12px;
    font-size: 12px;
    color: #9CA3AF;
    background: #FAFAFA;
    border-radius: 8px;
    border: 1px dashed #E5E7EB;
}
.t2w-v29-inline-empty .material-symbols-outlined {
    font-size: 16px; color: #D1D5DB;
}

/* ── Card Entrance Animation ── */
.t2w-v29-tl-item {
    animation: t2wCardEnter .35s cubic-bezier(.16,1,.3,1) both;
}
.t2w-v29-tl-item:nth-child(1) { animation-delay: 0s; }
.t2w-v29-tl-item:nth-child(2) { animation-delay: .06s; }
.t2w-v29-tl-item:nth-child(3) { animation-delay: .12s; }
.t2w-v29-tl-item:nth-child(4) { animation-delay: .18s; }
.t2w-v29-tl-item:nth-child(5) { animation-delay: .24s; }
@keyframes t2wCardEnter {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ── Card Expand/Collapse Transition ── */
.t2w-v29-card {
    transition: box-shadow .2s ease, border-color .2s ease;
}
.t2w-v29-card:not(.t2w-v29-card--collapsed) {
    box-shadow: 0 4px 16px rgba(0,0,0,.06);
}
.t2w-v44-hero {
    transition: height .25s ease;
}

/* ── Transport Segment Fade ── */
.t2w-tl-transport {
    animation: t2wFadeIn .3s ease both;
}
@keyframes t2wFadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* ── Meal Hint Slide ── */
.t2w-tl-meal-hint {
    animation: t2wSlideIn .35s cubic-bezier(.16,1,.3,1) both;
}
@keyframes t2wSlideIn {
    from { opacity: 0; transform: translateX(-8px); }
    to   { opacity: 1; transform: translateX(0); }
}

/* ═══════════════════════════════════════════════════════════════
   v44.2: Sidebar v4 — Stats + Quality Gauge + Zone + AI Tip
   ═══════════════════════════════════════════════════════════════ */

/* ── Stats Compact (3-col divider) ── */
.t2w-sb-stats {
    display: flex;
    padding: 12px 20px;
    gap: 0;
    border-bottom: 1px solid #f3f4f6;
}
.t2w-sb-stat {
    flex: 1;
    text-align: center;
    padding: 4px 0;
}
.t2w-sb-stat + .t2w-sb-stat { border-left: 1px solid #f3f4f6; }
.t2w-sb-stat-val {
    font-family: 'Plus Jakarta Sans', 'Noto Sans KR', sans-serif;
    font-size: 15px; font-weight: 800;
    color: #181610;
}
.t2w-sb-stat-label { font-size: 10px; color: #9CA3AF; margin-top: 2px; }

/* ── Quality Gauge ── */
.t2w-sb-quality {
    padding: 20px;
    border-bottom: 1px solid #f3f4f6;
}
.t2w-sb-quality-top {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 16px;
}
.t2w-sb-gauge {
    position: relative;
    width: 72px; height: 72px;
    flex-shrink: 0;
}
.t2w-sb-gauge svg { width: 72px; height: 72px; transform: rotate(-90deg); }
.t2w-sb-gauge-bg { fill: none; stroke: #F3F0E8; stroke-width: 7; }
.t2w-sb-gauge-fill {
    fill: none; stroke: #16A34A; stroke-width: 7;
    stroke-linecap: round;
    stroke-dasharray: 188.5;
    stroke-dashoffset: 188.5;
    transition: stroke-dashoffset .8s ease;
}
.t2w-sb-gauge-num {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    font-family: 'Plus Jakarta Sans', 'Noto Sans KR', sans-serif;
    font-size: 22px; font-weight: 800;
    color: #181610;
}
.t2w-sb-quality-info { flex: 1; }
.t2w-sb-quality-title {
    font-size: 15px; font-weight: 700;
    display: flex; align-items: center; gap: 6px;
}
.t2w-sb-quality-badge {
    font-size: 11px; font-weight: 700;
    padding: 2px 8px; border-radius: 99px;
}
.sb-quality-badge--green, .t2w-sb-quality-badge.sb-quality-badge--green {
    background: rgba(16,185,129,.1); color: #16A34A;
}
.sb-quality-badge--amber, .t2w-sb-quality-badge.sb-quality-badge--amber {
    background: rgba(217,119,6,.1); color: #D97706;
}
.sb-quality-badge--red, .t2w-sb-quality-badge.sb-quality-badge--red {
    background: rgba(220,38,38,.1); color: #DC2626;
}
.t2w-sb-quality-sub { font-size: 11px; color: #9CA3AF; margin-top: 3px; }

/* Score bars */
.t2w-sb-bars { display: flex; flex-direction: column; gap: 8px; }
.t2w-sb-bar-row {
    display: flex;
    align-items: center;
    gap: 8px;
}
.t2w-sb-bar-icon {
    width: 24px; height: 24px;
    border-radius: 6px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.t2w-sb-bar-icon .material-symbols-outlined { font-size: 14px; }
.t2w-sb-bar-icon--time { background: rgba(59,130,246,.08); color: #3B82F6; }
.t2w-sb-bar-icon--crowd { background: rgba(16,185,129,.08); color: #10B981; }
.t2w-sb-bar-icon--route { background: rgba(255,183,0,.08); color: #E5A400; }
.t2w-sb-bar-label {
    font-size: 11px; font-weight: 600; color: #6B7280;
    width: 52px; flex-shrink: 0;
}
.t2w-sb-bar-track {
    flex: 1; height: 6px;
    background: #f3f4f6; border-radius: 3px;
    overflow: hidden;
}
.t2w-sb-bar-fill { height: 100%; border-radius: 3px; transition: width .6s ease; }
.t2w-sb-bar-fill--green { background: #16A34A; }
.t2w-sb-bar-fill--amber { background: #D97706; }
.t2w-sb-bar-score {
    font-size: 10px; font-weight: 700;
    font-family: 'Plus Jakarta Sans', 'Noto Sans KR', sans-serif;
    color: #9CA3AF;
    width: 32px; text-align: right; flex-shrink: 0;
}

/* ── Zone Distribution ── */
.t2w-sb-zones {
    padding: 16px 20px;
    border-bottom: 1px solid #f3f4f6;
}
.t2w-sb-zones-title {
    font-size: 12px; font-weight: 700;
    color: #6B7280;
    margin-bottom: 10px;
    display: flex; align-items: center; gap: 6px;
}
.t2w-sb-zones-title .material-symbols-outlined { font-size: 16px; color: #E5A400; }
.t2w-sb-zone-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
}
.t2w-sb-zone-dot {
    width: 4px; height: 20px;
    border-radius: 2px;
    flex-shrink: 0;
}
.t2w-sb-zone-name {
    font-size: 12px; font-weight: 600;
    color: #181610;
    width: 110px; flex-shrink: 0;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.t2w-sb-zone-bar {
    flex: 1; height: 6px;
    background: #f3f4f6; border-radius: 3px;
    overflow: hidden;
}
.t2w-sb-zone-fill { height: 100%; border-radius: 3px; }
.t2w-sb-zone-time {
    font-size: 11px; font-weight: 600;
    font-family: 'Plus Jakarta Sans', 'Noto Sans KR', sans-serif;
    color: #6B7280;
    white-space: nowrap;
}

/* ── AI Tip ── */
.t2w-sb-tip {
    margin: 0 20px 20px;
    padding: 12px 14px;
    background: linear-gradient(135deg, rgba(255,183,0,.06), rgba(255,183,0,.12));
    border-radius: 10px;
    display: flex;
    align-items: flex-start;
    gap: 10px;
}
.t2w-sb-tip-icon {
    width: 28px; height: 28px;
    border-radius: 8px;
    background: rgba(255,183,0,.08);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.t2w-sb-tip-icon .material-symbols-outlined { font-size: 16px; color: #E5A400; }
.t2w-sb-tip-text { font-size: 12px; color: #78602B; line-height: 1.5; }

/* ── v44.2 Mobile ── */
@media (max-width: 768px) {
    .t2w-sb-stats { padding: 10px 16px; }
    .t2w-sb-stat-val { font-size: 13px; }
    .t2w-sb-quality { padding: 16px; }
    .t2w-sb-gauge { width: 60px; height: 60px; }
    .t2w-sb-gauge svg { width: 60px; height: 60px; }
    .t2w-sb-gauge-num { font-size: 18px; }
    .t2w-sb-zones { padding: 12px 16px; }
    .t2w-sb-zone-name { width: 90px; font-size: 11px; }
    .t2w-sb-tip { margin: 0 16px 16px; }
}

/* ═══════════════════════════════════════════════════════════════
   v44.1: Hero Card Timeline — Refined Place Cards
   ═══════════════════════════════════════════════════════════════ */

/* ── Hero Card: Override v29 card to show banner image ── */
.t2w-v29-card {
    border-radius: 14px;
    padding: 0;
    overflow: hidden;
    border: 1px solid #E5E7EB;
    transition: all 0.2s ease;
}
.t2w-v29-card:hover {
    border-color: rgba(255,183,0,0.2);
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
    transform: translateY(-1px);
}

/* ── Hero Image Banner ── */
.t2w-v44-hero {
    height: 130px;
    background-size: cover;
    background-position: center;
    position: relative;
    overflow: hidden;
}
.t2w-v44-hero::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 55%;
    background: linear-gradient(transparent, rgba(0,0,0,0.45));
    pointer-events: none;
}
.t2w-v44-hero-badges {
    position: absolute;
    top: 8px; left: 10px;
    display: flex; gap: 5px;
    z-index: 2;
}
.t2w-v44-badge {
    padding: 3px 8px;
    border-radius: 6px;
    font-size: 10px;
    font-weight: 700;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    display: flex; align-items: center; gap: 3px;
}
.t2w-v44-badge .material-symbols-outlined { font-size: 12px; }
.t2w-v44-badge--must {
    background: linear-gradient(135deg, rgba(255,183,0,0.92), rgba(245,158,11,0.92));
    color: #fff;
}
.t2w-v44-badge--ticket {
    background: rgba(255,255,255,0.88);
    color: #1F2937;
}
.t2w-v44-badge--gem {
    background: rgba(255,183,0,0.12);
    color: var(--color-primary);
    border: 1px solid rgba(255,183,0,0.25);
}
.t2w-v44-hero-time {
    position: absolute;
    bottom: 8px; left: 10px;
    color: #fff;
    font-size: 12px; font-weight: 700;
    z-index: 2;
    display: flex; align-items: center; gap: 4px;
}
.t2w-v44-hero-time .material-symbols-outlined { font-size: 14px; }
.t2w-v44-hero-dur {
    position: absolute;
    bottom: 8px; right: 10px;
    background: rgba(0,0,0,0.5);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    color: #fff;
    font-size: 11px; font-weight: 700;
    padding: 3px 10px;
    border-radius: 6px;
    z-index: 2;
    display: flex; align-items: center; gap: 4px;
}
.t2w-v44-hero-dur .material-symbols-outlined { font-size: 14px; }

/* ── Card Body (below hero) ── */
.t2w-v44-body {
    padding: 12px 14px;
}
.t2w-v44-name {
    font-size: 15px;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 3px;
    color: #1F2937;
}
.t2w-v44-name-en {
    font-size: 11px;
    color: #9CA3AF;
    font-weight: 400;
}
.t2w-v44-rating {
    display: flex;
    align-items: center;
    gap: 2px;
    font-size: 12px;
    color: #F59E0B;
    margin-bottom: 6px;
}
.t2w-v44-rating .material-symbols-outlined { font-size: 14px; }
.t2w-v44-rating strong { margin: 0 2px; color: #1F2937; }
.t2w-v44-rating .t2w-v44-rating-meta { color: #9CA3AF; font-size: 11px; }

/* ── Insight Tags ── */
.t2w-v44-tags {
    display: flex;
    gap: 5px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}
.t2w-v44-tag {
    font-size: 10px;
    padding: 3px 8px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    gap: 3px;
    font-weight: 500;
}
.t2w-v44-tag .material-symbols-outlined { font-size: 12px; }
.t2w-v44-tag--time { background: #EFF6FF; color: #1D4ED8; }
.t2w-v44-tag--crowd-low { background: #ECFDF5; color: #065F46; }
.t2w-v44-tag--crowd-high { background: #FEF2F2; color: #991B1B; }
.t2w-v44-tag--verified { background: #F0FDF4; color: #166534; }
.t2w-v44-tag--free { background: #ECFDF5; color: #047857; }

/* ── Review Hook Quote ── */
.t2w-v44-hook {
    font-size: 12px;
    color: #6B7280;
    font-style: italic;
    line-height: 1.5;
    padding: 8px 12px;
    background: #F9FAFB;
    border-radius: 8px;
    border-left: 3px solid rgba(255,183,0,0.2);
    margin-bottom: 8px;
}

/* ── Collapsed state: hide hero + body details, show compact header ── */
.t2w-v29-card--collapsed .t2w-v44-hero { display: none; }
.t2w-v29-card--collapsed .t2w-v44-body .t2w-v44-tags,
.t2w-v29-card--collapsed .t2w-v44-body .t2w-v44-hook,
.t2w-v29-card--collapsed .t2w-v44-body .t2w-v44-rating,
.t2w-v29-card--collapsed .t2w-card-detail-row,
.t2w-v29-card--collapsed .t2w-card-actions,
.t2w-v29-card--collapsed .t2w-tl-review-cta,
.t2w-v29-card--collapsed .t2w-v29-inline-reco {
    display: none;
}
/* Collapsed: compact padding */
.t2w-v29-card--collapsed .t2w-v44-body {
    padding: 10px 14px;
}

/* ── Expanded card: restore v7 header elements ── */
.t2w-v29-card:not(.t2w-v29-card--collapsed) .t2w-v29-card-header {
    padding: 10px 14px;
    margin-bottom: 0;
    border-bottom: 1px solid #F3F4F6;
    background: #FAFAFA;
    border-radius: 0;
}

/* ── Transport Card v44 ── */
.t2w-v44-transport {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    background: #FAFAFA;
    border: 1px solid #F3F4F6;
    border-radius: 8px;
    margin: 2px 0;
}
.t2w-v44-transport-mode {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    font-weight: 600;
    color: #6B7280;
}
.t2w-v44-transport-mode .material-symbols-outlined { font-size: 16px; }
.t2w-v44-transport-time {
    font-size: 11px;
    color: #9CA3AF;
}
.t2w-v44-transport-dist {
    font-size: 10px;
    color: #9CA3AF;
    margin-left: auto;
}

/* ── Meal Card v44 ── */
.t2w-v44-meal-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    background: linear-gradient(135deg, #FFFBEB, #FFF7E0);
    border: 1px solid #E8E0D0;
    border-radius: 10px;
}
.t2w-v44-meal-photo {
    width: 48px; height: 48px;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    border: 2px solid #fff;
    box-shadow: 0 2px 6px rgba(0,0,0,0.08);
    flex-shrink: 0;
}
.t2w-v44-meal-info { flex: 1; }
.t2w-v44-meal-type {
    font-size: 13px;
    font-weight: 700;
    color: #92400E;
    display: flex; align-items: center; gap: 4px;
}
.t2w-v44-meal-type .material-symbols-outlined { font-size: 16px; color: #F59E0B; }
.t2w-v44-meal-name { font-size: 12px; color: #6B7280; margin-top: 1px; }
.t2w-v44-meal-price { font-size: 12px; color: #F59E0B; font-weight: 600; }

/* ── Departure/Return Card v44 ── */
.t2w-v44-endpoint {
    padding: 10px 16px;
    background: linear-gradient(135deg, #FFFBEB, #FEF3C7);
    border: 1px solid #E8E0D0;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 600;
    color: #92400E;
    display: flex;
    align-items: center;
    gap: 6px;
}
.t2w-v44-endpoint .material-symbols-outlined { font-size: 16px; color: var(--color-primary); }

/* ── v44.1 Mobile (Phase 7 refinement) ── */
@media (max-width: 768px) {
    /* Hero banner: slightly taller for readability */
    .t2w-v44-hero { height: 110px; }
    .t2w-v44-hero-badges { top: 6px; left: 8px; gap: 4px; }
    .t2w-v44-badge { font-size: 9px; padding: 2px 6px; border-radius: 5px; }
    .t2w-v44-badge .material-symbols-outlined { font-size: 11px; }
    .t2w-v44-hero-time { font-size: 11px; bottom: 6px; left: 8px; }
    .t2w-v44-hero-time .material-symbols-outlined { font-size: 13px; }
    .t2w-v44-hero-dur { font-size: 10px; bottom: 6px; right: 8px; padding: 2px 8px; }
    .t2w-v44-hero-dur .material-symbols-outlined { font-size: 13px; }

    /* Card body */
    .t2w-v44-body { padding: 10px 12px; }
    .t2w-v44-name { font-size: 14px; gap: 4px; }
    .t2w-v44-name-en { font-size: 10px; }
    .t2w-v44-rating { font-size: 11px; gap: 1px; margin-bottom: 5px; }
    .t2w-v44-rating .material-symbols-outlined { font-size: 13px; }
    .t2w-v44-rating strong { font-size: 12px; }
    .t2w-v44-hook { font-size: 11px; padding: 6px 10px; margin-bottom: 6px; }

    /* Insight tags */
    .t2w-v44-tags { gap: 4px; margin-bottom: 6px; }
    .t2w-v44-tag { font-size: 9px; padding: 2px 6px; }
    .t2w-v44-tag .material-symbols-outlined { font-size: 11px; }

    /* Card header (collapsed) — ensure touch targets */
    .t2w-v29-card-header { min-height: 44px; }
    .t2w-v7-dur { min-width: 60px; }
    .t2w-v7-dur-btn { min-width: 28px; min-height: 28px; }
    .t2w-v7-toggle { min-width: 44px; min-height: 44px; }

    /* Transport card compact */
    .t2w-v44-transport { padding: 5px 10px; }
    .t2w-v44-transport-mode { font-size: 10px; }
    .t2w-v44-transport-mode .material-symbols-outlined { font-size: 14px; }

    /* Meal card compact */
    .t2w-v44-meal-card { padding: 8px 12px; gap: 10px; }
    .t2w-v44-meal-photo { width: 40px; height: 40px; }
    .t2w-v44-meal-type { font-size: 12px; }
    .t2w-v44-meal-name { font-size: 11px; }

    /* Card actions — full width stacking */
    .t2w-card-detail-row { flex-wrap: wrap; gap: 6px; }
    .t2w-card-detail-cta { flex: 1; min-height: 36px; font-size: 12px; }
    .t2w-card-actions { flex-wrap: wrap; gap: 6px; }
    .t2w-card-action-move-btn,
    .t2w-card-action-delete { min-height: 36px; font-size: 11px; }
}

/* ── v44.1 Tablet ── */
@media (min-width: 769px) and (max-width: 1024px) {
    .t2w-v44-hero { height: 115px; }
    .t2w-v44-body { padding: 11px 13px; }
    .t2w-v44-name { font-size: 14px; }
}


/* ========================================
   CRITICAL OVERRIDES (migrated from planner-v2.php inline)
   v43.4: Moved from inline <style> to external CSS
   These rules were refactored 2026-04-05 to use #t2w-planner-v2 ID specificity.
   Remaining !important: only ext-override (body, Leaflet, WooCommerce).
   ======================================== */

/* v10.6: Plus Jakarta Sans font (English/numbers), Korean fallback to Pretendard/Noto Sans KR */
.t2w-planner-v2{font-family:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,'Pretendard','Noto Sans KR',sans-serif}
/* v8.6 Light theme — variables defined once at top of file (line 26-62). LiteSpeed bypass via data-no-optimize. */
/* v10.6: Calendar Pill Bar */
.t2w-cal-pill-bar{display:flex;align-items:center;gap:4px;padding:8px 16px;height:48px;border-bottom:1px solid #E5E7EB;background:#fff}
.t2w-cal-pills{display:flex;gap:6px;overflow-x:auto;flex:1;scrollbar-width:none;-ms-overflow-style:none}
.t2w-cal-pills::-webkit-scrollbar{display:none}
.t2w-cal-pill{padding:6px 14px;border-radius:20px;border:1px solid #E5E7EB;background:#fff;cursor:pointer;white-space:nowrap;display:flex;flex-direction:column;align-items:center;gap:1px;font-size:12px;transition:all .15s;flex-shrink:0}
.t2w-cal-pill--active{background:#3B82F6;color:#fff;border-color:#3B82F6;font-weight:700}
.t2w-cal-pill--active .t2w-cal-pill-day,.t2w-cal-pill--active .t2w-cal-pill-date{color:#fff}
.t2w-cal-pill--trip{background:#EFF6FF;border-color:#93C5FD}
.t2w-cal-pill-day{font-size:11px;font-weight:700;line-height:1}
.t2w-cal-pill-date{font-size:11px;line-height:1;color:#4B5563}
.t2w-cal-pill-dots{display:flex;gap:2px;margin-top:1px}
.t2w-cal-pill-bar .t2w-cal-prev,.t2w-cal-pill-bar .t2w-cal-next{background:none;border:1px solid #E5E7EB;border-radius:6px;width:28px;height:28px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#374151;flex-shrink:0;font-size:12px}
.t2w-cal-pill-bar .t2w-cal-overview{background:none;border:1px solid #E5E7EB;border-radius:6px;padding:4px 10px;font-size:11px;cursor:pointer;color:#6B7280;flex-shrink:0;white-space:nowrap}
.t2w-tl-date{font-size:18px;font-weight:800}
.t2w-tl-add-zone{font-size:13px}
.t2w-zone-card-name{font-size:16px}
.t2w-zone-card-time{font-size:13px}
.t2w-zone-card-duration{font-size:13px}
.t2w-tl-empty-day p{font-size:14px}
.t2w-tl-add-zone-inline{font-size:14px;padding:10px 20px}
.t2w-gauge-label{font-size:13px;font-weight:600}
.t2w-zone-card-places{font-size:13px}
.t2w-zone-card-rating{font-size:13px}
.t2w-ob-city-desc{font-size:13px}
.t2w-ob-city-count{font-size:12px}
.t2w-ob-tpl-meta{font-size:13px}
.t2w-picker-state-info strong{font-size:15px}
.t2w-picker-region-info strong{font-size:14px}
.t2w-picker-hint{font-size:13px}
.t2w-ob-state-name{font-size:16px}
.t2w-ob-state-desc{font-size:13px}
.t2w-ob-state-count{font-size:12px}
/* v9.1: Natural scroll layout — LiteSpeed bypass */
body:has(.travel-planner-page) .t2w-app-header{position:fixed!important;z-index:1000} /* ext-override */
.t2w-planner-v2{min-height:calc(100vh - var(--t2w-header-height,64px));display:flex;flex-direction:column;overflow:visible;background:#FFFFFF}
#t2w-planner-v2 .t2w-v5-main{flex:1 0 auto}
#t2w-planner-v2 .t2w-v5-left{overflow:visible;z-index:1}
.t2w-v5-right{position:relative;top:auto;height:auto;align-self:stretch;z-index:30;display:flex;flex-direction:column;overflow:visible}
#t2w-planner-v2 .t2w-v5-right .t2w-map{height:400px;min-height:300px;flex-shrink:0}
.t2w-context-panel{height:calc(100vh - var(--t2w-header-height,64px) - 400px);padding:16px;background:rgba(255,255,255,0.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid rgba(255,255,255,0.5);overflow-y:auto}
#t2w-planner-v2 .t2w-bs-handle{display:none}
#t2w-planner-v2 .t2w-card-list{padding-bottom:16px}
#t2w-planner-v2 .t2w-card-list::before{bottom:16px}
/* v26 Pro Stitch: 2-column layout — wide timeline | 420px map */
body:has(.t2w-v5-dock-enabled){overflow:visible!important;height:auto} /* ext-override */
.t2w-v5-dock-enabled .t2w-v5-main{overflow:visible}
#t2w-planner-v2 .t2w-v5-dock-enabled .t2w-v5-left{overflow:visible;z-index:1}
.t2w-v5-dock-enabled .t2w-v5-center{position:fixed;right:0;top:var(--t2w-header-height,64px);width:420px;height:calc(100vh - var(--t2w-header-height,64px));z-index:50;transform:translateX(100%);transition:transform .3s ease;border-left:1px solid #E5E7EB;background:#fff;overflow:hidden;display:flex;flex-direction:column}
.t2w-v5-dock-enabled .t2w-v5-center.t2w-dock-open{transform:translateX(0)}
.t2w-v5-center{display:none}
.t2w-dock-header{padding:14px 20px 12px;border-bottom:none;flex-shrink:0;background:linear-gradient(180deg,#fff 0%,#FAFBFC 100%)}
.t2w-dock-header-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.t2w-dock-close{width:32px;height:32px;border-radius:8px;border:none;background:#F3F4F6;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#6B7280;transition:all .15s;flex-shrink:0}
.t2w-dock-close:hover{background:#E5E7EB;color:#1F2937}
.t2w-dock-close .material-symbols-outlined{font-size:18px}
.t2w-dock-zone-guide{font-size:12px;color:#9CA3AF;display:block;margin:2px 0 8px}
.t2w-dock-zone-name{font-size:20px;font-weight:800;color:#1F2937;display:block;margin-bottom:0}
.t2w-dock-zone-subtitle{font-size:14px;color:#4B5563;margin-bottom:10px;display:block}
.t2w-dock-tabs{display:flex;gap:6px;padding:0 0 2px;overflow-x:auto}
.t2w-dock-tab{padding:7px 14px;font-size:13px;font-weight:600;color:#4B5563;background:#F3F4F6;border:none;border-bottom:none;border-radius:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:5px;transition:all .2s;white-space:nowrap}
.t2w-dock-tab i,.t2w-dock-tab .material-symbols-outlined{font-size:11px}
.t2w-dock-tab--active{color:#fff;background:#1F2937;font-weight:700}
.t2w-dock-tab:hover:not(.t2w-dock-tab--active){background:#E5E7EB;color:#1F2937}
.t2w-dock-tab-count{font-size:10px;color:inherit;font-style:normal;opacity:0.7}
.t2w-dock-body{flex:1;overflow-y:auto;padding:16px 20px}
.t2w-dock-empty{text-align:center;padding:60px 20px;color:#6B7280}
.t2w-dock-empty i,.t2w-dock-empty .material-symbols-outlined{font-size:32px;margin-bottom:12px;display:block;color:#9CA3AF}
.t2w-dock-empty p{font-size:14px;line-height:1.6}
/* v28: Right column sticky in 3-col layout */
.t2w-v5-dock-enabled .t2w-v5-right{position:sticky;top:var(--t2w-header-height,64px);height:calc(100vh - var(--t2w-header-height,64px));align-self:start}
/* v10.5: Timeline — dock layers hidden (moved to Dock center column) */
#t2w-planner-v2 .t2w-v5-dock-enabled .t2w-layer2-radar,#t2w-planner-v2 .t2w-v5-dock-enabled .t2w-layer3-insight{display:none}
.t2w-v5-dock-enabled .t2w-zone-card-desc{display:none}
/* v42.4: gauge restored — no longer hidden in dock mode */
.t2w-v5-dock-enabled .t2w-card-list{padding:8px 12px 12px}
/* v10.5: Global planner readability — override HivePress rgba leak */
#t2w-planner-v2.t2w-planner-v2{color:#1F2937;font-size:15px;line-height:1.6}
#t2w-planner-v2 .t2w-v5-left,#t2w-planner-v2 .t2w-v5-center,#t2w-planner-v2 .t2w-card-list,#t2w-planner-v2 .t2w-zone-card,#t2w-planner-v2 .t2w-dock-body{color:#1F2937}
#t2w-planner-v2 .t2w-tl-date{font-size:18px;font-weight:800;color:#1F2937;line-height:1.4;padding:6px 16px 8px}
#t2w-planner-v2 .t2w-zone-card-name{font-size:17px;font-weight:700;color:#1F2937;line-height:1.4}
#t2w-planner-v2 .t2w-zone-card-meta{font-size:14px;color:#4B5563;line-height:1.5}
#t2w-planner-v2 .t2w-zone-card-meta span{color:#4B5563}
#t2w-planner-v2 .t2w-zone-card-meta .t2w-zone-card-rating{color:#D97706;font-weight:700}
#t2w-planner-v2 .t2w-zone-card-time-pill{font-size:13px;font-weight:700}
#t2w-planner-v2 .t2w-zone-card-duration{font-size:14px;color:#4B5563}
#t2w-planner-v2 .t2w-zb-place-name{font-size:15px;font-weight:600;color:#1F2937;line-height:1.4}
#t2w-planner-v2 .t2w-zb-place-time{font-size:13px;font-weight:600;color:#D97706}
#t2w-planner-v2 .t2w-zb-place-row{padding:8px 10px}
#t2w-planner-v2 .t2w-zb-place-row .t2w-zb-remove{color:#9CA3AF}
#t2w-planner-v2 .t2w-zb-add-place{font-size:14px;font-weight:600;color:#4B5563;padding:10px 14px}
/* v38.0 Tour Compare Card */
.t2w-tour-compare{margin:12px 0 8px;padding:14px;background:linear-gradient(135deg,#EFF6FF,#DBEAFE);border:1px solid #93C5FD;border-radius:12px}
.t2w-tour-compare-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.t2w-tour-compare-head i{color:#2563EB;font-size:13px}
.t2w-tour-compare-title{font-size:13px;font-weight:700;color:#1E40AF}
.t2w-tour-compare-overlap{font-size:10px;color:#6B7280;background:#fff;padding:2px 8px;border-radius:10px;margin-left:auto;white-space:nowrap}
.t2w-tour-compare-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;margin-bottom:10px}
.t2w-tour-compare-col{background:#fff;border-radius:8px;padding:10px;text-align:center}
.t2w-tour-compare-col-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;margin-bottom:6px}
.t2w-tour-compare-diy .t2w-tour-compare-col-label{color:#6B7280}
.t2w-tour-compare-tour .t2w-tour-compare-col-label{color:#2563EB}
.t2w-tour-compare-tour{border:1.5px solid #93C5FD}
.t2w-tour-compare-stat{font-size:12px;font-weight:600;color:#1F2937;margin-top:4px}
.t2w-tour-compare-free{font-size:11px;color:#059669;font-weight:500}
.t2w-tour-compare-price{font-size:13px;font-weight:800;color:#2563EB}
.t2w-tour-compare-price small{font-size:10px;font-weight:500;color:#6B7280}
.t2w-tour-compare-vs{font-size:11px;font-weight:800;color:#9CA3AF;text-align:center}
.t2w-tour-compare-footer{display:flex;align-items:center;gap:8px}
.t2w-tour-compare-info{flex:1;min-width:0}
.t2w-tour-compare-name{font-size:12px;font-weight:600;color:#1F2937;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.t2w-tour-compare-rating{font-size:11px;color:#D97706;font-weight:600}
.t2w-tour-compare-rating i{font-size:10px}
.t2w-tour-compare-cta{font-size:12px;font-weight:700;color:#fff;background:#2563EB;border:none;border-radius:8px;padding:8px 14px;white-space:nowrap;cursor:pointer;text-decoration:none;transition:background .2s;flex-shrink:0}
.t2w-tour-compare-cta:hover{background:#1D4ED8;color:#fff}
/* v38.1: Perfect match gold variant (80%+) */
.t2w-tour-compare--perfect{background:linear-gradient(135deg,#FFFBEB,#FEF3C7);border-color:#F59E0B;box-shadow:0 0 0 1px rgba(245,158,11,.15),0 4px 12px rgba(245,158,11,.1)}
.t2w-tour-compare--perfect .t2w-tour-compare-head i{color:#D97706}
.t2w-tour-compare--perfect .t2w-tour-compare-title{color:#92400E}
.t2w-tour-compare--perfect .t2w-tour-compare-tour{border-color:#F59E0B}
.t2w-tour-compare--perfect .t2w-tour-compare-tour .t2w-tour-compare-col-label{color:#D97706}
.t2w-tour-compare--perfect .t2w-tour-compare-price{color:#D97706}
.t2w-tour-compare-badge{font-size:9px;font-weight:800;color:#fff;background:linear-gradient(135deg,#F59E0B,#D97706);padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.05em;animation:t2w-pulse-badge 2s ease-in-out infinite}
@keyframes t2w-pulse-badge{0%,100%{opacity:1}50%{opacity:.7}}
.t2w-tour-compare-cta--perfect{background:linear-gradient(135deg,#F59E0B,#D97706);font-size:13px;padding:10px 18px}
.t2w-tour-compare-cta--perfect:hover{background:linear-gradient(135deg,#D97706,#B45309);color:#fff}
@media(max-width:768px){
.t2w-tour-compare-grid{grid-template-columns:1fr auto 1fr;gap:4px}
.t2w-tour-compare-col{padding:8px 6px}
.t2w-tour-compare-name{font-size:11px}
.t2w-tour-compare-cta{padding:6px 10px;font-size:11px}
.t2w-tour-compare-cta--perfect{padding:8px 14px;font-size:12px}
}
#t2w-planner-v2 .t2w-tl-add-zone{font-size:14px;font-weight:700;padding:12px 18px}
#t2w-planner-v2 .t2w-day-action-btn{font-size:14px;font-weight:500;color:#374151;padding:10px 14px}
#t2w-planner-v2 .t2w-day-actions{margin-top:12px}
#t2w-planner-v2 .t2w-zone-card-thumb{border-radius:10px}
#t2w-planner-v2 .t2w-zone-card-thumb--placeholder{border-radius:10px}
/* Completion gauge text */
#t2w-planner-v2 .t2w-completion-text{font-size:13px;color:#4B5563}
#t2w-planner-v2 .t2w-completion-text strong{color:#1F2937}
/* Calendar pill readability */
#t2w-planner-v2 .t2w-cal-pill-bar .t2w-cal-pill{font-size:12px}
#t2w-planner-v2 .t2w-cal-pill-day{font-weight:700;color:inherit}
#t2w-planner-v2 .t2w-cal-pill-date{color:inherit}
/* v10.6: Zone card category color accent on grip + hover lift */
.t2w-zone-card{transition:transform .2s,box-shadow .2s}
.t2w-zone-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,0.08)}
.t2w-zone-card-grip--city{background:linear-gradient(180deg,#DBEAFE,#EFF6FF)}
.t2w-zone-card-grip--beach{background:linear-gradient(180deg,#CFFAFE,#ECFEFF)}
.t2w-zone-card-grip--nature{background:linear-gradient(180deg,#DCFCE7,#F0FDF4)}
.t2w-zone-card-grip--food,.t2w-zone-card-grip--suburban{background:linear-gradient(180deg,#FEF3C7,#FFFBEB)}
.t2w-zone-card-grip--daytrip{background:linear-gradient(180deg,#EDE9FE,#F5F3FF)}
.t2w-zone-card-grip--culture{background:linear-gradient(180deg,#FCE7F3,#FDF2F8)}
/* v10.6: Drag grip always visible */
#t2w-planner-v2 .t2w-zone-card-grip{opacity:1;position:relative}
.t2w-zone-card-grip i{color:#9CA3AF}
/* v19.1: Dock 2-column card grid — enhanced design */
.t2w-dock-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
#t2w-focus-dock .t2w-dock-place{border-radius:14px;border:1px solid #E5E7EB;background:#fff;overflow:hidden;cursor:pointer;transition:all .2s;display:block;box-shadow:0 1px 3px rgba(0,0,0,0.04)}
#t2w-focus-dock .t2w-dock-place:hover{border-color:#3B82F6;box-shadow:0 4px 16px rgba(59,130,246,0.12);transform:translateY(-2px)}
#t2w-focus-dock .t2w-dock-place--selected{border-color:#10B981;background:#F0FDF4}
#t2w-focus-dock .t2w-dock-place-thumb{width:100%;height:140px;background-size:cover;background-position:center;background-color:#F3F4F6;position:relative;border-radius:0;flex-shrink:unset}
.t2w-dock-place-cat-tag{position:absolute;top:8px;left:8px;font-size:10px;font-weight:700;color:#fff;background:rgba(0,0,0,0.6);padding:3px 9px;border-radius:6px;backdrop-filter:blur(4px);text-transform:uppercase;letter-spacing:0.3px}
.t2w-dock-place-add-circle{position:absolute;top:8px;right:8px;width:32px;height:32px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:all .2s}
.t2w-dock-place-add-circle.t2w-dock-place-btn--add{background:rgba(255,255,255,0.95);color:#374151;box-shadow:0 2px 8px rgba(0,0,0,0.15)}
.t2w-dock-place-add-circle.t2w-dock-place-btn--add:hover{background:#3B82F6;color:#fff;transform:scale(1.15)}
.t2w-dock-place-add-circle.t2w-dock-place-btn--added{background:#10B981;color:#fff;box-shadow:0 2px 8px rgba(16,185,129,0.3)}
#t2w-focus-dock .t2w-dock-place-info{padding:10px 12px;display:flex;flex-direction:column;gap:3px}
#t2w-focus-dock .t2w-dock-place-name{font-size:15px;font-weight:700;color:#1F2937;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#t2w-focus-dock .t2w-dock-place-name-en{font-size:12px;color:#6B7280;margin-top:2px}
#t2w-focus-dock .t2w-dock-place-meta{display:flex;align-items:center;gap:5px;margin-top:5px;font-size:13px;color:#4B5563}
#t2w-focus-dock .t2w-dock-place-meta strong{color:#1F2937}
#t2w-focus-dock .t2w-dock-place-reviews{font-size:11px;color:#6B7280}
.t2w-dock-place-badges{display:flex;gap:4px;margin-top:5px;flex-wrap:wrap}
.t2w-dock-badge{font-size:10px;padding:3px 8px;border-radius:6px;font-weight:600;display:inline-flex;align-items:center;gap:3px}
.t2w-dock-badge--ticket{background:#FEF3C7;color:#92400E}
.t2w-dock-badge--gem{background:#ECFDF5;color:#065F46}
.t2w-dock-badge--auth{background:#EDE9FE;color:#5B21B6}
.t2w-dock-badge--auth i{font-size:9px}
/* Dock food header + filter chips */
.t2w-dock-food-header{font-size:13px;color:#4B5563;margin-bottom:12px;display:flex;align-items:center;gap:6px}
.t2w-dock-food-header i{color:#D97706}
.t2w-dock-chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:8px;margin-bottom:8px}
.t2w-dock-chip{font-size:12px;padding:5px 12px;border-radius:16px;border:1px solid #E5E7EB;background:#fff;color:#374151;white-space:nowrap;cursor:pointer;transition:all .15s}
.t2w-dock-chip--active{background:#FEF3C7;border-color:#D97706;color:#92400E;font-weight:600}
/* v28: Unified dock card (food/cafe/tour) — Stitch square image upgrade */
#t2w-focus-dock .t2w-dock-card{border-radius:var(--t2w-radius,1rem);border:none;background:transparent;overflow:visible;cursor:pointer;transition:all var(--t2w-transition,.2s);display:flex;flex-direction:column;gap:10px}
#t2w-focus-dock .t2w-dock-card:hover .t2w-dock-card-name{color:#3B82F6}
#t2w-focus-dock .t2w-dock-card-thumb{width:100%;aspect-ratio:1;border-radius:var(--t2w-radius,1rem);background-color:#F3F4F6;position:relative;overflow:hidden}
.t2w-dock-card-img{width:100%;height:100%;object-fit:cover;transition:transform .3s cubic-bezier(.4,0,.2,1)}
.t2w-dock-card:hover .t2w-dock-card-img{transform:scale(1.05)}
.t2w-dock-card-img--empty{width:100%;height:100%;background:linear-gradient(135deg,#F3F4F6,#E5E7EB)}
.t2w-dock-card-badge{position:absolute;top:8px;left:8px;font-size:10px;font-weight:700;padding:2px 8px;border-radius:6px;backdrop-filter:blur(4px);z-index:1}
.t2w-dock-card-badge--open{color:#fff;background:rgba(16,185,129,0.9)}
.t2w-dock-card-badge--closed{color:#fff;background:rgba(239,68,68,0.9)}
.t2w-dock-card-cuisine{position:absolute;bottom:8px;left:8px;font-size:10px;font-weight:600;color:#fff;background:rgba(0,0,0,0.6);backdrop-filter:blur(4px);padding:2px 8px;border-radius:6px;border:1px solid rgba(255,255,255,0.1);z-index:1}
#t2w-focus-dock .t2w-dock-card-info{padding:0;display:flex;flex-direction:column;gap:2px}
#t2w-focus-dock .t2w-dock-card-name{font-size:15px;font-weight:700;color:#1F2937;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .15s}
#t2w-focus-dock .t2w-dock-card-sub{font-size:12px;color:#6B7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#t2w-focus-dock .t2w-dock-card-meta{display:flex;align-items:center;gap:4px;margin-top:2px;font-size:12px;color:#6B7280}
#t2w-focus-dock .t2w-dock-card-meta strong{color:#111827;font-size:12px}
.t2w-dock-card-sep{color:#D1D5DB;font-size:10px}
.t2w-dock-card-price{color:#6B7280;font-weight:500;font-size:12px}
.t2w-dock-card-dist{color:#6B7280;font-size:12px}
.t2w-dock-card-reviews{font-size:11px;color:#6B7280}
/* Tour card specifics */
.t2w-dock-tour-price-chip{position:absolute;top:8px;right:8px;font-size:12px;font-weight:800;color:#fff;background:rgba(0,0,0,0.7);padding:3px 10px;border-radius:6px;backdrop-filter:blur(4px)}
.t2w-dock-tour-krw{font-size:11px;color:#6B7280;font-weight:400}
.t2w-dock-tour-includes{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.t2w-dock-tour-inc{font-size:10px;color:#374151;background:#F3F4F6;padding:2px 7px;border-radius:4px;display:inline-flex;align-items:center;gap:3px;white-space:nowrap}
.t2w-dock-tour-inc i{font-size:9px;color:#6B7280}
.t2w-dock-tour-cta{margin-top:6px}
.t2w-dock-tour-btn{width:100%;padding:8px;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;text-align:center;border:1px solid;transition:all .15s;display:block;text-decoration:none}
.t2w-dock-tour-btn--primary{color:#fff;background:#D97706;border-color:#D97706}
.t2w-dock-tour-btn--primary:hover{background:#B45309}
@media(max-width:768px){
/* v31: Natural scroll — no BottomSheet */
body:has(.t2w-v5-dock-enabled){overflow:visible!important;height:auto} /* ext-override */
#t2w-planner-v2 .t2w-v5-main{display:flex;flex-direction:column;grid-template-columns:none;gap:0;padding:0;max-width:100%}
/* Order: map(1) → day chips(2) → timeline(3) */
#t2w-planner-v2 .t2w-v5-right{order:1;position:relative;top:auto;height:auto;display:block;overflow:visible;align-self:auto}
#t2w-planner-v2 .t2w-v5-right .t2w-map{height:180px;min-height:160px;border-radius:0}
#t2w-planner-v2 .t2w-context-panel{display:none}
#t2w-planner-v2 .t2w-v29-sidebar{display:none}
#t2w-planner-v2 .t2w-v5-center{display:none}
#t2w-mob-overview{order:2;display:flex}
#t2w-planner-v2 .t2w-v5-left{order:3;flex:1 0 auto;max-height:none;overflow:visible;transition:none;padding:0 16px}
#t2w-planner-v2 .t2w-v5-left[data-bs-state]{max-height:none;overflow:visible}
/* Hide BottomSheet handle */
#t2w-planner-v2 .t2w-bs-handle{display:none}
/* Cost bar: relative flow */
#t2w-planner-v2 .t2w-cost{position:relative}
/* Mobile typography */
#t2w-planner-v2 .t2w-tl-header{flex-wrap:wrap;gap:6px;padding:10px 14px}
#t2w-planner-v2 .t2w-tl-date{font-size:15px;padding:0 0 0 10px;border-left:3px solid var(--t2w-primary,#FFB700);flex:1 1 auto;min-width:0}
#t2w-planner-v2 .t2w-day-title--emotional{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#t2w-planner-v2 .t2w-gauge{width:100%;order:3}
#t2w-planner-v2 .t2w-gauge-tip{display:none}
#t2w-planner-v2 .t2w-zone-card{flex-direction:column}
#t2w-planner-v2 .t2w-zone-card-name{font-size:16px}
#t2w-planner-v2 .t2w-zone-card-meta{font-size:13px}
#t2w-planner-v2 .t2w-zb-place-name{font-size:14px}
#t2w-planner-v2 .t2w-zb-place-time{font-size:12px}
#t2w-planner-v2 .t2w-zb-place-row{padding:7px 8px}
#t2w-planner-v2 .t2w-zb-add-place{font-size:13px;padding:8px 12px}
#t2w-planner-v2 .t2w-tl-add-zone{font-size:13px;padding:10px 14px}
#t2w-planner-v2 .t2w-day-action-btn{font-size:13px;padding:8px 12px}
/* Calendar pill */
#t2w-planner-v2 .t2w-cal-pill{padding:5px 10px;font-size:11px}
#t2w-planner-v2 .t2w-cal-pill-bar{padding:6px 10px;height:44px}
/* Layer 2/3 tighten */
#t2w-planner-v2 .t2w-layer2-radar{margin:8px 0;padding:10px}
#t2w-planner-v2 .t2w-layer3-insight{margin:8px 0;padding:10px}
/* Bottom padding for float bar */
#t2w-planner-v2 .t2w-v5-left .t2w-tl-body{padding-bottom:100px}
/* v31 Mobile Day chip strip */
.t2w-mob-overview{display:none;background:#fff;border-bottom:1px solid var(--t2w-border-warm,#e8e0d0);padding:8px 16px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.t2w-mob-chips{display:flex;gap:8px;white-space:nowrap}
.t2w-mob-chip{padding:6px 14px;border-radius:999px;border:1px solid var(--t2w-border-warm,#e8e0d0);background:#fff;font-size:13px;font-weight:600;color:var(--t2w-text-warm-secondary,#7a6f5d);cursor:pointer;display:flex;align-items:center;gap:6px;flex-shrink:0;transition:all .15s}
.t2w-mob-chip--active{background:var(--t2w-primary,#FFB700);color:var(--t2w-text-main,#1d180c);border-color:var(--t2w-primary,#FFB700);box-shadow:0 2px 8px rgba(255,183,0,0.3)}
.t2w-mob-chip-count{width:18px;height:18px;border-radius:50%;background:rgba(0,0,0,0.08);font-size:11px;display:flex;align-items:center;justify-content:center}
.t2w-mob-chip--active .t2w-mob-chip-count{background:rgba(0,0,0,0.12)}
}
/* v9.2.1: Panel text color fix — override HivePress rgba inheritance */
.t2w-panel{color:#111827}
.t2w-place-detail{color:#111827}
.t2w-pd-nearby h5,.t2w-pd-reviews h5,.t2w-pd-highlights h5{color:#111827}
.t2w-pd-review-text{color:#374151}
/* v8.7: Detail sheet handle + card enrichment + desktop detail panel */
.t2w-detail-sheet-handle{display:none}
.t2w-panel.t2w-panel--detail{width:var(--t2w-detail-width,520px)}
.t2w-panel-place-desc{font-size:11px;color:#6B7280;margin:3px 0 0;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.t2w-panel-place-tags{display:flex;gap:4px;margin-top:3px;flex-wrap:wrap}
.t2w-panel-place-tag{font-size:10px;color:#374151;background:#F3F4F6;padding:1px 6px;border-radius:4px;display:inline-flex;align-items:center;gap:3px;white-space:nowrap}
.t2w-panel-place-tag i{font-size:9px;color:#9CA3AF}
.t2w-panel-place-tag--price{background:#FEF3C7;color:#92400E;font-weight:600}
/* v8.7: 3-element insight cards */
.t2w-pd-insights{display:flex;flex-direction:column;gap:10px;padding:12px 16px}
.t2w-pd-insight-card{display:flex;gap:10px;padding:10px 12px;background:#F9FAFB;border-radius:10px;border:1px solid #E5E7EB}
.t2w-pd-insight-icon{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:12px}
.t2w-pd-insight--who .t2w-pd-insight-icon{background:#DBEAFE;color:#2563EB}
.t2w-pd-insight--when .t2w-pd-insight-icon{background:#FEF3C7;color:#D97706}
.t2w-pd-insight--avoid .t2w-pd-insight-icon{background:#FEE2E2;color:#DC2626}
.t2w-pd-insight-body strong{font-size:12px;color:#111827;display:block;margin-bottom:3px}
.t2w-pd-insight-body p{font-size:12px;color:#374151;margin:0;line-height:1.4}
.t2w-pd-insight-body ul{margin:0;padding-left:14px;font-size:12px;color:#374151;line-height:1.6}
.t2w-pd-insight-body li{margin:0}
/* v8.7.2: Photo gallery hero + grid + lightbox */
.t2w-pd-gallery{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}
.t2w-pd-photo--hero{width:100%;height:220px;background-size:cover;background-position:center;border-radius:8px;cursor:pointer;position:relative}
.t2w-pd-photo-count{position:absolute;bottom:8px;right:8px;background:rgba(0,0,0,0.6);color:#fff;font-size:11px;padding:3px 8px;border-radius:12px;display:flex;align-items:center;gap:4px}
.t2w-pd-photo-count i{font-size:10px}
.t2w-pd-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:4px}
.t2w-pd-photo--thumb{height:72px;background-size:cover;background-position:center;border-radius:6px;cursor:pointer;transition:opacity 0.15s}
.t2w-pd-photo--thumb:hover{opacity:0.8}
/* v10.6: Timeline place thumbnails enlarged + action bar */
.t2w-zb-place-row{gap:8px;padding:8px 10px;border-radius:8px;font-size:13px;min-height:44px;cursor:pointer;transition:background .15s}
.t2w-zb-place-row:hover{background:rgba(59,130,246,0.06)}
.t2w-zb-place-thumb{width:40px;height:40px;border-radius:8px;background-size:cover;background-position:center;background-color:#E5E7EB;flex-shrink:0}
.t2w-day-action-btn--quote{border-color:#FCD34D;color:#92400E;background:#FFFBEB}
.t2w-day-action-btn--quote:hover{border-color:#F59E0B;background:#FEF3C7;color:#78350F}
/* v8.7: "자세히" text button override (LiteSpeed bypass) */
.t2w-panel-place-info{background:#fff;border:1px solid #D1D5DB;border-radius:6px;font-size:11px;font-weight:600;color:#374151;padding:4px 10px;white-space:nowrap}
.t2w-panel-place-info:hover{color:#3B82F6;border-color:#3B82F6;background:#EFF6FF}
@media(max-width:768px){
.t2w-panel.t2w-panel--detail.t2w-panel-open{top:auto;bottom:0;width:100%;height:60vh;border-radius:16px 16px 0 0;box-shadow:0 -4px 20px rgba(0,0,0,0.15);transition:height 0.3s ease}
.t2w-panel.t2w-panel--detail.t2w-panel--detail-full.t2w-panel-open{height:92vh}
.t2w-panel--detail .t2w-detail-sheet-handle{display:flex;justify-content:center;padding:10px 0 4px;cursor:grab;flex-shrink:0}
.t2w-panel--detail .t2w-detail-sheet-bar{width:40px;height:4px;background:#D1D5DB;border-radius:2px}
}
/* F10: Zone review AI summary */
.t2w-zone-review-summary{padding:10px 14px;background:#F9FAFB;border-radius:8px;border:1px solid #E5E7EB;margin-top:8px}
.t2w-zone-review-summary p{font-size:13px;color:#374151;line-height:1.6;margin:0 0 8px}
.t2w-zone-review-tags{display:flex;gap:6px;flex-wrap:wrap}
.t2w-zone-review-tag{font-size:11px;color:#1D4ED8;background:#DBEAFE;padding:2px 8px;border-radius:12px}
.t2w-zone-review-rating{font-size:13px;font-weight:600;color:#F59E0B}
.t2w-zone-review-loading{font-size:12px;color:#9CA3AF;padding:8px 0}
/* F18: Hidden gem chip */
#t2w-planner-v2 .t2w-panel-cat-chip--hidden{background:#FEF3C7;color:#92400E;border-color:#FCD34D}
#t2w-planner-v2 .t2w-panel-cat-chip--hidden.active{background:#F59E0B;color:#fff}
.t2w-panel-cat-chip--hidden i{margin-right:3px;font-size:10px}
/* AI Float Button */
.t2w-ai-float{position:fixed;bottom:80px;right:24px;width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#FFB700,#F59E0B);color:#fff;border:none;box-shadow:0 4px 16px rgba(245,158,11,0.4);cursor:pointer;z-index:100;display:flex;align-items:center;justify-content:center;font-size:20px;transition:transform 0.2s,box-shadow 0.2s}
.t2w-ai-float:hover{transform:scale(1.1);box-shadow:0 6px 20px rgba(245,158,11,0.5)}
.t2w-ai-float--pulse{animation:t2w-fab-pulse 1.5s ease-in-out 3}
@keyframes t2w-fab-pulse{0%,100%{box-shadow:0 4px 16px rgba(245,158,11,0.4)}50%{box-shadow:0 0 0 12px rgba(245,158,11,0),0 4px 16px rgba(245,158,11,0.4)}}
@media(max-width:768px){.t2w-ai-float{bottom:70px;right:16px;width:48px;height:48px;font-size:18px}}
/* AI Optimize Modal */
.t2w-opt-loading{text-align:center;padding:40px 20px}
.t2w-opt-loading p{margin:12px 0 0;color:#374151;font-size:15px}
.t2w-opt-loading-sub{color:#9CA3AF;font-size:13px}
.t2w-opt-error{text-align:center;padding:30px;color:#EF4444}
.t2w-opt-error i{font-size:32px;margin-bottom:12px}
.t2w-opt-score{display:flex;align-items:center;gap:16px;padding:16px;background:#F9FAFB;border-radius:12px;margin-bottom:16px}
.t2w-opt-score-circle{width:72px;height:72px;border-radius:50%;border:4px solid;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0}
.t2w-opt-score-num{font-size:24px;font-weight:800;line-height:1}
.t2w-opt-score-label{font-size:11px;color:#6B7280;margin-top:2px}
.t2w-opt-summary{font-size:14px;color:#374151;margin:0;line-height:1.5}
.t2w-opt-suggestions h4{font-size:14px;font-weight:700;color:#111827;margin:0 0 10px}
.t2w-opt-suggestion{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:8px;border:1px solid #E5E7EB;margin-bottom:8px;background:#fff}
.t2w-opt-sg-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:16px}
.t2w-opt-sg-body{flex:1;min-width:0}
.t2w-opt-sg-body strong{font-size:13px;color:#111827;display:block;margin-bottom:2px}
.t2w-opt-sg-body p{font-size:12px;color:#6B7280;margin:0;line-height:1.4}
.t2w-opt-prio--high{border-left:3px solid #EF4444}
.t2w-opt-prio--medium{border-left:3px solid #F59E0B}
.t2w-opt-prio--low{border-left:3px solid #3B82F6}
.t2w-opt-apply-btn{padding:4px 12px;font-size:12px;font-weight:600;color:#fff;background:#3B82F6;border:none;border-radius:6px;cursor:pointer;white-space:nowrap;align-self:center}
.t2w-opt-apply-btn:hover{background:#2563EB}
.t2w-opt-applied{font-size:12px;color:#10B981;font-weight:600;white-space:nowrap;align-self:center}
.t2w-opt-perfect{text-align:center;padding:20px;color:#10B981;font-size:15px;font-weight:600}
/* v10.7: Font size bump — readability (3rd feedback) */
#t2w-planner-v2.t2w-planner-v2{font-size:16px}
#t2w-planner-v2 .t2w-dock-badge{font-size:12px}
#t2w-planner-v2 .t2w-dock-place-cat-tag{font-size:12px}
#t2w-planner-v2 .t2w-dock-tour-inc{font-size:12px}
#t2w-planner-v2 .t2w-dock-tour-inc i{font-size:10px}
#t2w-planner-v2 .t2w-panel-place-tag{font-size:12px}
#t2w-planner-v2 .t2w-cal-pill{font-size:13px}
#t2w-planner-v2 .t2w-cal-pill-day{font-size:12px}
#t2w-planner-v2 .t2w-cal-pill-date{font-size:12px}
#t2w-planner-v2 .t2w-dock-card-reviews{font-size:12px}
#t2w-focus-dock .t2w-dock-place-reviews{font-size:12px}
#t2w-planner-v2 .t2w-dock-tour-krw{font-size:12px}
#t2w-planner-v2 .t2w-pd-insight-body strong{font-size:13px}
#t2w-planner-v2 .t2w-pd-insight-body p,#t2w-planner-v2 .t2w-pd-insight-body ul{font-size:13px}
#t2w-planner-v2 .t2w-panel-place-desc{font-size:13px}
#t2w-focus-dock .t2w-dock-place-name-en{font-size:13px}
#t2w-focus-dock .t2w-dock-card-sub{font-size:13px}
#t2w-planner-v2 .t2w-dock-food-header{font-size:14px}
#t2w-planner-v2 .t2w-dock-chip{font-size:13px}
#t2w-focus-dock .t2w-dock-place-name{font-size:16px}
#t2w-focus-dock .t2w-dock-card-name{font-size:16px}
#t2w-planner-v2 .t2w-zone-card-name{font-size:18px}
/* v11.0: Emotional copy — critical inline */
.t2w-day-title--emotional{font-size:18px;font-weight:600;color:#1F2937;line-height:1.5}
.t2w-day-subtitle{font-size:12px;color:#6B7280;font-weight:400}
.t2w-micro-copy{font-size:13px;color:#6B7280;font-style:italic;margin:4px 0 8px 36px;line-height:1.5}
.t2w-transition-bridge{font-size:12px;color:#9CA3AF;padding:4px 12px;text-align:center}
.t2w-personalization-echo{font-size:13px;color:#6B7280;background:#F9FAFB;border-radius:8px;padding:10px 14px;margin:12px 16px;text-align:center;font-style:italic}
/* v10.7.1: Day 1 top gap — minimal */
#t2w-planner-v2 .t2w-card-list{padding-top:0}
#t2w-planner-v2 .t2w-card-list::before{top:4px}
/* v10.7: Place gap — dynamic travel info */
.t2w-zb-place-gap{display:flex;align-items:center;justify-content:center;gap:6px;padding:4px 0;font-size:12px;color:#9CA3AF;cursor:pointer;transition:all .15s;border-radius:6px;margin:2px 0}
.t2w-zb-place-gap:hover{color:#6B7280;background:rgba(59,130,246,0.04)}
.t2w-zb-place-gap i{font-size:11px}
.t2w-pg-info{font-size:12px}
.t2w-zb-place-gap.t2w-pg-expanded{flex-direction:column;gap:4px;padding:8px;background:#F9FAFB;border:1px solid #E5E7EB;border-radius:8px}
.t2w-pg-modes{display:flex;gap:6px}
.t2w-pg-mode{padding:4px 10px;border-radius:6px;border:1px solid #E5E7EB;background:#fff;font-size:12px;cursor:pointer;display:flex;align-items:center;gap:4px;color:#374151;transition:all .15s}
.t2w-pg-mode:hover{border-color:#3B82F6;color:#3B82F6}
.t2w-pg-dist{font-size:12px;color:#6B7280}
/* v10.7: Tour route preview */
.t2w-dock-tour-route{font-size:12px;color:#4B5563;margin-top:4px;padding:4px 0;display:flex;align-items:flex-start;gap:5px;line-height:1.4}
.t2w-dock-tour-route i{color:#D97706;font-size:11px;margin-top:2px;flex-shrink:0}
/* v28: Place Detail — Stitch upgrade */
.t2w-pd-hero{position:relative;height:240px;background-size:cover;background-position:center;border-radius:0;background-color:#E5E7EB}
.t2w-pd-hero-overlay{position:absolute;inset:0;background:linear-gradient(transparent 30%,rgba(0,0,0,0.75));display:flex;flex-direction:column;justify-content:flex-end;padding:20px}
.t2w-pd-hero-name{color:#fff;font-size:20px;font-weight:800;line-height:1.3}
.t2w-pd-hero-name-en{color:rgba(255,255,255,0.7);font-size:13px;font-weight:400;margin-top:2px;display:block}
.t2w-pd-hero-sub{color:rgba(255,255,255,0.9);font-size:13px;display:flex;gap:8px;align-items:center;margin-top:6px}
.t2w-pd-hero-rating{display:flex;align-items:center;gap:4px;font-weight:700}
.t2w-pd-hero-reviews{font-size:12px;opacity:0.8}
/* v28: AI Insight card */
.t2w-pd-ai-insight{background:linear-gradient(135deg,#EFF6FF,#DBEAFE);border-radius:12px;padding:14px 16px;margin-bottom:14px}
.t2w-pd-ai-insight-header{font-size:13px;font-weight:700;color:#1E40AF;margin-bottom:6px;display:flex;align-items:center;gap:6px}
.t2w-pd-ai-insight-header i{color:#3B82F6}
.t2w-pd-ai-insight-text{font-size:13px;color:#374151;line-height:1.6}
/* v28: Info Grid (2x2) */
.t2w-pd-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.t2w-pd-info-cell{display:flex;flex-direction:column;gap:2px;padding:10px 12px;background:#F9FAFB;border-radius:10px;border:1px solid #F3F4F6}
.t2w-pd-info-cell i{color:#6B7280;font-size:13px}
.t2w-pd-info-label{font-size:11px;color:#9CA3AF;font-weight:500}
.t2w-pd-info-value{font-size:13px;color:#111827;font-weight:600}
/* v28: Badges row */
.t2w-pd-badges{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.t2w-pd-badge{font-size:12px;padding:4px 10px;border-radius:8px;background:#FEF3C7;color:#92400E;font-weight:500}
.t2w-pd-badge--gem{background:#EDE9FE;color:#5B21B6}
/* v28: Audience demographics */
.t2w-pd-audience{margin:14px 0;padding:14px;background:#F9FAFB;border-radius:12px}
.t2w-pd-audience-title{font-size:13px;font-weight:700;color:#374151;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.t2w-pd-audience-title i{color:#6B7280;font-size:12px}
.t2w-pd-audience-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.t2w-pd-audience-label{font-size:12px;color:#6B7280;width:80px;flex-shrink:0;text-align:right}
.t2w-pd-audience-bar{flex:1;height:6px;background:#E5E7EB;border-radius:3px;overflow:hidden}
.t2w-pd-audience-fill{height:100%;border-radius:3px;transition:width .5s ease}
.t2w-pd-audience-pct{font-size:11px;color:#9CA3AF;width:32px;text-align:right;flex-shrink:0}
/* v28: Tips */
.t2w-pd-tips{font-size:13px;color:#059669;background:#ECFDF5;padding:10px 14px;border-radius:10px;margin-bottom:12px;display:flex;align-items:flex-start;gap:8px;line-height:1.5}
.t2w-pd-tips i{color:#10B981;margin-top:2px;flex-shrink:0}
/* v28: Review quotes with avatars */
.t2w-pd-ri-quotes-title{font-size:13px;font-weight:700;color:#374151;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.t2w-pd-ri-quotes-title i{color:#D1D5DB}
.t2w-pd-ri-quote{display:flex;gap:10px;margin-bottom:12px}
.t2w-pd-ri-quote-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;flex-shrink:0}
.t2w-pd-ri-quote-body{flex:1;min-width:0}
.t2w-pd-ri-quote-label{font-size:12px;font-weight:600;color:#6B7280;margin-bottom:2px}
.t2w-pd-ri-quote-text{font-size:13px;color:#374151;line-height:1.5;font-style:italic}
/* v28: Vibe tag pill */
.t2w-pd-vibe--tag{background:#F3F4F6;color:#6B7280}
.t2w-pd-vibe--beach{background:#CCFBF1;color:#0D9488}
.t2w-pd-vibe--wildlife{background:#D1FAE5;color:#059669}
.t2w-pd-vibe--scenic{background:#DBEAFE;color:#2563EB}
.t2w-pd-vibe--shopping{background:#FCE7F3;color:#DB2777}
.t2w-pd-vibe--nightlife{background:#1E1B4B;color:#A78BFA}
.t2w-pd-vibe--history{background:#FEF3C7;color:#92400E}
.t2w-pd-vibe--art{background:#EDE9FE;color:#7C3AED}
.t2w-pd-vibe--family{background:#DBEAFE;color:#2563EB}
.t2w-pd-vibe--photo{background:#CCFBF1;color:#0D9488}
.t2w-pd-vibe--urban{background:#F3F4F6;color:#6B7280}
.t2w-pd-tabs{display:flex;gap:0;border-bottom:1px solid #E5E7EB;background:#fff;position:sticky;top:0;z-index:2;flex-shrink:0}
.t2w-pd-tab{flex:1;padding:10px 4px;font-size:13px;font-weight:500;color:#6B7280;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;text-align:center;transition:color .15s,border-color .15s}
.t2w-pd-tab--active{color:#D97706;border-bottom-color:#D97706;font-weight:700}
.t2w-pd-tab:hover:not(.t2w-pd-tab--active){color:#374151}
.t2w-pd-tab-panel{display:none;padding:16px}
.t2w-pd-tab-panel--active{display:block}
.t2w-pd-photo-full-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}
.t2w-pd-photo-full-grid .t2w-pd-photo{height:160px;background-size:cover;background-position:center;border-radius:8px;cursor:pointer}
.t2w-pd-photo-full-grid .t2w-pd-photo:first-child{grid-column:span 2;height:200px}
/* v13.3: Vibe tags */
.t2w-pd-vibes{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.t2w-pd-vibe{font-size:12px;padding:3px 10px;border-radius:12px;font-weight:500}
.t2w-pd-vibe--nature{background:#ECFDF5;color:#059669}
.t2w-pd-vibe--food{background:#FEF3C7;color:#D97706}
.t2w-pd-vibe--culture{background:#EDE9FE;color:#7C3AED}
.t2w-pd-vibe--activity{background:#DBEAFE;color:#2563EB}
.t2w-pd-vibe--healing{background:#FCE7F3;color:#DB2777}
.t2w-pd-best-time{display:flex;align-items:center;gap:6px;font-size:13px;color:#D97706;background:#FEF3C7;padding:8px 12px;border-radius:8px;margin:8px 0}
.t2w-pd-hidden-gem{display:flex;align-items:center;gap:6px;font-size:13px;color:#7C3AED;background:#EDE9FE;padding:8px 12px;border-radius:8px;margin:8px 0}
/* v13.3: Food section */
.t2w-pd-food-section{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #E5E7EB}
.t2w-pd-food-header{font-size:14px;font-weight:500;color:#374151;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.t2w-pd-food-header i{color:#D97706}
.t2w-pd-food-toggle{display:flex;gap:6px;margin-bottom:10px}
.t2w-pd-food-cat{font-size:13px;padding:6px 14px;border-radius:16px;border:1px solid #E5E7EB;background:#fff;color:#6B7280;cursor:pointer;transition:all .15s}
.t2w-pd-food-cat--active{background:#D97706;color:#fff;border-color:#D97706}
.t2w-pd-food-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.t2w-pd-food-more{text-align:center;margin-top:10px}
.t2w-pd-food-more a{font-size:12px;color:#6B7280;text-decoration:none}
.t2w-pd-food-more a:hover{color:#D97706}
/* v13.3: Skeleton loading */
.t2w-pd-food-skeleton{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.t2w-skeleton-card{height:120px;border-radius:12px;background:linear-gradient(90deg,#F3F4F6 25%,#E5E7EB 50%,#F3F4F6 75%);background-size:200% 100%;animation:t2w-shimmer 1.5s infinite}
@keyframes t2w-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
/* v13.3: Enhanced nearby items */
.t2w-pd-nearby-item{display:flex;align-items:center;gap:10px;padding:8px 4px;cursor:pointer;transition:background .1s;border-radius:6px}
.t2w-pd-nearby-item:hover{background:#F9FAFB}
.t2w-pd-ni-thumb{width:40px;height:40px;border-radius:8px;background-size:cover;background-position:center;background-color:#F3F4F6;flex-shrink:0}
.t2w-pd-ni-info{flex:1;min-width:0}
.t2w-pd-ni-name{font-size:14px;font-weight:600;color:#1F2937;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.t2w-pd-ni-meta{display:flex;gap:6px;margin-top:2px}
.t2w-pd-ni-cat{font-size:11px;color:#9CA3AF}
.t2w-pd-ni-rating{font-size:11px;color:#F59E0B}
.t2w-pd-ni-dist{font-size:12px;color:#9CA3AF;flex-shrink:0}
/* v13.3: Food grid inside panel (dock card reuse) */
.t2w-pd-food-grid .t2w-dock-card{border-radius:10px}
.t2w-pd-food-grid .t2w-dock-card-thumb{height:150px;border-radius:10px 10px 0 0}
.t2w-pd-food-grid .t2w-dock-card-info{padding:8px 10px}
#t2w-planner-v2 .t2w-pd-food-grid .t2w-dock-card-name{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#t2w-planner-v2 .t2w-pd-food-grid .t2w-dock-card-sub{font-size:11px}
#t2w-planner-v2 .t2w-pd-food-grid .t2w-dock-card-meta{font-size:12px}
.t2w-pd-food-grid .t2w-food-maps-link{font-size:11px}
/* v13.4: 4-category bar — adjust padding for 4 items */
.t2w-pd-food-toggle{overflow-x:auto;-webkit-overflow-scrolling:touch}
.t2w-pd-food-cat{flex-shrink:0}
/* v13.4: Context Panel — place mode */
.t2w-ctx-place-header{font-size:14px;font-weight:600;color:#1F2937;margin-bottom:10px}
.t2w-ctx-place-cats{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}
.t2w-ctx-place-chip{font-size:12px;padding:5px 12px;border-radius:16px;border:1px solid #E5E7EB;background:#fff;color:#6B7280;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:4px}
.t2w-ctx-place-chip--active{background:#D97706;color:#fff;border-color:#D97706}
.t2w-ctx-place-chip i{font-size:11px}
.t2w-ctx-place-chip .t2w-ctx-chip-count{font-size:11px;opacity:0.8}
.t2w-ctx-place-cards{display:flex;flex-direction:column;gap:8px}
.t2w-ctx-mini-card{display:flex;align-items:center;gap:10px;padding:8px;border-radius:8px;background:#F9FAFB;cursor:pointer;transition:background .1s}
.t2w-ctx-mini-card:hover{background:#F3F4F6}
.t2w-ctx-mini-card-thumb{width:36px;height:36px;border-radius:6px;background-size:cover;background-position:center;background-color:#E5E7EB;flex-shrink:0}
.t2w-ctx-mini-card-info{flex:1;min-width:0}
.t2w-ctx-mini-card-name{font-size:13px;font-weight:600;color:#1F2937;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.t2w-ctx-mini-card-meta{font-size:11px;color:#9CA3AF}
/* v13.4: Day summary enhanced */
.t2w-ctx-cat-icons{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.t2w-ctx-cat-icon{font-size:12px;color:#6B7280;display:flex;align-items:center;gap:3px}
.t2w-ctx-cat-hint{font-size:12px;color:#D97706;margin-top:6px;font-style:italic}
/* v28: Stitch-style dock search bar */
.t2w-dock-search{display:flex;align-items:center;gap:8px;padding:10px 14px;margin:0 0 14px;border:1px solid transparent;border-radius:var(--t2w-radius,1rem);background:var(--t2w-bg-page,#FAFAFA);transition:border-color .2s,box-shadow .2s}
.t2w-dock-search:focus-within{border-color:var(--t2w-primary,#FFB700);box-shadow:0 0 0 3px rgba(255,183,0,0.15)}
.t2w-dock-search-sparkle{color:var(--t2w-primary,#FFB700);font-size:16px;flex-shrink:0;display:flex;align-items:center}
.t2w-dock-search-icon-right{color:#9CA3AF;font-size:14px;flex-shrink:0}
.t2w-dock-search-input{flex:1;border:none;background:transparent;font-size:14px;font-weight:500;color:#1F2937;outline:none;min-width:0}
.t2w-dock-search-input::placeholder{color:#9CA3AF;font-size:13px;font-weight:400}
.t2w-dock-search-clear{background:none;border:none;color:#9CA3AF;cursor:pointer;padding:4px;display:flex;flex-shrink:0}
.t2w-dock-search-clear:hover{color:#6B7280}
/* v28: Colored suggestion chips */
.t2w-dock-quick-chips{display:flex;gap:6px;margin:0 0 12px;flex-wrap:wrap}
.t2w-dock-quick-chip{font-size:12px;padding:6px 12px;border-radius:8px;border:1px solid #DBEAFE;background:#EFF6FF;color:#374151;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px;white-space:nowrap;font-weight:500}
.t2w-dock-quick-chip:hover{background:#DBEAFE;border-color:#93C5FD;color:#1D4ED8}
.t2w-dock-card-google{position:absolute;top:6px;right:6px;background:#4285F4;color:#fff;font-size:10px;padding:2px 6px;border-radius:4px;font-weight:600;z-index:1}
.t2w-dock-google-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:10px;border:1px dashed #D1D5DB;border-radius:8px;background:#fff;color:#4285F4;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;margin-top:12px}
.t2w-dock-google-btn:hover{border-color:#4285F4;background:#EBF5FB}
.t2w-dock-google-btn i{font-size:14px}
.t2w-dock-search-header{font-size:13px;font-weight:600;color:#4B5563;margin:16px 0 8px;display:flex;align-items:center;gap:6px}
.t2w-dock-search-header i{color:#4285F4}
.t2w-dock-register-btn{position:absolute;top:6px;right:6px;width:28px;height:28px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;background:rgba(66,133,244,0.9);color:#fff;transition:all .15s;z-index:1}
.t2w-dock-register-btn:hover{background:#1a73e8;transform:scale(1.1)}
/* v26 Pro Stitch: Day Header — bold with gold left border */
.t2w-tl-header{border-left:4px solid var(--t2w-primary);padding-left:20px;margin-bottom:16px}
.t2w-day-title--emotional{font-size:30px;font-weight:800;color:var(--t2w-text-main,#1d180c);display:block;line-height:1.2;letter-spacing:-0.02em}
.t2w-day-subtitle{color:var(--t2w-text-accent,#a18745);font-size:16px;font-weight:500;font-style:italic;display:flex;align-items:center;gap:6px;margin-top:6px}
/* v29: Vertical timeline connector between zone cards */
.t2w-zone-card{position:relative}
.t2w-zone-card+.t2w-zone-card::before{content:'';position:absolute;left:20px;top:-16px;width:2px;height:16px;background:var(--t2w-border-warm,#e8e0d0)}
/* v29: Time badge — place time indicator */
.t2w-time-badge{display:inline-flex;align-items:center;gap:4px;background:var(--t2w-surface-warm,#f4f0e6);color:var(--t2w-text-accent,#a18745);font-size:12px;font-weight:600;padding:2px 8px;border-radius:12px;margin-bottom:4px}
.t2w-time-dot{width:8px;height:8px;border-radius:50%;background:var(--t2w-primary);border:2px solid #fff;box-shadow:0 0 0 2px var(--t2w-primary)}
/* v29: Glass vibe pills upgrade */
.t2w-vibe-tag{background:rgba(255,183,0,0.12);backdrop-filter:blur(8px);border:1px solid rgba(255,183,0,0.2);color:var(--t2w-text-accent,#a18745);font-size:12px;padding:4px 10px;border-radius:20px}
/* v29 Stitch: Floating bottom bar — white glass + "다음 날 보기" */
.t2w-float-bar{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:1000;width:100%;max-width:480px;padding:0 16px;transition:opacity .5s}
.t2w-float-bar--stitch{background:rgba(255,255,255,0.85);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,0.3);box-shadow:0 8px 32px rgba(0,0,0,0.12);border-radius:999px;padding:8px 8px 8px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.t2w-float-bar__left{display:flex;align-items:center;gap:8px}
.t2w-float-bar__dot{width:10px;height:10px;border-radius:50%;background:var(--t2w-primary,#FFB700);animation:t2w-pulse 2s infinite;flex-shrink:0;position:relative}
.t2w-float-bar__dot::after{content:'';position:absolute;inset:-3px;border-radius:50%;background:var(--t2w-primary,#FFB700);opacity:0;animation:t2w-pulse-ring 2s infinite}
.t2w-float-bar__text{font-size:14px;font-weight:600;background:linear-gradient(135deg,#a18745,#d4a843);-webkit-background-clip:text;-webkit-text-fill-color:transparent;white-space:nowrap}
.t2w-float-bar__next{background:var(--t2w-text-main,#1d180c);color:#fff;border:none;padding:10px 20px;border-radius:999px;font-size:13px;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s;white-space:nowrap;box-shadow:0 4px 12px rgba(0,0,0,0.15)}
.t2w-float-bar__prev{background:transparent;color:var(--t2w-text-main,#1d180c);border:1px solid var(--t2w-border-warm,#e8e0d0);padding:10px 20px;border-radius:999px;font-size:13px;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s;white-space:nowrap}
.t2w-float-bar__prev:hover{background:rgba(0,0,0,0.05);transform:scale(1.03)}
.t2w-float-bar__prev i{font-size:11px}
.t2w-float-bar__next:hover{background:#000;transform:scale(1.03)}
.t2w-float-bar__next i{font-size:11px}
.t2w-float-bar--fade{opacity:0;pointer-events:none}
@keyframes t2w-pulse{0%,100%{opacity:1}50%{opacity:0.4}}
@keyframes t2w-pulse-ring{0%{opacity:0.6;transform:scale(1)}100%{opacity:0;transform:scale(2)}}
/* v29: Transition bridge card — warm gradient */
.t2w-transition-bridge{font-size:13px;color:var(--t2w-text-warm-secondary,#7a6f5d);font-style:italic;border-left:3px solid var(--t2w-primary);background:linear-gradient(135deg,#fef3c7,#fff7ed);border-radius:12px;padding:12px 16px;margin:8px 0;line-height:1.5}
/* v29: Place row warm hover */
.t2w-zb-place-row{background:#fff;border-radius:16px;box-shadow:0 1px 4px rgba(0,0,0,0.06);padding:12px;margin:8px 0;transition:transform .2s,box-shadow .2s}
.t2w-zb-place-row:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,0.1)}
/* v29: Golden hour card */
.t2w-golden-hour{position:relative;border-radius:16px;overflow:hidden;margin:12px 0}
.t2w-golden-hour img{width:100%;height:160px;object-fit:cover}
.t2w-golden-hour__overlay{position:absolute;bottom:0;left:0;right:0;padding:16px;background:linear-gradient(transparent,rgba(0,0,0,0.6));color:#fff}
.t2w-golden-hour__label{font-size:12px;font-weight:700;color:var(--t2w-primary);text-transform:uppercase;letter-spacing:0.5px}
.t2w-golden-hour__time{font-size:14px;font-weight:600}
.t2w-golden-hour--fallback{height:120px;background:linear-gradient(135deg,#fef3c7,#fed7aa);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-radius:16px}
/* v29: Sticky action bar for detail panel */
.t2w-pd-sticky-actions{position:sticky;bottom:0;padding:12px 16px;background:rgba(255,255,255,0.9);backdrop-filter:blur(12px);border-top:1px solid var(--t2w-border-warm,#e8e0d0);display:flex;gap:8px;z-index:3}
.t2w-pd-sticky-btn{flex:1;padding:10px 16px;border-radius:12px;font-size:14px;font-weight:700;cursor:pointer;border:none;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:6px}
.t2w-pd-sticky-btn--primary{background:var(--t2w-primary);color:#1d180c}
.t2w-pd-sticky-btn--primary:hover{background:#e6a500}
.t2w-pd-sticky-btn--secondary{background:#fff;color:#374151;border:1px solid var(--t2w-border-warm,#e8e0d0)}
.t2w-pd-sticky-btn--secondary:hover{background:#f9fafb}
/* v29: Audience bar gold highlight */
#t2w-planner-v2 .t2w-pd-audience-fill--gold{background:#FFB700}
/* v29: Map overlay controls */
.t2w-map-zone-badge{background:rgba(255,255,255,0.85);backdrop-filter:blur(12px);padding:8px 16px;border-radius:12px;font-weight:600;box-shadow:0 2px 8px rgba(0,0,0,0.1);display:flex;align-items:center;gap:6px;font-size:14px;color:var(--t2w-text-main,#1d180c)}
.t2w-map-day-selector{display:flex;gap:4px}
.t2w-map-day-selector button{width:36px;height:36px;border-radius:50%;border:none;background:rgba(255,255,255,0.85);backdrop-filter:blur(8px);cursor:pointer;font-weight:700;font-size:13px;box-shadow:0 2px 6px rgba(0,0,0,0.1);transition:all .2s;color:#374151}
.t2w-map-day-selector button.active{background:var(--t2w-primary);color:#fff}
.t2w-map-day-selector button:hover:not(.active){background:rgba(255,255,255,1)}
.t2w-map-route-summary{background:rgba(255,255,255,0.9);backdrop-filter:blur(12px);padding:12px 20px;border-radius:16px;display:flex;align-items:center;gap:16px;box-shadow:0 4px 16px rgba(0,0,0,0.1);font-size:14px;color:#374151;font-weight:500}
.t2w-map-route-summary i{color:var(--t2w-primary)}
@media(max-width:768px){.t2w-float-bar{bottom:80px;max-width:calc(100% - 32px)}.t2w-float-bar--stitch{padding:6px 6px 6px 14px}.t2w-float-bar__text{font-size:12px}.t2w-float-bar__prev{padding:8px 14px;font-size:12px}.t2w-float-bar__next{padding:8px 14px;font-size:12px}}
/* v26 Pro Stitch: Zone separator — prominent bar with color accent */
.t2w-v29-zone-sep{display:flex;align-items:center;gap:12px;padding:14px 20px;background:#fff;border:1px solid var(--t2w-border-warm,#e8e0d0);border-radius:16px;margin-bottom:16px;box-shadow:0 2px 8px rgba(0,0,0,0.04)}
.t2w-v29-zone-dot{width:8px;height:40px;border-radius:4px;flex-shrink:0}
.t2w-v29-zone-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.t2w-v29-zone-name{font-size:18px;font-weight:800;color:var(--t2w-text-main,#1d180c)}
.t2w-v29-zone-meta{font-size:13px;color:var(--t2w-text-warm-secondary,#7a6f5d)}
.t2w-v29-zone-actions{flex-shrink:0}
.t2w-v29-zone-actions button{background:none;border:none;color:#9CA3AF;cursor:pointer;padding:4px 6px;border-radius:6px;transition:all .15s}
.t2w-v29-zone-actions button:hover{color:#EF4444;background:rgba(239,68,68,0.08)}
/* v26 Pro Stitch: Vertical timeline container */
.t2w-v29-timeline{position:relative;padding:8px 0 8px 0;margin-left:8px}
.t2w-v29-line{position:absolute;left:29px;top:0;bottom:0;width:2px;background:var(--t2w-border-warm,#e8e0d0);z-index:0}
/* v26 Pro Stitch: Timeline item — flex row (badge + card) */
.t2w-v29-item{display:flex;gap:16px;position:relative;z-index:1;margin-bottom:32px}
/* v26 Pro Stitch: Left badge column (time + circle) */
.t2w-v29-badge{display:flex;flex-direction:column;align-items:center;gap:4px;width:60px;flex-shrink:0;padding-top:4px}
.t2w-v29-time{font-size:12px;font-weight:700;color:var(--t2w-text-warm-secondary,#7a6f5d);white-space:nowrap}
.t2w-v29-circle{width:32px;height:32px;border-radius:50%;background:#fff;border:2px solid var(--t2w-primary,#FFB700);display:flex;align-items:center;justify-content:center;flex-shrink:0;z-index:2;box-shadow:0 2px 4px rgba(0,0,0,0.08)}
.t2w-v29-circle i{font-size:14px;color:var(--t2w-primary,#FFB700)}
.t2w-v29-circle--meal{border-color:#D97706;background:#FEF3C7}
.t2w-v29-circle--meal i{color:#D97706}
/* v26 Pro Stitch: Place card — wide layout */
.t2w-v29-card{flex:1;min-width:0;background:#fff;border:1px solid var(--t2w-border-warm,#e8e0d0);border-radius:16px;padding:24px;box-shadow:0 4px 20px -2px rgba(29,24,12,0.05);transition:transform .2s,box-shadow .2s,border-color .2s;cursor:pointer}
.t2w-v29-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,0.1);border-color:rgba(255,183,0,0.5)}
.t2w-v29-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
/* v33: Right side of card header — stepper + hover actions */
.t2w-v29-card-right{display:flex;align-items:center;gap:8px;flex-shrink:0}
.t2w-v29-card-title{display:flex;align-items:center;gap:8px;min-width:0;flex:1}
.t2w-v29-card-title h3{font-size:20px;font-weight:800;color:var(--t2w-text-main,#1d180c);margin:0;line-height:1.3}
.t2w-v29-badge-tag{font-size:10px;font-weight:700;color:#92400E;background:#FEF3C7;padding:2px 7px;border-radius:6px;white-space:nowrap;flex-shrink:0}
.t2w-v29-card-actions button{background:none;border:none;color:#D1D5DB;cursor:pointer;padding:2px 4px;border-radius:4px;transition:color .15s}
.t2w-v29-card-actions button:hover{color:#EF4444}
/* v26 Pro Stitch: Card body with large thumbnail */
.t2w-v29-card-body{display:flex;gap:16px;align-items:flex-start}
.t2w-v29-card-thumb{width:200px;height:140px;border-radius:12px;background-size:cover;background-position:center;background-color:#F3F4F6;flex-shrink:0}
.t2w-v29-card-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.t2w-v29-card-desc{font-size:14px;color:var(--t2w-text-warm-secondary,#7a6f5d);line-height:1.6;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
/* v33: Duration stepper — compact inline in card header */
.t2w-place-dur-stepper{display:inline-flex;align-items:center;gap:0;background:var(--t2w-surface-warm,#f4f0e6);border-radius:8px;overflow:hidden}
.t2w-place-dur-stepper>i{font-size:11px;color:var(--t2w-text-warm-secondary,#7a6f5d);padding:0 6px 0 8px}
.t2w-place-dur-btn{background:none;border:none;color:var(--t2w-text-warm-secondary,#7a6f5d);cursor:pointer;padding:5px 8px;font-size:13px;font-weight:700;transition:background .15s}
.t2w-place-dur-btn:hover{background:rgba(0,0,0,0.06)}
.t2w-place-dur-label{font-size:13px;font-weight:700;min-width:44px;text-align:center;padding:4px 2px;color:var(--t2w-text-main,#1d180c)}
.t2w-place-dur-val{font-size:13px;font-weight:600;color:var(--t2w-text-main,#1d180c);padding:3px 6px;display:flex;align-items:center;gap:4px}
.t2w-place-dur-val i{font-size:11px;color:var(--t2w-text-accent,#a18745)}
/* v29 Stitch: MUST GO badge — blue pill */
.t2w-v29-badge-mustgo{font-size:10px;font-weight:700;color:#1D4ED8;background:#DBEAFE;padding:2px 8px;border-radius:999px;white-space:nowrap;flex-shrink:0;letter-spacing:0.3px}
/* v29 Stitch: Meal card — circular photo + price + actions */
.t2w-v29-card--meal{background:linear-gradient(135deg,rgba(254,243,199,0.3),#fff);border-color:rgba(255,183,0,0.2)}
.t2w-v29-meal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.t2w-v29-meal-header h4{font-size:13px;font-weight:700;color:var(--t2w-text-accent,#a18745);margin:0;display:flex;align-items:center;gap:6px}
.t2w-v29-meal-header h4 i{font-size:14px}
.t2w-v29-meal-price{font-size:10px;font-weight:700;color:#92400E;background:#fff;border:1px solid rgba(255,183,0,0.2);padding:2px 8px;border-radius:6px}
.t2w-v29-meal-body{display:flex;gap:16px;align-items:flex-start}
.t2w-v29-meal-photo{width:64px;height:64px;border-radius:50%;background-size:cover;background-position:center;background-color:#F3F4F6;flex-shrink:0;border:2px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,0.08)}
.t2w-v29-meal-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.t2w-v29-meal-name{font-size:16px;font-weight:700;color:var(--t2w-text-main,#1d180c)}
.t2w-v29-meal-hook{font-size:13px;color:var(--t2w-text-warm-secondary,#7a6f5d);line-height:1.5}
.t2w-v29-meal-dist{font-size:12px;color:var(--t2w-text-warm-secondary,#7a6f5d);display:flex;align-items:center;gap:4px}
.t2w-v29-meal-dist i{font-size:10px}
.t2w-v29-meal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}
.t2w-v29-meal-btn{padding:6px 14px;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;border:none;transition:all .15s}
.t2w-v29-meal-btn--alt{background:#fff;color:var(--t2w-text-warm-secondary,#7a6f5d);border:1px solid var(--t2w-border-warm,#e8e0d0)}
.t2w-v29-meal-btn--alt:hover{background:#f9fafb}
.t2w-v29-meal-btn--select{background:var(--t2w-primary,#FFB700);color:var(--t2w-text-main,#1d180c);font-weight:700;box-shadow:0 2px 6px rgba(255,183,0,0.3)}
.t2w-v29-meal-btn--select:hover{background:#e6a500}
/* v29 Stitch: Transition between places */
.t2w-v29-transition{display:flex;align-items:center;gap:10px;padding:4px 0 4px 68px;font-size:13px;color:var(--t2w-text-warm-secondary,#7a6f5d);margin:0}
.t2w-v29-transition i{font-size:12px}
.t2w-v29-transition--bridge{background:rgba(244,240,230,0.5);border:1px dashed var(--t2w-border-warm,#e8e0d0);border-radius:8px;padding:8px 16px;margin:4px 0 4px 68px;font-style:italic}
.t2w-v29-transition--simple{gap:6px}
/* v32.1: Transport info card between places */
.t2w-v29-transport{background:rgba(244,240,230,0.4);border:1px solid var(--t2w-border-warm,#e8e0d0);border-radius:10px;padding:10px 16px;margin:8px 0 8px 68px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.t2w-transport-dist{font-size:13px;font-weight:700;color:var(--t2w-primary,#FFB700);background:rgba(255,183,0,0.12);padding:3px 10px;border-radius:6px;flex-shrink:0}
.t2w-transport-mode{font-size:13px;color:var(--t2w-text-warm-secondary,#7a6f5d);display:flex;align-items:center;gap:4px;white-space:nowrap}
.t2w-transport-mode i{font-size:12px;width:14px;text-align:center;color:var(--t2w-text-warm-secondary,#7a6f5d)}
/* v32.1: Transport mode selectable chips */
.t2w-transport-chip{padding:5px 12px;border-radius:8px;border:1.5px solid var(--t2w-border-warm,#e8e0d0);background:#fff;font-size:13px;color:var(--t2w-text-warm-secondary,#7a6f5d);cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:all .15s;white-space:nowrap}
.t2w-transport-chip i{font-size:12px;width:14px;text-align:center}
.t2w-transport-chip:hover{border-color:var(--t2w-primary,#FFB700);color:var(--t2w-text-main,#1d180c)}
.t2w-transport-chip--active{background:var(--t2w-primary,#FFB700);border-color:var(--t2w-primary,#FFB700);color:#1d180c;font-weight:700}
.t2w-transport-chip--active i{color:#1d180c}
.t2w-v29-dots{color:#9CA3AF;letter-spacing:3px;font-size:10px}
/* v26 Pro Stitch: Movement card between zones */
.t2w-v29-movement{display:flex;align-items:center;gap:12px;padding:14px 20px;margin:8px 0 8px 8px;background:var(--t2w-surface-warm,#f4f0e6);border:1px dashed var(--t2w-border-warm,#e8e0d0);border-radius:12px;flex-wrap:wrap}
.t2w-v29-mv-modes{display:flex;gap:4px}
.t2w-v29-mv-btn{background:#fff;border:1px solid var(--t2w-border-warm,#e8e0d0);border-radius:8px;padding:5px 10px;font-size:12px;cursor:pointer;display:flex;align-items:center;gap:4px;color:#6B7280;transition:all .15s}
.t2w-v29-mv-btn:hover{border-color:var(--t2w-primary)}
.t2w-v29-mv--active{background:var(--t2w-primary);color:#1d180c;border-color:var(--t2w-primary);font-weight:600}
.t2w-v29-mv-info{font-size:12px;color:var(--t2w-text-warm-secondary,#7a6f5d);font-weight:500}
.t2w-v29-mv-bridge{font-size:12px;color:var(--t2w-text-warm-secondary,#7a6f5d);font-style:italic;width:100%;margin:4px 0 0;line-height:1.5}
/* v26 Pro Stitch: Override old zone card layout → vertical stacking */
#t2w-planner-v2 .t2w-v5-dock-enabled .t2w-zone-card{flex-direction:column;background:transparent;border:none;box-shadow:none;border-left:none;border-radius:0;cursor:default}
#t2w-planner-v2 .t2w-v5-dock-enabled .t2w-zone-card::after{display:none}
#t2w-planner-v2 .t2w-v5-dock-enabled .t2w-zone-card:hover{transform:none;box-shadow:none}
#t2w-planner-v2 .t2w-v5-dock-enabled .t2w-zone-card--free,#t2w-planner-v2 .t2w-v5-dock-enabled .t2w-zone-card--tour,#t2w-planner-v2 .t2w-v5-dock-enabled .t2w-zone-card--pending,#t2w-planner-v2 .t2w-v5-dock-enabled .t2w-zone-card--quote{border-left:none;background:transparent}
#t2w-planner-v2 .t2w-v5-dock-enabled .t2w-card-list{padding:0 8px 16px;gap:0}
#t2w-planner-v2 .t2w-v5-dock-enabled .t2w-card-list::before{display:none}
#t2w-planner-v2 .t2w-v5-dock-enabled .t2w-zone-card-grip{display:none}
#t2w-planner-v2 .t2w-v5-dock-enabled .t2w-zone-card-body{padding:0}
/* v26 Pro Stitch: Warm background for timeline left column */
.t2w-v5-left{background:var(--t2w-bg-warm,#fcfbf8)}
/* v29 Mobile adjustments */
@media(max-width:768px){
.t2w-v29-timeline{margin-left:0}
.t2w-v29-card-thumb{width:64px;height:48px}
.t2w-v29-badge{width:40px}
.t2w-v29-time{font-size:10px}
.t2w-v29-circle{width:24px;height:24px}
.t2w-v29-circle i{font-size:9px}
.t2w-v29-line{left:19px}
.t2w-v29-card-title h3{font-size:14px}
.t2w-v29-card-header{flex-wrap:wrap}
.t2w-v29-card-right{width:100%;justify-content:space-between;margin-top:4px}
.t2w-place-dur-stepper>i{font-size:10px;padding:0 4px 0 6px}
.t2w-place-dur-label{font-size:12px;min-width:38px}
.t2w-place-dur-btn{padding:4px 6px;font-size:12px}
.t2w-v29-transition{padding-left:46px}
.t2w-v29-transport{margin-left:46px;padding:6px 10px;gap:8px}
.t2w-v29-transition--bridge{margin-left:46px;padding-left:12px}
.t2w-v29-meal-photo{width:48px;height:48px}
}
/* v26 Pro Stitch: Rating + category line (under title, inside header) */
.t2w-v29-card-rating{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--t2w-primary,#FFB700);margin-top:4px}
.t2w-v29-card-rating i{font-size:12px}
.t2w-v29-rating-num{font-weight:700;color:var(--t2w-text-main,#1d180c);margin-left:4px}
.t2w-v29-card-cat{font-size:13px;color:var(--t2w-text-warm-secondary,#7a6f5d);font-weight:500}
/* v26 Pro Stitch: Vibe tags */
.t2w-v29-card-vibes{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.t2w-v29-vibe{font-size:12px;padding:3px 10px;border-radius:8px;background:var(--t2w-surface-warm,#f4f0e6);color:var(--t2w-text-warm-secondary,#7a6f5d);font-weight:500;white-space:nowrap}
/* v34: Inline nearby snippets on timeline cards */
.t2w-v29-inline-reco{margin-top:10px;padding-top:10px;border-top:1px dashed rgba(0,0,0,0.08)}
.t2w-v29-inline-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.t2w-v29-inline-head span{font-size:12px;font-weight:700;color:var(--t2w-text-main,#1d180c);display:flex;align-items:center;gap:5px}
.t2w-v29-inline-head span i{font-size:11px;color:var(--t2w-primary,#FFB700)}
.t2w-v29-inline-more{border:none;background:transparent;font-size:11px;font-weight:600;color:var(--t2w-text-warm-secondary,#7a6f5d);cursor:pointer;padding:0}
.t2w-v29-inline-more:hover{color:var(--t2w-primary,#FFB700)}
.t2w-v29-inline-list{display:flex;gap:6px;flex-wrap:wrap}
.t2w-v29-inline-loading,.t2w-v29-inline-empty{font-size:11px;color:var(--t2w-text-warm-secondary,#7a6f5d)}
.t2w-v29-inline-chip{border:1px solid rgba(0,0,0,0.08);background:#fff;border-radius:10px;padding:7px 10px;display:flex;flex-direction:column;align-items:flex-start;gap:2px;cursor:pointer;min-width:120px;max-width:100%;transition:all .15s}
.t2w-v29-inline-chip:hover{border-color:rgba(249,115,22,0.35);background:rgba(249,115,22,0.05)}
.t2w-v29-inline-chip-name{font-size:12px;font-weight:700;color:var(--t2w-text-main,#1d180c);max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.t2w-v29-inline-chip-meta{font-size:10px;color:var(--t2w-text-warm-secondary,#7a6f5d)}
/* v35: Place panel search + Google fallback */
.t2w-panel-place-search-wrap{margin:0 0 12px}
.t2w-panel-place-search{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#fff;border:1px solid #E5E7EB;border-radius:12px}
.t2w-panel-place-search i{color:#9CA3AF;font-size:13px}
.t2w-panel-place-search-input{flex:1;border:none;outline:none;background:transparent;font-size:14px;color:#111827}
.t2w-panel-place-search-clear{width:24px;height:24px;border:none;background:#F3F4F6;color:#6B7280;border-radius:8px;cursor:pointer}
.t2w-panel-place-search-clear--hidden{visibility:hidden}
.t2w-panel-place-search-meta{margin-top:6px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:#6B7280}
.t2w-panel-google-trigger{border:none;background:rgba(59,130,246,0.1);color:#1D4ED8;font-size:12px;font-weight:700;padding:5px 10px;border-radius:999px;cursor:pointer}
.t2w-panel-google-wrap{margin-top:14px;padding:12px;background:#F8FAFF;border:1px solid #DBEAFE;border-radius:14px}
.t2w-panel-google-head{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:800;color:#1D4ED8;margin-bottom:10px}
.t2w-panel-google-list{display:flex;flex-direction:column;gap:8px}
.t2w-panel-google-card{display:grid;grid-template-columns:68px 1fr 34px;gap:10px;align-items:center;background:#fff;border:1px solid #E5E7EB;border-radius:10px;padding:8px}
.t2w-panel-google-thumb{width:68px;height:52px;border-radius:8px;background:#E5E7EB;background-size:cover;background-position:center;position:relative}
.t2w-panel-google-badge{position:absolute;left:6px;top:6px;font-size:10px;font-weight:700;color:#fff;background:rgba(29,78,216,0.85);padding:2px 6px;border-radius:999px}
.t2w-panel-google-body h5{margin:0;font-size:13px;font-weight:700;color:#111827;line-height:1.35}
.t2w-panel-google-meta{margin-top:3px;display:flex;align-items:center;gap:8px;font-size:11px;color:#6B7280}
.t2w-panel-google-meta i{color:#F59E0B}
.t2w-panel-google-body p{margin:3px 0 0;font-size:11px;color:#6B7280;line-height:1.35}
.t2w-panel-google-add{width:34px;height:34px;border:none;border-radius:10px;background:#EEF2FF;color:#1D4ED8;cursor:pointer}
.t2w-panel-google-add:disabled{opacity:.6;cursor:wait}
.t2w-panel-google-loading,.t2w-panel-google-empty{font-size:12px;color:#6B7280;padding:8px 2px}
/* v36: Nearby modal — category tabs + slide-up stage */
.t2w-modal-nearby{width:min(920px,92vw);max-height:88vh;overflow:hidden;display:flex;flex-direction:column}
.t2w-nearby-modal .t2w-modal-header{padding:14px 18px}
.t2w-nearby-modal-close{border:none;background:transparent;color:#6B7280;cursor:pointer}
.t2w-nearby-modal-body{padding:14px 18px 20px;overflow:auto;background:linear-gradient(180deg,#fff 0%,#FFFCF5 100%)}
.t2w-nearby-hero{padding:12px 14px;background:linear-gradient(135deg,#FFF7E6,#EEF2FF);border:1px solid #FDE68A;border-radius:14px;margin-bottom:14px}
.t2w-nearby-hero-title{font-size:15px;font-weight:800;color:#111827;display:flex;align-items:center;gap:6px}
.t2w-nearby-hero p{margin:6px 0 0;font-size:12px;color:#4B5563;line-height:1.55}
.t2w-nearby-chipbar{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.t2w-nearby-chip{border:1px solid #E5E7EB;background:#fff;color:#374151;font-size:12px;font-weight:700;border-radius:999px;padding:7px 12px;display:inline-flex;align-items:center;gap:7px;cursor:pointer;transition:all .18s}
.t2w-nearby-chip:hover{border-color:#F59E0B;background:#FFF7ED}
.t2w-nearby-chip-count{display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;padding:0 6px;background:#F3F4F6;border-radius:999px;font-size:11px;font-weight:700;color:#6B7280}
.t2w-nearby-chip--active{background:#111827;color:#fff;border-color:#111827;box-shadow:0 6px 18px rgba(17,24,39,0.18)}
.t2w-nearby-chip--active .t2w-nearby-chip-count{background:rgba(255,255,255,0.22);color:#fff}
.t2w-nearby-groups{position:relative}
.t2w-nearby-group{display:none}
.t2w-nearby-group--active{display:block;animation:t2w-nearby-slide-up .34s cubic-bezier(.2,.7,.2,1)}
@keyframes t2w-nearby-slide-up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.t2w-nearby-group-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.t2w-nearby-group-head h5{margin:0;font-size:14px;font-weight:800;color:#111827}
.t2w-nearby-group-head span{font-size:11px;color:#6B7280}
.t2w-nearby-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.t2w-nearby-modal-card{border:1px solid #E5E7EB;background:#fff;border-radius:12px;padding:9px;display:grid;grid-template-columns:64px 1fr;gap:9px;align-items:flex-start;text-align:left;cursor:pointer;transition:transform .18s,box-shadow .18s,border-color .18s}
.t2w-nearby-modal-card:hover{border-color:#F59E0B;background:#FFFBEB;transform:translateY(-2px);box-shadow:0 8px 20px rgba(245,158,11,0.14)}
.t2w-nearby-modal-thumb{width:64px;height:64px;border-radius:9px;background:#E5E7EB;background-size:cover;background-position:center;display:block}
.t2w-nearby-modal-info{display:flex;flex-direction:column;gap:4px;min-width:0}
.t2w-nearby-modal-name{font-size:13px;font-weight:800;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.t2w-nearby-modal-hook{font-size:11px;color:#4B5563;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:30px}
.t2w-nearby-modal-features{display:flex;flex-wrap:wrap;gap:4px}
.t2w-nearby-feature{font-size:10px;font-weight:700;color:#92400E;background:#FEF3C7;border:1px solid #FDE68A;padding:2px 6px;border-radius:999px}
.t2w-nearby-modal-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:10px;color:#6B7280}
.t2w-nearby-empty,.t2w-nearby-loading{text-align:center;padding:28px 12px;color:#6B7280}
.t2w-nearby-empty i,.t2w-nearby-loading i{display:block;font-size:22px;margin-bottom:8px;opacity:.55}
/* v35: Place detail signature menu */
.t2w-pd-signature-menu{margin:10px 0 14px;padding:10px 12px;border-radius:10px;border:1px solid #FDE68A;background:#FFFBEB}
.t2w-pd-signature-title{font-size:12px;font-weight:800;color:#92400E;display:flex;align-items:center;gap:6px;margin-bottom:8px}
.t2w-pd-signature-chips{display:flex;flex-wrap:wrap;gap:6px}
.t2w-pd-signature-chip{font-size:11px;font-weight:700;color:#78350F;background:#FEF3C7;padding:4px 8px;border-radius:999px}
@media(max-width:768px){
.t2w-nearby-chipbar{flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px}
.t2w-nearby-cards{grid-template-columns:1fr}
.t2w-nearby-modal-card{grid-template-columns:56px 1fr}
.t2w-nearby-modal-thumb{width:56px;height:56px}
.t2w-modal-nearby{width:94vw}
}
/* v26 Pro Stitch: Hover-only actions (× button) */
.t2w-v29-card-hover-actions{opacity:0;transition:opacity .15s}
.t2w-v29-card:hover .t2w-v29-card-hover-actions{opacity:1}
.t2w-v29-hover-btn{background:none;border:none;color:#D1D5DB;cursor:pointer;padding:4px;border-radius:6px;transition:all .15s}
.t2w-v29-hover-btn:hover{color:#EF4444;background:rgba(239,68,68,0.08)}
/* v26 Pro Stitch: Login hint hidden on desktop */
.t2w-v5-dock-enabled .t2w-tl-login-hint{display:none}
/* v26 Pro Stitch: Search + metrics hidden in Stitch timeline */
.t2w-v5-dock-enabled .t2w-tl-search-wrap{display:none}
.t2w-v5-dock-enabled .t2w-tl-metrics{display:none}
/* ═══ v29 Stitch Planner Header (desktop) ═══ */
.t2w-v29-planner-header{display:none}
@media(min-width:769px){
/* Hide WordPress site header on planner page */
body:has(#t2w-planner-v2) .t2w-app-header,body:has(#t2w-planner-v2) .hp-page__header{display:none!important} /* ext-override */
body:has(#t2w-planner-v2){padding-top:0!important;margin-top:0!important} /* ext-override */
html:has(#t2w-planner-v2){scrollbar-gutter:stable}
/* Planner header bar */
.t2w-v29-planner-header{display:flex;align-items:center;justify-content:space-between;height:64px;background:rgba(252,251,248,0.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--t2w-border-warm,#e8e0d0);position:sticky;top:0;z-index:200;width:100%;max-width:1920px;margin:0 auto;padding:0 48px}
.t2w-v29-ph-left{display:flex;align-items:center;gap:16px}
.t2w-v29-ph-back{display:flex;align-items:center;gap:6px;color:var(--t2w-text-warm-secondary);font-size:14px;font-weight:500;text-decoration:none;transition:color .15s}
.t2w-v29-ph-back:hover{color:var(--t2w-text-main)}
.t2w-v29-ph-back i,.t2w-v29-ph-back .material-symbols-outlined{font-size:14px}
.t2w-v29-ph-divider{width:1px;height:20px;background:var(--t2w-border-warm,#e8e0d0)}
.t2w-v29-ph-title{display:flex;align-items:center;gap:8px;cursor:pointer}
.t2w-v29-ph-title span{font-size:18px;font-weight:700;color:var(--t2w-text-main,#1d180c);letter-spacing:-0.02em}
.t2w-v29-ph-title i,.t2w-v29-ph-title .material-symbols-outlined{font-size:14px;color:var(--t2w-text-warm-secondary);transition:color .15s}
.t2w-v29-ph-title:hover i,.t2w-v29-ph-title:hover .material-symbols-outlined{color:var(--t2w-primary)}
.t2w-v29-ph-right{display:flex;align-items:center;gap:8px}
.t2w-v29-ph-icon{width:40px;height:40px;border-radius:50%;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--t2w-text-main);transition:background .15s;font-size:18px}
.t2w-v29-ph-icon:hover{background:var(--t2w-surface-warm)}
.t2w-v29-ph-cta{background:var(--t2w-primary);color:var(--t2w-text-main);border:none;padding:8px 20px;border-radius:999px;font-size:14px;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:8px;box-shadow:0 2px 8px rgba(255,183,0,0.3);transition:all .15s}
.t2w-v29-ph-cta:hover{background:#e6a500;transform:scale(1.02)}
.t2w-v29-ph-cta i,.t2w-v29-ph-cta .material-symbols-outlined{font-size:14px}
/* v32: Enhanced meal CTA — eye-catching gold gradient + pulse */
#t2w-meal-plan-cta{background:linear-gradient(135deg,#FFB700 0%,#F59E0B 100%);box-shadow:0 2px 12px rgba(255,183,0,0.4);animation:t2w-meal-pulse 2s ease-in-out 3}
#t2w-meal-plan-cta:hover{box-shadow:0 4px 16px rgba(255,183,0,0.5);transform:scale(1.04)}
@keyframes t2w-meal-pulse{0%,100%{box-shadow:0 2px 12px rgba(255,183,0,0.4)}50%{box-shadow:0 4px 24px rgba(255,183,0,0.7)}}
.t2w-meal-cta-badge{width:8px;height:8px;border-radius:50%;background:#10B981;display:none}
.t2w-meal-cta--set .t2w-meal-cta-badge{display:inline-block}
}
/* ═══ v29 Stitch Sidebar Layout (desktop) ═══ */
@media(min-width:769px){
/* v43.2: Show calendar pill bar on desktop for day navigation */
#t2w-planner-v2 .t2w-cal{display:block;position:sticky;top:0;z-index:100;border-bottom:1px solid #E5E7EB}
#t2w-planner-v2 .t2w-weather{display:none}
/* v35.1: Hide meal CTA on desktop — gap warning in dashboard replaces it */
#t2w-meal-plan-cta{display:none!important} /* ext-override — meal-plan-cta is a WooCommerce widget */
/* Hide dock overlay on desktop — sidebar replaces it */
#t2w-planner-v2 .t2w-v5-center{display:none}
/* v43.3: 2-column — sidebar 45% + timeline 55%, full-width with padding */
#t2w-planner-v2 .t2w-v5-main{display:flex;width:100%;max-width:none;margin:0;gap:0;padding:0 24px}
#t2w-planner-v2 .t2w-v5-left{min-width:0;flex:1;border-right:1px solid var(--t2w-border-warm,#e8e0d0);padding:0 16px 0 0;background:var(--t2w-bg-warm,#fcfbf8)}
#t2w-planner-v2 .t2w-v5-left .t2w-tl-body{padding:0 0 96px}
#t2w-planner-v2 .t2w-v5-right{display:none}
#t2w-planner-v2 .t2w-context-panel{display:none}
/* Hide zone separator on desktop — zone info shown in sidebar */
.t2w-v29-zone-sep{display:none}
}
/* ═══ v35.1 Sidebar — Map(top) + Dashboard(bottom, scrollable) ═══ */
.t2w-v29-sidebar{display:none}
@media(min-width:769px){
.t2w-v29-sidebar{display:flex;flex-direction:column;position:sticky;top:64px;height:calc(100vh - 64px);overflow:hidden;background:#fff;width:45%;max-width:560px;flex-shrink:0}
}
/* v43.3: Tablet (769~1024px) — narrower sidebar */
@media(min-width:769px) and (max-width:1024px){
.t2w-v29-sidebar{width:40%}
.t2w-sb-map{height:45%;min-height:180px}
.t2w-dash-stats-compact{gap:2px}
.t2w-dash-stat-c-val{font-size:13px}
.t2w-dash-schedule{display:none}
.t2w-dash-detail-toggle{display:none}
}
/* v43.4: Search-active — hide sidebar when no trip data (desktop) */
@media(min-width:769px){
#t2w-planner-v2 .t2w-planner-search-active .t2w-v29-sidebar{display:none}
#t2w-planner-v2 .t2w-planner-search-active .t2w-v5-left{border-right:none;padding:0}
}
/* v43.4: Pick mode — hide main layout when pick mode is active */
#t2w-planner-v2 .t2w-pick-mode.active ~ .t2w-v5-main{display:none}
/* v43.3: Desktop 1025px+ — no extra rules needed, defaults apply */
/* Sidebar map — v43.3: expanded from 40% to 55% (meal recs moved to timeline) */
.t2w-sb-map{position:relative;height:55%;min-height:260px;flex-shrink:0;border-bottom:1px solid var(--t2w-border-warm,#e8e0d0)}
#t2w-sidebar-minimap{width:100%;height:100%;z-index:1}
.t2w-sb-map-expand{position:absolute;top:12px;left:12px;z-index:400;width:34px;height:34px;border-radius:8px;border:1px solid #E5E7EB;background:#fff;color:#374151;font-size:14px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,0.1);cursor:pointer;padding:0;transition:all .2s}
.t2w-sb-map-expand:hover{border-color:var(--t2w-primary,#FFB700)}
/* Scrollable panel — bottom 60% */
.t2w-sb-panel{flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--t2w-border-warm,#e8e0d0) transparent;background:#fff;padding-bottom:24px}
.t2w-sb-panel::-webkit-scrollbar{width:4px}
.t2w-sb-panel::-webkit-scrollbar-thumb{background:var(--t2w-border-warm,#e8e0d0);border-radius:4px}
/* Trip meta */
.t2w-sb-meta{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--t2w-border-warm,#e8e0d0)}
.t2w-sb-meta-icon{width:32px;height:32px;border-radius:8px;background:rgba(255,183,0,0.12);display:flex;align-items:center;justify-content:center;color:var(--t2w-primary);font-size:13px;flex-shrink:0}
.t2w-sb-meta-text{flex:1;min-width:0}
.t2w-sb-meta-title{font-size:14px;font-weight:700;color:var(--t2w-text-main,#1d180c)}
.t2w-sb-meta-dates{font-size:11px;color:var(--t2w-text-warm-secondary,#7a6f5d)}
.t2w-sb-meta-tag{padding:3px 8px;border-radius:999px;font-size:11px;font-weight:600;background:var(--t2w-surface-warm,#f4f0e6);color:var(--t2w-text-warm-secondary,#7a6f5d);flex-shrink:0}
/* Day tabs — horizontal */
.t2w-sb-daytabs{display:flex;gap:0;border-bottom:1px solid var(--t2w-border-warm,#e8e0d0);background:var(--t2w-bg-warm,#fcfbf8);padding:0 4px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}
.t2w-sb-daytabs::-webkit-scrollbar{display:none}
.t2w-sb-daytab{flex:1;min-width:0;padding:10px 4px;font-size:12px;font-weight:600;color:var(--t2w-text-warm-secondary,#7a6f5d);background:none;border:none;border-bottom:2px solid transparent;text-align:center;transition:all .2s;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer}
.t2w-sb-daytab:hover{color:var(--t2w-text-main,#1d180c);background:rgba(255,183,0,0.04)}
.t2w-sb-daytab--active{color:var(--t2w-text-main,#1d180c);border-bottom-color:var(--t2w-primary,#FFB700);font-weight:700}
.t2w-sb-daytab-num{font-size:11px;font-weight:800;width:22px;height:22px;border-radius:6px;display:flex;align-items:center;justify-content:center;background:var(--t2w-surface-warm,#f4f0e6);color:var(--t2w-text-warm-secondary,#7a6f5d)}
.t2w-sb-daytab--active .t2w-sb-daytab-num{background:var(--t2w-primary,#FFB700);color:var(--t2w-text-main,#1d180c)}
.t2w-sb-daytab-label{font-size:10px;color:var(--t2w-text-warm-secondary,#7a6f5d)}
.t2w-sb-daytab--active .t2w-sb-daytab-label{color:var(--t2w-text-accent,#a18745)}
/* ═══ Day Dashboard ═══ */
.t2w-sb-dash{padding:16px 18px;display:flex;flex-direction:column;gap:14px}
/* Stat grid 2×2 */
.t2w-dash-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.t2w-dash-stat{background:var(--t2w-surface-warm,#f4f0e6);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:4px}
.t2w-dash-stat-label{font-size:10px;font-weight:600;color:var(--t2w-text-warm-secondary,#7a6f5d);text-transform:uppercase;letter-spacing:0.04em;display:flex;align-items:center;gap:5px}
.t2w-dash-stat-label i{font-size:10px;opacity:0.6}
.t2w-dash-stat-value{font-size:20px;font-weight:800;color:var(--t2w-text-main,#1d180c);letter-spacing:-0.02em;line-height:1.2}
.t2w-dash-stat-sub{font-size:11px;color:var(--t2w-text-warm-secondary,#7a6f5d);font-weight:500}
/* Zone time bars */
.t2w-dash-zones{display:flex;flex-direction:column;gap:6px}
.t2w-dash-zones-title{font-size:11px;font-weight:700;color:var(--t2w-text-warm-secondary,#7a6f5d);display:flex;align-items:center;gap:5px}
.t2w-dash-zones-title i{font-size:10px;opacity:0.6}
.t2w-dash-zone-row{display:flex;align-items:center;gap:8px}
.t2w-dash-zone-dot{width:6px;height:22px;border-radius:3px;flex-shrink:0}
.t2w-dash-zone-dot--beach{background:linear-gradient(180deg,#0EA5E9,#38BDF8)}
.t2w-dash-zone-dot--city{background:linear-gradient(180deg,#3B82F6,#60A5FA)}
.t2w-dash-zone-dot--nature{background:linear-gradient(180deg,#10B981,#34D399)}
.t2w-dash-zone-dot--food{background:linear-gradient(180deg,#F59E0B,#FBBF24)}
.t2w-dash-zone-dot--culture{background:linear-gradient(180deg,#8B5CF6,#A78BFA)}
.t2w-dash-zone-dot--daytrip{background:linear-gradient(180deg,#EC4899,#F472B6)}
.t2w-dash-zone-name{font-size:12px;font-weight:600;color:var(--t2w-text-main,#1d180c);min-width:70px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.t2w-dash-zone-bar-wrap{flex:1;height:8px;background:var(--t2w-border-warm,#e8e0d0);border-radius:4px;overflow:hidden}
.t2w-dash-zone-bar{height:100%;border-radius:4px;transition:width 0.6s ease}
.t2w-dash-zone-bar--beach{background:linear-gradient(90deg,#0EA5E9,#38BDF8)}
.t2w-dash-zone-bar--city{background:linear-gradient(90deg,#3B82F6,#60A5FA)}
.t2w-dash-zone-bar--nature{background:linear-gradient(90deg,#10B981,#34D399)}
.t2w-dash-zone-bar--food{background:linear-gradient(90deg,#F59E0B,#FBBF24)}
.t2w-dash-zone-bar--culture{background:linear-gradient(90deg,#8B5CF6,#A78BFA)}
.t2w-dash-zone-bar--daytrip{background:linear-gradient(90deg,#EC4899,#F472B6)}
.t2w-dash-zone-time{font-size:11px;font-weight:700;color:var(--t2w-text-warm-secondary,#7a6f5d);min-width:50px;text-align:right}
/* AI tip */
.t2w-dash-tip{display:flex;gap:10px;padding:12px 14px;background:linear-gradient(135deg,rgba(255,183,0,0.08),rgba(245,158,11,0.04));border-radius:8px;border:1px solid rgba(255,183,0,0.15)}
.t2w-dash-tip-icon{width:28px;height:28px;border-radius:8px;background:rgba(255,183,0,0.12);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:13px}
.t2w-dash-tip-text{font-size:12px;color:var(--t2w-text-main,#1d180c);line-height:1.6;font-weight:500}
.t2w-dash-tip-text strong{color:var(--t2w-text-accent,#a18745);font-weight:700}
/* Quality Score v37.2 */
.t2w-dash-quality{background:linear-gradient(135deg,#FEFCE8,#FEF9C3);border:1px solid #FDE68A;border-radius:10px;padding:12px 14px;margin-bottom:8px}
.t2w-dash-quality-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.t2w-dash-quality-gauge{position:relative;width:64px;height:64px;flex-shrink:0}
.t2w-dash-quality-gauge svg{display:block}
.t2w-dash-quality-num{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:18px;font-weight:800;color:#1d180c;line-height:1}
.t2w-dash-quality-info{flex:1}
.t2w-dash-quality-title{font-size:13px;font-weight:700;color:#1d180c}
.t2w-dash-quality-sub{font-size:10px;color:#7a6f5d;margin-top:2px}
.t2w-dash-quality-bars{display:flex;flex-direction:column;gap:6px}
.t2w-dash-quality-row{display:flex;align-items:center;gap:6px}
.t2w-dash-quality-row-icon{font-size:10px;color:#7a6f5d;width:12px;text-align:center;flex-shrink:0}
.t2w-dash-quality-row-label{font-size:11px;font-weight:600;color:#5A4B2F;width:48px;flex-shrink:0}
.t2w-dash-quality-row-track{flex:1;height:6px;background:#F3F0E8;border-radius:3px;overflow:hidden}
.t2w-dash-quality-row-fill{height:100%;border-radius:3px;transition:width .6s ease}
.t2w-dash-quality-row-val{font-size:10px;font-weight:700;color:#7a6f5d;width:30px;text-align:right;flex-shrink:0}
/* Gap warning */
.t2w-dash-gap{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#FFF7ED;border:1px solid #FED7AA;border-radius:8px}
.t2w-dash-gap-icon{font-size:14px;flex-shrink:0;color:#D97706}
.t2w-dash-gap-text{font-size:12px;color:#92400E;font-weight:600;line-height:1.4;flex:1}
.t2w-dash-gap-action{margin-left:auto;font-size:11px;font-weight:700;color:#D97706;background:none;border:1px solid #FCD34D;border-radius:6px;padding:4px 10px;white-space:nowrap;cursor:pointer;transition:all .2s}
.t2w-dash-gap-action:hover{background:#FEF3C7}
/* Schedule overview */
.t2w-dash-schedule{display:flex;flex-direction:column;gap:2px}
.t2w-dash-schedule-title{font-size:11px;font-weight:700;color:var(--t2w-text-warm-secondary,#7a6f5d);margin-bottom:4px;display:flex;align-items:center;gap:5px}
.t2w-dash-schedule-title i{font-size:10px;opacity:0.6}
.t2w-dash-sched-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;transition:background .2s}
.t2w-dash-sched-item:hover{background:rgba(255,183,0,0.06)}
.t2w-dash-sched-time{font-size:11px;font-weight:700;color:var(--t2w-text-warm-secondary,#7a6f5d);width:36px;text-align:right;flex-shrink:0}
.t2w-dash-sched-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.t2w-dash-sched-dot--depart{background:var(--t2w-blue,#3B82F6)}
.t2w-dash-sched-dot--place{background:var(--t2w-primary,#FFB700)}
.t2w-dash-sched-dot--food{background:#F59E0B}
.t2w-dash-sched-name{font-size:12px;font-weight:600;color:var(--t2w-text-main,#1d180c);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}
.t2w-dash-sched-dur{font-size:10px;color:var(--t2w-text-warm-secondary,#7a6f5d);flex-shrink:0}
/* Leaflet label override — external library, needs specificity */
.t2w-planner-v2 .t2w-minimap-label{background:none!important;border:none!important;box-shadow:none!important;color:#fff;font-size:12px;font-weight:800;padding:0!important;margin:0!important;text-shadow:0 1px 2px rgba(0,0,0,0.3)} /* ext-override: Leaflet DivIcon CSS */
/* v33: Minimap wrapper + controls */
.t2w-minimap-wrapper{position:relative;border-radius:16px;overflow:hidden;flex:1;min-height:200px}
/* v33: Expand button — top-left icon-only */
.t2w-minimap-expand-overlay{position:absolute;top:12px;left:12px;z-index:400;width:36px;height:36px;border-radius:8px;border:1px solid #E5E7EB;background:#fff;color:#374151;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;box-shadow:0 2px 8px rgba(0,0,0,0.1);padding:0}
.t2w-minimap-expand-overlay:hover{background:#F9FAFB;border-color:var(--t2w-primary,#FFB700);color:var(--t2w-text-main,#1d180c)}
.t2w-minimap-expand-overlay i{font-size:15px}
/* v33: Zoom controls — top-right vertical group */
.t2w-minimap-zoom{position:absolute;top:12px;right:12px;z-index:400;display:flex;flex-direction:column;background:#fff;border:1px solid #E5E7EB;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,0.1);overflow:hidden}
.t2w-minimap-zoom-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;font-size:16px;color:#374151;transition:background .15s}
.t2w-minimap-zoom-btn:hover{background:#F3F4F6}
.t2w-minimap-zoom-btn+.t2w-minimap-zoom-btn{border-top:1px solid #E5E7EB}
/* v32.1.1: Smaller minimap markers */
#t2w-planner-v2 .t2w-minimap-marker span{width:20px;height:20px;font-size:10px;border-width:2px}
/* v32.1.1: Transport card quick-add "+" button */
.t2w-transport-add{width:32px;height:32px;border-radius:50%;border:1.5px dashed var(--t2w-border-warm,#e8e0d0);background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--t2w-text-warm-secondary,#7a6f5d);font-size:13px;transition:all .15s;margin-left:auto;flex-shrink:0}
.t2w-transport-add:hover{border-color:var(--t2w-primary,#FFB700);color:var(--t2w-primary,#FFB700);background:rgba(255,183,0,0.06);border-style:solid}
.t2w-transport-route{width:32px;height:32px;border-radius:50%;border:1.5px solid rgba(249,115,22,0.25);background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#F97316;font-size:12px;transition:all .15s;flex-shrink:0}
.t2w-transport-route:hover{border-color:#F97316;background:rgba(249,115,22,0.08)}
/* v32.1.1: Quick-add menu */
.t2w-quick-add-menu{position:absolute;right:0;top:100%;margin-top:4px;z-index:100;background:#fff;border:1.5px solid var(--t2w-border-warm,#e8e0d0);border-radius:12px;box-shadow:0 4px 16px rgba(0,0,0,0.1);padding:6px;min-width:160px;display:flex;flex-direction:column;gap:2px}
.t2w-quick-add-item{padding:10px 14px;border:none;background:none;border-radius:8px;font-size:13px;font-weight:600;color:var(--t2w-text-main,#1d180c);cursor:pointer;display:flex;align-items:center;gap:8px;transition:background .15s;text-align:left;white-space:nowrap}
.t2w-quick-add-item:hover{background:var(--t2w-surface-warm,#f4f0e6)}
.t2w-quick-add-item i{width:16px;text-align:center;color:var(--t2w-primary,#FFB700)}
/* v32.1.1: Transport card needs position:relative for menu */
.t2w-v29-transport{position:relative}
@media(max-width:768px){
.t2w-transport-add{width:44px;height:44px;font-size:16px}
.t2w-transport-route{width:44px;height:44px;font-size:16px}
.t2w-quick-add-item{padding:14px;font-size:14px}
.t2w-minimap-expand-overlay{width:40px;height:40px;font-size:16px}
}
/* v32.1: Confirmed meal slot (auto-inserted by Smart Dining) */
.t2w-confirmed-meal{background:linear-gradient(135deg,rgba(255,183,0,0.08) 0%,rgba(245,158,11,0.04) 100%);border:1.5px solid rgba(255,183,0,0.25);border-radius:14px;padding:14px 16px;margin:0}
.t2w-confirmed-meal-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.t2w-confirmed-meal-icon{font-size:18px}
.t2w-confirmed-meal-label{font-size:14px;font-weight:700;color:var(--t2w-text-main,#1d180c)}
.t2w-confirmed-meal-badge{font-size:10px;font-weight:700;color:#fff;background:linear-gradient(135deg,#3B82F6,#2563EB);padding:2px 8px;border-radius:6px;letter-spacing:0.5px}
.t2w-confirmed-meal-body{margin-bottom:10px}
.t2w-confirmed-meal-name{font-size:15px;font-weight:700;color:var(--t2w-text-main,#1d180c);margin-bottom:4px}
.t2w-confirmed-meal-meta{font-size:13px;color:var(--t2w-text-warm-secondary,#7a6f5d);display:flex;align-items:center;gap:4px}
.t2w-confirmed-meal-hook{font-size:12px;color:var(--t2w-text-warm-secondary,#7a6f5d);margin-top:4px;line-height:1.4}
.t2w-confirmed-meal-actions{display:flex;gap:8px}
.t2w-confirmed-meal-alt,.t2w-confirmed-meal-remove{flex:1;padding:8px 0;border-radius:10px;font-size:12px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:4px;transition:all .15s;min-height:36px}
.t2w-confirmed-meal-alt{background:var(--t2w-bg-warm-soft,#F9F5EE);border:1px solid var(--t2w-border-warm,#e8e0d0);color:var(--t2w-text-main,#1d180c)}
.t2w-confirmed-meal-alt:hover{background:var(--t2w-border-warm,#e8e0d0)}
.t2w-confirmed-meal-remove{background:transparent;border:1px solid rgba(239,68,68,0.3);color:#EF4444}
.t2w-confirmed-meal-remove:hover{background:rgba(239,68,68,0.08)}
/* v31.2: Route numbered markers on main map */
.t2w-route-marker{background:none;border:none}
.t2w-route-marker span{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#FFB700;color:#1d180c;font-size:13px;font-weight:800;border:3px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,0.25)}
/* v29.2: Global Panel (slide-in from right, desktop) */
.t2w-panel.t2w-panel--global{position:fixed;top:0;right:0;bottom:0;width:480px;max-width:100vw;z-index:500;background:rgba(252,251,248,0.97);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);transform:translateX(100%);transition:transform 0.35s cubic-bezier(0.4,0,0.2,1);overflow-y:auto;box-shadow:-8px 0 30px rgba(0,0,0,0.1)}
.t2w-panel.t2w-panel--global.t2w-panel-open{transform:translateX(0)}
.t2w-panel-backdrop{position:fixed;inset:0;z-index:499;background:rgba(0,0,0,0.3);opacity:0;pointer-events:none;transition:opacity 0.3s ease}
.t2w-panel-backdrop.t2w-backdrop-visible{opacity:1;pointer-events:auto}
@media(max-width:768px){
.t2w-panel.t2w-panel--global{position:fixed;top:auto;bottom:0;left:0;right:0;width:100%;height:85vh;transform:translateY(100%);border-radius:20px 20px 0 0}
.t2w-panel.t2w-panel--global.t2w-panel-open{transform:translateY(0)}
}
/* v29.2: Map mode — sidebar hidden, map+timeline 50/50 */
#t2w-planner-v2.t2w-planner--map-mode .t2w-v29-sidebar{display:none}
#t2w-planner-v2.t2w-planner--map-mode .t2w-v5-main{grid-template-columns:1fr 1fr}
#t2w-planner-v2.t2w-planner--map-mode .t2w-v5-right{display:flex;flex-direction:column;grid-column:1;grid-row:1;z-index:10;position:sticky;top:96px;height:calc(100vh - 96px);align-self:start;border-radius:16px;overflow:hidden;box-shadow:0 4px 20px -2px rgba(29,24,12,0.08)}
#t2w-planner-v2.t2w-planner--map-mode .t2w-v5-right .t2w-map{height:100%;flex:1;min-height:0;border-radius:16px}
#t2w-planner-v2.t2w-planner--map-mode .t2w-v5-left{grid-column:2}
#t2w-planner-v2.t2w-planner--map-mode .t2w-v5-right #t2w-map{height:100%;flex:1;min-height:0}
#t2w-planner-v2.t2w-planner--map-mode .t2w-map-close-pill{display:flex}
@media(max-width:768px){
#t2w-planner-v2.t2w-planner--map-mode .t2w-v5-right{position:fixed;inset:0;z-index:500;height:100vh;border-radius:0}
#t2w-planner-v2.t2w-planner--map-mode .t2w-v5-right .t2w-map{height:100%}
#t2w-planner-v2.t2w-planner--map-mode .t2w-map-close-pill{display:flex}
}
/* Map close pill */
.t2w-map-close-pill{position:absolute;top:16px;left:16px;z-index:600;background:rgba(255,255,255,0.92);backdrop-filter:blur(8px);border:none;padding:8px 16px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;display:none;align-items:center;gap:6px;box-shadow:0 2px 10px rgba(0,0,0,0.12);color:var(--t2w-text-main);transition:all .15s}
.t2w-map-close-pill:hover{background:#fff;box-shadow:0 4px 16px rgba(0,0,0,0.16)}

/* v30.0: Map Suggestion Markers */
.t2w-suggestion-dot{width:10px;height:10px;border-radius:50%;opacity:0.45;transition:all .25s ease;cursor:pointer;border:1.5px solid rgba(255,255,255,0.6)}
.t2w-suggestion-dot:hover{opacity:0.75;transform:scale(1.3)}
.t2w-planner-v2 .t2w-suggestion--active{opacity:1;transform:scale(1.8);background:#FFB700;border-color:#fff;box-shadow:0 0 0 4px rgba(255,183,0,0.3);animation:t2w-pulse-gold 1.2s ease-in-out infinite}
@keyframes t2w-pulse-gold{0%,100%{box-shadow:0 0 0 4px rgba(255,183,0,0.3)}50%{box-shadow:0 0 0 8px rgba(255,183,0,0.1)}}
.t2w-suggestion-tooltip{font-size:12px;font-weight:600;padding:4px 10px;background:rgba(0,0,0,0.8);color:#fff;border:none;border-radius:8px}

/* v30.0: Corridor Meal Panel */
.t2w-corridor-panel{margin:12px 0 16px;padding:16px;background:rgba(255,255,255,0.95);backdrop-filter:blur(12px);border:1px solid rgba(0,0,0,0.06);border-radius:16px;box-shadow:0 2px 12px rgba(0,0,0,0.06)}
.t2w-corridor-loading{text-align:center;padding:24px;color:var(--t2w-text-muted,#6B7280);font-size:14px}
.t2w-corridor-loading i{margin-right:8px}
.t2w-corridor-empty{text-align:center;padding:20px;color:var(--t2w-text-muted,#6B7280);font-size:13px}
.t2w-corridor-route{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;background:rgba(15,23,42,0.03);border:1px solid rgba(15,23,42,0.06);border-radius:10px;margin-bottom:10px}
.t2w-corridor-route-path{font-size:12px;font-weight:700;color:var(--t2w-text-main,#1A1A1A);display:flex;align-items:center;gap:6px;min-width:0}
.t2w-corridor-route-path i{font-size:11px;color:#F97316}
.t2w-corridor-route-path{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.t2w-corridor-route-dist{font-size:11px;font-weight:600;color:var(--t2w-text-muted,#6B7280);flex-shrink:0}

/* Route recommendation block */
.t2w-route-reco-wrap{margin-bottom:12px;padding:10px;border:1px solid rgba(59,130,246,0.18);background:rgba(59,130,246,0.05);border-radius:12px}
.t2w-route-reco-head{font-size:12px;font-weight:700;color:#1D4ED8;display:flex;align-items:center;gap:6px;margin-bottom:8px}
.t2w-route-reco-loading,.t2w-route-reco-empty{font-size:12px;color:var(--t2w-text-muted,#6B7280);padding:6px 2px}
.t2w-route-reco-item{width:100%;padding:9px 10px;border:1px solid rgba(0,0,0,0.08);background:#fff;border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;cursor:pointer;margin-bottom:6px;transition:all .15s}
.t2w-route-reco-item:last-child{margin-bottom:0}
.t2w-route-reco-item:hover,.t2w-route-reco-item--hover{border-color:rgba(59,130,246,0.35);background:rgba(59,130,246,0.06)}
.t2w-planner-v2 .t2w-route-reco-item--flash{background:rgba(255,183,0,0.16);border-color:#FFB700}
.t2w-route-reco-name{font-size:12px;font-weight:700;color:var(--t2w-text-main,#1A1A1A);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.t2w-route-reco-meta{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--t2w-text-muted,#6B7280);white-space:nowrap;flex-shrink:0}
.t2w-route-reco-cat{padding:2px 6px;border-radius:999px;background:rgba(59,130,246,0.12);color:#1D4ED8;font-weight:700}
.t2w-route-reco-rating{font-weight:600}
.t2w-route-reco-detour{font-weight:700;color:#F97316}

/* Filter chips */
.t2w-corridor-filters{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.t2w-corridor-chip{padding:6px 14px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid rgba(0,0,0,0.08);background:#fff;cursor:pointer;transition:all .15s;color:var(--t2w-text-main,#1A1A1A)}
.t2w-corridor-chip:hover{background:rgba(249,115,22,0.08);border-color:rgba(249,115,22,0.3)}
.t2w-corridor-chip--active{background:#F97316;color:#fff;border-color:#F97316}

/* Candidate card */
.t2w-corridor-card{display:flex;gap:12px;padding:12px;border:1px solid rgba(0,0,0,0.06);border-radius:12px;margin-bottom:8px;cursor:pointer;transition:all .2s ease;position:relative}
.t2w-corridor-card:hover,.t2w-corridor-card--hover{background:rgba(249,115,22,0.04);border-color:rgba(249,115,22,0.2)}
.t2w-planner-v2 .t2w-corridor-card--flash{background:rgba(255,183,0,0.12);border-color:#FFB700;transition:background .15s}
.t2w-corridor-card-thumb{width:64px;height:64px;border-radius:10px;background-size:cover;background-position:center;flex-shrink:0}
.t2w-corridor-card-body{flex:1;min-width:0}
.t2w-corridor-card-badges{display:flex;gap:6px;margin-bottom:4px;flex-wrap:wrap}
.t2w-corridor-badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:6px;background:rgba(249,115,22,0.1);color:#C2410C}
.t2w-corridor-cuisine{font-size:10px;font-weight:600;padding:2px 8px;border-radius:6px;background:rgba(0,0,0,0.04);color:var(--t2w-text-muted,#6B7280)}
.t2w-corridor-card-name{font-size:14px;font-weight:700;color:var(--t2w-text-main,#1A1A1A);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.t2w-corridor-card-hook{font-size:12px;color:var(--t2w-text-muted,#6B7280);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.t2w-corridor-card-meta{display:flex;gap:8px;align-items:center;margin-top:4px;font-size:11px;color:var(--t2w-text-muted,#6B7280)}
.t2w-corridor-card-meta span{white-space:nowrap}
.t2w-corridor-reviews{opacity:0.7}
.t2w-corridor-detour{font-weight:600}
.t2w-detour--near{color:#16A34A}
.t2w-detour--mid{color:#F59E0B}
.t2w-detour--far{color:#DC2626}

/* Add button */
.t2w-corridor-add-btn{position:absolute;right:12px;bottom:12px;padding:6px 14px;font-size:12px;font-weight:700;border:none;border-radius:8px;background:#F97316;color:#fff;cursor:pointer;transition:all .15s}
.t2w-corridor-add-btn:hover{background:#EA580C;transform:translateY(-1px);box-shadow:0 2px 8px rgba(249,115,22,0.3)}

/* Expand / Close */
.t2w-corridor-expand{width:100%;padding:10px;font-size:13px;font-weight:600;border:1px dashed rgba(0,0,0,0.1);border-radius:10px;background:transparent;cursor:pointer;color:var(--t2w-text-muted,#6B7280);transition:all .15s;margin-top:4px}
.t2w-corridor-expand:hover{background:rgba(0,0,0,0.02);border-color:rgba(0,0,0,0.2)}
.t2w-corridor-close{width:100%;padding:8px;font-size:12px;font-weight:600;border:none;background:transparent;cursor:pointer;color:var(--t2w-text-muted,#6B7280);margin-top:8px}
.t2w-corridor-close:hover{color:var(--t2w-text-main,#1A1A1A)}

/* =============================================
   v31.0 Stitch Design Alignment
   ============================================= */

/* 1. Warm color system (Stitch #fcfbf8 base) */
#t2w-planner-v2{--t2w-bg-warm:#fcfbf8;--t2w-border-warm:#e8e0d0;--t2w-text-warm:#1d180c;--t2w-text-warm-secondary:#7a6f5d;--t2w-surface-warm:#f4f0e6;--t2w-shadow-warm:0 4px 20px -2px rgba(29,24,12,0.05)}
#t2w-planner-v2{background:var(--t2w-bg-warm)}
.t2w-v5-left{background:var(--t2w-bg-warm)}

/* 2. Dock tab — Stitch primary active */
#t2w-planner-v2 .t2w-dock-tab--active{color:var(--t2w-text-warm,#1d180c);background:var(--t2w-primary,#FFB700);font-weight:700}
#t2w-planner-v2 .t2w-dock-tab{background:var(--t2w-surface-warm,#f4f0e6);color:var(--t2w-text-warm-secondary,#7a6f5d)}
#t2w-planner-v2 .t2w-dock-tab:hover:not(.t2w-dock-tab--active){background:#ebe5d5;color:var(--t2w-text-warm)}

/* 3. Place card grid — 2 columns (Stitch) */
#t2w-planner-v2 .t2w-place-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;width:100%}
#t2w-planner-v2 .t2w-place-card{width:auto;min-width:0}
#t2w-planner-v2 .t2w-pc-image{height:140px;border-radius:12px 12px 0 0}

/* 4. Zone card thumb — bigger (Stitch 96-128px) */
#t2w-planner-v2 .t2w-zone-card-thumb{width:80px;height:80px;border-radius:12px}
#t2w-planner-v2 .t2w-zone-card-thumb--placeholder{font-size:28px}

/* 5. Card padding — Stitch p-5 (20px) */
#t2w-planner-v2 .t2w-zone-card .t2w-zone-card-body{padding:16px 18px}

/* 6. Meal card distinction (Stitch gradient) */
#t2w-planner-v2 .t2w-v29-meal-card,#t2w-planner-v2 .t2w-zone-card[data-zone-type="meal"]{background:linear-gradient(135deg,rgba(255,183,0,0.06),#fff);border:1px solid rgba(255,183,0,0.2)}

/* 7. Movement connector — Stitch dashed style */
#t2w-planner-v2 .t2w-v29-movement{background:var(--t2w-surface-warm,#f4f0e6);border:1px dashed var(--t2w-border-warm,#e8e0d0);border-radius:12px;padding:12px 16px}
#t2w-planner-v2 .t2w-v29-transition{color:var(--t2w-text-warm-secondary,#7a6f5d)}

/* 8. Panel title — bigger (Stitch 24px) */
#t2w-planner-v2 .t2w-panel-header .t2w-panel-title{font-size:22px;font-weight:800;color:var(--t2w-text-warm)}
#t2w-planner-v2 .t2w-panel-header{padding:20px 24px 12px}
#t2w-planner-v2 .t2w-panel-content{padding:0 24px 24px}

/* 9. Dock header — Stitch spacing */
#t2w-planner-v2 .t2w-dock-header{padding:20px 24px 14px}

/* 10. AI summary box (Stitch gradient card) */
#t2w-planner-v2 .t2w-ai-summary,#t2w-planner-v2 .t2w-layer3-insight{background:linear-gradient(135deg,rgba(255,183,0,0.08),rgba(255,255,255,0.9));border:1px solid rgba(255,183,0,0.15);border-radius:14px;padding:14px 16px}

/* ── v31 Mobile Stitch Overrides ── */
@media(max-width:768px){
/* Place grid: 2 col stays, tighter gap */
#t2w-planner-v2 .t2w-place-grid{gap:8px}
#t2w-planner-v2 .t2w-pc-image{height:120px}
/* Zone card thumb mobile */
#t2w-planner-v2 .t2w-zone-card-thumb{width:64px;height:64px}
/* Dock tabs: larger touch targets */
#t2w-planner-v2 .t2w-dock-tab{padding:9px 16px;font-size:13px;min-height:36px}
/* Panel mobile: bigger title */
#t2w-planner-v2 .t2w-panel-header .t2w-panel-title{font-size:20px}
#t2w-planner-v2 .t2w-panel-header{padding:16px 20px 10px}
#t2w-planner-v2 .t2w-panel-content{padding:0 20px 20px}
/* Movement cards mobile */
#t2w-planner-v2 .t2w-v29-movement{padding:10px 14px;font-size:13px}
/* Place card: tighter on small screens */
#t2w-planner-v2 .t2w-place-card .t2w-pc-body{padding:8px 10px}
#t2w-planner-v2 .t2w-place-card .t2w-pc-name{font-size:13px}
/* Dock header mobile */
#t2w-planner-v2 .t2w-dock-header{padding:16px 16px 10px}
#t2w-planner-v2 .t2w-dock-zone-name{font-size:18px}
#t2w-meal-plan-cta{display:none!important} /* ext-override — WooCommerce widget */
}
/* v32: Mobile meal CTA banner */
.t2w-meal-cta-banner{margin:8px 0 12px;background:linear-gradient(135deg,rgba(255,183,0,0.12),rgba(245,158,11,0.06));border:1.5px solid rgba(255,183,0,0.3);border-radius:14px;overflow:hidden}
.t2w-meal-cta-banner-inner{display:flex;align-items:center;gap:12px;padding:14px 16px}
.t2w-meal-cta-banner-icon{font-size:28px;flex-shrink:0}
.t2w-meal-cta-banner-text{flex:1}
.t2w-meal-cta-banner-text strong{display:block;font-size:15px;color:var(--t2w-text-warm,#1d180c)}
.t2w-meal-cta-banner-text small{font-size:12px;color:var(--t2w-text-warm-secondary,#7a6f5d)}
.t2w-meal-cta-banner-btn{padding:8px 16px;border-radius:10px;background:var(--t2w-primary,#FFB700);border:none;font-size:13px;font-weight:700;color:#1d180c;white-space:nowrap;cursor:pointer;min-height:44px}
@media(min-width:769px){.t2w-meal-cta-banner{display:none}}
/* v32: Rating chips */
.t2w-meal-pref-chip[data-rating]{min-width:60px;text-align:center}
/* v32: NLP input */
.t2w-meal-pref-nlp{width:100%;padding:10px 14px;border:1.5px solid var(--t2w-border-warm,#e8e0d0);border-radius:10px;font-size:14px;background:#fff;transition:border-color .15s;box-sizing:border-box}
.t2w-meal-pref-nlp:focus{border-color:var(--t2w-primary,#FFB700);outline:none}
.t2w-meal-pref-nlp-hint{font-size:11px;color:var(--t2w-text-warm-secondary,#7a6f5d);margin-top:4px;display:block}
/* v32: Scope radio */
.t2w-meal-pref-scope{display:flex;flex-direction:column;gap:8px}
.t2w-meal-pref-scope label{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}
/* v32: Multi-select chips (allow multiple active) */
.t2w-meal-pref-chips--multi .t2w-meal-pref-chip--active{background:var(--t2w-primary,#FFB700);color:var(--t2w-text-main,#1d180c);border-color:var(--t2w-primary,#FFB700)}
/* v32: Review cards */
.t2w-pd-review-card{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--t2w-border-warm,#e8e0d0)}
.t2w-pd-review-card:last-child{border-bottom:none}
.t2w-pd-review-avatar{width:36px;height:36px;border-radius:50%;background:var(--t2w-primary,#FFB700);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0;color:#1d180c}
.t2w-pd-review-body{flex:1;min-width:0}
.t2w-pd-review-meta{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.t2w-pd-review-stars{color:#FCD34D;font-size:11px}
.t2w-pd-review-date{font-size:11px;color:var(--t2w-text-warm-secondary,#7a6f5d)}
.t2w-pd-review-text{font-size:13px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.t2w-pd-reviews-list{margin-top:12px}
/* v32: Rating distribution */
.t2w-pd-rating-dist{margin-bottom:16px;padding:16px;background:var(--t2w-bg-warm,#FFFDF7);border-radius:12px}
.t2w-pd-rating-row{display:flex;align-items:center;gap:6px;margin:3px 0}
.t2w-pd-rating-label{width:20px;font-size:12px;text-align:right;color:var(--t2w-text-warm-secondary,#7a6f5d)}
.t2w-pd-rating-bar{flex:1;height:8px;border-radius:4px;background:#F3F0EA}
.t2w-pd-rating-fill{height:100%;border-radius:4px;background:#FCD34D}
.t2w-pd-rating-count{width:28px;font-size:11px;color:var(--t2w-text-warm-secondary,#7a6f5d)}
/* v32: More button */
.t2w-pd-reviews-more{width:100%;padding:12px;border:1.5px dashed var(--t2w-border-warm,#e8e0d0);border-radius:12px;background:transparent;font-size:13px;color:var(--t2w-text-warm-secondary,#7a6f5d);cursor:pointer;margin-top:12px}
.t2w-pd-reviews-more:hover{border-color:var(--t2w-primary,#FFB700);color:var(--t2w-text-main,#1d180c)}
/* v32: Inline time picker dropdown */
.t2w-zone-time-edit{position:relative}
.t2w-time-picker-dropdown{position:absolute;top:100%;left:0;z-index:100;background:#fff;border:1.5px solid var(--t2w-border-warm,#e8e0d0);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.12);padding:8px;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;min-width:200px;margin-top:6px}
.t2w-time-opt{padding:8px 4px;border:none;background:transparent;border-radius:8px;font-size:13px;cursor:pointer;color:var(--t2w-text-main,#1d180c);text-align:center;transition:background .15s}
.t2w-time-opt:hover{background:var(--t2w-bg-warm,#FFFDF7)}
.t2w-time-opt--active{background:var(--t2w-primary,#FFB700);color:#1d180c;font-weight:700}
.t2w-time-opt--active:hover{background:var(--t2w-primary,#FFB700)}
@media(max-width:768px){
.t2w-pd-review-card{gap:10px;padding:12px 0}
.t2w-pd-review-avatar{width:32px;height:32px;font-size:12px}
.t2w-pd-review-text{font-size:12px}
.t2w-pd-reviews-more{padding:14px;min-height:44px}
.t2w-time-picker-dropdown{position:fixed;top:auto;bottom:0;left:0;right:0;border-radius:16px 16px 0 0;min-width:100%;grid-template-columns:repeat(4,1fr);padding:16px;margin-top:0}
.t2w-time-opt{padding:12px 4px;font-size:14px;min-height:44px}
}

/* ========================================
   v49.5: Preset Course Selection Overlay
   ======================================== */
.t2w-preset-overlay {
    position: fixed;
    inset: 0;
    z-index: 1100;
    background: var(--t2w-bg-primary, #f8f9fa);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}
.t2w-preset-container {
    max-width: 900px;
    margin: 0 auto;
    padding: 40px 24px 100px;
}
.t2w-preset-header {
    text-align: center;
    margin-bottom: 32px;
}
.t2w-preset-title {
    font-size: 24px;
    font-weight: 800;
    color: var(--t2w-text-primary, #1a202c);
    margin: 0 0 8px;
}
.t2w-preset-subtitle {
    font-size: 14px;
    color: var(--t2w-text-secondary, #6b7280);
    margin: 0;
}
.t2w-preset-cards {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* Preset Card */
.t2w-preset-card {
    background: var(--t2w-bg-card, #fff);
    border-radius: var(--t2w-radius-lg, 16px);
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    padding: 20px;
    cursor: pointer;
    transition: all 0.2s ease;
    border: 2px solid transparent;
}
.t2w-preset-card:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,0.1);
    transform: translateY(-2px);
}
.t2w-preset-card.selected {
    border-color: var(--color-primary, #FFB700);
    box-shadow: 0 4px 16px rgba(255, 183, 0, 0.2);
}
.t2w-preset-card__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}
.t2w-preset-card__title {
    font-size: 17px;
    font-weight: 700;
    color: var(--t2w-text-primary, #1a202c);
    margin: 0;
    line-height: 1.3;
}
.t2w-preset-card__meta {
    display: flex;
    gap: 8px;
    flex-shrink: 0;
}
.t2w-preset-card__tag {
    font-size: 11px;
    font-weight: 600;
    padding: 3px 8px;
    border-radius: 6px;
    white-space: nowrap;
}
.t2w-preset-card__tag--days {
    background: rgba(79, 209, 197, 0.12);
    color: #0d9488;
}
.t2w-preset-card__tag--companion {
    background: rgba(255, 183, 0, 0.1);
    color: var(--color-primary, #FFB700);
}
.t2w-preset-card__desc {
    font-size: 13px;
    color: var(--t2w-text-secondary, #6b7280);
    margin: 0 0 14px;
    line-height: 1.5;
}
.t2w-preset-card__places {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}
.t2w-preset-card__place {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    font-weight: 500;
    color: var(--t2w-text-primary, #1a202c);
    background: var(--t2w-bg-secondary, #f3f4f6);
    padding: 4px 10px;
    border-radius: 8px;
}
.t2w-preset-card__place .material-symbols-outlined {
    font-size: 14px;
    color: var(--color-primary, #FFB700);
}
.t2w-preset-card__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 100%;
    margin-top: 16px;
    padding: 12px;
    border: none;
    border-radius: var(--t2w-radius-md, 12px);
    background: var(--color-primary, #FFB700);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s ease;
    font-family: inherit;
}
.t2w-preset-card__cta:hover {
    background: #E5A400;
    transform: scale(1.02);
}
.t2w-preset-card__cta .material-symbols-outlined {
    font-size: 18px;
}

/* Footer skip button */
.t2w-preset-footer {
    text-align: center;
    margin-top: 24px;
}
.t2w-preset-skip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 12px 24px;
    border: 1.5px solid var(--t2w-border, #e5e7eb);
    border-radius: var(--t2w-radius-md, 12px);
    background: var(--t2w-bg-card, #fff);
    color: var(--t2w-text-secondary, #6b7280);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    font-family: inherit;
}
.t2w-preset-skip:hover {
    border-color: var(--color-primary, #FFB700);
    color: var(--t2w-text-primary, #1a202c);
}
.t2w-preset-skip .material-symbols-outlined {
    font-size: 18px;
}

/* Loading state */
.t2w-preset-loading {
    text-align: center;
    padding: 60px 20px;
    color: var(--t2w-text-secondary, #6b7280);
}
.t2w-preset-loading .material-symbols-outlined {
    font-size: 40px;
    color: var(--color-primary, #FFB700);
    animation: t2w-spin 1s linear infinite;
    display: block;
    margin: 0 auto 12px;
}

/* Empty state */
.t2w-preset-empty {
    text-align: center;
    padding: 60px 20px;
    color: var(--t2w-text-secondary, #6b7280);
}
.t2w-preset-empty .material-symbols-outlined {
    font-size: 48px;
    color: var(--t2w-border, #e5e7eb);
    display: block;
    margin: 0 auto 12px;
}

/* Mobile responsive */
@media (max-width: 768px) {
    .t2w-preset-container {
        padding: 24px 16px 100px;
    }
    .t2w-preset-title {
        font-size: 20px;
    }
    .t2w-preset-card {
        padding: 16px;
    }
    .t2w-preset-card__title {
        font-size: 15px;
    }
    .t2w-preset-card__top {
        flex-direction: column;
        gap: 8px;
    }
    .t2w-preset-card__cta {
        min-height: 48px;
    }
    .t2w-preset-skip {
        min-height: 48px;
    }
}

/* Tablet */
@media (min-width: 769px) and (max-width: 1024px) {
    .t2w-preset-container {
        padding: 32px 20px 80px;
    }
}

/* ── Share Panel (v49.6) ── */
.t2w-share-panel {
    position: fixed; inset: 0; z-index: 1200;
    background: rgba(0,0,0,.45);
    display: flex; align-items: center; justify-content: center;
    animation: t2w-fade-in .2s ease;
}
.t2w-share-panel__inner {
    background: var(--t2w-bg-primary, #fff);
    border-radius: 16px;
    padding: 28px 24px;
    max-width: 420px; width: calc(100% - 32px);
    box-shadow: 0 8px 40px rgba(0,0,0,.15);
}
.t2w-share-panel__header {
    text-align: center; margin-bottom: 20px;
}
.t2w-share-panel__header .material-symbols-outlined {
    font-size: 40px; color: var(--t2w-color-success, #10B981);
}
.t2w-share-panel__header h3 {
    font-size: 18px; font-weight: 700; margin: 8px 0 0;
    color: var(--t2w-text-primary, #111827);
}
.t2w-share-panel__toggle {
    display: flex; align-items: center; gap: 12px;
    padding: 14px 16px; border-radius: 10px;
    background: var(--t2w-bg-secondary, #F9FAFB);
    margin-bottom: 12px;
}
.t2w-share-toggle {
    position: relative; width: 44px; height: 24px; flex-shrink: 0;
}
.t2w-share-toggle input { opacity: 0; width: 0; height: 0; }
.t2w-share-toggle__slider {
    position: absolute; inset: 0; border-radius: 12px;
    background: var(--t2w-border-primary, #D1D5DB);
    transition: background .2s; cursor: pointer;
}
.t2w-share-toggle__slider::before {
    content: ''; position: absolute; width: 18px; height: 18px;
    border-radius: 50%; background: #fff;
    top: 3px; left: 3px; transition: transform .2s;
}
.t2w-share-toggle input:checked + .t2w-share-toggle__slider {
    background: var(--t2w-color-primary, #3B82F6);
}
.t2w-share-toggle input:checked + .t2w-share-toggle__slider::before {
    transform: translateX(20px);
}
.t2w-share-toggle__label {
    font-size: 14px; font-weight: 500;
    color: var(--t2w-text-primary, #374151);
}
.t2w-share-panel__link {
    display: flex; gap: 8px; margin-bottom: 16px;
}
.t2w-share-link__input {
    flex: 1; padding: 10px 12px; border: 1px solid var(--t2w-border-primary, #D1D5DB);
    border-radius: 8px; font-size: 13px; background: var(--t2w-bg-primary, #fff);
    color: var(--t2w-text-secondary, #6B7280);
}
.t2w-share-link__copy {
    padding: 8px 12px; border: 1px solid var(--t2w-border-primary, #D1D5DB);
    border-radius: 8px; background: var(--t2w-bg-primary, #fff); cursor: pointer;
    transition: background .15s;
}
.t2w-share-link__copy:hover {
    background: var(--t2w-bg-secondary, #F3F4F6);
}
.t2w-share-panel__actions {
    display: flex; gap: 8px; justify-content: flex-end;
}
.t2w-share-panel__btn {
    padding: 10px 20px; border-radius: 8px; font-size: 14px;
    font-weight: 600; cursor: pointer; border: none; transition: opacity .15s;
}
.t2w-share-panel__btn--share {
    background: var(--t2w-color-primary, #3B82F6); color: #fff;
    display: inline-flex; align-items: center; gap: 6px;
}
.t2w-share-panel__btn--close {
    background: var(--t2w-bg-secondary, #F3F4F6);
    color: var(--t2w-text-primary, #374151);
}
.t2w-share-panel__btn:hover { opacity: .85; }

@media (max-width: 768px) {
    .t2w-share-panel { align-items: flex-end; }
    .t2w-share-panel__inner {
        border-radius: 16px 16px 0 0;
        max-width: 100%; width: 100%;
        padding: 24px 16px 32px;
    }
}
