/**
 * AllPlanner 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
   ======================================== */

/* S265: 내 위치 버튼(줌 아래) + 파란 점 마커 — map.js initLocateControl/_onLocFix 짝 */
.t2w-map-locate-btn {
    width: 40px; height: 40px; border-radius: 10px;
    border: 1.5px solid #E5E7EB; background: #fff; color: #374151;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; box-shadow: 0 2px 8px rgba(0,0,0,0.15);
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.t2w-map-locate-btn .material-symbols-outlined { font-size: 19px; }
.t2w-map-locate-btn:hover { background: #F3F4F6; border-color: #D1D5DB; }
.t2w-map-locate-btn.is-on { background: var(--t2w-primary, #FFB700); border-color: var(--t2w-primary, #FFB700); color: var(--t2w-text-main, #1d180c); }
.t2w-map-locate-btn.is-loading .material-symbols-outlined { animation: t2w-loc-spin 1s linear infinite; }
@keyframes t2w-loc-spin { to { transform: rotate(360deg); } }
.t2w-map-locdot span {
    display: block; width: 14px; height: 14px; margin: 2px; border-radius: 50%;
    background: #3B82F6; border: 2.5px solid #fff; position: relative;
    box-shadow: 0 0 0 2px rgba(59,130,246,0.35), 0 2px 6px rgba(0,0,0,0.3);
}
.t2w-map-locdot span::after {
    content: ""; position: absolute; inset: -7px; border-radius: 50%;
    border: 2px solid rgba(59,130,246,0.45);
    animation: t2w-loc-pulse 2s ease-out infinite;
}
@keyframes t2w-loc-pulse {
    0% { transform: scale(0.5); opacity: 1; }
    100% { transform: scale(1.6); opacity: 0; }
}
@media (max-width: 768px) {
    .t2w-map-locate-btn { width: 44px; height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
    .t2w-map-locdot span::after { animation: none; }
    .t2w-map-locate-btn.is-loading .material-symbols-outlined { animation: none; }
}

/* 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-planner-v2 .t2w-facility-btn {
        min-width: 44px;
        min-height: 44px;
        justify-content: center;
        padding: 6px 8px;
        font-size: 11px;
    }
    #t2w-planner-v2 .t2w-facility-btn span:not(.material-symbols-outlined) {
        display: none;
    }
    #t2w-planner-v2 .t2w-facility-btn .material-symbols-outlined {
        display: inline-flex;
        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;
    }
    
    /* v42.2: Mobile touch target — minimum 44px for WCAG compliance */
    
    .t2w-v7-dur-time { font-size: 10px; }
    .t2w-v7-dur-range { font-size: 7px; }
    
    .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::before { display: none; }
#t2w-planner-v2 .t2w-v29-item + .t2w-trp-v2 { margin-top: -8px; }



.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-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--on {
    background: var(--t2w-dark, #181610); color: #fff;
    border-color: var(--t2w-dark, #181610);
}

/* S189: Google Maps nav button — demoted to navy outline (gold reserved for commerce CTA) */
.t2w-trp-v2-nav {
    display: inline-flex; align-items: center; justify-content: center; gap: 3px;
    padding: 5px 9px; border-radius: 8px; flex: none;
    background: transparent; border: 1px solid var(--color-secondary); color: var(--color-secondary); text-decoration: none;
    font-weight: 600; white-space: nowrap; line-height: 1;
    transition: background .12s, border-color .12s, transform .1s;
}
.t2w-trp-v2-nav:hover { background: rgba(24,22,16,0.06); border-color: var(--color-secondary); transform: translateY(-1px); color: var(--color-secondary); }
.t2w-trp-v2-nav .material-symbols-outlined { font-size: 14px; }
.t2w-trp-v2-nav-label { font-size: 11px; }

@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--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: var(--color-bg-cream); border: 1px solid var(--color-secondary); border-radius: 12px;
    cursor: pointer; transition: all 0.2s;
}
.t2w-fullday-nav:hover { background: rgba(24,22,16,0.04); border-color: var(--color-secondary); transform: translateY(-1px); }
.t2w-fullday-nav-icon {
    width: 36px; height: 36px; border-radius: 8px;
    background: rgba(24,22,16,0.08);
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.t2w-fullday-nav-icon i { font-size: 16px; color: var(--color-secondary); }
.t2w-fullday-nav-text { text-align: left; flex: 1; min-width: 0; }
.t2w-fullday-nav-title { font-size: 14px; font-weight: 700; color: var(--color-text-primary); display: flex; align-items: center; gap: 4px; }
.t2w-fullday-nav-title i { font-size: 12px; }
.t2w-fullday-nav-sub { font-size: 11px; color: var(--color-text-muted); margin-top: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.t2w-fullday-nav-ext { color: var(--color-text-muted); 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;
}


/* 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 {
    /* (S270 접기: L806 병합) */
    display: block;
    overflow-x: hidden;
    padding-bottom: 6px;
    flex: 1;
    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 {
    /* (S270 접기: L260 병합) */
    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;
    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 {
    /* (S270 접기: L275 병합) */
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 11px;
    color: var(--t2w-text-dim, #9CA3AF);
    flex-shrink: 0;
    display: flex; align-items: center; gap: 6px;
    font-size: 12px; font-weight: 500; color: #6B7280;
}
.t2w-trp-v2-icon {
    /* (S270 접기: L283 병합) */
    font-size: 15px;
    color: var(--t2w-text-sec, #6B7280); 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 {
    /* (S270 접기: L304 병합) */
    display: flex;
    gap: 3px;
    margin-left: auto;
    align-items: center;
    flex-shrink: 0; 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 {
    /* (S270 접기: L320 병합) */
    font-size: 13px; font-size: 14px; }
.t2w-trp-v2-chip:hover {
    /* (S270 접기: L321 병합) */
    border-color: var(--color-primary); color: #E5A400; 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 {
    /* (S270 접기: L326 병합) */
    opacity: 0.85; color: #fff; 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: var(--t2w-amber-ink, #8a5a00);
    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--must::before { width: 3.5px; }

/* Card body — photo 180px, desc line-height */



/* Vibe tags — v4 gold pill */


/* --- F6: Inline nearby — dot + chip style --- */


.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 REMOVED (S172): 죽은 옛 tour-compare 디자인(흰 배경·금 테두리 카드) 제거.
   현재 디자인(아래 L3653~ 블루 그라데이션 블록)과 충돌 → 옛 `.t2w-tour-compare-cta{width:100%}`가
   footer flex 전체를 먹어 투어 이름이 width:0으로 찌부러지고, 옛 head 금색띠/padding이 누수됐음.
   B 블록이 head/badge/cta/base를 전부 커버함(라이브 computed 실측 확인: 이름 0→480px·cta 550→72px). */

/* --- 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 {
    /* S171 플랜2: 여러 곳 가로 슬라이드 (한 줄 스크롤). base는 enhancements.css:6079. */
    padding: 12px 14px; gap: 10px;
    flex-wrap: nowrap;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
}
.t2w-tl-meal-mini-cards::-webkit-scrollbar { display: none; }
.t2w-tl-meal-mini {
    flex: 0 0 auto; min-width: 150px; max-width: 200px;
    padding: 10px; border-radius: 10px;
    gap: 10px;
    cursor: pointer;
    scroll-snap-align: start;
    transition: background .15s, transform .1s;
}
.t2w-tl-meal-mini:hover { background: rgba(255,183,0,.08); }
.t2w-tl-meal-mini:active { transform: scale(.98); }
.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: var(--t2w-amber-ink, #8a5a00); 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; }
/* Phase 3: extend the generation-moment cascade beyond the first stops */
.t2w-v29-item:nth-child(4) { animation-delay: .15s; }
.t2w-v29-item:nth-child(5) { animation-delay: .2s; }
.t2w-v29-item:nth-child(6) { animation-delay: .25s; }
.t2w-v29-item:nth-child(7) { animation-delay: .3s; }
.t2w-v29-item:nth-child(8) { animation-delay: .35s; }
.t2w-v29-item:nth-child(9) { animation-delay: .4s; }
.t2w-v29-item:nth-child(n+10) { animation-delay: .45s; }
.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 {
        flex: none; padding: 7px 10px;
    }
    .t2w-tl-filters { padding: 4px 0 8px; }
    .t2w-v29-return { padding: 12px; }
    .t2w-departure-v3 { padding: 10px 12px; }
    /* S171 플랜2: 모바일도 가로 슬라이드 (세로 stack 제거) */
    .t2w-tl-meal-mini-cards { flex-direction: row; }
    .t2w-tl-meal-mini { flex: 0 0 auto; min-width: 144px; }
    .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:not(.t2w-v29-card--collapsed) {
    box-shadow: 0 4px 16px rgba(0,0,0,.06);
}


/* ── 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;
}


/* ── 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; }
}

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

/* ── Hero Card: Override v29 card to show banner image ── */



/* ── Hero Image Banner ── */
.t2w-v44-hero {
    /* (S270 접기: L3025 병합) */
    transition: height .25s ease;
    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: var(--t2w-amber-ink, #8a5a00); /* S203 대비: 별점 가독성(흰 배경) */
    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: var(--t2w-amber-ink, #8a5a00); }
.t2w-v44-meal-name { font-size: 12px; color: #6B7280; margin-top: 1px; }
.t2w-v44-meal-price { font-size: 12px; color: var(--t2w-amber-ink, #8a5a00); 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 {
    /* (S270 접기: L236 병합) */
    padding: 1px; height: 28px;
        margin-left: 26px; /* align under content, past grip */
        margin-top: 2px; min-width: 60px; }
    .t2w-v7-dur-btn {
    /* (S270 접기: L242 병합) */
    width: 36px; max-width: 36px; min-width: 36px; height: 36px; font-size: 16px; min-width: 28px; min-height: 28px; }
    .t2w-v7-toggle {
    /* (S270 접기: L245 병합) */
    margin: auto 0 auto 6px; margin-top: 4px; 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 */

/* 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{
    /* (S270 접기: L3482 병합) */
    font-family:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,'Pretendard','Noto Sans KR',sans-serif;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}

/* 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-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 */
/* S172: 좌우 margin 0→10px — 같은 zone-card 안 장소행(.t2w-v29-timeline padding-left:10px → 277)에 카드 좌측 정렬(이전 267, 10px 어긋남). */
.t2w-tour-compare{margin:12px 10px 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-reviews{font-size:11px;color:#6B7280} /* S405: 별점 없이 후기만 있을 때 「후기 N개」 */
.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;display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:44px}
.t2w-tour-compare-cta:hover{background:#1D4ED8;color:#fff}
.t2w-tour-compare-cta:focus-visible{outline:2px solid var(--t2w-gold,#F59E0B);outline-offset:2px}
/* 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 12px;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}


/* 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}


/* v10.6: Zone card category color accent on grip + hover lift */

.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-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-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-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:flex;align-items:center;justify-content:center;min-height:44px;text-decoration:none}
.t2w-dock-tour-btn:focus-visible{outline:2px solid var(--t2w-gold,#F59E0B);outline-offset:2px}
.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-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;min-height:44px;box-sizing:border-box;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}

/* 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}
/* QW4 (S191): insight icons -> warm tokens (variables.css §1b). */
.t2w-pd-insight--who .t2w-pd-insight-icon{background:var(--color-tag-honey-bg);color:var(--color-tag-honey-text)}
.t2w-pd-insight--when .t2w-pd-insight-icon{background:var(--color-tag-amber-bg);color:var(--color-tag-amber-text)}
.t2w-pd-insight--avoid .t2w-pd-insight-icon{background:var(--color-tag-rust-bg);color:var(--color-tag-rust-text)}
.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-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:var(--t2w-amber-ink,#8a5a00)}
.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}
/* S185: 연예인 다녀간 곳 필터 칩 + 패널 카드 배지 (teal 토큰) */
#t2w-planner-v2 .t2w-panel-cat-chip--celeb{background:rgba(var(--color-accent-teal-rgb),0.12);color:var(--color-accent-teal);border-color:rgba(var(--color-accent-teal-rgb),0.45)}
#t2w-planner-v2 .t2w-panel-cat-chip--celeb.active{background:var(--color-accent-teal);color:#fff;border-color:var(--color-accent-teal)}
#t2w-planner-v2 .t2w-panel-cat-chip--celeb .material-symbols-outlined{font-size:13px;vertical-align:middle;margin-right:2px}
#t2w-planner-v2 .t2w-panel-celeb-badge{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:600;padding:2px 7px;border-radius:10px;background:rgba(var(--color-accent-teal-rgb),0.12);color:var(--color-accent-teal);white-space:nowrap;max-width:140px;overflow:hidden;text-overflow:ellipsis}
#t2w-planner-v2 .t2w-panel-celeb-badge .material-symbols-outlined{font-size:11px;flex-shrink:0}
/* 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{
    /* (S270 접기: L3560 병합) */
    color:#1F2937;font-size:15px;line-height:1.6;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{
    /* (S270 접기: L3628 병합) */
    font-weight:700;color:inherit;font-size:12px}
#t2w-planner-v2 .t2w-cal-pill-date{
    /* (S270 접기: L3629 병합) */
    color:inherit;font-size:12px}
#t2w-planner-v2 .t2w-dock-card-reviews{font-size:12px}
#t2w-focus-dock .t2w-dock-place-reviews{
    /* (S270 접기: L3658 병합) */
    font-size:11px;color:#6B7280;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{
    /* (S270 접기: L3655 병합) */
    font-size:12px;color:#6B7280;margin-top:2px;font-size:13px}
#t2w-focus-dock .t2w-dock-card-sub{
    /* (S270 접기: L3684 병합) */
    font-size:12px;color:#6B7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;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{
    /* (S270 접기: L3654 병합) */
    font-size:15px;font-weight:700;color:#1F2937;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:16px}
#t2w-focus-dock .t2w-dock-card-name{
    /* (S270 접기: L3683 병합) */
    font-size:15px;font-weight:700;color:#1F2937;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .15s;font-size:16px}
#t2w-planner-v2 .t2w-zone-card-name{font-size:18px}
/* v11.0: Emotional copy — critical inline */


.t2w-micro-copy{font-size:13px;color:#6B7280;font-style:italic;margin:4px 0 8px 36px;line-height:1.5}

.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{
    /* (S270 접기: L3526 병합) */
    bottom:16px;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 */
/* S255 UX 리프레시: 히어로 — 인셋 라운드 카드 + 3단 스크림 + 글래스 평점 칩 */
.t2w-pd-hero{position:relative;height:252px;margin:10px 12px 0;background-size:cover;background-position:center;border-radius:18px;background-color:var(--t2w-surface-warm,#f4f0e6);overflow:hidden}
.t2w-pd-hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0.10) 0%,transparent 38%,rgba(20,15,6,0.72) 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:18px 18px 16px}
.t2w-pd-hero-name{color:#fff;font-size:22px;font-weight:800;line-height:1.25;letter-spacing:-0.01em;text-shadow:0 2px 14px rgba(0,0,0,0.35)}
.t2w-pd-hero-name-en{color:rgba(255,255,255,0.75);font-size:13px;font-weight:400;margin-top:2px;display:block}
.t2w-pd-hero-sub{color:#fff;font-size:13px;display:flex;gap:8px;align-items:center;margin-top:9px}
.t2w-pd-hero-rating{display:inline-flex;align-items:center;gap:4px;font-weight:700;background:rgba(255,255,255,0.16);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,0.22);border-radius:999px;padding:4px 11px}
.t2w-pd-hero-reviews{font-size:12px;opacity:0.85}
/* S255 UX 리프레시: 시설 바 — 회색 분할 박스 → 웜 알약 칩 (가로 스크롤) */
.t2w-pd-facility-bar{display:flex;flex-wrap:nowrap;gap:6px;padding:12px 16px 2px;background:#fff;border-bottom:none;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.t2w-pd-facility-bar::-webkit-scrollbar{display:none}
.t2w-pd-facility{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;text-align:left;font-size:12px;font-weight:600;color:var(--t2w-text-warm-secondary,#7a6f5d);background:var(--t2w-surface-warm,#f4f0e6);border:none;border-right:none;border-radius:999px;padding:6px 12px;white-space:nowrap}
.t2w-pd-facility .material-symbols-outlined{font-size:15px;color:var(--t2w-text-accent,#a18745)}
.t2w-pd-facility--ticket{color:var(--color-tag-gold-text);background:var(--color-tag-gold-bg)}
.t2w-pd-facility--ticket .material-symbols-outlined{color:var(--color-tag-gold-text)}
/* S188: place-detail render error fallback (defensive — exception must not leave sheet blank) */
.t2w-pd-render-error{padding:28px 20px;text-align:center;color:var(--color-text-secondary)}
.t2w-pd-render-error .material-symbols-outlined{font-size:32px;color:var(--color-text-muted);display:block;margin:0 auto 8px}
.t2w-pd-render-error p{margin:0;font-size:14px}
/* S255: 올플 브리핑 카드 — 정보 2층 구조의 2층(올플의 말·판단). 분석 시각 항상 노출(정직성). */
.t2w-pd-briefing{background:linear-gradient(168deg,var(--color-bg-cream) 0%,#fff 88%);border:1px solid var(--color-primary);border-radius:16px;padding:16px;margin-bottom:14px;box-shadow:0 2px 10px rgba(255,183,0,0.08)}
.t2w-pd-briefing__head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.t2w-pd-briefing__who{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:800;color:var(--color-primary-dark)}
.t2w-pd-briefing__who .material-symbols-outlined{font-size:17px;color:var(--color-primary)}
.t2w-pd-briefing__age{font-size:11px;color:var(--color-text-muted);font-weight:500}
.t2w-pd-briefing__one{margin:0 0 10px;font-size:15px;line-height:1.5;font-weight:700;color:var(--color-text-primary)}
.t2w-pd-briefing__sec{margin-bottom:10px}
.t2w-pd-briefing__sec h5{display:flex;align-items:center;gap:5px;margin:0 0 4px;font-size:12px;font-weight:700;color:var(--color-primary-dark)}
.t2w-pd-briefing__sec h5 .material-symbols-outlined{font-size:15px;color:var(--color-primary)}
.t2w-pd-briefing__sec p{margin:0;font-size:13px;line-height:1.6;color:var(--color-text-primary)}
.t2w-pd-briefing__sec ul{margin:0;padding-left:18px}
.t2w-pd-briefing__sec li{font-size:13px;line-height:1.6;color:var(--color-text-primary)}
.t2w-pd-briefing__chips{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.t2w-pd-briefing__chips .material-symbols-outlined{font-size:15px;color:var(--color-primary)}
.t2w-pd-briefing__chip{font-size:12px;padding:3px 10px;border-radius:999px;background:var(--color-tag-amber-bg);color:var(--color-tag-amber-text);font-weight:600}
.t2w-pd-briefing__ask{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid var(--color-primary);border-radius:999px;background:var(--color-white);color:var(--color-primary-dark);font-size:13px;font-weight:700;cursor:pointer;transition:background .15s}
.t2w-pd-briefing__ask:hover{background:var(--color-primary);color:#fff}
.t2w-pd-briefing__ask .material-symbols-outlined{font-size:16px}
.t2w-pd-briefing__wait{display:flex;align-items:center;gap:8px;margin:0;font-size:13px;color:var(--color-text-secondary)}
.t2w-pd-briefing__wait .material-symbols-outlined{font-size:18px;color:var(--color-primary)}
/* S256: 올플 메모 — 날짜·동선 즉석 계산 미니 행 */
.t2w-pd-briefing__ctx{display:flex;flex-direction:column;gap:4px;margin-bottom:10px;padding:8px 10px;border-radius:10px;background:var(--t2w-surface-warm,var(--color-bg-cream))}
.t2w-pd-briefing__ctx-row{display:flex;align-items:center;gap:6px;font-size:12.5px;line-height:1.5;color:var(--color-text-secondary)}
.t2w-pd-briefing__ctx-row .material-symbols-outlined{font-size:15px;color:var(--color-primary)}
/* S256: heads_up — 웹 근거 있는 변동 소식만 */
.t2w-pd-briefing__heads{margin-bottom:10px;padding:8px 10px;border-radius:10px;background:var(--color-tag-amber-bg)}
.t2w-pd-briefing__heads h5{display:flex;align-items:center;gap:5px;margin:0 0 4px;font-size:12px;font-weight:700;color:var(--color-tag-amber-text)}
.t2w-pd-briefing__heads h5 .material-symbols-outlined{font-size:15px}
.t2w-pd-briefing__heads ul{margin:0;padding-left:18px}
.t2w-pd-briefing__heads li{font-size:13px;line-height:1.6;color:var(--color-text-primary)}
.t2w-pd-briefing__heads li a{font-size:11px;font-weight:700;color:var(--color-primary-dark);text-decoration:underline}
/* S256: 관리자 재생성 버튼 */
.t2w-pd-briefing__regen{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid var(--color-border-light,#eee);border-radius:999px;background:var(--color-white);color:var(--color-text-muted);cursor:pointer}
.t2w-pd-briefing__regen:hover{color:var(--color-primary-dark);border-color:var(--color-primary)}
.t2w-pd-briefing__regen .material-symbols-outlined{font-size:16px}
.t2w-pd-briefing__regen--busy .material-symbols-outlined{animation:t2w-spin 1s linear infinite}
@media (max-width: 768px){
    .t2w-pd-briefing{padding:14px;border-radius:12px}
    .t2w-pd-briefing__one{font-size:14px}
    .t2w-pd-briefing__ask{width:100%;justify-content:center;min-height:44px}
    .t2w-pd-briefing__ctx-row{font-size:13px}
    .t2w-pd-briefing__regen{width:32px;height:32px}
}
/* v28: AI Insight card — S188 SaaS-blue → brand cream/gold */
.t2w-pd-ai-insight{background:var(--color-bg-cream);border:1px solid var(--color-primary);border-radius:12px;padding:14px 16px;margin-bottom:14px}
.t2w-pd-ai-insight-header{font-size:13px;font-weight:700;color:var(--color-primary-dark);margin-bottom:6px;display:flex;align-items:center;gap:6px}
.t2w-pd-ai-insight-header i{color:var(--color-primary)}
.t2w-pd-ai-insight-text{font-size:13px;color:var(--color-text-primary);line-height:1.6}
/* v28: Info Grid (2x2) */
.t2w-pd-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
/* S255 UX 리프레시: 정보 셀 — 회색 → 웜 서페이스 */
.t2w-pd-info-cell{display:flex;flex-direction:column;gap:2px;padding:11px 13px;background:var(--t2w-bg-page,#faf8f4);border-radius:12px;border:1px solid var(--t2w-border-warm,#e8e0d0)}
.t2w-pd-info-cell i{color:var(--t2w-text-accent,#a18745);font-size:13px}
.t2w-pd-info-label{font-size:11px;color:var(--t2w-text-warm-secondary,#7a6f5d);font-weight:500}
.t2w-pd-info-value{font-size:13px;color:var(--t2w-text-main,#1d180c);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:var(--color-tag-amber-bg);color:var(--color-tag-amber-text);font-weight:500}
.t2w-pd-badge--gem{background:var(--color-tag-clay-bg);color:var(--color-tag-clay-text)}
/* v28: Audience demographics */
.t2w-pd-audience{margin:14px 0;padding:14px;background:var(--t2w-bg-page,#faf8f4);border:1px solid var(--t2w-border-warm,#e8e0d0);border-radius:14px}
.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:var(--color-tag-sage-text);background:var(--color-tag-sage-bg);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:var(--color-tag-sage-text);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 */
/* QW4 (S191): vibe badges -> warm tag pairs (variables.css §1b). tag/urban stay neutral. */
.t2w-pd-vibe--tag{background:#F3F4F6;color:#6B7280}
.t2w-pd-vibe--beach{background:var(--color-tag-honey-bg);color:var(--color-tag-honey-text)}
.t2w-pd-vibe--wildlife{background:var(--color-tag-sage-bg);color:var(--color-tag-sage-text)}
.t2w-pd-vibe--scenic{background:var(--color-tag-gold-bg);color:var(--color-tag-gold-text)}
.t2w-pd-vibe--shopping{background:var(--color-tag-rust-bg);color:var(--color-tag-rust-text)}
.t2w-pd-vibe--nightlife{background:var(--color-tag-bronze-bg);color:var(--color-tag-bronze-text)}
.t2w-pd-vibe--history{background:var(--color-tag-amber-bg);color:var(--color-tag-amber-text)}
.t2w-pd-vibe--art{background:var(--color-tag-clay-bg);color:var(--color-tag-clay-text)}
.t2w-pd-vibe--family{background:var(--color-tag-amber-bg);color:var(--color-tag-amber-text)}
.t2w-pd-vibe--photo{background:var(--color-tag-honey-bg);color:var(--color-tag-honey-text)}
.t2w-pd-vibe--urban{background:#F3F4F6;color:#6B7280}
/* S255 UX 리프레시: 탭 — 밑줄 텍스트 → 소프트 골드 칩 탭 */
.t2w-pd-tabs{display:flex;gap:6px;border-bottom:1px solid var(--t2w-border-warm,#e8e0d0);background:#fff;padding:10px 16px;position:sticky;top:0;z-index:2;flex-shrink:0}
.t2w-pd-tab{flex:1;padding:8px 4px;font-size:13px;font-weight:600;color:var(--t2w-text-warm-secondary,#7a6f5d);background:transparent;border:none;border-radius:999px;cursor:pointer;text-align:center;transition:background .15s,color .15s}
.t2w-pd-tab--active{color:var(--color-primary-dark,#B45309);background:var(--color-tag-gold-bg,#FFF4D6);font-weight:800}
.t2w-pd-tab:hover:not(.t2w-pd-tab--active){color:var(--t2w-text-main,#1d180c);background:var(--t2w-bg-page,#faf8f4)}
.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:var(--color-tag-sage-bg);color:var(--color-tag-sage-text)}
.t2w-pd-vibe--food{background:var(--color-tag-gold-bg);color:var(--color-tag-gold-text)}
.t2w-pd-vibe--culture{background:var(--color-tag-bronze-bg);color:var(--color-tag-bronze-text)}
.t2w-pd-vibe--activity{background:var(--color-tag-rust-bg);color:var(--color-tag-rust-text)}
.t2w-pd-vibe--healing{background:var(--color-tag-clay-bg);color:var(--color-tag-clay-text)}
.t2w-pd-best-time{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--color-tag-amber-text);background:var(--color-tag-amber-bg);padding:8px 12px;border-radius:8px;margin:8px 0}
.t2w-pd-hidden-gem{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--color-tag-clay-text);background:var(--color-tag-clay-bg);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-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}}
/* S201: CLS 자리지킴 — 서버 스켈레톤(첫 페인트에 타임라인 본문 높이 확보; JS가 .t2w-tl-body 교체 시 자동 제거). 색·shimmer는 .t2w-skeleton-card 재사용, 레이아웃만 추가 */
.t2w-tl-skeleton{display:flex;flex-direction:column;gap:16px;padding:8px 0}
.t2w-tl-skeleton__day{display:flex;flex-direction:column;gap:8px}
.t2w-skeleton-card.t2w-skeleton-card--bar{height:20px;width:40%}
/* S201: 타임라인 위 두 띠(코스요약·일차칩)의 첫 페인트 높이 예약 — 모바일 한정(데스크톱은 두 띠 모두 숨김). JS 렌더가 실제 콘텐츠로 교체 시 reserve 클래스 사라져 자연 높이 */
@media (max-width:768px){
  #t2w-planner-v2 .t2w-mobile-course-summary.t2w-skel-reserve{min-height:81px}
  #t2w-mob-overview.t2w-skel-reserve{min-height:61px}
}
/* 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:var(--t2w-amber-ink,#8a5a00)}
.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{
    /* (S270 접기: L4027 병합) */
    display:flex;gap:6px;margin-bottom:10px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.t2w-pd-food-cat{
    /* (S270 접기: L4028 병합) */
    font-size:13px;padding:6px 14px;border-radius:16px;border:1px solid #E5E7EB;background:#fff;color:#6B7280;cursor:pointer;transition:all .15s;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}
/* 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{
    /* (S270 접기: L3869 병합) */
    font-size:18px;font-weight:600;color:#1F2937;line-height:1.5;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{
    /* (S270 접기: L3870 병합) */
    font-size:12px;color:#6B7280;font-weight:400;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{
    /* (S270 접기: L3631 병합) */
    transition:transform .2s,box-shadow .2s;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{
    /* (S270 접기: L3872 병합) */
    font-size:12px;color:#9CA3AF;padding:4px 12px;text-align:center;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{
    /* (S270 접기: L3784 병합) */
    gap:8px;padding:8px 10px;border-radius:8px;font-size:13px;min-height:44px;cursor:pointer;transition:background .15s;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{
    /* (S270 접기: L3785 병합) */
    background:rgba(59,130,246,0.06);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 */
/* S255 UX 리프레시: 하단 액션 — 알약 버튼 + 44px 터치 타깃 */
.t2w-pd-sticky-actions{position:sticky;bottom:0;padding:12px 16px;background:rgba(255,255,255,0.92);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;min-height:46px;padding:10px 16px;border-radius:999px;font-size:14px;font-weight:700;cursor:pointer;border:none;transition:background .2s,transform .2s,box-shadow .2s;display:flex;align-items:center;justify-content:center;gap:6px}
.t2w-pd-sticky-btn--primary{background:var(--t2w-primary);color:#1d180c;box-shadow:0 4px 14px rgba(255,183,0,0.35)}
.t2w-pd-sticky-btn--primary:hover{background:#e6a500;transform:translateY(-1px)}
.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}
/* Phase 3: gold journey rail — recolor the timeline spine to gold (fade ends) */
.t2w-v29-line{position:absolute;left:29px;top:0;bottom:0;width:2px;background:linear-gradient(180deg,transparent 0,var(--color-primary) 26px,var(--color-primary-dark) calc(100% - 26px),transparent 100%);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{
    /* (S270 접기: L2797 병합) */
    border-radius: 14px;
    /* (S270 접기: L3019 병합) */
    transition: box-shadow .2s ease, border-color .2s ease;
    /* (S270 접기: L3172 병합) */
    border-radius: 14px;
    padding: 0;
    overflow: hidden;
    border: 1px solid #E5E7EB;
    transition: all 0.2s ease;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{
    /* (S270 접기: L3179 병합) */
    border-color: rgba(255,183,0,0.2);
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
    transform: translateY(-1px);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{
    /* (S270 접기: L2801 병합) */
    border-radius: 10px;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{
    /* (S270 접기: L2802 병합) */
    line-height: 1.7;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}
/* S159 VP-4: 평점 배지 — MUST(파랑 플래그)와 시각 분리, 중립 회색 + 골드 별 */
.t2w-v29-badge-rating{font-size:10px;font-weight:700;color:var(--t2w-text-secondary,#6B7280);background:var(--t2w-bg-elevated,#F3F4F6);padding:2px 7px;border-radius:999px;white-space:nowrap;flex-shrink:0;display:inline-flex;align-items:center;gap:2px}
.t2w-v29-badge-rating i,.t2w-v29-badge-rating .material-symbols-outlined{font-size:11px;color:rgb(var(--color-primary-rgb,255,183,0))}
/* 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{
    /* (S270 접기: L413 병합) */
    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;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{
    /* (S270 접기: L422 병합) */
    font-size: 9px;font-size:12px;width:14px;text-align:center}
.t2w-transport-chip:hover{
    /* (S270 접기: L423 병합) */
    color: #6B7280; background: #F9FAFB;border-color:var(--t2w-primary,#FFB700);color:var(--t2w-text-main,#1d180c)}
.t2w-transport-chip--active{
    /* (S270 접기: L424 병합) */
    background: var(--color-accent-coral, #F59E0B); color: #fff;
    border-color: var(--color-accent-coral, #F59E0B);
    border-radius: 10px;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 */

/* 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-amber-ink,#8a5a00);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{
    /* (S270 접기: L2805 병합) */
    font-size: 11px; padding: 4px 10px;
    border-radius: 99px;
    background: rgba(255,183,0,.08); color: #E5A400;
    font-weight: 600;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{
    /* (S270 접기: L2813 병합) */
    background: none; padding: 0; margin: 0 0 12px;margin-top:10px;padding-top:10px;border-top:1px dashed rgba(0,0,0,0.08)}
.t2w-v29-inline-head{
    /* (S270 접기: L2814 병합) */
    font-size: 12px; font-weight: 700; color: #181610; margin-bottom: 8px;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: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{
    /* (S270 접기: L4414 병합) */
    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;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}
/* S152: Zone sep — restored as compact section header (sidebar repurposed to nav rail, not zone info) */
.t2w-v29-zone-sep{display:flex;padding:8px 12px;margin-bottom:6px;border-radius:10px;box-shadow:none}
.t2w-v29-zone-sep .t2w-zone-card-grip{display:none}
}
.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}
}
/* S152: Desktop zone grouping — white card per zone + flush zone-sep header */
@media(min-width:769px){
#t2w-planner-v2 .t2w-zone-card{margin:0 0 10px;border:1px solid var(--t2w-border-warm,#eadfca);border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 2px 8px rgba(29,24,12,0.04)}
#t2w-planner-v2 .t2w-v29-zone-sep{border:0;border-bottom:1px solid rgba(234,223,202,0.7);border-radius:0;margin-bottom:0;padding:10px 14px;gap:8px}
#t2w-planner-v2 .t2w-v29-zone-dot{width:4px;height:28px;border-radius:999px}
#t2w-planner-v2 .t2w-v29-zone-name{font-size:14px;font-weight:700}
#t2w-planner-v2 .t2w-v29-zone-meta{font-size:11px}
#t2w-planner-v2 .t2w-v29-timeline{margin-left:0;padding:8px 12px 10px}
}
/* v43.3: Tablet (769~1024px) — narrower sidebar */
@media(min-width:769px) and (max-width:1024px){
.t2w-v29-sidebar{width:40%}
}
/* 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}
/* 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}
}
/* 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)}
.t2w-route-marker--departure span.material-symbols-outlined{background:#6366F1;color:#fff;font-size:17px;font-weight:400;line-height:1}
.t2w-route-marker--destination span.material-symbols-outlined{background:#2E7D32;color:#fff;font-size:17px;font-weight:400;line-height:1}
.t2w-route-marker--zone span{background:#FFB700;color:#1d180c}
.t2w-map-route-legend{display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid rgba(15,23,42,.1);border-radius:10px;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 4px 14px rgba(15,23,42,.12);font-size:11px;font-weight:700;color:#334155;line-height:1}
.t2w-map-route-legend__item{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.t2w-map-route-legend__dot{display:inline-flex;width:12px;height:12px;border-radius:50%;border:2px solid #fff;box-shadow:0 1px 3px rgba(15,23,42,.22)}
.t2w-map-route-legend__dot--zone{background:#FFB700}
.t2w-map-route-legend__dot--place{background:#3B82F6}
/* 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 .t2w-map{height:100%}

}
/* 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 i{font-size:11px;color:#F97316}
.t2w-corridor-route-path{
    /* (S270 접기: L4546 병합) */
    font-size:12px;font-weight:700;color:var(--t2w-text-main,#1A1A1A);display:flex;align-items:center;gap:6px;min-width:0;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{
    /* (S270 접기: L4603 병합) */
    --t2w-bg-warm:#fcfbf8;--t2w-border-warm:var(--color-border-light);--t2w-text-warm:var(--color-text-primary);--t2w-text-warm-secondary:var(--color-text-secondary);--t2w-surface-warm:#f4f0e6;--t2w-shadow-warm:0 4px 20px -2px rgba(29,24,12,0.05);background:var(--t2w-bg-warm)}
.t2w-v5-left{
    /* (S270 접기: L4270 병합) */
    background:var(--t2w-bg-warm,#fcfbf8);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{
    /* (S270 접기: L3621 병합) */
    border-radius:10px;width:80px;height:80px;border-radius:12px}
#t2w-planner-v2 .t2w-zone-card-thumb--placeholder{
    /* (S270 접기: L3622 병합) */
    border-radius:10px;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{
    /* (S270 접기: L3754 병합) */
    color:#374151;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
   ======================================== */
/* S269 리스킨: 코스 선택 첫 화면이 옛 세대(회백 배경·민트 배지·흰 카드) 그대로라
   홈·플래너 웜 샴페인과 단절 — 셀렉터·마크업 불변, 시각 속성만 웜 토큰으로 교체. */
.t2w-preset-overlay {
    position: fixed;
    inset: 0;
    z-index: 1100;
    background: linear-gradient(180deg, var(--t2w-bg-warm, #fcfbf8) 0%, var(--t2w-surface-warm, #f4f0e6) 100%);
    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: 26px;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: var(--t2w-text-warm, #1d180c);
    margin: 0 0 10px;
}
.t2w-preset-title::after {
    content: '';
    display: block;
    width: 44px;
    height: 3px;
    border-radius: 2px;
    margin: 12px auto 0;
    background: linear-gradient(90deg, var(--color-primary, #FFB700), var(--t2w-gg-lite, #E7C878));
}
.t2w-preset-subtitle {
    font-size: 14px;
    color: var(--t2w-text-warm-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: 20px;
    box-shadow: var(--t2w-shadow-warm, 0 4px 20px -2px rgba(29, 24, 12, 0.05));
    padding: 20px;
    cursor: pointer;
    transition: all 0.2s ease;
    border: 2px solid var(--t2w-border-warm, #e8e0d0);
}
.t2w-preset-card:hover {
    border-color: var(--t2w-gg-lite, #E7C878);
    box-shadow: 0 8px 24px -6px rgba(140, 108, 42, 0.18);
    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: var(--color-tag-gold-bg, #FFF3D6);
    color: var(--color-tag-gold-text, #8A5A00);
}
.t2w-preset-card__tag--companion {
    background: rgba(255, 183, 0, 0.1);
    color: var(--t2w-amber-ink, #8a5a00);
}
.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-warm, #1d180c);
    background: var(--t2w-surface-warm, #f4f0e6);
    border: 1px solid var(--t2w-border-warm, #e8e0d0);
    padding: 4px 10px;
    border-radius: 999px;
}
.t2w-preset-card__place .material-symbols-outlined {
    font-size: 14px;
    color: var(--t2w-amber-ink, #8a5a00);
}
.t2w-preset-card__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 100%;
    margin-top: 16px;
    padding: 13px;
    min-height: 44px;
    border: none;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--color-primary, #FFB700) 0%, var(--t2w-gg-lite, #E7C878) 100%);
    color: var(--t2w-text-warm, #1d180c);
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    transition: all 0.2s ease;
    font-family: inherit;
    box-shadow: 0 4px 14px -4px rgba(255, 183, 0, 0.45);
}
.t2w-preset-card__cta:hover {
    background: var(--color-primary, #FFB700);
    transform: scale(1.02);
    box-shadow: 0 6px 18px -4px rgba(255, 183, 0, 0.55);
}
.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;
    min-height: 44px;
    border: 1.5px solid var(--t2w-border-warm, #e8e0d0);
    border-radius: 999px;
    background: var(--t2w-bg-card, #fff);
    color: var(--t2w-text-warm-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-warm, #1d180c);
}
.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) {
    /* S269: 모바일에서 고정 헤더(65px)가 오버레이 위에 그려져 제목이 가려짐 — 헤더 높이만큼 내려 시작 */
    .t2w-preset-container {
        padding: calc(var(--t2w-header-height, 65px) + 16px) 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__next {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 4px 0 16px;
}
.t2w-share-panel__next-btn {
    min-height: 48px;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid var(--t2w-border-primary, #D1D5DB);
    background: var(--t2w-bg-primary, #fff);
    color: var(--t2w-text-primary, #374151);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    white-space: nowrap;
    transition: background .15s, border-color .15s, transform .15s;
}
.t2w-share-panel__next-btn .material-symbols-outlined {
    font-size: 18px;
    line-height: 1;
    flex: 0 0 auto;
}
.t2w-share-panel__next-btn:hover {
    transform: translateY(-1px);
    border-color: var(--t2w-color-primary, #3B82F6);
}
.t2w-share-panel__next-btn--quote {
    background: var(--t2w-text-primary, #111827);
    border-color: var(--t2w-text-primary, #111827);
    color: #fff;
}
.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;
    }
}

/* M15: itinerary quote readiness */
.t2w-qf-intro {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 12px 14px;
    margin: 0 0 14px;
    border: 1px solid var(--t2w-border-primary, #E5E7EB);
    border-radius: 10px;
    background: var(--t2w-bg-secondary, #F9FAFB);
}
.t2w-qf-intro__icon {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    background: var(--t2w-color-primary, #3B82F6);
    color: #fff;
}
.t2w-qf-intro__icon .material-symbols-outlined {
    font-size: 19px;
    line-height: 1;
}
.t2w-qf-intro__body {
    min-width: 0;
    display: grid;
    gap: 3px;
}
.t2w-qf-intro__body strong {
    font-size: 14px;
    line-height: 1.3;
    color: var(--t2w-text-primary, #111827);
}
.t2w-qf-intro__body span {
    font-size: 13px;
    line-height: 1.45;
    color: var(--t2w-text-secondary, #6B7280);
}

/* M69: guest quote auth prompt */
.t2w-quote-login-prompt {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 6px 0 2px;
}

.t2w-quote-login-prompt__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    border-radius: 14px;
    background: #fff7dd;
    color: #8a5a00;
}

.t2w-quote-login-prompt__icon .material-symbols-outlined {
    font-size: 22px;
}

.t2w-quote-login-prompt__body {
    min-width: 0;
}

.t2w-quote-login-prompt__body strong {
    display: block;
    color: var(--t2w-text-warm, #1d180c);
    font-size: 16px;
    font-weight: 900;
    line-height: 1.35;
}

.t2w-quote-login-prompt__body p {
    margin: 8px 0 0;
    color: #5e5445;
    font-size: 13px;
    line-height: 1.55;
}

.t2w-quote-login-prompt__body span {
    display: inline-flex;
    margin-top: 10px;
    color: #7a6d58;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.35;
}

/* M16: post-quote follow-up state */
.t2w-quote-success--followup {
    display: grid;
    justify-items: center;
    gap: 12px;
    text-align: center;
    padding: 8px 0 4px;
}

.t2w-quote-success--followup .t2w-quote-success-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--t2w-color-success, #10B981);
    color: #fff;
}

.t2w-quote-success--followup .t2w-quote-success-icon .material-symbols-outlined {
    font-size: 28px;
    line-height: 1;
}

.t2w-quote-success--followup h3 {
    margin: 0;
    color: var(--t2w-text-primary, #111827);
    font-size: 20px;
    font-weight: 800;
    line-height: 1.25;
}

.t2w-quote-success--followup p {
    margin: 0;
    color: var(--t2w-text-secondary, #6B7280);
    font-size: 14px;
    line-height: 1.45;
}

.t2w-quote-success-steps {
    display: grid;
    gap: 8px;
    width: min(100%, 360px);
    margin-top: 2px;
}

.t2w-quote-success-step {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 42px;
    padding: 9px 12px;
    border: 1px solid var(--t2w-border-primary, #E5E7EB);
    border-radius: 10px;
    background: var(--t2w-bg-secondary, #F9FAFB);
    text-align: left;
}

.t2w-quote-success-step span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
    border-radius: 50%;
    background: var(--t2w-color-primary, #3B82F6);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
}

.t2w-quote-success-step strong {
    min-width: 0;
    color: var(--t2w-text-primary, #111827);
    font-size: 13px;
    font-weight: 800;
    line-height: 1.3;
}

.t2w-quote-success-note {
    width: min(100%, 360px);
    padding-top: 2px;
}

.t2w-modal-footer.t2w-modal-footer--quote-success {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.t2w-modal-footer.t2w-modal-footer--quote-success .t2w-modal-btn {
    min-width: 0;
    padding: 9px 12px;
    font-weight: 700;
    white-space: nowrap;
}

/* M17: submitted quote status surface */
.t2w-quote-status-surface {
    display: grid;
    gap: 12px;
}

.t2w-quote-status-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 180px;
    color: var(--t2w-text-secondary, #6B7280);
    font-size: 14px;
    font-weight: 700;
}

.t2w-quote-status-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding-bottom: 4px;
}

.t2w-quote-status-head strong {
    color: var(--t2w-text-primary, #111827);
    font-size: 15px;
    font-weight: 800;
}

.t2w-quote-status-head span {
    color: var(--t2w-text-secondary, #6B7280);
    font-size: 12px;
    font-weight: 800;
}

.t2w-quote-status-list {
    display: grid;
    gap: 10px;
}

.t2w-quote-status-alert {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px;
    border: 1px solid #BFDBFE;
    border-radius: 10px;
    background: #EFF6FF;
}

.t2w-quote-status-alert .material-symbols-outlined {
    flex: 0 0 auto;
    color: #2563EB;
    font-size: 20px;
    line-height: 1.2;
}

.t2w-quote-status-alert--waiting {
    border-color: #FDE68A;
    background: #FFFBEB;
}

.t2w-quote-status-alert--waiting .material-symbols-outlined {
    color: #D97706;
}

.t2w-quote-status-alert div {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.t2w-quote-status-alert strong {
    color: var(--t2w-text-primary, #111827);
    font-size: 13px;
    font-weight: 900;
    line-height: 1.25;
}

.t2w-quote-status-alert p {
    margin: 0;
    color: var(--t2w-text-secondary, #4B5563);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.45;
}

.t2w-quote-status-card {
    display: grid;
    gap: 10px;
    padding: 14px;
    border: 1px solid var(--t2w-border-primary, #E5E7EB);
    border-radius: 10px;
    background: #fff;
}

.t2w-quote-status-card--needs-review {
    border-color: #93C5FD;
    background: #F8FBFF;
}

.t2w-quote-status-card--waiting {
    border-color: #FDE68A;
    background: #FFFCF2;
}

.t2w-quote-status-card__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.t2w-quote-status-card__top > div {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.t2w-quote-status-card__top strong {
    color: var(--t2w-text-primary, #111827);
    font-size: 14px;
    font-weight: 850;
    line-height: 1.3;
}

.t2w-quote-status-card__top span,
.t2w-quote-status-card__meta,
.t2w-quote-status-card__foot {
    color: var(--t2w-text-secondary, #6B7280);
    font-size: 12px;
    line-height: 1.4;
}

.t2w-quote-status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 26px;
    padding: 5px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-style: normal;
    font-weight: 850;
    line-height: 1;
    white-space: nowrap;
}

.t2w-quote-status-badge--open {
    background: #EFF6FF;
    color: #2563EB;
}

.t2w-quote-status-badge--quoted {
    background: #ECFDF5;
    color: #047857;
}

.t2w-quote-status-badge--accepted {
    background: #FEF3C7;
    color: #92400E;
}

.t2w-quote-status-badge--closed {
    background: #F3F4F6;
    color: #4B5563;
}

.t2w-quote-status-waiting-track {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
}

.t2w-quote-status-waiting-track span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: 7px 6px;
    border: 1px solid #FDE68A;
    border-radius: 8px;
    background: #fff;
    color: #92400E;
    font-size: 11px;
    font-weight: 850;
    line-height: 1.2;
    text-align: center;
}

.t2w-quote-status-card__foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 6px 12px;
    padding-top: 10px;
    border-top: 1px solid var(--t2w-border-primary, #E5E7EB);
}

.t2w-quote-status-detail-btn {
    min-height: 32px;
    padding: 7px 10px;
    border: 1px solid var(--t2w-border-primary, #E5E7EB);
    border-radius: 8px;
    background: #fff;
    color: var(--t2w-text-primary, #111827);
    font-size: 12px;
    font-weight: 850;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
}

.t2w-quote-status-detail-btn:hover {
    border-color: #2563EB;
    color: #2563EB;
}

.t2w-quote-status-card--needs-review .t2w-quote-status-detail-btn {
    border-color: #2563EB;
    background: #2563EB;
    color: #fff;
}

.t2w-quote-status-card--needs-review .t2w-quote-status-detail-btn:hover {
    border-color: #1D4ED8;
    background: #1D4ED8;
    color: #fff;
}

.t2w-quote-status-empty {
    justify-items: center;
    min-height: 180px;
    align-content: center;
    text-align: center;
}

.t2w-quote-status-empty .material-symbols-outlined {
    color: var(--t2w-text-secondary, #6B7280);
    font-size: 36px;
}

.t2w-quote-status-empty h3 {
    margin: 0;
    color: var(--t2w-text-primary, #111827);
    font-size: 17px;
    font-weight: 850;
}

.t2w-quote-status-empty p {
    max-width: 320px;
    margin: 0;
    color: var(--t2w-text-secondary, #6B7280);
    font-size: 13px;
    line-height: 1.45;
}

.t2w-quote-detail-surface {
    display: grid;
    gap: 14px;
}

.t2w-quote-detail-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--t2w-border-primary, #E5E7EB);
    border-radius: 10px;
    background: #fff;
}

.t2w-quote-detail-hero > div {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.t2w-quote-detail-hero span {
    color: var(--t2w-text-secondary, #6B7280);
    font-size: 12px;
    font-weight: 800;
}

.t2w-quote-detail-hero strong {
    color: var(--t2w-text-primary, #111827);
    font-size: 18px;
    font-weight: 850;
    line-height: 1.25;
}

.t2w-quote-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.t2w-quote-detail-row {
    display: grid;
    gap: 5px;
    min-height: 58px;
    padding: 10px;
    border: 1px solid var(--t2w-border-primary, #E5E7EB);
    border-radius: 8px;
    background: #fff;
}

.t2w-quote-detail-row span,
.t2w-quote-detail-section__head span,
.t2w-quote-response-card__top span {
    color: var(--t2w-text-secondary, #6B7280);
    font-size: 12px;
    font-weight: 750;
    line-height: 1.35;
}

.t2w-quote-detail-row strong {
    overflow-wrap: anywhere;
    color: var(--t2w-text-primary, #111827);
    font-size: 14px;
    font-weight: 850;
    line-height: 1.3;
}

.t2w-quote-detail-section {
    display: grid;
    gap: 10px;
}

.t2w-quote-detail-section__head,
.t2w-quote-response-card__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.t2w-quote-detail-section__head strong {
    color: var(--t2w-text-primary, #111827);
    font-size: 15px;
    font-weight: 850;
}

.t2w-quote-response-list {
    display: grid;
    gap: 10px;
}

.t2w-quote-response-comparison {
    display: grid;
    gap: 10px;
    padding: 12px;
    border: 1px solid var(--t2w-border-primary, #E5E7EB);
    border-radius: 10px;
    background: #fff;
}

.t2w-quote-response-comparison__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.t2w-quote-response-comparison__head strong {
    color: var(--t2w-text-primary, #111827);
    font-size: 14px;
    font-weight: 850;
    line-height: 1.2;
}

.t2w-quote-response-comparison__head span {
    flex: 0 0 auto;
    color: var(--t2w-text-secondary, #6B7280);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.2;
}

.t2w-quote-response-comparison__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.t2w-quote-response-comparison__item {
    display: grid;
    gap: 4px;
    min-height: 58px;
    padding: 9px;
    border: 1px solid #E5E7EB;
    border-radius: 8px;
    background: #F9FAFB;
}

.t2w-quote-response-comparison__item span {
    color: var(--t2w-text-secondary, #6B7280);
    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
}

.t2w-quote-response-comparison__item strong {
    overflow-wrap: anywhere;
    color: var(--t2w-text-primary, #111827);
    font-size: 14px;
    font-weight: 900;
    line-height: 1.25;
}

.t2w-quote-response-card {
    display: grid;
    gap: 10px;
    padding: 14px;
    border: 1px solid #BFDBFE;
    border-radius: 10px;
    background: #F8FBFF;
}

.t2w-quote-response-card__top > div {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.t2w-quote-response-card__top strong {
    overflow-wrap: anywhere;
    color: var(--t2w-text-primary, #111827);
    font-size: 14px;
    font-weight: 850;
    line-height: 1.3;
}

.t2w-quote-response-card__top em {
    flex: 0 0 auto;
    min-height: 24px;
    padding: 5px 8px;
    border-radius: 999px;
    background: #ECFDF5;
    color: #047857;
    font-size: 11px;
    font-style: normal;
    font-weight: 850;
    line-height: 1;
    white-space: nowrap;
}

.t2w-quote-response-price-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.t2w-quote-response-price {
    color: var(--t2w-text-primary, #111827);
    font-size: 22px;
    font-weight: 900;
    line-height: 1.1;
}

.t2w-quote-response-chip {
    flex: 0 0 auto;
    min-height: 24px;
    padding: 5px 8px;
    border-radius: 999px;
    background: #DBEAFE;
    color: #1D4ED8;
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
    white-space: nowrap;
}

.t2w-quote-response-message {
    margin: 0;
    color: var(--t2w-text-secondary, #4B5563);
    font-size: 13px;
    line-height: 1.5;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.t2w-quote-response-actions {
    display: flex;
    justify-content: flex-end;
}

.t2w-quote-response-message-btn {
    min-height: 36px;
    padding: 0 12px;
    border: 1px solid #BFDBFE;
    border-radius: 8px;
    background: #fff;
    color: #1D4ED8;
    font: inherit;
    font-size: 12px;
    font-weight: 900;
    cursor: pointer;
}

.t2w-quote-response-message-btn:hover,
.t2w-quote-response-message-btn:focus {
    border-color: #60A5FA;
    background: #EFF6FF;
    outline: none;
}

.t2w-quote-message-surface {
    display: grid;
    gap: 12px;
}

.t2w-quote-message-head {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    padding: 12px;
    border: 1px solid #BFDBFE;
    border-radius: 10px;
    background: #EFF6FF;
}

.t2w-quote-message-head .material-symbols-outlined {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 8px;
    background: #fff;
    color: #2563EB;
    font-size: 20px;
}

.t2w-quote-message-head strong {
    display: block;
    margin-bottom: 3px;
    color: var(--t2w-text-primary, #111827);
    font-size: 14px;
    font-weight: 900;
}

.t2w-quote-message-head p {
    margin: 0;
    color: var(--t2w-text-secondary, #4B5563);
    font-size: 12px;
    line-height: 1.45;
}

.t2w-quote-message-thread {
    display: grid;
    gap: 8px;
    max-height: 260px;
    overflow-y: auto;
    padding: 12px;
    border: 1px solid var(--t2w-border-primary, #E5E7EB);
    border-radius: 10px;
    background: #F8FAFC;
}

.t2w-quote-message-bubble {
    max-width: 84%;
}

.t2w-quote-message-bubble span {
    display: block;
    margin-bottom: 4px;
    color: var(--t2w-text-secondary, #6B7280);
    font-size: 11px;
    font-weight: 800;
}

.t2w-quote-message-bubble p {
    margin: 0;
    padding: 9px 11px;
    border: 1px solid #E5E7EB;
    border-radius: 8px;
    background: #fff;
    color: var(--t2w-text-primary, #111827);
    font-size: 13px;
    line-height: 1.5;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.t2w-quote-message-attachments {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px;
}

.t2w-quote-message-attachment {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 44px;
    padding: 5px 8px 5px 5px;
    border: 1px solid var(--t2w-border-primary, #E5E7EB);
    border-radius: 8px;
    background: #fff;
    color: var(--t2w-text-primary, #111827);
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}

.t2w-quote-message-attachment img {
    width: 44px;
    height: 44px;
    border-radius: 6px;
    object-fit: cover;
}

.t2w-quote-message-attachment.is-blocked {
    background: #F3F4F6;
    color: var(--t2w-text-secondary, #6B7280);
}

.t2w-quote-message-bubble.is-mine {
    justify-self: end;
}

.t2w-quote-message-bubble.is-mine span {
    text-align: right;
}

.t2w-quote-message-bubble.is-mine p {
    border-color: #111827;
    background: #111827;
    color: #fff;
}

.t2w-quote-message-bubble.is-system {
    justify-self: center;
    max-width: 94%;
    text-align: center;
}

.t2w-quote-message-bubble.is-system p {
    border-color: #BFDBFE;
    background: #EFF6FF;
    color: #1E3A8A;
}

.t2w-quote-message-field {
    display: grid;
    gap: 6px;
    color: var(--t2w-text-primary, #111827);
    font-size: 13px;
    font-weight: 850;
}

.t2w-quote-message-input {
    width: 100%;
    min-height: 108px;
    padding: 11px 12px;
    border: 1px solid var(--t2w-border-primary, #E5E7EB);
    border-radius: 8px;
    font: inherit;
    font-size: 13px;
    line-height: 1.5;
    resize: vertical;
}

.t2w-quote-message-input:focus {
    border-color: #60A5FA;
    outline: none;
    box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.18);
}

.t2w-quote-message-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.t2w-quote-message-foot span {
    color: var(--t2w-text-secondary, #6B7280);
    font-size: 12px;
    font-weight: 800;
}

.t2w-quote-message-send {
    min-width: 84px;
    min-height: 40px;
    padding: 0 14px;
    border: 0;
    border-radius: 8px;
    background: #FFB700;
    color: #111827;
    font: inherit;
    font-size: 13px;
    font-weight: 900;
    cursor: pointer;
}

.t2w-quote-message-send:disabled {
    cursor: wait;
    opacity: 0.65;
}

.t2w-quote-detail-empty {
    display: grid;
    justify-items: center;
    gap: 12px;
    min-height: 96px;
    padding: 16px;
    border: 1px dashed var(--t2w-border-primary, #E5E7EB);
    border-radius: 10px;
    background: #fff;
    color: var(--t2w-text-secondary, #6B7280);
    font-size: 13px;
    font-weight: 800;
    text-align: center;
}

.t2w-quote-detail-empty--waiting {
    padding: 18px;
    border-style: solid;
    background: #F9FAFB;
}

.t2w-quote-detail-empty--waiting > .material-symbols-outlined {
    width: 36px;
    height: 36px;
    border-radius: 999px;
    background: #EFF6FF;
    color: #2563EB;
    font-size: 22px;
    line-height: 36px;
}

.t2w-quote-waiting-copy {
    display: grid;
    gap: 5px;
    max-width: 360px;
}

.t2w-quote-waiting-copy h4 {
    margin: 0;
    color: var(--t2w-text-primary, #111827);
    font-size: 15px;
    font-weight: 900;
    line-height: 1.25;
}

.t2w-quote-waiting-copy p {
    margin: 0;
    color: var(--t2w-text-secondary, #4B5563);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.45;
}

.t2w-quote-waiting-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    width: 100%;
}

.t2w-quote-waiting-steps span {
    min-height: 30px;
    padding: 7px 6px;
    border: 1px solid #E5E7EB;
    border-radius: 8px;
    background: #fff;
    color: var(--t2w-text-secondary, #4B5563);
    font-size: 11px;
    font-weight: 850;
    line-height: 1.2;
}

.t2w-quote-waiting-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
}

.t2w-quote-waiting-btn {
    min-height: 36px;
    padding: 9px 10px;
    border: 1px solid var(--t2w-border-primary, #E5E7EB);
    border-radius: 8px;
    background: #fff;
    color: var(--t2w-text-primary, #111827);
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
}

.t2w-quote-waiting-btn:hover {
    border-color: #2563EB;
    color: #2563EB;
}

.t2w-quote-waiting-btn--primary {
    border-color: #2563EB;
    background: #2563EB;
    color: #fff;
}

.t2w-quote-waiting-btn--primary:hover {
    border-color: #1D4ED8;
    background: #1D4ED8;
    color: #fff;
}

.t2w-quote-detail-empty--recovery {
    padding: 18px;
    border-style: solid;
    border-color: #FDE68A;
    background: #FFFBEB;
}

.t2w-quote-detail-empty--recovery > .material-symbols-outlined {
    width: 36px;
    height: 36px;
    border-radius: 999px;
    background: #FEF3C7;
    color: #D97706;
    font-size: 22px;
    line-height: 36px;
}

.t2w-quote-recovery-code {
    min-height: 24px;
    padding: 5px 8px;
    border-radius: 999px;
    background: #fff;
    color: #92400E;
    font-size: 11px;
    font-weight: 850;
    line-height: 1.2;
}

.t2w-quote-recovery-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
}

.t2w-quote-recovery-btn {
    min-height: 36px;
    padding: 9px 10px;
    border: 1px solid #FDE68A;
    border-radius: 8px;
    background: #fff;
    color: var(--t2w-text-primary, #111827);
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
}

.t2w-quote-recovery-btn:hover {
    border-color: #D97706;
    color: #92400E;
}

.t2w-quote-recovery-btn--primary {
    border-color: #D97706;
    background: #D97706;
    color: #fff;
}

.t2w-quote-recovery-btn--primary:hover {
    border-color: #B45309;
    background: #B45309;
    color: #fff;
}

@media (max-width: 480px) {
    .t2w-quote-success--followup h3 {
        font-size: 18px;
    }

    .t2w-quote-success-step {
        min-height: 40px;
        padding: 8px 10px;
    }

    .t2w-modal-footer.t2w-modal-footer--quote-success {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .t2w-modal-footer.t2w-modal-footer--quote-success .t2w-btn-primary {
        grid-column: 1 / -1;
    }

    .t2w-quote-status-card {
        padding: 12px;
    }

    .t2w-quote-status-card__top {
        align-items: stretch;
        flex-direction: column;
        gap: 8px;
    }

    .t2w-quote-status-badge {
        width: fit-content;
    }

    .t2w-quote-status-detail-btn {
        width: 100%;
    }

    .t2w-quote-status-waiting-track {
        grid-template-columns: 1fr;
    }

    .t2w-quote-detail-hero,
    .t2w-quote-response-card__top {
        align-items: stretch;
        flex-direction: column;
    }

    .t2w-quote-detail-grid {
        grid-template-columns: 1fr;
    }

    .t2w-quote-response-comparison__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .t2w-quote-response-price-row {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .t2w-quote-response-price {
        font-size: 20px;
    }

    .t2w-quote-waiting-steps,
    .t2w-quote-waiting-actions,
    .t2w-quote-recovery-actions {
        grid-template-columns: 1fr;
    }
}

/* S100: Y4 빈 컨테이너 자리 숨김 — costBar 가드(SHOW_COST_UI=false) 페어. 재오픈 시 자동 복원. */
.t2w-cost:empty { display: none; }

/* M7-A: Planner responsive shell — itinerary-first mobile, rail/map/agenda desktop. */
@media (max-width: 768px) {
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-main {
        display: flex;
        flex-direction: column;
        padding: 0;
        gap: 0;
    }

    

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-left {
        order: 2;
        padding: 0 14px 118px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-right {
        order: 3;
        max-height: 76px;
        min-height: 76px;
        overflow: hidden;
        border-top: 1px solid var(--t2w-border-warm, #e8e0d0);
        border-bottom: 1px solid var(--t2w-border-warm, #e8e0d0);
        background: var(--t2w-surface-warm, #f4f0e6);
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-right::before {
        content: "지도는 접어두었어요";
        position: absolute;
        inset: 0 auto auto 0;
        z-index: 3;
        padding: 8px 12px;
        border-radius: 0 0 12px 0;
        background: rgba(255, 255, 255, 0.86);
        color: var(--t2w-text-warm, #1d180c);
        font-size: 12px;
        font-weight: 700;
        box-shadow: 0 4px 12px rgba(29, 24, 12, 0.08);
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-right .t2w-map,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-right #t2w-map {
        height: 76px;
        min-height: 76px;
        opacity: 0.55;
        pointer-events: none;
    }

    #t2w-planner-v2 .t2w-add-leg-bar {
        display: none;
    }

    #t2w-planner-v2 .t2w-v5-left .t2w-tl-body {
        padding-bottom: 132px;
    }

    #t2w-planner-v2 .t2w-tl-search-wrap {
        max-height: 0;
        overflow: hidden;
        margin-bottom: 0;
        opacity: 0;
        pointer-events: none;
        transition: max-height 0.22s ease, opacity 0.18s ease, margin 0.18s ease;
    }

    #t2w-planner-v2 .t2w-tl-search {
        min-height: 48px;
        height: 48px;
        padding: 6px 10px;
    }

    #t2w-planner-v2.t2w-mobile-search-open .t2w-tl-search-wrap {
        position: fixed;
        left: 12px;
        right: 12px;
        bottom: 86px;
        z-index: 960;
        max-height: 44vh;
        margin-bottom: 0;
        padding: 14px;
        opacity: 1;
        pointer-events: auto;
        overflow: auto;
        background: #fff;
        border: 1px solid var(--t2w-border-warm, #e8e0d0);
        border-radius: 20px;
        box-shadow: 0 18px 44px rgba(29, 24, 12, 0.18);
    }

    #t2w-planner-v2 .t2w-tl-quick-chips,
    #t2w-planner-v2 .t2w-tl-filters,
    #t2w-planner-v2 .t2w-tl-login-hint {
        display: none;
    }

    

    #t2w-planner-v2.t2w-mobile-filters-open .t2w-tl-filters {
    /* (S270 접기: L6353 병합) */
    display: flex;
        position: fixed;
        left: 12px;
        right: 12px;
        bottom: 86px;
        z-index: 960;
        max-height: 44vh;
        margin: 0;
        padding: 16px;
        overflow: auto;
        flex-wrap: wrap;
        background: #fff;
        border: 1px solid var(--t2w-border-warm, #e8e0d0);
        border-radius: 20px;
        box-shadow: 0 18px 44px rgba(29, 24, 12, 0.18);
    }

    #t2w-planner-v2.t2w-mobile-refine-open #t2w-assistant-panel {
        position: fixed;
        left: 12px;
        right: 12px;
        bottom: 86px;
        z-index: 960;
        max-height: 70vh;
        margin: 0;
        overflow: auto;
        box-shadow: 0 18px 44px rgba(29, 24, 12, 0.2);
    }

    #t2w-planner-v2:not(.t2w-mobile-refine-open) #t2w-assistant-panel {
        display: none;
    }

    #t2w-planner-v2 .t2w-mobile-action-close {
        display: none;
        position: absolute;
        top: 10px;
        right: 10px;
        width: 34px;
        height: 34px;
        border: 1px solid var(--t2w-border-warm, #e8e0d0);
        border-radius: 50%;
        background: #fff;
        color: var(--t2w-text-warm-secondary, #7a6f5d);
        font-size: 20px;
        line-height: 1;
        z-index: 2;
    }

    #t2w-planner-v2.t2w-mobile-search-open .t2w-tl-search-wrap > .t2w-mobile-action-close,
    #t2w-planner-v2.t2w-mobile-filters-open .t2w-tl-filters > .t2w-mobile-action-close,
    #t2w-planner-v2.t2w-mobile-refine-open #t2w-assistant-panel > .t2w-mobile-action-close {
        display: block;
    }

    #t2w-planner-v2.t2w-mobile-search-open .t2w-tl-search-wrap,
    #t2w-planner-v2.t2w-mobile-filters-open .t2w-tl-filters,
    #t2w-planner-v2.t2w-mobile-refine-open #t2w-assistant-panel {
        padding-top: 52px;
    }

    #t2w-planner-v2 .t2w-mobile-action-backdrop {
        display: none;
        position: fixed;
        inset: 0;
        z-index: 940;
        border: 0;
        background: rgba(29, 24, 12, 0.28);
        cursor: default;
    }

    #t2w-planner-v2.t2w-mobile-search-open .t2w-mobile-action-backdrop,
    #t2w-planner-v2.t2w-mobile-filters-open .t2w-mobile-action-backdrop,
    #t2w-planner-v2.t2w-mobile-refine-open .t2w-mobile-action-backdrop {
        display: block;
    }

    #t2w-planner-v2.t2w-mobile-search-open .t2w-ai-float,
    #t2w-planner-v2.t2w-mobile-filters-open .t2w-ai-float,
    #t2w-planner-v2.t2w-mobile-refine-open .t2w-ai-float {
        display: none !important;
    }

    #t2w-planner-v2 .t2w-mobile-action-row {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
        padding: 0 0 10px;
    }

    #t2w-planner-v2 .t2w-mobile-action-row__btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 6px;
        min-height: 44px;
        border: 1px solid var(--t2w-border-warm, #e8e0d0);
        border-radius: 14px;
        background: #fff;
        color: var(--t2w-text-warm, #1d180c);
        font-family: inherit;
        font-size: 13px;
        cursor: pointer;
    }

    #t2w-planner-v2 .t2w-mobile-action-row__btn strong {
        font-size: 13px;
        font-weight: 800;
    }

    #t2w-planner-v2 .t2w-mobile-action-row__btn[aria-pressed="true"] {
        border-color: rgba(255, 183, 0, 0.45);
        background: #fff7dd;
    }

    #t2w-planner-v2 .t2w-mobile-next-row {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 201;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 6px;
        margin: 0;
        padding: 10px 12px;
        padding-bottom: max(10px, env(safe-area-inset-bottom, 0px));
        background: #fff;
        border-top: 1px solid var(--t2w-border-warm, #e8e0d0);
        box-shadow: 0 -2px 10px rgba(29, 24, 12, 0.08);
    }

    #t2w-planner-v2 .t2w-mobile-next-row__btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 7px;
        min-width: 0;
        min-height: 44px;
        border: 1px solid var(--t2w-border-warm, #e8e0d0);
        border-radius: 14px;
        padding: 0 8px;
        background: #fff;
        color: var(--t2w-text-warm, #1d180c);
        font-family: inherit;
        cursor: pointer;
    }

    #t2w-planner-v2 .t2w-mobile-next-row__btn--primary {
        border-color: var(--color-primary-dark);
        background: var(--color-primary);
        color: var(--color-text-primary);
    }

    #t2w-planner-v2 .t2w-mobile-next-row__btn .material-symbols-outlined {
        flex: 0 0 auto;
        font-size: 18px;
    }

    #t2w-planner-v2 .t2w-mobile-next-row__btn strong {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: 12px;
        font-weight: 900;
    }

    /* S198 P2#2: next-row → 하단 네비바 4탭 [일정·지도·도구·상품] (데스크톱 레일과 동일 IA). 토큰 전용·터치 48px+ */
    #t2w-planner-v2 .t2w-mobile-next-row--tabs {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 2px;
        padding: 6px 6px;
        padding-bottom: max(6px, env(safe-area-inset-bottom, 0px));
    }
    #t2w-planner-v2 .t2w-mobile-nav-tab {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 2px;
        min-height: 48px;
        border: none;
        border-radius: 12px;
        background: transparent;
        color: var(--t2w-text-warm-secondary, #7a6f5d);
        font-family: inherit;
        cursor: pointer;
    }
    #t2w-planner-v2 .t2w-mobile-nav-tab .material-symbols-outlined {
        font-size: 23px;
    }
    #t2w-planner-v2 .t2w-mobile-nav-tab strong {
        font-size: 12px; /* S199 묶음A#10: 하단 탭 라벨 가독성(11→12px, 2글자 라벨이라 줄바꿈 위험 없음) */
        font-weight: 700;
    }
    #t2w-planner-v2 .t2w-mobile-nav-tab.is-active {
        color: var(--t2w-text-warm, #1d180c);
        background: var(--t2w-surface-warm, #faf6ee);
    }

    body:has(#t2w-planner-v2) .t2w-float-bar,
    body:has(#t2w-planner-v2) #t2w-chat-fab {
        display: none;
    }

    body:has(#t2w-planner-v2) .t2w-ai-float {
        display: none !important;
    }

    body .t2w-toast-container.t2w-planner-toast-container {
        top: auto;
        right: 12px;
        bottom: 148px;
        left: 12px;
        width: auto;
        max-width: none;
        max-height: 92px;
        overflow: hidden;
        z-index: 700;
        pointer-events: none;
    }

    body .t2w-toast-container.t2w-planner-toast-container .t2w-toast {
        pointer-events: auto;
    }

    body .t2w-toast-container.t2w-planner-toast-container .t2w-action-prompt {
        max-height: 86px;
        overflow: hidden;
        padding: 8px 10px;
        border-radius: 14px;
        box-shadow: 0 8px 22px rgba(29, 24, 12, 0.12);
    }

    body .t2w-toast-container.t2w-planner-toast-container .t2w-action-prompt__icon {
        width: 28px;
        height: 28px;
    }

    body .t2w-toast-container.t2w-planner-toast-container .t2w-action-prompt__title {
        font-size: 13px;
    }

    body .t2w-toast-container.t2w-planner-toast-container .t2w-action-prompt__text {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    body .t2w-toast-container.t2w-planner-toast-container .t2w-action-prompt__actions {
        margin-top: 4px;
    }

    body .t2w-toast-container.t2w-planner-toast-container .t2w-action-prompt__apply,
    body .t2w-toast-container.t2w-planner-toast-container .t2w-action-prompt__dismiss {
        min-height: 30px;
    }
}

@media (min-width: 1025px) {
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-main {
        display: grid;
        grid-template-columns: minmax(220px, 248px) minmax(460px, 1fr) minmax(360px, 420px);
        align-items: start;
        gap: 1px;
        width: 100%;
        max-width: none;
        margin: 0;
        padding: 0;
        background: var(--t2w-border-warm, #e8e0d0);
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-main > .t2w-v29-sidebar {
        display: flex;
        grid-column: 1;
        grid-row: 1;
        width: auto;
        max-width: none;
        height: calc(100vh - var(--t2w-header-height, 64px) - 24px);
        min-height: 640px;
        margin: 0;
        padding: 18px;
        position: sticky;
        top: calc(var(--t2w-header-height, 64px) + 12px);
        overflow: auto;
        background: var(--t2w-bg-warm, #fcfbf8);
        border: 0;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-main > #t2w-mob-overview,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-main > .t2w-v5-center {
        display: none;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-right {
        display: flex;
        grid-column: 2;
        grid-row: 1;
        width: auto;
        height: calc(100vh - var(--t2w-header-height, 64px) - 24px);
        min-height: 640px;
        position: sticky;
        top: calc(var(--t2w-header-height, 64px) + 12px);
        align-self: start;
        overflow: hidden;
        background: var(--t2w-surface-warm, #f4f0e6);
        border-radius: 0;
        box-shadow: none;
        z-index: 2;
    }

    

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-left {
        display: flex;
        flex-direction: column;
        grid-column: 3;
        grid-row: 1;
        width: auto;
        min-width: 0;
        max-height: calc(100vh - var(--t2w-header-height, 64px));
        overflow: auto;
        padding: 0 18px 32px;
        border: 0;
        background: var(--t2w-bg-warm, #fcfbf8);
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-header {
        order: 0;
        position: sticky;
        top: 0;
        z-index: 30;
        margin: 0 -18px 12px;
        padding: 16px 18px 12px;
        background: linear-gradient(180deg, var(--t2w-bg-warm, #fcfbf8) 82%, rgba(252, 251, 248, 0));
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) #t2w-timeline {
        display: flex;
        flex-direction: column;
        min-height: 0;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-progress {
        order: 1;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-filters {
        order: 2;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-itinerary-issue-card-host {
        order: 3;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) #t2w-assistant-panel {
        display: none;
        position: fixed;
        top: calc(var(--t2w-header-height, 64px) + 16px);
        right: calc(392px + 32px);
        z-index: 80;
        width: min(380px, calc(100vw - 704px));
        min-width: 320px;
        max-height: calc(100vh - var(--t2w-header-height, 64px) - 32px);
        margin: 0;
        overflow: auto;
        border-radius: 16px;
        box-shadow: 0 24px 70px rgba(29, 24, 12, 0.22);
    }

    

    #t2w-planner-v2:not(.t2w-planner--map-mode) #t2w-assistant-panel .t2w-assistant-panel__close {
        display: inline-flex;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-left .t2w-tl-body {
        order: 4;
        padding: 0 0 24px;
    }

    body:has(#t2w-planner-v2) .t2w-float-bar,
    body:has(#t2w-planner-v2) .t2w-ai-float,
    body:has(#t2w-planner-v2) #t2w-chat-fab {
        display: none !important;
    }
}

/* M7-B: review issues live inside the itinerary instead of a floating toast. */
#t2w-planner-v2 .t2w-itinerary-issue-card-host {
    margin: 8px 0 12px;
}

#t2w-planner-v2 .t2w-itinerary-issue-card-host:empty {
    display: none;
}

#t2w-planner-v2 .t2w-action-prompt--inline {
    width: auto;
    max-width: none;
    margin: 0;
    padding: 12px 14px;
    transform: none;
    opacity: 1;
    border-left-color: var(--t2w-primary, #FFB700);
    border-radius: 14px;
    background: #fffaf0;
    box-shadow: 0 8px 22px rgba(29, 24, 12, 0.08);
}

#t2w-planner-v2 .t2w-action-prompt--inline.visible {
    transform: none;
    opacity: 1;
}

#t2w-planner-v2 .t2w-action-prompt--inline .t2w-action-prompt__icon {
    color: var(--t2w-primary, #FFB700);
}

#t2w-planner-v2 .t2w-action-prompt--inline .t2w-action-prompt__title {
    color: var(--t2w-text-warm, #1d180c);
}

#t2w-planner-v2 .t2w-action-prompt--inline .t2w-action-prompt__text {
    color: var(--t2w-text-warm-secondary, #7a6f5d);
}

#t2w-planner-v2 .t2w-action-prompt--inline .t2w-action-prompt__apply {
    background: var(--t2w-primary, #FFB700);
    color: var(--t2w-text-warm, #1d180c);
}

#t2w-planner-v2 .t2w-action-prompt--notice {
    align-items: center;
}

#t2w-planner-v2 .t2w-action-prompt--notice .t2w-action-prompt__body {
    min-width: 0;
}

#t2w-planner-v2 .t2w-action-prompt--notice .t2w-action-prompt__dismiss {
    flex: 0 0 32px;
    width: 32px;
    min-width: 32px;
    min-height: 32px;
    padding: 0;
    border-radius: 999px;
}

#t2w-planner-v2 .t2w-action-prompt--notice-error {
    border-left-color: var(--color-error, #EF4444);
}

@media (min-width: 769px) {
    #t2w-planner-v2 .t2w-mobile-course-summary,
    #t2w-planner-v2 .t2w-mobile-map-strip,
    #t2w-planner-v2 .t2w-mobile-refine-strip,
    #t2w-planner-v2 .t2w-mobile-next-row,
    #t2w-planner-v2 .t2w-mobile-action-row {
        display: none;
    }
}

@media (max-width: 768px) {
    #t2w-planner-v2 #t2w-intent-chips {
        display: none !important;
    }

    #t2w-planner-v2 .t2w-tl-header {
    /* (S270 접기: L3720 병합) */
    flex-wrap:wrap;gap:6px;padding:10px 14px;
        margin-bottom: 8px;
    }

    #t2w-planner-v2 .t2w-tl-progress {
        padding-top: 2px;
        padding-bottom: 3px;
    }

    #t2w-planner-v2 .t2w-breadcrumb-bar {
        min-height: 32px;
    }

    #t2w-planner-v2 .t2w-mobile-action-row {
        padding-bottom: 6px;
    }

    #t2w-planner-v2 .t2w-metrics-bar {
        gap: 6px;
        margin: 4px 0 6px;
    }

    

    #t2w-planner-v2 .t2w-action-prompt--inline {
        min-height: 0;
        padding: 9px 10px;
        gap: 7px;
    }

    #t2w-planner-v2 .t2w-action-prompt--inline .t2w-action-prompt__text {
        font-size: 12px;
        line-height: 1.35;
    }

    

    

    

    #t2w-planner-v2 .t2w-action-prompt--inline .t2w-action-prompt__actions {
        margin-top: 6px;
    }

    #t2w-planner-v2 .t2w-action-prompt--inline .t2w-action-prompt__apply,
    #t2w-planner-v2 .t2w-action-prompt--inline .t2w-action-prompt__dismiss {
        min-height: 34px;
    }

    
}

/* M10: true planner shell from M6 Desktop V2 prototype. */
#t2w-planner-v2 .t2w-shell-rail__brand {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 28px;
    font-size: 19px;
    font-weight: 900;
    color: var(--t2w-text-warm, #1d180c);
}

#t2w-planner-v2 .t2w-shell-rail__logo {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--t2w-primary, #FFB700);
    color: #fff;
    font-size: 13px;
    font-weight: 900;
}

#t2w-planner-v2 .t2w-shell-rail__nav {
    display: grid;
    gap: 8px;
    margin-bottom: 24px;
}

#t2w-planner-v2 .t2w-shell-rail__nav-btn {
    display: flex;
    align-items: center;
    min-height: 42px;
    width: 100%;
    border: 1px solid transparent;
    border-radius: 12px;
    padding: 0 13px;
    background: rgba(255, 255, 255, 0.52);
    color: #5e5445;
    font-family: inherit;
    font-size: 14px;
    font-weight: 800;
    text-align: left;
    cursor: pointer;
}

#t2w-planner-v2 .t2w-shell-rail__nav-btn:hover,
#t2w-planner-v2 .t2w-shell-rail__nav-btn:focus-visible,
#t2w-planner-v2 .t2w-shell-rail__nav-btn.is-active {
    border-color: var(--t2w-border-warm, #e8e0d0);
    background: #fff;
    color: var(--t2w-text-warm, #1d180c);
    box-shadow: 0 4px 12px rgba(33, 27, 19, 0.05);
    outline: 0;
}

#t2w-planner-v2 .t2w-shell-rail__panel {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

#t2w-planner-v2 .t2w-shell-rail__course {
    order: 2;
    margin-top: auto;
    padding: 15px;
    border: 1px solid var(--t2w-border-warm, #e8e0d0);
    border-radius: 18px;
    background: var(--t2w-panel-strong, #fffdf8);
}

#t2w-planner-v2 .t2w-shell-rail__badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    max-width: 100%;
    border-radius: 999px;
    padding: 5px 9px;
    background: #fff2c7;
    color: #8a6400;
    font-size: 11px;
    font-weight: 900;
    white-space: nowrap;
}

#t2w-planner-v2 .t2w-shell-rail__badge .material-symbols-outlined {
    font-size: 14px;
}

#t2w-planner-v2 .t2w-shell-rail__course h2 {
    margin: 10px 0 5px;
    color: var(--t2w-text-warm, #1d180c);
    font-size: 22px;
    line-height: 1.15;
    font-weight: 900;
    letter-spacing: 0;
}

#t2w-planner-v2 .t2w-shell-rail__course p {
    margin: 0;
    color: var(--t2w-text-warm-secondary, #7a6f5d);
    font-size: 13px;
    line-height: 1.45;
}

#t2w-planner-v2 .t2w-shell-rail__metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    margin-top: 14px;
}

#t2w-planner-v2 .t2w-shell-rail__metrics span {
    display: grid;
    place-items: center;
    min-width: 0;
    min-height: 52px;
    border-radius: 10px;
    padding: 7px 4px;
    background: #f5ecdb;
    text-align: center;
}

#t2w-planner-v2 .t2w-shell-rail__metrics strong {
    display: block;
    color: var(--t2w-text-warm, #1d180c);
    font-size: 14px;
    font-weight: 900;
    line-height: 1.1;
}

#t2w-planner-v2 .t2w-shell-rail__metrics em {
    display: block;
    margin-top: 3px;
    color: #5e5445;
    font-size: 11px;
    font-style: normal;
    font-weight: 800;
    line-height: 1.1;
}

#t2w-planner-v2 .t2w-shell-rail__next-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 14px;
}

#t2w-planner-v2 .t2w-shell-rail__next-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 0;
    min-height: 42px;
    border: 1px solid rgba(29, 24, 12, 0.1);
    border-radius: 10px;
    padding: 0 8px;
    background: #fff;
    color: var(--t2w-text-warm, #1d180c);
    font-family: inherit;
    cursor: pointer;
}

#t2w-planner-v2 .t2w-shell-rail__next-action--primary {
    grid-column: 1 / -1;
    background: var(--color-primary);
    color: var(--color-text-primary);
    border-color: var(--color-primary-dark);
}

#t2w-planner-v2 .t2w-shell-rail__next-action .material-symbols-outlined {
    flex: 0 0 auto;
    font-size: 18px;
}

#t2w-planner-v2 .t2w-shell-rail__next-action strong {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.1;
}

#t2w-planner-v2 .t2w-shell-rail__status {
    display: grid;
    order: 1;
    gap: 12px;
    margin: 0 0 14px;
}

#t2w-planner-v2 .t2w-shell-rail__status:empty {
    display: none;
}



#t2w-planner-v2 .t2w-shell-rail__status .t2w-sb-quality {
    /* (S270 접기: L7105 병합) */
    margin: 0;
    border: 1px solid var(--t2w-border-warm, #e8e0d0);
    border-radius: 14px;
    background: #fffdf8;
    box-shadow: none;
    padding: 12px;
}

#t2w-planner-v2 .t2w-shell-rail__status .t2w-sb-quality-top {
    gap: 10px;
}

#t2w-planner-v2 .t2w-shell-rail__status .t2w-sb-gauge {
    width: 58px;
    height: 58px;
}

#t2w-planner-v2 .t2w-shell-rail__status .t2w-sb-quality-title {
    font-size: 13px;
}

#t2w-planner-v2 .t2w-shell-rail__status .t2w-sb-bar-row {
    grid-template-columns: 20px 58px 1fr 34px;
}

@media (min-width: 1025px) {
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-main {
        display: grid;
        grid-template-columns: minmax(220px, 248px) minmax(520px, 1fr) minmax(360px, 392px);
        align-items: start;
        gap: 1px;
        width: 100%;
        max-width: none;
        min-height: calc(100vh - var(--t2w-header-height, 64px));
        margin: 0;
        padding: 0;
        background: var(--t2w-border-warm, #e8e0d0);
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-main > .t2w-v29-sidebar.t2w-shell-rail {
        display: flex;
        grid-column: 1;
        grid-row: 1;
        flex-direction: column;
        width: auto;
        max-width: none;
        height: calc(100vh - var(--t2w-header-height, 64px));
        min-height: 640px;
        margin: 0;
        padding: 24px 20px;
        position: sticky;
        top: var(--t2w-header-height, 64px);
        overflow: auto;
        background: var(--t2w-panel, #fffaf2);
        border: 0;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-right {
        display: flex;
        grid-column: 2;
        grid-row: 1;
        width: auto;
        height: calc(100vh - var(--t2w-header-height, 64px));
        min-height: 640px;
        position: sticky;
        top: var(--t2w-header-height, 64px);
        align-self: start;
        overflow: hidden;
        background: #efe8da;
        border-radius: 0;
        box-shadow: none;
        z-index: 2;
    }

    

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-left {
        display: flex;
        flex-direction: column;
        grid-column: 3;
        grid-row: 1;
        width: auto;
        min-width: 0;
        max-height: calc(100vh - var(--t2w-header-height, 64px));
        overflow: auto;
        padding: 0 18px 32px;
        border: 0;
        background: var(--t2w-bg-warm, #fcfbf8);
    }
}

@media (max-width: 768px) {
    #t2w-planner-v2 .t2w-v5-main > .t2w-v29-sidebar.t2w-shell-rail {
        display: none !important;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-right {
        display: none;
    }

    #t2w-planner-v2 .t2w-mobile-map-strip {
        display: flex;
        align-items: center;
        gap: 10px;
        width: 100%;
        min-height: 52px;
        margin: 0 0 10px;
        border: 1px solid var(--t2w-border-warm, #eadfca);
        border-radius: 16px;
        padding: 0 12px;
        background: #fff;
        color: var(--t2w-text-warm, #1d180c);
        font-family: inherit;
        text-align: left;
        box-shadow: 0 6px 18px rgba(29, 24, 12, 0.06);
        cursor: pointer;
    }

    #t2w-planner-v2 .t2w-mobile-map-strip .material-symbols-outlined {
        font-size: 20px;
        color: var(--t2w-primary, #FFB700);
    }

    #t2w-planner-v2 .t2w-mobile-map-strip strong {
        flex: 0 0 auto;
        font-size: 13px;
        font-weight: 900;
    }

    #t2w-planner-v2 .t2w-mobile-map-strip em {
        flex: 1 1 auto;
        min-width: 0;
        color: var(--t2w-text-warm-secondary, #756b5a);
        font-size: 12px;
        font-style: normal;
        font-weight: 700;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    #t2w-planner-v2 .t2w-mobile-map-strip .material-symbols-outlined:last-child {
        color: var(--t2w-text-warm-secondary, #756b5a);
    }

    
}

/* M11: active trip chrome compaction - day switcher lives inside the agenda shell. */
#t2w-planner-v2 #t2w-intent-chips.t2w-intent-chips--shell-hidden {
    display: none !important;
}

#t2w-planner-v2 .t2w-cal--shell-agenda {
    width: auto;
    flex: 0 0 auto;
    border-bottom: 1px solid var(--t2w-border-warm, #e8e0d0);
    background: var(--t2w-bg-warm, #fcfbf8);
}

#t2w-planner-v2 .t2w-cal--shell-agenda .t2w-cal-pill-bar {
    height: 52px;
    padding: 8px 14px;
    border-bottom: 0;
    background: transparent;
}

#t2w-planner-v2 .t2w-cal--shell-agenda .t2w-cal-pill {
    min-width: 54px;
    border-color: var(--t2w-border-warm, #e8e0d0);
    background: #fff;
    color: var(--t2w-text-warm, #1d180c);
}

#t2w-planner-v2 .t2w-cal--shell-agenda .t2w-cal-pill--active {
    border-color: var(--t2w-primary, #FFB700);
    background: var(--t2w-primary, #FFB700);
    color: var(--t2w-text-warm, #1d180c);
}

#t2w-planner-v2 .t2w-cal--shell-agenda .t2w-add-leg-bar {
    display: none !important;
}

@media (min-width: 769px) {
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-left > .t2w-cal--shell-agenda {
        position: sticky;
        top: 0;
        z-index: 45;
        margin: 0 -18px 0;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-left .t2w-tl-header {
        top: 52px;
    }
}

@media (max-width: 768px) {
    #t2w-planner-v2 .t2w-cal--shell-agenda {
        display: none;
    }

    body:has(#t2w-planner-v2.t2w-planner--map-mode) .t2w-app-header,
    body:has(#t2w-planner-v2.t2w-planner--map-mode) .t2w-bottom-nav {
        display: none !important;
    }

    #t2w-planner-v2.t2w-planner--map-mode .t2w-v5-right {
    /* (S270 접기: L4525 병합) */
    position:fixed;inset:0;z-index:500;height:100vh;border-radius:0;
    /* (S270 접기: L7260 병합) */
    display: flex;
        z-index: 1200;
        height: 100dvh;
    }

    #t2w-planner-v2.t2w-planner--map-mode .t2w-map-close-pill {
    /* (S270 접기: L4527 병합) */
    display:flex;
        z-index: 1210;
    }
}

/* M43: prototype-aligned active-trip mobile composition. */
@media (max-width: 768px) {
    

    

    

    #t2w-planner-v2 .t2w-mobile-course-summary__badge {
        background: #fff4c7;
        color: #7a5800;
    }

    #t2w-planner-v2 .t2w-mobile-course-summary__date {
        overflow: hidden;
        text-overflow: ellipsis;
        background: #f6f1e6;
        color: var(--t2w-text-warm-secondary, #756b5a);
    }

    

    

    

    

    #t2w-planner-v2 .t2w-mobile-course-summary__stats strong {
        color: var(--t2w-text-warm, #1d180c);
        font-size: 15px;
        font-weight: 900;
        line-height: 1.15;
    }

    #t2w-planner-v2 .t2w-mobile-course-summary__stats em {
        margin-top: 2px;
        color: var(--t2w-text-warm-secondary, #756b5a);
        font-size: 11px;
        font-style: normal;
        font-weight: 700;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-map-strip {
        order: 1;
        width: calc(100% - 28px);
        margin: 0 14px 10px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-refine-strip {
        order: 2;
        display: grid;
        grid-template-columns: 28px minmax(0, 1fr) 20px;
        align-items: center;
        gap: 8px;
        width: calc(100% - 28px);
        min-height: 46px;
        margin: 0 14px 10px;
        border: 1px solid rgba(255, 183, 0, 0.42);
        border-radius: 14px;
        padding: 8px 11px;
        background: #fffaf0;
        color: var(--t2w-text-warm, #1d180c);
        font-family: inherit;
        text-align: left;
        cursor: pointer;
        box-shadow: 0 6px 18px rgba(29, 24, 12, 0.06);
    }

    #t2w-planner-v2 .t2w-mobile-refine-strip .material-symbols-outlined {
        color: var(--t2w-primary, #FFB700);
        font-size: 20px;
    }

    #t2w-planner-v2 .t2w-mobile-refine-strip__text {
        display: grid;
        min-width: 0;
        gap: 1px;
    }

    #t2w-planner-v2 .t2w-mobile-refine-strip__text strong,
    #t2w-planner-v2 .t2w-mobile-refine-strip__text em {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    #t2w-planner-v2 .t2w-mobile-refine-strip__text strong {
        font-size: 13px;
        font-weight: 900;
        line-height: 1.15;
    }

    #t2w-planner-v2 .t2w-mobile-refine-strip__text em {
        color: var(--t2w-text-warm-secondary, #756b5a);
        font-size: 11px;
        font-style: normal;
        font-weight: 700;
        line-height: 1.2;
    }

    #t2w-planner-v2 .t2w-mobile-refine-strip[aria-pressed="true"] {
        border-color: var(--t2w-primary, #FFB700);
        background: #fff4c7;
    }

    

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-left {
        order: 4;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-header {
        margin-bottom: 4px;
        padding: 10px 12px 8px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-header .t2w-tl-ctrl {
        display: none;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-metrics-bar,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-progress {
        display: none;
    }

    #t2w-planner-v2:not(.t2w-mobile-search-open) .t2w-tl-search-wrap {
        display: none;
    }

    #t2w-planner-v2.t2w-mobile-search-open .t2w-tl-search-wrap {
        display: block;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-breadcrumb-bar {
        display: none;
    }

    #t2w-planner-v2 .t2w-mobile-action-row {
        margin: 0 0 8px;
        padding-bottom: 0;
    }

    #t2w-planner-v2 .t2w-mobile-next-row {
        margin: 0 0 12px;
    }
}

/* M44: mobile itinerary body reads like a reviewed route before edit tools. */
@media (max-width: 768px) {
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-card-list {
        width: 100%;
        padding: 0 0 16px !important;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-endpoint-stack {
        gap: 6px;
        margin: 0 0 8px;
    }

    

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-departure-v3-icon {
        font-size: 16px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-departure-v3-label {
        font-size: 12px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-departure-search-wrap,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-destination-search-wrap {
        display: block;
        flex: 1;
        min-width: 0;
    }

    

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-departure-v3-time-badge {
        margin-left: auto;
        padding: 4px 9px;
        font-size: 11px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-zone-card {
        width: 100%;
        margin: 0 0 10px;
        border: 1px solid var(--t2w-border-warm, #eadfca);
        border-radius: 14px;
        background: #fff;
        box-shadow: 0 4px 14px rgba(29, 24, 12, 0.05);
        overflow: hidden;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-zone-sep {
        margin: 0;
        padding: 10px 12px;
        gap: 8px;
        border: 0;
        border-bottom: 1px solid rgba(234, 223, 202, 0.75);
        border-radius: 0;
        box-shadow: none;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-zone-card-grip,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-zone-actions {
        display: none !important;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-zone-dot {
        width: 4px;
        height: 30px;
        border-radius: 999px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-zone-name {
        font-size: 15px;
        line-height: 1.2;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-zone-meta {
        font-size: 12px;
        line-height: 1.3;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-zone-meta .material-symbols-outlined {
        display: none;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-timeline {
        margin-left: 0;
        padding: 6px 10px 10px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-line {
        display: none;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-item {
        min-height: 60px;
        margin-bottom: 6px;
        gap: 8px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-badge {
        width: 34px;
        height: auto;
        padding-top: 8px;
        gap: 3px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-time {
        font-size: 12px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-circle {
        width: 24px;
        height: 24px;
        font-size: 10px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-item__quick-delete,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-item__delete-hint {
        display: none !important;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card {
        min-height: 60px;
        padding: 0;
        border-radius: 12px;
        box-shadow: none;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-card-header {
        display: flex;
        flex-wrap: nowrap;
        align-items: center;
        min-height: 60px;
        margin: 0;
        padding: 8px 10px;
        gap: 8px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v7-grip,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-card-thumb-mini,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v7-dur {
        display: none !important;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v7-content {
        flex: 1 1 auto;
        min-width: 0;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-card-title {
        min-width: 0;
        max-width: 100%;
        overflow: hidden;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-name-check {
        display: flex;
        align-items: center;
        min-width: 0;
        gap: 5px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-visited-check,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-fac-inline {
        display: none !important;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-card-title h3 {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: 14px;
        line-height: 1.25;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-badge-mustgo {
        padding: 2px 6px;
        font-size: 9px;
        line-height: 1.2;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-badge-mustgo .material-symbols-outlined {
        display: none;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-card-rating {
        margin-top: 3px;
        gap: 4px;
        font-size: 12px;
        line-height: 1.35;
        color: var(--t2w-text-warm-secondary, #756b5a);
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-card-rating::before {
        content: "star";
        color: var(--t2w-primary, #FFB700);
        font-family: "Material Symbols Outlined";
        font-size: 15px;
        font-weight: 400;
        line-height: 1;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-card-rating > .material-symbols-outlined {
        display: none;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-card-cat,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-rating-num {
        font-size: 12px;
        line-height: 1.35;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v7-toggle {
        flex: 0 0 32px;
        width: 32px;
        min-height: 40px;
        padding: 0;
        justify-content: center;
        color: var(--t2w-text-warm-secondary, #756b5a);
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v7-toggle-text {
        display: none;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v44-body {
        display: none !important;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-trp-v2 {
        margin: 2px 0 6px 42px;
        padding: 0;
        gap: 4px;
        border: 0;
        background: transparent;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-trp-v2-info {
        width: auto;
        color: var(--t2w-text-warm-secondary, #756b5a);
        font-size: 12px;
        line-height: 1.3;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-trp-v2-icon {
        color: var(--t2w-text-warm-secondary, #756b5a);
        font-size: 16px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-trp-v2-modes,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-trp-v2-nav {
        display: none !important;
    }
}

/* M45: generated mobile itinerary uses a review list, not the old editor timeline. */
@media (max-width: 768px) {
    /* S189 P2-4: stop the planner shell from growing to fill viewport on mobile (kills empty tail) */
    #t2w-planner-v2 .t2w-v5-main {
        flex: 0 1 auto;
    }

    #t2w-planner-v2 .t2w-mobile-day-cap {
        margin: 14px 10px 4px;
        padding: 14px 16px;
        border-radius: 14px;
        background: linear-gradient(135deg, var(--color-bg-cream), var(--color-itinerary-source-bg));
        border: 1px solid var(--t2w-border-warm, #e8e0d0);
    }
    #t2w-planner-v2 .t2w-mobile-day-cap__head {
        display: flex;
        align-items: center;
        gap: 6px;
        font-size: 13px;
        font-weight: 800;
        color: var(--color-text-primary);
        margin-bottom: 8px;
    }
    #t2w-planner-v2 .t2w-mobile-day-cap__head .material-symbols-outlined {
        font-size: 18px;
        color: var(--color-primary);
    }
    #t2w-planner-v2 .t2w-mobile-day-cap__stats {
        display: flex;
        gap: 16px;
        font-size: 12px;
        color: var(--color-text-secondary);
    }
    #t2w-planner-v2 .t2w-mobile-day-cap__stats strong {
        font-size: 15px;
        font-weight: 800;
        color: var(--color-text-primary);
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-timeline {
        position: relative;
        display: flex;
        flex-direction: column;
        gap: 6px;
        padding: 8px 10px 12px;
    }

    /* Phase 3: gold journey rail — continuous spine behind the numbered stops */
    

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-place {
        position: relative;
        z-index: 1;
        display: grid;
        grid-template-columns: 42px 56px minmax(0, 1fr);
        gap: 8px;
        align-items: stretch;
        min-height: 56px;
        cursor: pointer;
        /* Phase 3: generation-moment staggered entrance (index via --t2w-i) */
        animation: t2wFadeInUp .4s cubic-bezier(.16, 1, .3, 1) both;
        animation-delay: calc(var(--t2w-i, 0) * .06s);
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-place__rail {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 4px;
        min-width: 0;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-place__time {
        color: var(--color-text-primary);
        font-size: 13px;
        font-weight: 700;
        line-height: 1;
        white-space: nowrap;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-place__num {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 24px;
        height: 24px;
        border-radius: 999px;
        border: 1px solid rgba(255, 183, 0, 0.7);
        background: #fff;
        color: var(--color-primary-text);
        font-size: 11px;
        font-weight: 800;
        line-height: 1;
        /* Phase 3: lit-station bead on the gold rail */
        box-shadow: 0 0 0 3px rgba(255, 183, 0, 0.14);
    }

    

    /* 빈 썸네일(사진 없는 장소): 진한 골드 정사각형이 실제 사진보다 튀어 시선 분산 →
       부드러운 크림 타일 + 따뜻한 핀 아이콘으로 톤다운(조용한 '사진 없음' 표시). 모바일 전용 요소(_renderMobileReviewPlace)라 데스크톱 무영향. */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-place__thumb--empty {
        background: linear-gradient(135deg, var(--t2w-bg-cream, #fffbeb), #fbedcb);
        box-shadow: inset 0 0 0 1px rgba(180, 83, 9, 0.16);
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-place__thumb--empty .material-symbols-outlined {
        color: var(--color-primary-dark, #b45309);
        font-size: 24px;
    }

    

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-place:active .t2w-mobile-review-place__body,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-place__body:hover {
        border-color: rgba(255, 183, 0, 0.5);
        box-shadow: 0 4px 12px rgba(29, 24, 12, 0.08);
    }

    

    

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-place__badge {
        flex: 0 0 auto;
        padding: 2px 6px;
        border-radius: 999px;
        background: rgba(255, 183, 0, 0.12);
        color: #8a6400;
        font-size: 9px;
        font-weight: 800;
        line-height: 1.2;
        white-space: nowrap;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-place__meta {
        margin-top: 3px;
        overflow: hidden;
        color: var(--color-text-secondary);
        font-size: 11.5px;
        font-weight: 600;
        line-height: 1.25;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-hop .material-symbols-outlined {
        color: #8f8676;
        font-size: 15px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-hop__dot {
        width: 3px;
        height: 3px;
        border-radius: 999px;
        background: #c7bda8;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-meal,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-return {
        display: flex;
        align-items: center;
        gap: 6px;
        min-height: 36px;
        margin-left: 50px;
        padding: 8px 10px;
        border: 1px solid rgba(232, 224, 208, 0.8);
        border-radius: 11px;
        background: #fffaf0;
        color: #6f6049;
        font-size: 12px;
        font-weight: 700;
        line-height: 1.3;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-meal .material-symbols-outlined,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-return .material-symbols-outlined {
        color: var(--t2w-amber-ink, #8a5a00);
        font-size: 16px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-meal__time,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-return__time {
        /* S204: 식사/복귀 시간 글자 대비 3.22→5.7(크림 배경). 바로 위 동일맥락 아이콘이 이미
           amber-ink라 시간 글자도 맞춰 일관. (이전 #9b8a70 = AA 미달 텍스트) */
        color: var(--t2w-amber-ink, #8a5a00);
        font-size: 11px;
        font-weight: 800;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-meal__name {
        min-width: 0;
        overflow: hidden;
        color: #1d180c;
        font-weight: 800;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}

/* M57: keep the desktop agenda readable inside the prototype shell right rail. */
@media (min-width: 1025px) {
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-left {
        overflow-x: hidden;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-body,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-card-list,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-zone-card,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-zone-card-body,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-timeline,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card {
        min-width: 0;
        max-width: 100%;
    }

    

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card {
        overflow: hidden;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card-header {
        align-items: center;
        flex-wrap: nowrap;
        min-width: 0;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card-title,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-name-check,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v7-content {
        min-width: 0;
        max-width: 100%;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card-title h3 {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-badge-tag,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-fac-inline {
        display: none;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v7-dur-btn {
        min-width: 30px;
        width: 30px;
        max-width: 30px;
        height: 30px;
    }

    

    

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-meal-mini-name,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-meal-mini-meta {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}

/* M58: desktop agenda cards read first; editing controls stay folded until expansion. */
@media (min-width: 1025px) {
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-item__quick-delete,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-item__delete-hint {
        display: none !important;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-badge {
        flex: 0 0 44px;
        width: 44px;
        padding-top: 10px;
        gap: 4px;
    }

    

    

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed {
        min-height: 70px;
        padding: 0;
        border: 1px solid rgba(234, 223, 202, 0.95);
        border-radius: 14px;
        background: #fff;
        box-shadow: 0 6px 18px rgba(29, 24, 12, 0.06);
        transform: none;
    }

    

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--must.t2w-v29-card--collapsed {
        border-color: var(--t2w-border-warm, #e4dac7);
        background: #fff;
    }

    

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v7-grip,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-card-thumb-mini {
        display: none !important;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v7-content {
        min-width: 0;
        max-width: 100%;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-time-range {
        display: none !important;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-card-title {
        display: flex;
        align-items: center;
        min-width: 0;
        max-width: 100%;
        gap: 6px;
        overflow: hidden;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-name-check {
        display: flex;
        flex: 1 1 auto;
        align-items: center;
        min-width: 0;
        gap: 0;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-visited-check,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-badge-tag,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-fac-inline {
        display: none !important;
    }

    

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-item--done .t2w-v29-card--collapsed .t2w-v29-card-title h3::before {
        content: none !important;
        display: none !important;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-badge-mustgo {
        flex: 0 0 auto;
        padding: 2px 6px;
        border-radius: 999px;
        font-size: 9px;
        font-weight: 800;
        line-height: 1.2;
        letter-spacing: 0;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-badge-mustgo .material-symbols-outlined {
        display: none;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-card-rating {
        display: flex;
        align-items: center;
        min-width: 0;
        max-width: 100%;
        margin-top: 4px;
        gap: 4px;
        overflow: hidden;
        color: var(--t2w-text-warm-secondary, #756b5a);
        font-size: 12px;
        font-weight: 650;
        line-height: 1.3;
        white-space: nowrap;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-card-rating::before {
        content: "star";
        flex: 0 0 auto;
        color: var(--t2w-primary, #FFB700);
        font-family: "Material Symbols Outlined";
        font-size: 15px;
        font-weight: 400;
        line-height: 1;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-card-rating > .material-symbols-outlined {
        display: none;
    }

    

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v7-dur {
        grid-column: 2;
        align-self: center;
        min-width: 44px;
        height: 28px;
        margin: 0;
        padding: 0 8px;
        border: 1px solid rgba(255, 183, 0, 0.28);
        border-radius: 999px;
        background: #fff8e6;
        box-shadow: none;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v7-dur-btn,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v7-dur-range {
        display: none !important;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v7-dur-display {
        padding: 0;
        min-width: 0;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v7-dur-time {
        color: #755300;
        font-size: 12px;
        font-weight: 800;
        line-height: 1;
        letter-spacing: 0;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v7-toggle {
        grid-column: 3;
        align-self: center;
        justify-self: end;
        width: 30px;
        min-width: 30px;
        height: 30px;
        min-height: 30px;
        margin: 0;
        padding: 0;
        border: 1px solid rgba(234, 223, 202, 0.95);
        border-radius: 9px;
        background: #f8f4ec;
        color: var(--t2w-text-warm-secondary, #756b5a);
        box-shadow: none;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v7-toggle .material-symbols-outlined {
        font-size: 20px;
        line-height: 1;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v7-toggle-text {
        display: none;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v44-body {
        display: none !important;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-place-products {
        display: none !important;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-trp-v2 {
        margin: 3px 0 7px 52px;
        padding: 0;
        gap: 5px;
        border: 0;
        background: transparent;
        box-shadow: none;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-trp-v2-info {
        width: auto;
        min-width: 0;
        color: var(--t2w-text-warm-secondary, #756b5a);
        font-size: 12px;
        font-weight: 700;
        line-height: 1.3;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-trp-v2-icon {
        color: #9a8c75;
        font-size: 16px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-trp-v2-modes,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-trp-v2-nav {
        display: none !important;
    }
}

/* M59: desktop agenda auxiliary blocks stay compact around read-first place cards. */
@media (min-width: 1025px) {
    

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-meal-hint-header {
        display: flex;
        align-items: center;
        min-height: 36px;
        padding: 8px 10px;
        border-bottom: 1px solid rgba(234, 223, 202, 0.65);
        background: #fff9ea;
        color: var(--t2w-text-warm-primary, #1d180c);
        font-size: 12px;
        font-weight: 800;
        line-height: 1.25;
        letter-spacing: 0;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-meal-hint-header strong {
        margin: 0 2px;
        color: var(--t2w-amber-ink, #8a5a00);
        font-weight: 900;
    }

    /* S171 플랜2: 데스크톱도 세로 그리드 → 가로 슬라이드 (여러 곳 한 줄 스크롤).
       flex-direction:row 명시 = 위 :1025 블록의 column 이김. */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-meal-mini-cards {
    /* (S270 접기: L8116 병합) */
    flex-direction: column;
        max-width: 100%;
        overflow-x: hidden;
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        grid-template-columns: none;
        gap: 8px;
        margin: 0;
        padding: 8px 10px 4px;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x proximity;
        scrollbar-width: none;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-meal-mini {
    /* (S270 접기: L8122 병합) */
    flex: 0 0 auto;
        width: 100%;
        min-width: 0;
        flex: 0 0 auto;
        width: auto;
        min-width: 172px;
        max-width: 220px;
        min-height: 48px;
        padding: 7px 8px;
        gap: 8px;
        border-color: rgba(234, 223, 202, 0.95);
        border-radius: 10px;
        background: #fff;
        scroll-snap-align: start;
        cursor: pointer;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-meal-mini-thumb {
        width: 34px;
        height: 34px;
        border-radius: 8px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-meal-mini-info {
        min-width: 0;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-meal-mini-name {
        max-width: 100%;
        color: var(--t2w-text-warm-primary, #1d180c);
        font-size: 12px;
        font-weight: 800;
        line-height: 1.25;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-meal-mini-meta {
        color: var(--t2w-text-warm-secondary, #756b5a);
        font-size: 10.5px;
        font-weight: 650;
        line-height: 1.25;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-meal-add-btn {
        min-height: 34px;
        margin: 8px 0 0;
        padding: 0 10px;
        border-top: 1px solid rgba(234, 223, 202, 0.65);
        border-radius: 0;
        background: transparent;
        color: var(--t2w-amber-ink, #8a5a00);
        font-size: 12px;
        font-weight: 850;
        box-shadow: none;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-return {
        display: grid;
        grid-template-columns: 44px 24px minmax(0, 1fr);
        align-items: center;
        min-height: 42px;
        margin: 4px 0 8px;
        padding: 8px 10px;
        gap: 8px;
        border: 1px dashed rgba(214, 204, 184, 0.95);
        border-radius: 12px;
        background: #fff;
        box-shadow: none;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-return-time {
        margin: 0;
        color: var(--t2w-text-warm-primary, #1d180c);
        font-size: 13px;
        font-weight: 850;
        line-height: 1.2;
        text-align: center;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-return-icon {
        width: 24px;
        height: 24px;
        border-radius: 8px;
        background: #f8f4ec;
        color: var(--t2w-text-warm-secondary, #756b5a);
        box-shadow: none;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-return-text {
        min-width: 0;
        overflow: hidden;
        color: var(--t2w-text-warm-secondary, #756b5a);
        font-size: 12px;
        font-weight: 800;
        line-height: 1.25;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}

/* M60: planner entry quick choices stay touch-safe on mobile. */
@media (max-width: 768px) {
    #t2w-planner-v2 .t2w-entry-quickset__group {
        min-height: 52px;
    }

    #t2w-planner-v2 .t2w-entry-quickset__btn,
    #t2w-planner-v2 .t2w-entry-departure-input,
    #t2w-planner-v2 .t2w-entry-destination-input,
    #t2w-planner-v2 .t2w-entry-start-time {
        min-height: 44px;
    }

    #t2w-planner-v2 .t2w-entry-quickset__btn {
        padding: 0 12px;
        line-height: 1;
    }
}

/* M61: active itinerary endpoint and notice controls stay touch-safe on mobile. */
@media (max-width: 768px) {
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-departure-v3 {
    /* (S270 접기: L7548 병합) */
    min-height: 40px;
        margin: 0;
        padding: 8px 10px;
        gap: 7px;
        border: 1px solid var(--t2w-border-warm, #eadfca);
        border-radius: 12px;
        box-shadow: none;
        min-height: 52px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-departure-input,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-destination-input {
    /* (S270 접기: L7573 병합) */
    min-width: 0;
        height: 30px;
        padding: 5px 26px 5px 9px;
        font-size: 11px;
        text-overflow: ellipsis;
        min-height: 44px;
        height: 44px;
        padding: 8px 28px 8px 10px;
        font-size: 12px;
    }

    #t2w-planner-v2 .t2w-action-prompt--notice .t2w-action-prompt__dismiss {
    /* (S270 접기: L6898 병합) */
    flex-basis: 30px;
        width: 30px;
        min-width: 30px;
        min-height: 30px;
        flex-basis: 44px;
        width: 44px;
        min-width: 44px;
        min-height: 44px;
    }
}

@media (max-width: 768px) {
    body:has(#t2w-planner-v2:not(.t2w-planner--map-mode)) .t2w-bottom-nav {
        display: none !important;
    }
}

/* M12: no-trip entry is its own customer flow, not the active planner shell. */
#t2w-planner-v2 .t2w-v5-main.t2w-planner-search-active {
    display: flex !important;
    align-items: flex-start;
    justify-content: center;
    width: 100%;
    min-height: calc(100vh - var(--t2w-header-height, 64px));
    padding: 0;
    background: #fff;
}

#t2w-planner-v2 .t2w-v5-main.t2w-planner-search-active > .t2w-v29-sidebar,
#t2w-planner-v2 .t2w-v5-main.t2w-planner-search-active > .t2w-v5-right,
#t2w-planner-v2 .t2w-v5-main.t2w-planner-search-active > .t2w-v5-center,
#t2w-planner-v2 .t2w-v5-main.t2w-planner-search-active > #t2w-mob-overview {
    display: none !important;
}

#t2w-planner-v2 .t2w-v5-main.t2w-planner-search-active > .t2w-v5-left {
    flex: 1 1 auto !important;
    width: 100%;
    max-width: 980px;
    min-width: 0;
    max-height: none;
    margin: 0 auto;
    padding: 0 24px 48px;
    overflow: visible;
    border: 0;
    background: transparent;
}

#t2w-planner-v2 .t2w-v5-main.t2w-planner-search-active #t2w-timeline,
#t2w-planner-v2 .t2w-v5-main.t2w-planner-search-active .t2w-tl-body {
    width: 100%;
}

#t2w-planner-v2 .t2w-v5-main.t2w-planner-search-active .t2w-tl-header {
    display: none;
}

#t2w-planner-v2 .t2w-v5-main.t2w-planner-search-active .t2w-tl-body {
    padding: 0;
}

@media (max-width: 768px) {
    #t2w-planner-v2 .t2w-v5-main.t2w-planner-search-active {
        min-height: calc(100dvh - 56px);
    }

    #t2w-planner-v2 .t2w-v5-main.t2w-planner-search-active > .t2w-v5-left {
        max-width: none;
        padding: 0 0 36px;
    }
}

/* M64: desktop active planner uses one visible vertical scroll path. */
@media (min-width: 1025px) {
    body:has(#t2w-planner-v2:not(.t2w-planner--map-mode)) {
        overflow: hidden !important;
    }

    /* S172: hide marketing footer on the desktop app-shell. M64 locks the planner to
       one scroll path (100vh shell + internal column scroll), but the <footer> below
       the shell still let the document (html) scroll ~445px, floating the dark footer
       up into mid-screen ("푸터가 너무 높게"). Removing it on desktop planner kills both
       the intrusion and the stray scroll. Mobile/tablet (<1025px) keep the footer
       (planner-core "continuous scroll" layout). Master decision 2026-06-09. */
    body:has(#t2w-planner-v2:not(.t2w-planner--map-mode)) .t2w-footer {
        display: none;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) {
        height: 100vh;
        min-height: 0;
        overflow: hidden;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-main {
        height: calc(100vh - 45px);
        min-height: 0;
        overflow: hidden;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-main > .t2w-v29-sidebar.t2w-shell-rail,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-right,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-left {
        height: calc(100vh - 45px);
        min-height: 0;
        max-height: none;
        top: 0;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-main > .t2w-v29-sidebar.t2w-shell-rail {
        overflow-y: auto;
        overflow-x: hidden;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-main > .t2w-v29-sidebar.t2w-shell-rail::-webkit-scrollbar {
        display: none;
        width: 0;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-left {
        overflow-y: auto;
        overflow-x: hidden;
    }
}

/* M65: mobile active itinerary first screen is read-first and space-efficient. */
@media (min-width: 769px) {
    #t2w-planner-v2 .t2w-mobile-utility-row {
        display: none;
    }
}

@media (max-width: 768px) {
    

    #t2w-planner-v2 .t2w-mobile-course-summary__top {
    /* (S270 접기: L7346 병합) */
    display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        margin-bottom: 8px;
        gap: 7px;
        margin-bottom: 0;
    }

    #t2w-planner-v2 .t2w-mobile-course-summary__badge,
    #t2w-planner-v2 .t2w-mobile-course-summary__date {
    /* (S270 접기: L7354 병합) */
    min-width: 0;
        border-radius: 999px;
        padding: 4px 8px;
        font-size: 11px;
        font-weight: 800;
        line-height: 1.1;
        white-space: nowrap;
        padding: 3px 7px;
        font-size: 10px;
    }

    #t2w-planner-v2 .t2w-mobile-course-summary__title {
    /* (S270 접기: L7377 병합) */
    margin: 0;
        color: var(--t2w-text-warm, #1d180c);
        font-size: 22px;
        font-weight: 900;
        line-height: 1.14;
        letter-spacing: 0;
        overflow: hidden;
        font-size: 16px;
        line-height: 1.14;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    #t2w-planner-v2 .t2w-mobile-course-summary__stats {
    /* (S270 접기: L7386 병합) */
    display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 7px;
        margin-top: 12px;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr)); /* S199: "N일 일정" 칩 제거 → 2칸(장소·완성도) */
        gap: 4px;
        margin-top: 1px;
    }

    #t2w-planner-v2 .t2w-mobile-course-summary__stats span {
    /* (S270 접기: L7393 병합) */
    min-width: 0;
        border-radius: 12px;
        padding: 7px 8px;
        background: #f7f3e8;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 3px;
        min-height: 22px;
        padding: 2px 5px;
        border-radius: 8px;
    }

    #t2w-planner-v2 .t2w-mobile-course-summary__stats strong,
    #t2w-planner-v2 .t2w-mobile-course-summary__stats em {
    /* (S270 접기: L7400 병합) */
    display: block;
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        display: inline;
        margin: 0;
        line-height: 1.1;
    }

    #t2w-planner-v2 .t2w-mobile-course-summary__stats strong {
        font-size: 12px;
    }

    #t2w-planner-v2 .t2w-mobile-course-summary__stats em {
        font-size: 10px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-utility-row {
        order: 1;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
        width: calc(100% - 28px);
        margin: 0 14px 2px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-utility-row > .t2w-mobile-map-strip,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-utility-row > .t2w-mobile-refine-strip {
        width: 100%;
        min-height: 44px;
        margin: 0;
        border-radius: 12px;
        padding: 0 10px;
        box-shadow: none;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-utility-row > .t2w-mobile-map-strip {
        gap: 7px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-utility-row > .t2w-mobile-refine-strip {
        grid-template-columns: 20px minmax(0, 1fr);
        gap: 7px;
        border-color: var(--t2w-border-warm, #eadfca);
        background: #fff;
    }

    #t2w-planner-v2 .t2w-mobile-utility-row .t2w-mobile-map-strip .material-symbols-outlined,
    #t2w-planner-v2 .t2w-mobile-utility-row .t2w-mobile-refine-strip .material-symbols-outlined {
        font-size: 18px;
    }

    #t2w-planner-v2 .t2w-mobile-utility-row .t2w-mobile-map-strip .material-symbols-outlined:last-child,
    #t2w-planner-v2 .t2w-mobile-utility-row .t2w-mobile-refine-strip > .material-symbols-outlined:last-child,
    #t2w-planner-v2 .t2w-mobile-utility-row .t2w-mobile-refine-strip__text em {
        display: none;
    }

    #t2w-planner-v2 .t2w-mobile-utility-row .t2w-mobile-map-strip strong,
    #t2w-planner-v2 .t2w-mobile-utility-row .t2w-mobile-refine-strip__text strong {
        overflow: hidden;
        font-size: 12px;
        line-height: 1.1;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    #t2w-planner-v2 .t2w-mobile-utility-row .t2w-mobile-map-strip em {
        font-size: 10px;
        line-height: 1.1;
    }

    

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-left {
        order: 3;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-header {
        min-height: 38px;
        margin-bottom: 2px;
        padding: 8px 12px 6px;
    }

    

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-endpoint-stack--compact > summary {
        list-style: none;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-endpoint-stack--compact > summary::-webkit-details-marker {
        display: none;
    }

    

    #t2w-planner-v2 .t2w-endpoint-summary__icon {
        color: var(--t2w-primary, #FFB700);
        font-size: 18px;
    }

    #t2w-planner-v2 .t2w-endpoint-summary__text {
        display: grid;
        min-width: 0;
        gap: 1px;
    }

    #t2w-planner-v2 .t2w-endpoint-summary__text strong,
    #t2w-planner-v2 .t2w-endpoint-summary__text em {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    

    #t2w-planner-v2 .t2w-endpoint-summary__text em {
        color: var(--t2w-text-warm-secondary, #756b5a);
        font-size: 10.5px;
        font-style: normal;
        font-weight: 700;
        line-height: 1.15;
    }

    #t2w-planner-v2 .t2w-endpoint-summary__edit {
        border-radius: 999px;
        padding: 4px 7px;
        background: #f6f1e6;
        color: var(--t2w-text-warm-secondary, #756b5a);
        font-size: 10px;
        font-weight: 900;
        line-height: 1;
        white-space: nowrap;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-endpoint-stack--compact[open] .t2w-endpoint-summary {
        border-color: rgba(255, 183, 0, 0.5);
        background: #fffaf0;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-endpoint-fields {
        display: grid;
        gap: 6px;
        margin-top: 6px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-endpoint-fields .t2w-departure-input,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-endpoint-fields .t2w-destination-input {
        box-sizing: border-box;
        width: 100%;
        max-width: 100%;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-zone-card {
        margin-bottom: 6px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-zone-sep {
        box-sizing: border-box;
        min-height: 44px;
        padding: 6px 10px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-timeline {
        padding-top: 4px;
    }

    #t2w-planner-v2 .t2w-itinerary-issue-card-host {
    /* (S270 접기: L6856 병합) */
    margin: 4px 0 8px;
        margin: 2px 0 6px;
    }

    #t2w-planner-v2 .t2w-action-prompt--notice {
    /* (S270 접기: L6871 병합) */
    min-height: 52px;
        padding: 8px 10px;
        box-sizing: border-box;
        min-height: 44px;
        padding: 4px 8px;
        gap: 6px;
    }

    #t2w-planner-v2 .t2w-action-prompt--notice .t2w-action-prompt__icon {
        width: 18px;
        min-width: 18px;
        font-size: 16px;
    }

    #t2w-planner-v2 .t2w-action-prompt--notice .t2w-action-prompt__body {
        display: flex;
        align-items: center;
        gap: 6px;
        min-width: 0;
    }

    #t2w-planner-v2 .t2w-action-prompt--notice .t2w-action-prompt__title {
    /* (S270 접기: L6876 병합) */
    font-size: 12px;
        line-height: 1.2;
        flex: 0 0 auto;
        font-size: 11px;
        line-height: 1.1;
    }

    #t2w-planner-v2 .t2w-action-prompt--notice .t2w-action-prompt__text {
    /* (S270 접기: L6881 병합) */
    overflow: hidden;
        font-size: 11.5px;
        line-height: 1.25;
        text-overflow: ellipsis;
        white-space: nowrap;
        min-width: 0;
        font-size: 11px;
        line-height: 1.1;
    }
}

/* ========================================
   S146 (2026-05-26): Cards Lazy Fetch + Transit Step Detail
   Phase 1: '예상' badge + chip loading state
   Phase 2: transit in-place expand with steps
   ======================================== */

/* '예상' badge — haversine fallback 신호 (Phase 1.7) */
.t2w-trp-v2 .t2w-trp-v2-est {
    display: inline-block;
    margin-left: 4px;
    padding: 1px 5px;
    font-size: 0.7em;
    line-height: 1.3;
    border-radius: 3px;
    background: rgba(0, 0, 0, 0.06);
    color: var(--t2w-text-muted, #6b7280);
    vertical-align: middle;
}

/* Chip loading state — lazy fetch 진행 중 (Phase 1.6) */
.t2w-trp-v2 .t2w-trp-v2-chip--loading {
    opacity: 0.6;
    position: relative;
    pointer-events: none;
}
.t2w-trp-v2 .t2w-trp-v2-chip--loading::after {
    content: '⋯';
    margin-left: 2px;
    animation: t2w-trp-pulse 0.8s ease-in-out infinite;
}
@keyframes t2w-trp-pulse {
    0%, 100% { opacity: 0.8; }
    50% { opacity: 0.3; }
}

/* Transit step expand (Phase 2.3) */
.t2w-trp-v2 .t2w-trp-v2-detail {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px dashed rgba(0, 0, 0, 0.08);
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.t2w-trp-v2 .t2w-trp-v2-step {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.85em;
    color: var(--t2w-text, #1f2937);
}
.t2w-trp-v2 .t2w-trp-v2-step-icon {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    color: var(--t2w-text-muted, #6b7280);
}
.t2w-trp-v2 .t2w-trp-v2-step-icon .material-symbols-outlined {
    font-size: 18px;
}
.t2w-trp-v2 .t2w-trp-v2-step[data-step-type="transit"] .t2w-trp-v2-step-icon {
    color: #8B5CF6;
}
.t2w-trp-v2 .t2w-trp-v2-step-body {
    flex: 1;
    min-width: 0;
}
.t2w-trp-v2 .t2w-trp-v2-step-line {
    font-weight: 500;
    color: var(--t2w-text, #1f2937);
}
.t2w-trp-v2 .t2w-trp-v2-step-stops {
    font-size: 0.92em;
    color: var(--t2w-text-muted, #6b7280);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.t2w-trp-v2 .t2w-trp-v2-step-time {
    flex: 0 0 auto;
    font-size: 0.92em;
    color: var(--t2w-text-muted, #6b7280);
    white-space: nowrap;
}

/* Mobile (≤768px) — step row 더 컴팩트 */
@media (max-width: 768px) {
    .t2w-trp-v2 .t2w-trp-v2-detail {
        gap: 5px;
    }
    .t2w-trp-v2 .t2w-trp-v2-step {
        font-size: 0.8em;
        gap: 6px;
    }
    .t2w-trp-v2 .t2w-trp-v2-step-icon .material-symbols-outlined {
        font-size: 16px;
    }
}

/* ========================================
   S147 (2026-05-26): Place-level markers (Day polyline UX fix)
   Master catch — zone marker 단위 (2개) ≠ polyline place 단위 (5개) 불일치 해결.
   Zone marker (#FFB700, 28×28) + Place marker (#3B82F6, 22×22) 시각 구분.
   ======================================== */
.t2w-place-marker {
    background: none;
    border: none;
}
.t2w-place-marker span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: #3B82F6;
    color: #fff;
    font-size: 12.5px;
    font-weight: 800;
    border: 2.5px solid #fff;
    box-shadow: 0 2px 7px rgba(0, 0, 0, 0.35);
}
/* S265: 식사 슬롯 핀 — 주황 + 식사 아이콘 (지도만 봐도 몇 번째가 식사인지) */
.t2w-place-marker--meal span {
    background: linear-gradient(135deg, #FCA25D, #F97316);
}
.t2w-place-marker--meal span .material-symbols-outlined {
    font-size: 14px;
    font-variation-settings: 'FILL' 1;
}
/* S265: 장소 이름표 — 흰 필, 겹침 회피는 map.js _updatePlaceLabels (줌 14+ · bbox 그리디) */
.t2w-place-lbl {
    background: rgba(255, 255, 255, 0.96);
    border: 1.5px solid rgba(20, 30, 50, 0.14);
    border-radius: 8px;
    box-shadow: 0 3px 10px rgba(20, 30, 50, 0.18);
    color: var(--t2w-text-main, #1d180c);
    font-weight: 800;
    font-size: 11.5px;
    line-height: 1;
    padding: 4px 8px;
    white-space: nowrap;
}
.t2w-place-lbl::before {
    display: none; /* 기본 말풍선 꼬리 제거 — 핀과 붙어 보이게 */
}
/* S265: 경로 진행 방향 화살표 — map.js _addRouteArrows 짝 */
.t2w-route-arrow {
    background: none;
    border: none;
}
.t2w-route-arrow .material-symbols-outlined {
    display: block;
    font-size: 15px;
    color: #4285F4;
    background: #fff;
    border-radius: 50%;
    padding: 1px;
    box-shadow: 0 1px 5px rgba(0, 0, 0, 0.3);
    font-variation-settings: 'FILL' 1;
}

/* Mobile (≤768px) — 더 작게 + 충돌 방지 */
@media (max-width: 768px) {
    .t2w-place-marker span {
        width: 22px;
        height: 22px;
        font-size: 11px;
        border-width: 2px;
    }
    .t2w-place-lbl {
        font-size: 10.5px;
        padding: 3px 7px;
    }
}

/* ========================================
   S150 (2026-05-26): Transit stop markers (S146/S147 carry — 지도 transit step marker + section 색상)
   HereAdapter step polyline 첫/끝 좌표에 작은 점으로 정류장 위치 표시.
   White fill + dark border so they read against purple transit line and green walking line.
   ======================================== */
.t2w-stop-marker {
    background: none;
    border: none;
}
.t2w-stop-marker .t2w-stop-dot {
    display: block;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #fff;
    border: 2px solid #1d180c;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}

@media (max-width: 768px) {
    .t2w-stop-marker .t2w-stop-dot {
        width: 10px;
        height: 10px;
        border-width: 1.5px;
    }
}

/* ════════════════════════════════════════════════════════════════
   S153 (2026-05-27): Desktop Right Panel — Full Prototype Alignment
   Prototype ref: .tmp/PLANNER_DESKTOP_M6_V2_PROTOTYPE.html
   Target: all desktop viewports (769px+) unless scoped to 1025px+
   Specificity note: uses #t2w-planner-v2:not(.t2w-planner--map-mode)
   to outrank existing rules without !important.
   ════════════════════════════════════════════════════════════════ */
@media (min-width: 769px) {

    /* ── 1. Hide progress/completion bar (not in prototype) ── */
    #t2w-planner-v2 .t2w-tl-progress { display: none; }

    /* ── 2. Hide filter chips row (not in prototype agenda) ── */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-filters { display: none; }

    /* ── 3. Hide day count controls & source badge in header ── */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-controls { display: none; }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-source-badge { display: none; }
    /* Hide date + place-count subtitle — just keep "1일 차" label */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-day-header-separator,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-day-subtitle--compact { display: none; }
    /* Make remaining day title read cleanly */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-date { font-size: 15px; font-weight: 700; }

    /* ── 4. Cal-pill: hide date sub-label + dots, show only day label ── */
    /* Prototype: "Day 1" / "Day 2" / "Day 3" — no date, no place-count dots */
    #t2w-planner-v2 .t2w-cal--shell-agenda .t2w-cal-pill-date { display: none; }
    #t2w-planner-v2 .t2w-cal--shell-agenda .t2w-cal-pill-dots { display: none; }
    #t2w-planner-v2 .t2w-cal--shell-agenda .t2w-cal-pill {
        flex-direction: row;
        padding: 6px 16px;
        min-width: 62px;
        justify-content: center;
    }
    #t2w-planner-v2 .t2w-cal--shell-agenda .t2w-cal-pill-day { font-size: 13px; font-weight: 700; }

    /* ── 5. Zone header — prototype alignment ── */
    /* Prototype: 5px blue left border on entire zone-title div */
    
    /* Hide dot element (replaced by container border-left) */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-zone-dot { display: none; }
    /* Zone delete button: hide (zone actions not in prototype) */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-zone-actions { display: none; }
    /* Zone info: name LEFT + time RIGHT (prototype: justify-content space-between) */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-zone-info {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        gap: 8px;
    }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-zone-name {
        flex: 1 1 auto;
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: 15px;
        font-weight: 700;
    }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-zone-meta {
        flex: 0 0 auto;
        text-align: right;
        font-size: 12px;
        color: var(--t2w-text-warm-secondary, #7a6f5d);
        white-space: nowrap;
    }
    /* Hide the edit pencil icon inside zone-meta */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-zone-meta .material-symbols-outlined {
        display: none;
    }
    /* Hide cursor pointer hint on zone-meta (read-only look) */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-zone-time-edit { cursor: default; }

    /* ── 6. Number circles — light gold (prototype: #fff5d5 bg, dark gold text) ── */
    /* Default (not-done) state */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-circle--num {
        background: #fff5d5;
        color: #8a6400;
        border: none;
        box-shadow: 0 0 0 2px rgba(139, 100, 0, 0.14), 0 1px 4px rgba(0,0,0,0.08);
        font-weight: 900;
    }
    /* Done/visited state — muted warm tone (not gray) */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-item--done .t2w-v29-circle--num {
        background: #f0ece1;
        color: #9a8f78;
        box-shadow: 0 0 0 2px rgba(139, 100, 0, 0.08);
    }

    /* ── 7. Place card: quick-delete hover-only (769–1024px; 1025px+ already handled) ── */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-item__quick-delete { display: none; }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-item__delete-hint { display: none; }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-item:hover .t2w-v29-item__quick-delete {
        display: flex;
    }

}

/* ============================================================
   S154 — Desktop right panel: prototype alignment pass 2
   Prototype ref: .tmp/PLANNER_DESKTOP_M6_V2_PROTOTYPE.html
   Changes: time badge, departure row, card border, dur/toggle
   ============================================================ */
@media (min-width: 769px) {

    /* ── 1. Badge column: hide "09:00" time text above circle → circle only ── */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-badge .t2w-v29-time {
        display: none;
    }

    /* ── 2. (S265 복귀) 옛 "Hide departure / origin card row" 삭제 —
       S154가 공간 문제로 숨겼던 출발지·도착지 카드를 여정 앵커 바(<details> 한 줄 접힘)로
       재설계하며 데스크톱·태블릿에 복귀 (마스터 승인 옵션 B). 스타일 = §S265 여정 앵커 바. ── */

    /* ── 3. Item cards: remove amber border + shadow → flat rows (like prototype) ── */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card {
        border: none;
        box-shadow: none;
        border-radius: 0;
    }

    /* ── 4. Card header: hide duration column + expand toggle, content goes full-width ── */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card-header {
        grid-template-columns: 1fr;
    }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v7-dur,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v7-toggle {
        display: none;
    }

    /* ── 5. Zone border-left: 5px (prototype spec = 5px solid #2f74ff) ── */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-zone-sep {
    /* (S270 접기: L9194 병합) */
    border-left: 4px solid #2f74ff;
        padding-left: 10px;
        border-left-width: 5px;
    }

    /* ── 6. Zone card container: neutral bg (no pending tint) ── */
    

    /* ── 7. Phase 3: gold journey rail — show the connector as a gold spine (was hidden beige line) ── */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-line {
        display: block;
        left: 30px;
    }

    /* ── 8. Hide transit steps within/between zones (도보 36분, 대중교통 75분 etc.) ── */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-transport {
        display: none;
    }

    /* ── 9. Hide "출발지 도착 예정" return row at zone bottom ── */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-return {
        display: none;
    }

    /* ── 10. Hide star rating row in card (prototype: no rating in item rows) ── */
    /* Need --collapsed in selector to beat existing [1,3,0] rule at L7678/L8118 */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card-rating,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-card-rating {
        display: none;
    }

    /* ── 11. Hide facility icons + category tags in card title ── */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-fac-inline,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-badge-tag {
        display: none;
    }

    /* ── 12. MUST badge: muted warm color (prototype: #f3ede3 bg, #5b513f text) ── */
    /* Overrides enhancements.css:5528 gradient [1,1,0] → wins at [1,2,0] */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-badge-mustgo {
        background: #f3ede3;
        color: #5b513f;
        border-radius: 999px;
        padding: 2px 8px;
        font-size: 10px;
        font-weight: 900;
    }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-badge-mustgo .material-symbols-outlined {
        display: none;
    }

    /* ── 13. Item card: reduce top padding to tighten rows (prototype: compact) ── */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed {
        min-height: unset;
        padding: 4px 0;
    }

    /* ── 14. Badge column: shrink padding-top so circle aligns with item name ── */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-badge {
        padding-top: 6px;
        align-items: center;
    }

    /* ── 15. Zone card: white rounded card container (prototype: border-radius 18px) ── */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-zone-card {
    /* (S270 접기: L9289 병합) */
    background: transparent;
        background: #fff;
        border-radius: 18px;
        border: 1px solid #e4dac7;
        box-shadow: rgba(33, 27, 19, 0.05) 0 8px 20px 0;
        overflow: hidden;
        margin-bottom: 12px;
    }

    /* ── 16. Item sub-text: show start time + category below name ── */
    /* Re-show card-rating but hide stars — just show "· 카테고리" text */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-card-rating {
        display: flex;
        font-size: 11px;
        color: var(--t2w-text-warm-secondary, #7a6f5d);
        margin-top: 2px;
        gap: 3px;
    }
    /* Hide star ::before pseudo-element (L7686 adds content:"star") */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-card-rating::before {
        content: none;
    }
    /* Hide star icons + numeric rating → show only "· 카테고리" text */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-card-rating .material-symbols-outlined,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-card-rating .t2w-rating-num,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-card-rating .t2w-v29-rating-num,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-card-rating i {
        display: none;
    }
    /* Category text: muted warm gray (prototype sub-text style) */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-card-cat {
        color: var(--t2w-text-warm-secondary, #7a6f5d);
        font-size: 11px;
    }

}

/* S155 — Desktop right panel: assistant bar sticky bottom (prototype spec 2026-05-26) */
@media (min-width: 769px) {
    /* Closed state: show as sticky dark bar inside right panel scroll area */
    #t2w-planner-v2:not(.t2w-planner--map-mode):not(.t2w-desktop-refine-open) #t2w-assistant-panel {
        display: flex;
        flex-direction: column;
        position: sticky;
        bottom: 12px;
        top: auto;
        right: auto;
        width: auto;
        min-width: unset;
        max-height: none;
        overflow: visible;
        order: 99; /* push after .t2w-tl-body (order:4) in flex column */
        margin: 4px 12px 12px;
        padding: 14px 16px;
        background: #1d180c;
        color: #fff;
        border-radius: 14px;
        box-shadow: 0 -8px 24px rgba(33, 27, 19, 0.14);
        z-index: 10;
    }
    /* Title: ::before (order 0 = first) */
    #t2w-planner-v2:not(.t2w-planner--map-mode):not(.t2w-desktop-refine-open) #t2w-assistant-panel::before {
        content: "AI가 작은 변경만 제안합니다";
        order: 0;
        font-size: 14px;
        font-weight: 700;
        color: #fff;
        margin-bottom: 3px;
    }
    /* Description text: ::after (order 1 = between title and chips) */
    #t2w-planner-v2:not(.t2w-planner--map-mode):not(.t2w-desktop-refine-open) #t2w-assistant-panel::after {
        content: "동행, 취향, 이동 조건을 고르면 바꿀 부분만 카드로 보여주고, 적용은 사용자가 승인합니다.";
        order: 1;
        font-size: 11px;
        color: rgba(255,255,255,0.65);
        line-height: 1.4;
        margin-bottom: 10px;
    }
    /* Hide panel header (icon + title + close button) */
    #t2w-planner-v2:not(.t2w-planner--map-mode):not(.t2w-desktop-refine-open) #t2w-assistant-panel .t2w-assistant-panel__head {
        display: none;
    }
    /* Hide detailed conditions (세부 조건) */
    #t2w-planner-v2:not(.t2w-planner--map-mode):not(.t2w-desktop-refine-open) #t2w-assistant-panel .t2w-assistant-brief {
        display: none;
    }
    /* Actions: 3-chip grid (order:2 = after title+desc) */
    #t2w-planner-v2:not(.t2w-planner--map-mode):not(.t2w-desktop-refine-open) #t2w-assistant-panel .t2w-assistant-actions {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 8px;
        margin: 0;
        order: 2;
    }
    /* Hide 4th+ action buttons — show only first 3 */
    #t2w-planner-v2:not(.t2w-planner--map-mode):not(.t2w-desktop-refine-open) #t2w-assistant-panel .t2w-assistant-action:nth-child(n+4) {
        display: none;
    }
    /* Chip style: dark translucent */
    #t2w-planner-v2:not(.t2w-planner--map-mode):not(.t2w-desktop-refine-open) #t2w-assistant-panel .t2w-assistant-action {
        height: 36px;
        border: 1px solid rgba(255,255,255,0.22);
        border-radius: 999px;
        background: rgba(255,255,255,0.12);
        color: #fff;
        font-size: 13px;
        font-weight: 500;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 0;
    }
    /* Hide Material icons in chips — text label only */
    #t2w-planner-v2:not(.t2w-planner--map-mode):not(.t2w-desktop-refine-open) #t2w-assistant-panel .t2w-assistant-action .material-symbols-outlined {
        display: none;
    }

    /* S155: day tab bar simplification (prototype: Day 1/2/3 pills only) */
    /* Hide nav arrows + region label + overview + add-leg */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-cal-prev,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-cal-next,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-cal-leg-label,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-cal-overview,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-add-leg-btn { display: none; }
    /* Hide "1일 차" inner heading — Day N shown in tab pills already */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-header { display: none; }
    /* Hide date subtitle in pills */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-cal-pill-date { display: none; }
    /* Rename "1일 차" → "Day 1" via CSS counter */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-cal-pills { gap: 8px; counter-reset: day-num; }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-cal-pill { counter-increment: day-num; }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-cal-pill .t2w-cal-pill-day { font-size: 0; line-height: 0; }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-cal-pill .t2w-cal-pill-day::before {
        content: "Day " counter(day-num);
        font-size: 13px;
        font-weight: 900;
        line-height: 1;
    }

    /* S155: trip header (prototype .agenda-head spec) */
    .t2w-trip-header {
        padding: 20px 16px 14px;
        border-bottom: 1px solid var(--t2w-border-warm, #e4dac7);
        background: linear-gradient(180deg, #fffdf8, #fff7eb);
    }
    .t2w-trip-header__badge {
        display: inline-flex;
        align-items: center;
        border-radius: 999px;
        padding: 4px 9px;
        background: #fff2c7;
        color: var(--t2w-gold-dark, #8a6400);
        font-size: 11px;
        font-weight: 900;
    }
    .t2w-trip-header__title {
        margin: 8px 0 5px;
        font-size: 22px;
        font-weight: 900;
        letter-spacing: 0;
        color: var(--t2w-text, #1d180c);
        line-height: 1.2;
    }
    .t2w-trip-header__desc {
        margin: 0;
        color: var(--t2w-text-warm-secondary, #7a6f5d);
        font-size: 12px;
        line-height: 1.45;
    }

    /* S155b: warning card — hide action buttons (prototype has info-only card, no buttons) */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-action-prompt__actions { display: none; }
}

/* S166: desktop planner balance — compact rail, wider agenda/right, smaller map, right-side assist. */
@media (min-width: 1025px) {
    

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-main {
        grid-template-columns: var(--t2w-desktop-rail-width) minmax(var(--t2w-desktop-agenda-min-width), 1.15fr) minmax(var(--t2w-desktop-right-min-width), 1fr);
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-main > .t2w-v29-sidebar.t2w-shell-rail {
        grid-column: 1;
        grid-row: 1;
        padding-right: 18px;
        padding-left: 18px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-left {
        grid-column: 2;
        grid-row: 1;
        padding-right: 18px;
        padding-left: 18px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-right {
        grid-column: 3;
        grid-row: 1;
        display: grid;
        grid-template-rows: var(--t2w-desktop-map-height) minmax(0, 1fr);
        align-content: stretch;
        overflow: hidden;
        background: #fffaf3;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-right .t2w-map,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-right #t2w-map {
    /* (S270 접기: L6669 병합) */
    height: 100%;
        min-height: 0;
        flex: 1;
        border-radius: 0;
    /* (S270 접기: L7183 병합) */
    height: 100%;
        min-height: 0;
        flex: 1 1 auto;
        border-radius: 0;
        grid-row: 1;
        height: 100%;
        min-height: 0;
        flex: none;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-right .t2w-context-panel {
        display: block;
        grid-row: 2;
        height: auto;
        min-height: 0;
        padding: 14px 16px 16px;
        overflow: auto;
        border-top: 1px solid var(--t2w-border-warm, #e4dac7);
        background: #fffaf3;
        scrollbar-width: thin;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-context-panel .t2w-ctx-header,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-context-panel .t2w-ctx-season,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-context-panel .t2w-ctx-day-summary,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-context-panel .t2w-ctx-gauge-wrap {
        margin-bottom: 8px;
        border-radius: 8px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-context-panel .t2w-ctx-gauge-wrap {
        gap: 12px;
        padding: 10px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-context-panel .t2w-ctx-gauge {
        width: 72px;
        height: 72px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-context-panel .t2w-ctx-gauge svg {
        width: 72px;
        height: 72px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-context-panel .t2w-ctx-gauge-pct {
        font-size: 17px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-context-panel .t2w-ctx-highlights,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-context-panel .t2w-ctx-actions,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-context-panel .t2w-ctx-tips,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-context-panel .t2w-ctx-zone-pills {
        padding-right: 0;
        padding-left: 0;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-context-panel .t2w-ctx-hl-thumb {
        width: 88px;
        height: 56px;
        border-radius: 8px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-context-panel .t2w-ctx-hl-card {
        flex-basis: 88px;
    }

    

    

    /* S194: revert closed-state dock from fixed→sticky (master 2026-06-23).
       The fixed bottom-right position overlapped the right-column context panel
       and made its action buttons (경로 최적화/식사 추가/공유) unclickable.
       Restore the documented in-flow sticky design from the 769px block (L9352). */
    #t2w-planner-v2:not(.t2w-planner--map-mode):not(.t2w-desktop-refine-open) #t2w-assistant-panel {
        /* S195 P3: 닫힘 상태 검은 'AI가 작은 변경만…' 막대 첫 화면에서 숨김 — AI 다듬기 진입은 '도구' 서랍 > 일정 다듬기로 일원화.
           펼침(.t2w-desktop-refine-open) 스타일(L9622 / 1025px+ L6682 display:flex)은 독립이라 '도구>다듬기'로 열 때 정상 노출. */
        display: none;
        position: sticky;
        top: auto;
        right: auto;
        bottom: 12px;
        left: auto;
        width: auto;
        max-width: none;
        margin: 4px 12px 12px;
        transform: none;
        z-index: 10;
    }

    #t2w-planner-v2.t2w-desktop-refine-open:not(.t2w-planner--map-mode) #t2w-assistant-panel {
    /* (S270 접기: L6734 병합) */
    display: flex;
        position: fixed;
        top: auto;
        right: 16px;
        bottom: 20px;
        left: auto;
        width: var(--t2w-desktop-assistant-width);
        min-width: 0;
        max-width: calc(100vw - 32px);
        max-height: min(70vh, calc(100vh - var(--t2w-header-height, 64px) - 56px));
        margin: 0;
        transform: none;
        z-index: 90;
    }

    body:has(#t2w-planner-v2:not(.t2w-planner--map-mode)) .t2w-toast-container.t2w-planner-toast-container {
        top: auto;
        right: 16px;
        bottom: 24px;
        left: auto;
        width: var(--t2w-desktop-assistant-width);
        max-width: calc(100vw - 32px);
        transform: none;
    }
}



@media (min-width: 1600px) {
    body:has(#t2w-planner-v2:not(.t2w-planner--map-mode)),
    #t2w-planner-v2:not(.t2w-planner--map-mode) {
        --t2w-desktop-rail-width: 224px;
        --t2w-desktop-agenda-min-width: 700px;
        --t2w-desktop-right-min-width: 560px;
        --t2w-desktop-assistant-width: min(540px, calc(100vw - var(--t2w-desktop-rail-width) - var(--t2w-desktop-agenda-min-width) - 72px));
    }
}

/* S167: V4.1 polish — keep V4 ratios, tighten agenda rows and right-panel scanning. */
@media (min-width: 1025px) {
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-left,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-right .t2w-context-panel {
        scrollbar-width: thin;
        scrollbar-color: rgba(117, 107, 90, 0.28) transparent;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-left {
        z-index: 5;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-left::-webkit-scrollbar,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-right .t2w-context-panel::-webkit-scrollbar {
        width: 8px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-left::-webkit-scrollbar-thumb,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-right .t2w-context-panel::-webkit-scrollbar-thumb {
        border: 2px solid transparent;
        border-radius: 999px;
        background: rgba(117, 107, 90, 0.28);
        background-clip: padding-box;
    }

    

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-trip-header__title {
        margin: 7px 0 4px;
        font-size: 24px;
        line-height: 1.14;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-trip-header__desc {
        font-size: 12.5px;
        line-height: 1.42;
    }

    

    

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-zone-sep {
        min-height: 42px;
        padding: 8px 12px 8px 10px;
        background: #fffdf8;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-zone-name {
        font-size: 15px;
        line-height: 1.18;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-zone-meta {
        font-size: 11.5px;
        line-height: 1.2;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-timeline {
        padding: 6px 10px 8px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-item {
    /* (S270 접기: L8075 병합) */
    gap: 10px;
        min-width: 0;
        min-height: 0;
        margin-bottom: 8px;
        gap: 8px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-badge {
        flex: 0 0 42px;
        width: 42px;
        padding-top: 7px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-time {
    /* (S270 접기: L8150 병합) */
    color: var(--t2w-text-warm-secondary, #756b5a);
        font-size: 12px;
        font-weight: 800;
        letter-spacing: 0;
        font-size: 12px;
        line-height: 1.1;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-circle {
    /* (S270 접기: L8157 병합) */
    width: 28px;
        height: 28px;
        font-size: 11px;
        box-shadow: 0 0 0 3px #fff;
        width: 26px;
        height: 26px;
        font-size: 11px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed {
        min-height: 68px;
        padding: 0;
        border-radius: 10px;
        box-shadow: 0 4px 12px rgba(29, 24, 12, 0.045);
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed:hover {
    /* (S270 접기: L8174 병합) */
    border-color: rgba(255, 183, 0, 0.42);
        box-shadow: 0 10px 24px rgba(29, 24, 12, 0.09);
        transform: none;
        box-shadow: 0 8px 20px rgba(29, 24, 12, 0.075);
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-card-header {
    /* (S270 접기: L8185 병합) */
    display: grid;
        grid-template-columns: minmax(0, 1fr) auto 30px;
        align-items: center;
        min-height: 70px;
        margin: 0;
        padding: 10px 10px 10px 12px;
        gap: 8px;
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        min-height: 68px;
        padding: 8px 11px 8px 12px;
        gap: 6px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-card-title h3 {
    /* (S270 접기: L8232 병합) */
    min-width: 0;
        max-width: 100%;
        margin: 0;
        overflow: hidden;
        color: var(--t2w-text-warm-primary, #1d180c);
        font-size: 14.5px;
        font-weight: 800;
        line-height: 1.28;
        letter-spacing: 0;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: 14.5px;
        line-height: 1.22;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-card-rating {
        margin-top: 2px;
        font-size: 11.5px;
        line-height: 1.24;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-card-rating::before {
        font-size: 13px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-rating-num,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-card--collapsed .t2w-v29-card-cat {
    /* (S270 접기: L8294 병합) */
    overflow: hidden;
        text-overflow: ellipsis;
        font-size: 11.5px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-meal-hint {
    /* (S270 접기: L8396 병합) */
    width: auto;
        max-width: calc(100% - 52px);
        margin: 5px 0 8px 52px;
        overflow: hidden;
        border: 1px solid rgba(234, 223, 202, 0.95);
        border-radius: 13px;
        background: #fff;
        box-shadow: none;
        border-radius: 10px;
        box-shadow: none;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-right .t2w-context-panel {
        padding: 12px 16px 180px;
        background: #fffaf3;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-context-panel .t2w-ctx-header,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-context-panel .t2w-ctx-season,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-context-panel .t2w-ctx-day-summary,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-context-panel .t2w-ctx-gauge-wrap,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-context-panel .t2w-ctx-tip-card {
        border-radius: 8px;
        box-shadow: none;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-context-panel .t2w-ctx-header,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-context-panel .t2w-ctx-gauge-wrap {
        margin-bottom: 8px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-context-panel .t2w-ctx-gauge-wrap {
        min-height: 82px;
        padding: 9px 10px;
        gap: 12px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-context-panel .t2w-ctx-season,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-context-panel .t2w-ctx-day-summary {
        padding: 8px 10px;
        font-size: 12px;
        line-height: 1.35;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-context-panel .t2w-ctx-highlights {
        margin-bottom: 8px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-context-panel .t2w-ctx-actions {
    /* (S270 접기: L9627 병합) */
    display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
        gap: 8px;
        padding-top: 6px;
        padding-bottom: 6px;
        margin-bottom: 8px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-context-panel .t2w-ctx-action {
    /* (S270 접기: L9633 병합) */
    min-width: 0;
        min-height: 34px;
        padding: 0 9px;
        border-radius: 8px;
        font-size: 12px;
        white-space: nowrap;
        min-height: 36px;
        border-radius: 8px;
        font-size: 12px;
        font-weight: 850;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-context-panel .t2w-ctx-tip-card {
        padding: 8px 10px;
        margin-bottom: 8px;
        line-height: 1.35;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode):not(.t2w-desktop-refine-open) #t2w-assistant-panel,
    #t2w-planner-v2.t2w-desktop-refine-open:not(.t2w-planner--map-mode) #t2w-assistant-panel {
        bottom: 18px;
        border-radius: 8px;
        box-shadow: 0 14px 32px rgba(29, 24, 12, 0.18);
        pointer-events: auto;
        z-index: 260;
    }
}

/* S168: V4.2 micro polish — add desktop gutters and give the left rail more breathing room. */
@media (min-width: 1025px) {
    body:has(#t2w-planner-v2:not(.t2w-planner--map-mode)),
    #t2w-planner-v2:not(.t2w-planner--map-mode) {
    /* (S270 접기: L9525 병합) */
    --t2w-desktop-rail-width: 204px;
        --t2w-desktop-agenda-min-width: 540px;
        --t2w-desktop-right-min-width: 420px;
        --t2w-desktop-map-height: clamp(310px, 33vh, 340px);
        --t2w-desktop-assistant-width: min(488px, calc(100vw - var(--t2w-desktop-rail-width) - var(--t2w-desktop-agenda-min-width) - 48px));
        --t2w-desktop-right-min-width: 400px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-main {
        grid-template-columns: var(--t2w-desktop-rail-width) minmax(var(--t2w-desktop-agenda-min-width), 1.22fr) minmax(var(--t2w-desktop-right-min-width), 1fr);
        gap: 8px;
        padding-right: 8px;
        padding-left: 8px;
        box-sizing: border-box;
        background: #efe7d8;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-main > .t2w-v29-sidebar.t2w-shell-rail {
        padding: 22px 16px 22px 18px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-left {
        padding-right: 16px;
        padding-left: 18px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-trip-header {
    /* (S270 접기: L9729 병합) */
    padding: 18px 18px 13px;
        background: #fffdf8;
        margin: 0 0 10px;
        border-bottom: 1px solid rgba(232, 224, 208, 0.72);
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-card-list {
    /* (S270 접기: L9745 병합) */
    padding-right: 10px;
        padding-left: 10px;
        padding-right: 8px;
        padding-left: 8px;
    }

    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-zone-card {
    /* (S270 접기: L9750 병합) */
    margin-bottom: 12px;
        border-radius: 10px;
        box-shadow: 0 4px 14px rgba(29, 24, 12, 0.045);
        border-color: rgba(232, 224, 208, 0.86);
    }
}

@media (min-width: 1180px) and (max-width: 1379px) {
    body:has(#t2w-planner-v2:not(.t2w-planner--map-mode)),
    #t2w-planner-v2:not(.t2w-planner--map-mode) {
        --t2w-desktop-rail-width: 212px;
    }
}

@media (min-width: 1380px) {
    body:has(#t2w-planner-v2:not(.t2w-planner--map-mode)),
    #t2w-planner-v2:not(.t2w-planner--map-mode) {
    /* (S270 접기: L9685 병합) */
    --t2w-desktop-rail-width: 216px;
        --t2w-desktop-agenda-min-width: 630px;
        --t2w-desktop-right-min-width: 520px;
        --t2w-desktop-assistant-width: min(520px, calc(100vw - var(--t2w-desktop-rail-width) - var(--t2w-desktop-agenda-min-width) - 64px));
        --t2w-desktop-rail-width: 224px;
        --t2w-desktop-agenda-min-width: 630px;
        --t2w-desktop-right-min-width: 508px;
        --t2w-desktop-assistant-width: min(520px, calc(100vw - var(--t2w-desktop-rail-width) - var(--t2w-desktop-agenda-min-width) - 80px));
    }
}

@media (max-width: 768px) {
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v5-left,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-timeline,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-place {
        max-width: 100%;
        overflow-x: hidden;
    }
}

/* S169: AI realtime density trust note. Explains light travel days without adding fake places. */
#t2w-planner-v2 .t2w-day-density-note {
    flex: 1 0 100%;
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin-top: 2px;
    margin-bottom: 8px;
    padding: 7px 9px;
    border: 1px solid rgba(217, 119, 6, 0.22);
    border-radius: 8px;
    background: rgba(255, 251, 235, 0.9);
    color: #78350f;
    font-size: 12px;
    line-height: 1.4;
}

#t2w-planner-v2 .t2w-day-density-note .material-symbols-outlined {
    flex: 0 0 auto;
    font-size: 16px;
    line-height: 1.2;
}

#t2w-planner-v2 .t2w-day-density-note span:last-child {
    min-width: 0;
}

@media (max-width: 768px) {
    #t2w-planner-v2 .t2w-day-density-note {
        margin-top: 4px;
        padding: 7px 8px;
        font-size: 11px;
    }
}

/* ===== S184: 연예인/방송 소개 배지 (장소 카드 + 프리셋 코스 카드) — teal 액센트로 gem(골드)·MUST(블루)와 구분 ===== */
#t2w-planner-v2 .t2w-celeb-badge {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    flex-shrink: 0;
    margin-left: 6px;
    padding: 2px 8px;
    border-radius: 999px;
    background: rgba(var(--color-accent-teal-rgb), 0.12);
    color: var(--color-accent-teal);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.4;
    text-decoration: none;
    vertical-align: middle;
    white-space: nowrap;
}
#t2w-planner-v2 .t2w-celeb-badge:hover {
    background: rgba(var(--color-accent-teal-rgb), 0.22);
}
/* 접힌 카드에선 다른 배지처럼 숨겨 제목 1줄 유지 (MUST/평점 배지와 일관) */
#t2w-planner-v2 .t2w-v29-card--collapsed .t2w-celeb-badge {
    display: none;
}
@media (max-width: 768px) {
    #t2w-planner-v2 .t2w-celeb-badge {
        max-width: 130px;
        overflow: hidden;
    }
}
#t2w-planner-v2 .t2w-celeb-badge .material-symbols-outlined {
    font-size: 14px;
    line-height: 1;
}
.t2w-preset-card__tag--celeb {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    background: rgba(var(--color-accent-teal-rgb), 0.12);
    color: var(--color-accent-teal);
}
.t2w-preset-card__tag--celeb .material-symbols-outlined {
    font-size: 14px;
    line-height: 1;
}

/* Phase 3 ⑤: reduced-motion guard — placed in overrides (loads last) with id scope so it
   beats the generation-moment fadeInUp on BOTH desktop (v29) and mobile (review) paths via specificity. */
@media (prefers-reduced-motion: reduce) {
    #t2w-planner-v2 .t2w-v29-item,
    #t2w-planner-v2 .t2w-trp-v2,
    #t2w-planner-v2 .t2w-departure-v3,
    #t2w-planner-v2 .t2w-v29-return,
    #t2w-planner-v2 .t2w-tour-compare,
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-place {
        animation: none;
    }
}

/* Phase 3 ③: inline commerce hub — always rendered right after the itinerary (자사 거래 골드 1차 CTA) */
#t2w-planner-v2 .t2w-inline-commerce {
    margin: 16px 10px 8px;
    padding: 16px;
    border-radius: 16px;
    background: linear-gradient(135deg, var(--color-bg-cream, #FFFBEB), #fff);
    border: 1px solid rgba(255, 183, 0, 0.3);
    box-shadow: 0 4px 16px rgba(229, 164, 0, 0.08);
}
#t2w-planner-v2 .t2w-inline-commerce__head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}
#t2w-planner-v2 .t2w-inline-commerce__head > .material-symbols-outlined {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: var(--color-primary, #FFB700);
    color: var(--color-text-primary, #1F2937);
    font-size: 20px;
}
#t2w-planner-v2 .t2w-inline-commerce__copy {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
#t2w-planner-v2 .t2w-inline-commerce__copy strong {
    font-size: 15px;
    font-weight: 800;
    color: var(--color-text-primary, #1F2937);
    line-height: 1.3;
}
#t2w-planner-v2 .t2w-inline-commerce__copy span {
    font-size: 12.5px;
    color: var(--color-text-secondary, #4B5563);
    line-height: 1.4;
}
#t2w-planner-v2 .t2w-inline-commerce__context {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0 0 12px;
}
#t2w-planner-v2 .t2w-inline-commerce__context-item {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
    padding: 6px 8px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid rgba(255, 183, 0, 0.28);
    color: var(--color-text-secondary, #4B5563);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
}
#t2w-planner-v2 .t2w-inline-commerce__context-item .material-symbols-outlined {
    font-size: 15px;
    color: var(--color-primary-text, #b45309);
}
#t2w-planner-v2 .t2w-inline-commerce__products {
    margin-bottom: 12px;
}
#t2w-planner-v2 .t2w-inline-commerce__empty {
    margin: 0 0 4px;
    padding: 10px 12px;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--color-text-secondary, #4B5563);
    background: #fff;
    border: 1px dashed rgba(255, 183, 0, 0.4);
    border-radius: 10px;
}
#t2w-planner-v2 .t2w-inline-commerce__empty strong {
    color: var(--color-primary-text, #b45309);
}
#t2w-planner-v2 .t2w-inline-commerce__cta {
    display: flex;
    gap: 10px;
}
#t2w-planner-v2 .t2w-inline-commerce__btn {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 12px 14px;
    border-radius: 12px;
    border: 1px solid var(--color-border-light, #E5E7EB);
    background: #fff;
    color: var(--color-text-primary, #1F2937);
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: background .15s, border-color .15s, transform .12s;
}
#t2w-planner-v2 .t2w-inline-commerce__btn .material-symbols-outlined {
    font-size: 18px;
}
#t2w-planner-v2 .t2w-inline-commerce__btn:hover {
    border-color: rgba(255, 183, 0, 0.6);
}
#t2w-planner-v2 .t2w-inline-commerce__btn:active {
    transform: scale(0.98);
}
#t2w-planner-v2 .t2w-inline-commerce__btn--primary {
    background: var(--color-primary, #FFB700);
    border-color: var(--color-primary, #FFB700);
    color: var(--color-text-primary, #1F2937);
    box-shadow: 0 2px 8px rgba(255, 183, 0, 0.3);
}
#t2w-planner-v2 .t2w-inline-commerce__btn--primary:hover {
    background: var(--color-primary-dark, #E5A400);
    border-color: var(--color-primary-dark, #E5A400);
}
#t2w-planner-v2 .t2w-inline-commerce.t2w-product-surface--focus {
    outline: 2px solid rgba(255, 183, 0, 0.85);
    outline-offset: 3px;
    box-shadow: 0 8px 24px rgba(229, 164, 0, 0.18);
}
@media (max-width: 768px) {
    #t2w-planner-v2 .t2w-inline-commerce {
        margin: 14px 10px 8px;
    }
    #t2w-planner-v2 .t2w-inline-commerce__context {
        gap: 5px;
    }
    #t2w-planner-v2 .t2w-inline-commerce__context-item {
        font-size: 11.5px;
        padding: 6px 7px;
    }
}

/* Phase 3 ④: map↔timeline reverse-link flash — gold ring when a stop is targeted from a map pin
   S261: 줄 전체(.t2w-v29-item = 시간·번호 배지 + 세로선 구역 포함)가 아니라 안쪽 카드에만 링 */
#t2w-planner-v2 .t2w-stop--map-active .t2w-v29-card,
#t2w-planner-v2 .t2w-mobile-review-place.t2w-stop--map-active {
    outline: 2px solid var(--color-primary, #FFB700);
    outline-offset: 2px;
    border-radius: 16px;
    transition: outline-color .2s ease;
}

/* Phase 3 ④: active day-route pin (highlighted from a hovered timeline stop) — gold + scale.
   Applied to the inner span only; leaflet position-transforms the icon root, so never the root. */
#t2w-planner-v2 .t2w-place-marker--active span {
    background: var(--color-primary, #FFB700);
    color: var(--color-text-primary, #1F2937);
    transform: scale(1.25);
    box-shadow: 0 0 0 3px rgba(255, 183, 0, 0.4), 0 2px 8px rgba(0, 0, 0, 0.35);
}

/* S198 후속(A): 태블릿(769~1024) 어시스턴트를 데스크톱(1025+)과 동일하게 정렬.
   닫힘 검은막대('AI가 작은 변경만…') 숨김(데스크톱 L9548 미러) + 펼침은 우하단 고정(데스크톱 L6650+L9564 미러).
   마스터 결정(A): 태블릿 검은막대 제거. 라이브 확인: 태블릿에도 레일 '도구' 탭으로 일정 다듬기 진입 가능 → 막대 없어도 접근 보장.
   범위: 769~1024 한정(데스크톱 1025+·모바일 ≤768 무영향). 펼침(.t2w-desktop-refine-open)은 :not으로 분리되어 독립. */
@media (min-width: 769px) and (max-width: 1024px) {
    #t2w-planner-v2:not(.t2w-planner--map-mode):not(.t2w-desktop-refine-open) #t2w-assistant-panel {
        display: none;
    }
    #t2w-planner-v2.t2w-desktop-refine-open:not(.t2w-planner--map-mode) #t2w-assistant-panel {
        display: flex;
        position: fixed;
        top: auto;
        right: 16px;
        bottom: 20px;
        left: auto;
        width: min(380px, calc(100vw - 32px));
        max-width: calc(100vw - 32px);
        max-height: min(70vh, calc(100vh - var(--t2w-header-height, 64px) - 56px));
        margin: 0;
        transform: none;
        z-index: 90;
    }
}

/* S199: 모바일 상단 헤더 3블록 → 1헤더 시각통합 (마스터 결정: 공격적 통합, 2026-06-29).
   요약카드(A) + 일차칩(#t2w-mob-overview, B)을 DOM 이동 없이 CSS로 한 카드처럼 결합.
   (칩엔 L8514 검색활성 강제숨김 우선규칙·데스크톱 `>`숨김·flex order가 직접자식 전제 → 이동 시 깨짐.
    위험검증 워크플로 IDEMPOTENT_MOUNT='do-not' 확정. 그래서 시각통합.)
   + 타임라인헤더(C) 중복 '검수된 추천 코스' 배지 모바일 숨김(카드 A에 동일 배지 존재 / 데스크톱은 L9067서 별도 숨김).
   범위: ≤768 한정(태블릿 769~1024·데스크톱 1025+ 무영향). 새 우선순위규칙 0 · var 토큰 + 카드와 동일 리터럴(시각 일치). */
@media (max-width: 768px) {
    /* (1) C: 중복 배지 제거 — 카드 A의 .t2w-mobile-course-summary__badge가 동일 정보 */
    #t2w-planner-v2 .t2w-tl-source-badge { display: none; }

    /* (2) A 카드: 하단을 열어 칩과 한 몸 (하단 모서리·테두리·여백 제거, 그림자는 칩으로 이전) */
    

    /* (3) B 일차칩: 카드의 하단 행 (좌우 여백·테두리 카드와 일치, 아래 모서리 둥글게, 통합 그림자) */
    /* S204: 스크롤 시 일차 칩을 고정 헤더 아래에 sticky 고정 — 긴 일정에서도 날짜 전환 항상 한 탭.
       조상 전부 overflow:visible(클립 없음)이라 페이지 스크롤 기준으로 붙음. 최상단=S199 통합 유지,
       스크롤 시만 분리 고정. z=30(타임라인 카드 위·헤더1000/하단탭999 아래). ≤768 한정. */
    

    /* (4) 검색활성 시 칩이 숨으므로(L8514 강제숨김) 카드 하단을 원래대로 닫음 — '열린 바닥' 방지.
       특이도(1,3,0) > 규칙(2)(1,2,0)이라 순서 무관하게 우선. */
    #t2w-planner-v2 .t2w-v5-main.t2w-planner-search-active .t2w-mobile-course-summary {
        margin-bottom: 5px;
        border-bottom: 1px solid var(--t2w-border-warm, #eadfca);
        border-bottom-left-radius: 14px;
        border-bottom-right-radius: 14px;
        box-shadow: 0 4px 14px rgba(29, 24, 12, 0.05);
    }
}

/* S199 묶음B-2: 모바일 식사 추천 기본 접힘(progressive disclosure) — 첫 화면 길이↓ + 상품 허브 위로.
   제목만 보이고 헤더 탭하면 카드 펴짐. 담기·추천·더보기 로직 불변(보이기만 토글). ≤768 한정(데스크톱 항상 펼침). */
@media (max-width: 768px) {
    #t2w-planner-v2 .t2w-tl-meal-hint-header {
        cursor: pointer;
    }
    #t2w-planner-v2 .t2w-tl-meal-hint-header::after {
        content: '▾';
        float: right;
        margin-left: 8px;
        font-size: 12px;
        color: var(--t2w-text-warm-secondary, #7a6f5d);
    }
    #t2w-planner-v2 .t2w-tl-meal-hint.is-open .t2w-tl-meal-hint-header::after {
        content: '▴';
    }
    #t2w-planner-v2 .t2w-tl-meal-hint:not(.is-open) .t2w-tl-meal-mini-cards,
    #t2w-planner-v2 .t2w-tl-meal-hint:not(.is-open) .t2w-tl-meal-hint-btn,
    #t2w-planner-v2 .t2w-tl-meal-hint:not(.is-open) .t2w-tl-meal-hint-empty {
        display: none;
    }
}

/* S204 모바일 상단 통합·너비효율 (마스터 승인 Stage 1+2, 2026-06-30) — 워크플로 종합 + 실측·양뷰포트 검증.
   S199 통합 계승. ≤768 한정 · DOM 이동 0 · 새 강제규칙(중요도) 0 · 커머스/시간엔진 무접촉. 파일 끝=최신 캐스케이드. */
@media (max-width: 768px) {
    /* Stage1 중복 제거: '총 3일'(=요약카드 '핵심 3일' 중복)·보조 완성도 게이지(getCompletionGauge 56%) 숨김.
       user-facing 완성도 SSOT = 요약카드 '추천 완성 75%'(timeline.js:4922 주석 명시: 추천완성%가 SSOT, gauge는 별개).
       고유값(요일·route 거리·여행지 추가)은 유지 → 정보손실 0. 75% vs 56% 모순 표시 제거. */
    #t2w-planner-v2 .t2w-tl-day-count { display: none; }
    #t2w-planner-v2 .t2w-tl-progress { display: none; }

    /* Stage2 너비 회수: 타임라인 본문 좌우 패딩 16→8 → 장소 카드폭 293→309·제목 잘림('체류 1시…') 해소.
       척추선(.t2w-tl ::before)이 콘텐츠와 동반 이동 → 번호 서클 정렬 유지(de-sync 0 실측 확인). 레일 폭 무접촉. */
    

    /* Stage3~4 세로 압축(마스터 승인): 상단 블록 패딩/행간만 축소(콘텐츠·터치·sticky 불변).
       A 81→71 · B 61→55 · C 40→38 → 첫 장소 363→339(~24px). A/C는 :not(map-mode) 변형이
       이기는 규칙(특이도 1,2,0)이라 동일 셀렉터로 override 필수(S203 함정 회피). 칩 min-height 44·S204 sticky 유지.
       ※ D 이동기준·존 헤더·출발지 편집 영역은 시간엔진(경로 타이밍) 인접 → 무접촉(추가 세로감축 보류). */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-course-summary {
    /* (S270 접기: L7336 병합) */
    order: 0;
        margin: 10px 14px 10px;
        padding: 13px 14px 14px;
        border: 1px solid var(--t2w-border-warm, #eadfca);
        border-radius: 18px;
        background: #fff;
        box-shadow: 0 8px 24px rgba(29, 24, 12, 0.08);
    /* (S270 접기: L8699 병합) */
    display: grid;
        gap: 4px;
        margin: 6px 14px 5px;
        padding: 7px 10px;
        border-radius: 14px;
        box-shadow: 0 4px 14px rgba(29, 24, 12, 0.05);
    /* (S270 접기: L10253 병합) */
    margin-bottom: 0;
        border-bottom: 0;
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
        box-shadow: none; padding-top: 4px; padding-bottom: 4px; row-gap: 2px; margin-top: 3px; }
    #t2w-planner-v2:not(.t2w-planner--map-mode) #t2w-mob-overview {
    /* (S270 접기: L6261 병합) */
    order: 1;
        position: sticky;
        top: var(--t2w-header-height, 64px);
        z-index: 40;
        box-shadow: 0 8px 16px rgba(29, 24, 12, 0.06);
    /* (S270 접기: L7487 병합) */
    order: 3;
        position: static;
        top: auto;
        z-index: auto;
        border-top: 1px solid var(--t2w-border-warm, #e8e0d0);
        box-shadow: none;
    /* (S270 접기: L8814 병합) */
    order: 2;
        min-height: 50px;
        padding: 5px 14px;
        border-top: 0;
    /* (S270 접기: L10263 병합) */
    margin: 0 14px 6px;
        padding: 7px 14px 9px;
        background: #fff;
        border: 1px solid var(--t2w-border-warm, #eadfca);
        border-top: 0;
        border-bottom-left-radius: 14px;
        border-bottom-right-radius: 14px;
        box-shadow: 0 4px 14px rgba(29, 24, 12, 0.05);
        position: sticky;
        top: var(--t2w-header-height, 64px);
        z-index: 30; padding-top: 5px; padding-bottom: 5px; margin-bottom: 3px; }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-header { padding-top: 4px; padding-bottom: 4px; }

    /* concept2 step1(마스터 승인 ②칩 확장형): 활성 칩이 당일 날짜(7/1 수)·곳수를 흡수 → C 헤더의
       중복 서브타이틀(날짜·요일·곳수) 시각 제거. C의 일차 타이틀(.t2w-day-title--compact = 일차 + 감성 day_title)·
       [여행지 추가] 버튼·DOM은 보존(검색박스·D .after() 삽입 앵커). 정보손실 0(날짜·곳수=칩으로 이동).
       ※ 날짜 라벨은 활성칩에만(ui.js renderMobileChips). 날짜 전환 시 칩 재렌더로 라벨이 활성칩 추종. */
    #t2w-planner-v2 .t2w-day-subtitle--compact,
    #t2w-planner-v2 .t2w-day-header-separator { display: none; }
    /* 활성 칩 날짜 라벨 — 컴팩트, 활성칩 텍스트색 상속(골드 위 어두운 텍스트) */
    #t2w-planner-v2 .t2w-mob-chip-date { font-size: 11px; font-weight: 700; opacity: 0.9; }

    /* concept2 step3: 요약카드 2줄 히어로 — [배지] 코스명(h2) / 기간·곳수·완성도 인라인.
       식별(배지·코스명)·정보(기간·17곳·75%) 전부 보존, 세로 71→~52. 기존 __top/__title/__stats 마크업 대체
       (그 규칙들은 새 히어로 마크업과 미매칭이라 무영향). 배지 pill은 기존 __badge 스타일 재사용. */
    #t2w-planner-v2 .t2w-mcs-hero-l1 { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
    #t2w-planner-v2 .t2w-mcs-hero-title { margin: 0; font-size: 17px; font-weight: 900; line-height: 1.2; color: var(--t2w-text-warm, #1d180c); }
    #t2w-planner-v2 .t2w-mcs-hero-l2 { margin-top: 5px; font-size: 12px; line-height: 1.3; color: var(--t2w-text-warm-secondary, #756b5a); }
    #t2w-planner-v2 .t2w-mcs-hero-l2 strong { color: var(--t2w-text-warm, #1d180c); font-weight: 800; }
    #t2w-planner-v2 .t2w-mcs-hero-sep { color: var(--t2w-border-warm, #c9bfa8); }

    /* concept2 step5: D 이동기준 중복 라벨('N일 차 이동 기준' = 칩·C와 '일차' 중복) 시각 제거 → 1줄로 정돈
       ([route아이콘] 출발지·09:00·복귀 [수정]). em(출발지·시각·복귀 실값)·[수정] 토글·터치타겟 44·시간엔진 전부 보존.
       높이는 [수정] 터치타겟이라 불변(44 유지) — 세로 감축 아닌 중복 제거·가독 향상. timeline.js:1264 <strong> 한정. */
    #t2w-planner-v2 .t2w-endpoint-summary__text strong {
    /* (S270 접기: L8877 병합) */
    font-size: 12px;
        font-weight: 900;
        line-height: 1.1; display: none; }
}

/* ───────────────────────────────────────────────────────────────────────
   S205 모바일 일정 타임라인 재설계 ②"꽉 찬 카드" (Claude Design 캔버스 승인, 2026-06-30)
   ① 일차=칩 색만(헤더 테마만·이중 골드바→1줄)  ② 출발지 슬림 통합  ③ 카드 중첩 제거·풀폭.
   ≤768 한정 · DOM 이동 0 · 새 강제규칙(중요도) 0 · 시간엔진/커머스 무접촉(표시만). 파일 끝=최신 캐스케이드.
   ─────────────────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
    /* ⚠ 모바일 베이스 규칙이 #t2w-planner-v2:not(.t2w-planner--map-mode)(특이도 1,2,0)로 grid·border 등을 잡고 있어
       반드시 동일 :not(map-mode) 셀렉터 + 파일끝 소스순서로 이김(S203/204 함정 회피, 라이브 computed로 검증). */

    /* ① 이중 골드바 제거 — 날짜 span 골드바 제거(일차 색감=상단 칩 골드). */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-date { border-left: 0; padding-left: 0; }
    /* ① day_title 없는 일정은 헤더 '1일 차'가 칩과 중복 → 빈 타이틀 숨김(JS가 모바일선 테마만/없으면 빈값 렌더). */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-day-title--compact:empty { display: none; }
    /* 빈 타이틀(테마 없는 일정)일 때 헤더가 ~38px 빈 칸으로 남음 → collapse. :has 지원 시 완전 제거,
       미지원 폴백은 min-height:0로 축소. 모바일선 헤더 내 컨트롤·여행지추가·서브타이틀 모두 이미 숨김이라 안전. */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-header { min-height: 0; }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-header:has(.t2w-day-title--compact:empty) { display: none; }

    /* ② 출발지(D) 슬림 통합 — 일정 첫 줄처럼 바짝. 토글·입력칸·터치타겟44·시간엔진 전부 보존(표시만). */
    

    /* ③ 외곽 존 카드 프레임 제거 → 그룹 컨테이너로(카드 중첩의 바깥 겹 제거). 카드 간 연결선도 숨김. */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-zone-card { border: 0; box-shadow: none; background: transparent; border-radius: 0; margin: 0 0 6px; }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-zone-card + .t2w-zone-card::before { display: none; }
    /* 존 헤더(오전·CBD)는 카드 아닌 가벼운 섹션 라벨로 */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-zone-sep { padding: 6px 2px 4px; border-bottom: 0; background: transparent; }

    /* ③ 타임라인 좌우 패딩 회수 + 레일 기준 척추선 제거(레일 삭제로 무의미) */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-timeline { padding-left: 0; padding-right: 0; }
    

    /* ③ 장소 행 전체 = 풀폭 단일 카드(레일 열 제거: 3열→2열). 내부 __body 프레임 제거(중첩 해소). */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-place {
        grid-template-columns: 56px minmax(0, 1fr);
        gap: 10px;
        align-items: center;
        position: relative;
        padding: 9px;
        border: 1px solid var(--t2w-border-warm, #e5e7eb);
        border-radius: 12px;
        background: #fff;
        box-shadow: 0 2px 8px rgba(29, 24, 12, 0.05);
    }
    
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-place__body {
    /* (S270 접기: L7937 병합) */
    min-width: 0;
        padding: 8px 10px;
        border: 1px solid var(--t2w-border-warm, #e8e0d0);
        border-radius: 12px;
        background: #fff;
        box-shadow: 0 2px 8px rgba(29, 24, 12, 0.04);
        transition: border-color .15s, box-shadow .15s; border: 0; box-shadow: none; background: transparent; padding: 0; }
    /* 번호 = 썸네일 코너 골드 배지(순서 정보 보존 — 모바일퍼스트 '정보 숨김 금지') */
    
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-place__seq {
        position: absolute; top: -6px; left: -6px; width: 20px; height: 20px;
        border-radius: 999px; background: var(--t2w-primary, #ffb700);
        color: var(--t2w-text-warm, #1d180c); font-size: 11px; font-weight: 800;
        display: flex; align-items: center; justify-content: center;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); z-index: 2;
    }
}

/* ───────────────────────────────────────────────────────────────────────
   S206 심플 믹스 (Wanderlog 가벼운 행+동선선 / 트리플 일차칩) — 마스터 레퍼런스 채택, 2026-06-30.
   S205 ②카드 위에 덧칠: 카드 틀(테두리·그림자·배경) 제거 → 얇은 골드 동선선 + 번호 노드(좌) 위에 장소,
   본문(중)·작은 썸네일(우), 이동(hop)은 노드 사이 얇은 줄. ≤768 한정·시간엔진/커머스/데스크톱 무접촉·새 강제규칙(중요도) 0.
   동일 :not(map-mode) 셀렉터(1,2,0) + 파일끝 소스순서로 S205 카드 규칙을 이김. ─────────────────────── */
@media (max-width: 768px) {
    /* 정렬: 아래 본문(출발지·구역·타임라인·장소)을 최상단 박스(요약+칩, margin 14 → x14..361)와 동일 좌우 끝에 맞춤.
       S204가 tl-body 패딩 8(→내용 x22)로 둬 8px 안쪽이라 들쭉 → 0으로 내려 상단 박스와 플러시(x14..361). */
    #t2w-planner-v2 .t2w-tl-body {
    /* (S270 접기: L10316 병합) */
    padding-left: 8px; padding-right: 8px; padding-left: 0; padding-right: 0; }
    /* 동선선: 타임라인 좌측 얇은 골드 라인(노드 연결). 타임라인 패딩 0 → 장소 행도 상단 박스와 동일 좌측(x14). 스파인은 노드 중심(좌12)에 맞춤. */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-timeline { padding-left: 0; padding-right: 0; }
    
    /* 중복 동선선 제거: 기존 .t2w-card-list::before(좌 8px 골드 라인)가 새 노드 정렬 스파인(13px)과 이중으로 보임
       → 모바일선 숨겨 한 줄만(노드 정렬 스파인 유지). 데스크톱은 무영향(≤768 한정). */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-card-list::before { display: none; }
    /* 주: 존 헤더 점(.t2w-v29-zone-dot)은 구역별 색 구분(인라인, 1일차 파랑·2일차 시안…)이라 의도된 기능 → 골드 통일 보류(인라인 색이라 강제규칙 없이는 못 이김·legend 손상). */
    /* 장소 행: 한 줄 = 노드(20) · 본문[도착시각+이름](1fr) · 체류 스텝퍼(auto, 옛 썸네일 자리). 썸네일 제거. */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-place {
        grid-template-columns: 20px minmax(0, 1fr) auto;
        gap: 10px; align-items: center; position: relative;
        padding: 7px 2px; border: 0; border-radius: 0; background: transparent; box-shadow: none;
    }
    
    /* 번호 노드 — 동선선 위 흰 원 + 골드 테두리. ⓑ: 20→24px·숫자 11→13px로 키워 가독성 ↑(심플·산뜻함 유지).
       그리드 1열(20px)·동선선(좌12px)은 그대로 두고 justify-self:center로 노드를 열 중심(x12)에 맞춰 동선선 위 정렬 보존 → 본문/이동줄 정렬 무변. */
    
    /* 본문 1줄째 — 도착시각 + 이름만, 글씨 키움(이름 17·시각 15 골드). 별점·분류는 미표시(JS에서 제거). */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-place__title {
    /* (S270 접기: L7953 병합) */
    display: flex;
        align-items: center;
        gap: 6px;
        min-width: 0; display: flex; align-items: baseline; gap: 8px; min-width: 0; }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-place__title strong {
    /* (S270 접기: L7960 병합) */
    min-width: 0;
        overflow: hidden;
        color: var(--color-text-primary);
        font-size: 14px;
        font-weight: 800;
        line-height: 1.25;
        text-overflow: ellipsis;
        white-space: nowrap; font-size: 17px; font-weight: 800; letter-spacing: -0.2px; min-width: 0; flex: 0 1 auto; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    
    /* 썸네일 — 작게(50), 우측 */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-place__thumb {
    /* (S270 접기: L7913 병합) */
    width: 56px;
        height: 56px;
        align-self: center;
        border-radius: 10px;
        background-size: cover;
        background-position: center;
        display: flex;
        align-items: center;
        justify-content: center;
        overflow: hidden;
    /* (S270 접기: L10380 병합) */
    position: relative; width: 50px; height: 50px; }
    /* 이동(hop) — 노드 사이 얇은 줄, 본문 열(x47)에 정렬(옛 레일 기준 margin 회수, 동선선 우측 들여쓰기) */
    
    /* 복귀 줄도 본문 열에 정렬 */
    
    /* 식사 힌트: 옛 레일(42) 기준 margin-left 48 → 본문 열(노드 우측)에 정렬해 들쭉 제거 */
    

    /* (a) 커머스 '상품' 허브도 상단 박스 폭(x14..361)에 정렬 — 여백만(보호구역 도달성 불변, 폭만 확대). */
    #t2w-planner-v2 #t2w-service-options { margin-left: 0; margin-right: 0; }

    /* (b) 출발지 줄 + '시드니 시티' 구역헤더 통합 — 출발지 카드 틀(테두리·배경·그림자) 제거하고 간격 0으로
       바로 위 한 헤더처럼. <details> 토글·입력칸·터치타겟44·시간엔진 전부 보존(표시만, 열림 상태는 [open] 규칙이 유지). */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-endpoint-summary {
    /* (S270 접기: L8844 병합) */
    display: grid;
        grid-template-columns: 22px minmax(0, 1fr) auto;
        align-items: center;
        box-sizing: border-box;
        gap: 8px;
        min-height: 44px;
        border: 1px solid var(--t2w-border-warm, #eadfca);
        border-radius: 12px;
        padding: 5px 8px;
        background: #fff;
        color: var(--t2w-text-warm, #1d180c);
        cursor: pointer; border: 0; background: transparent; border-radius: 0; box-shadow: none; }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-endpoint-stack--compact {
    /* (S270 접기: L8831 병합) */
    display: block;
        margin: 0 0 6px;
    /* (S270 접기: L10353 병합) */
    margin-bottom: 4px; margin-bottom: 0; }
    /* 한 줄 통합: 첫 구역 헤더 줄 삭제(이름·시간대는 출발지 요약줄로 흡수). 구역2+는 자체 헤더 유지. */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-v29-zone-sep--merged { display: none; }
    /* 통합 헤더 글자: 구역명 강조(15/800) + 시간대 보조(12/600) — 출발지 요약줄 em 재스타일 */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-endpoint-summary__text em { font-style: normal; font-size: 12px; font-weight: 600; color: var(--t2w-text-warm-secondary, #4B5563); }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-endpoint-summary__text em .t2w-ep-zone { font-size: 15px; font-weight: 800; color: var(--t2w-text-warm, #1F2937); }

    /* (2·스텝퍼·한줄) 체류시간 = '− 75분 +' 스텝퍼(우측, 옛 썸네일 자리). 막대·게이지 없음. −/＋ 원형 + 가운데 분(分) 값.
       베이스 .t2w-place-dur-btn의 min 44(터치타겟)를 컴팩트 36으로 명시(알약 패딩으로 히트영역 보완). −/＋는 기존 핸들러로 ±15분. */
    
    /* C: −/＋를 흰 원 + 옅은 골드 테두리로 — 크림 알약 위에서 '누르는 버튼'임이 또렷하게 */
    
    
    
    
}

/* ═══════ S206 일정 타임라인 고도화 — 라이트 통일 (선셋 트레일 톤, 마스터 2026-07-01) ═══════
   경쟁플랫폼 5컨셉 워크플로 → C2 레이아웃 채택(분류 제거·시각····스텝퍼/이름·썸네일) → 마스터 '라이트로 통일' 결정:
   다크 패널 폐기, 앱(라이트)과 통일. 패널 투명·흰 카드가 그림자로 떠 있는 형태. 골드는 절제(노드·시각·±).
   ≤768 한정·:not(map-mode)·데스크톱(v29) 무영향·새 강제규칙(중요도) 0·시간엔진/커머스 무접촉. 직전 규칙을 소스순서로 덮어씀. */
@media (max-width: 768px) {
    /* 패널 — 앱 배경과 통일(투명), 스파인은 따뜻한 골드 헤어라인 */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-timeline {
        background: transparent; background-image: none; border-radius: 0; padding: 4px 2px 6px; margin: 4px 0 2px; position: relative;
    }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-timeline::before {
    /* (S270 접기: L7853 병합) */
    content: '';
        position: absolute;
        left: 30px;
        top: 0;
        bottom: 0;
        width: 2px;
        background: linear-gradient(180deg, transparent 0, var(--color-primary) 26px, var(--color-primary-dark) calc(100% - 26px), transparent 100%);
        z-index: 0;
        pointer-events: none;
    /* (S270 접기: L10363 병합) */
    display: none;
    /* (S270 접기: L10396 병합) */
    display: block; content: ''; position: absolute; left: 12px; top: 14px; bottom: 16px;
        width: 2px; background: linear-gradient(var(--t2w-primary, #ffb700), #f0e6cc); z-index: 0;
        display: block; content: ''; position: absolute; left: 32px; top: 14px; bottom: 16px; width: 1px;
        background: linear-gradient(var(--t2w-primary, #ffb700), #f0e6cc); z-index: 0;
    }
    /* 장소 행: [노드 36 | 카드 1fr] */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-place {
        grid-template-columns: 36px 1fr; gap: 10px; align-items: center;
        padding: 6px 0; border: 0; border-radius: 0; background: transparent; box-shadow: none;
    }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-place:active {
    /* (S270 접기: L10377 병합) */
    border-color: rgba(255, 183, 0, 0.5);
    /* (S270 접기: L10409 병합) */
    background: rgba(255, 183, 0, 0.07); border-radius: 10px; background: transparent; }
    /* 번호 노드 — 흰 원 + 골드 테두리 + 골드다크 번호 */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-place__node {
    /* (S270 접기: L10411 병합) */
    width: 24px; height: 24px; border-radius: 999px; background: #fff; justify-self: center;
        border: 2px solid var(--t2w-primary, #ffb700); color: var(--color-primary-dark, #b45309);
        font-size: 13px; font-weight: 800; display: flex; align-items: center; justify-content: center;
        position: relative; z-index: 2;
        width: 28px; height: 28px; justify-self: center; border-radius: 999px; background: #fff;
        border: 2px solid var(--t2w-primary, #ffb700); color: var(--color-primary-dark, #b45309);
        font-size: 13px; font-weight: 800; box-shadow: none; display: flex; align-items: center; justify-content: center;
        position: relative; z-index: 2;
    }
    /* 카드 — 흰 surface가 그림자로 떠 있음, [썸네일 56 | 본문] */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mrp-card {
        display: grid; grid-template-columns: 56px 1fr; gap: 13px; align-items: center;
        background: #fff; border: 1px solid rgba(43, 37, 33, 0.05); border-radius: 16px;
        box-shadow: 0 1px 2px rgba(43, 37, 33, 0.04), 0 6px 16px rgba(43, 37, 33, 0.06); padding: 13px 14px;
    }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mrp-thumb {
        width: 56px; height: 56px; border-radius: 12px; background-size: cover; background-position: center; flex: 0 0 auto;
        box-shadow: inset 0 0 0 1px rgba(43, 37, 33, 0.06);
    }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mrp-thumb--ph {
        display: flex; align-items: center; justify-content: center;
        background: linear-gradient(135deg, var(--t2w-bg-cream, #fffbeb), #fbedcb); color: var(--color-primary-dark, #b45309);
    }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mrp-thumb--ph .material-symbols-outlined { font-size: 24px; }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mrp-content { min-width: 0; }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mrp-top { display: flex; align-items: center; gap: 10px; }
    /* 도착시각 — 일몰 그라데이션 텍스트(라이트 위에서도 또렷) */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mrp-time {
    /* (S270 접기: L10420 병합) */
    font-size: 15px; font-weight: 700; color: var(--color-primary-dark, #b45309); flex: 0 0 auto; font-family: 'Poppins', inherit; letter-spacing: 0.2px;
        font-size: 14px; font-weight: 700; font-family: 'Poppins', inherit; font-variant-numeric: tabular-nums; flex: 0 0 auto;
        background: linear-gradient(90deg, #F26B4E, #E5A23C); -webkit-background-clip: text; background-clip: text; color: transparent;
    }
    /* 시각 ····· 머무는시간 점선 커넥터(따뜻한 옅은 선) */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mrp-conn { flex: 1; height: 0; border-top: 1.5px dashed rgba(180, 83, 9, 0.18); }
    /* 장소 이름 — 그 아래, 크게 */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mrp-name {
        font-weight: 700; font-size: 17px; letter-spacing: -0.2px; color: var(--t2w-text-warm, #1F2937); margin-top: 9px;
        white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mrp-name .t2w-mobile-review-place__badge {
        background: rgba(255, 183, 0, 0.16); color: var(--color-primary-dark, #b45309); border: 0;
    }
    /* 체류 스텝퍼 — 크림 pill + 골드 ± */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mrp-dur {
    /* (S270 접기: L10445 병합) */
    display: inline-flex; align-items: center; gap: 2px; flex: 0 0 auto;
        background: var(--t2w-bg-cream, #fffbeb); border: 1px solid rgba(180, 83, 9, 0.16); border-radius: 999px; padding: 2px;
        display: inline-flex; align-items: center; gap: 2px; flex: 0 0 auto;
        background: var(--t2w-bg-cream, #fffbeb); border: 1px solid rgba(180, 83, 9, 0.16); border-radius: 999px; padding: 2px;
    }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mrp-dur .t2w-place-dur-btn {
    /* (S270 접기: L10450 병합) */
    width: 30px; height: 30px; min-width: 30px; min-height: 30px;
        border-radius: 999px; border: 1px solid rgba(180, 83, 9, 0.22); background: #fff;
        color: var(--color-primary-dark, #b45309); display: inline-flex; align-items: center;
        justify-content: center; padding: 0; cursor: pointer; flex: 0 0 auto;
        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
        width: 28px; height: 28px; min-width: 28px; min-height: 28px; border: 1px solid rgba(180, 83, 9, 0.22); background: #fff;
        color: var(--color-primary-dark, #b45309); border-radius: 999px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
        display: inline-flex; align-items: center; justify-content: center; padding: 0; cursor: pointer; flex: 0 0 auto;
    }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mrp-dur .t2w-place-dur-btn:active {
    /* (S270 접기: L10457 병합) */
    background: var(--t2w-primary, #ffb700); border-color: var(--t2w-primary, #ffb700); color: #fff; background: var(--t2w-primary, #ffb700); border-color: var(--t2w-primary, #ffb700); color: #fff; }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mrp-dur .t2w-place-dur-btn .material-symbols-outlined {
    /* (S270 접기: L10458 병합) */
    font-size: 18px; font-size: 17px; }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mrp-dur .t2w-mrp-dur-val {
    /* (S270 접기: L10459 병합) */
    font-size: 13px; font-weight: 700; color: var(--t2w-text-warm, #1f2937); min-width: 44px; text-align: center;
        font-size: 13px; font-weight: 700; color: var(--t2w-text-warm, #1F2937); font-variant-numeric: tabular-nums; min-width: 40px; text-align: center; padding: 0 2px;
    }
    /* 이동(hop) — 왼쪽 세로 라인에만: [수단 아이콘 + 분 + 거리] 컴팩트 세로 스택. 글자 라벨 없이 아이콘으로. 아이콘 탭=수단 순환. */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-hop {
    /* (S270 접기: L7994 병합) */
    display: flex;
        align-items: center;
        gap: 5px;
        min-height: 18px;
        margin: 0 0 2px 50px;
        color: #7a6f5d;
        font-size: 12px;
        font-weight: 600;
        line-height: 1.25;
    /* (S270 접기: L10424 병합) */
    margin-left: 0; padding: 2px 0 2px 33px; font-size: 12px; position: relative; z-index: 1; display: block; margin: 2px 0; padding: 0; }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mrp-hop-btn {
        display: flex; flex-direction: column; align-items: center; gap: 1px;
        width: 44px; margin-left: 10px; padding: 2px 0; border: 0; background: transparent; cursor: pointer;
        position: relative; z-index: 1;
    }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mrp-hop-ic {
        font-size: 15px; color: #0F6E66; width: 24px; height: 24px; border-radius: 999px; background: #E7EEE9;
        display: flex; align-items: center; justify-content: center;
    }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mrp-hop-t { font-size: 11px; font-weight: 700; color: var(--t2w-text-warm, #1F2937); font-variant-numeric: tabular-nums; }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mrp-hop-d { font-size: 10px; color: var(--t2w-text-warm-secondary, #6b7280); }
    /* 복귀(출발지 도착) — 라이트 */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-return {
    /* (S270 접기: L10428 병합) */
    margin-left: 0; padding-left: 33px; position: relative; z-index: 1;
        margin-left: 46px; padding-left: 0; color: var(--t2w-text-warm-secondary, #6b7280); font-size: 12px;
    }
    /* 식사 힌트 — 크림 바 */
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-tl-meal-hint {
    /* (S270 접기: L10430 병합) */
    margin-left: 33px;
        margin-left: 46px; background: var(--t2w-bg-cream, #fffbeb); border: 1px solid rgba(180, 83, 9, 0.12);
        border-radius: 12px; color: var(--t2w-text-warm, #1F2937);
    }
    #t2w-planner-v2:not(.t2w-planner--map-mode) .t2w-mobile-review-meal { color: var(--t2w-text-warm, #1F2937); }
}

/* S246 Phase 2: optional meal suggestion. Meals are proposed by Allpl, not forced into the itinerary. */
#t2w-planner-v2 .t2w-tl-meal-hint--prompt {
    padding: 12px 14px;
}
#t2w-planner-v2 .t2w-tl-meal-hint--prompt .t2w-tl-meal-hint-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    padding: 0;
    color: var(--t2w-text-warm, #1F2937);
}
#t2w-planner-v2 .t2w-tl-meal-hint--prompt .t2w-tl-meal-hint-header::after {
    content: none;
}
#t2w-planner-v2 .t2w-meal-suggest-mark {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 0 8px;
    border-radius: 999px;
    background: rgba(255, 183, 0, 0.18);
    color: var(--color-primary-dark, #B45309);
    font-size: 11px;
    font-weight: 800;
}
#t2w-planner-v2 .t2w-meal-suggest-body {
    margin-top: 7px;
}
#t2w-planner-v2 .t2w-meal-suggest-body p {
    margin: 0;
    color: var(--t2w-text-warm-secondary, #6B7280);
    font-size: 13px;
    line-height: 1.45;
}
#t2w-planner-v2 .t2w-meal-suggest-count {
    font-weight: 800;
    color: var(--t2w-text-warm, #1F2937);
}
#t2w-planner-v2 .t2w-meal-suggest-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}
#t2w-planner-v2 .t2w-meal-suggest-btn {
    min-height: 36px;
    border: 1px solid rgba(180, 83, 9, 0.16);
    border-radius: 999px;
    padding: 0 13px;
    background: #fff;
    color: var(--t2w-text-warm, #1F2937);
    font-size: 13px;
    font-weight: 750;
    cursor: pointer;
}
#t2w-planner-v2 .t2w-meal-suggest-btn:hover {
    background: rgba(255, 183, 0, 0.1);
}
#t2w-planner-v2 .t2w-meal-suggest-btn:disabled {
    cursor: wait;
    opacity: 0.55;
}
#t2w-planner-v2 .t2w-meal-suggest-open {
    background: var(--t2w-primary, #FFB700);
    border-color: var(--t2w-primary, #FFB700);
    color: var(--t2w-text-warm, #1F2937);
}
#t2w-planner-v2 .t2w-meal-suggest-status {
    min-height: 0;
    margin-top: 7px;
    color: var(--t2w-text-warm-secondary, #6B7280);
    font-size: 12px;
}
#t2w-planner-v2 .t2w-meal-suggest-drawer-wrap {
    position: fixed;
    inset: 0;
    z-index: 8500;
    pointer-events: none;
}
#t2w-planner-v2 .t2w-meal-suggest-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(17, 24, 39, 0.18);
    pointer-events: auto;
}
#t2w-planner-v2 .t2w-meal-suggest-drawer {
    /* S255: 바닥 구석 고정 → 세로 중앙 정렬 — 클릭 지점(타임라인 중간)과 시선 균형, "아래로 쏠림" 해소 */
    position: absolute;
    right: 24px;
    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
    width: min(430px, calc(100vw - 32px));
    max-height: min(620px, calc(100vh - 48px));
    overflow: auto;
    pointer-events: auto;
    background: #fff;
    border: 1px solid rgba(43, 37, 33, 0.10);
    border-radius: 18px;
    box-shadow: 0 22px 60px rgba(31, 41, 55, 0.24);
    padding: 18px;
}
#t2w-planner-v2 .t2w-meal-suggest-close {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 999px;
    background: rgba(31, 41, 55, 0.07);
    color: var(--t2w-text-warm, #1F2937);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}
#t2w-planner-v2 .t2w-meal-suggest-close .material-symbols-outlined {
    font-size: 20px;
}
#t2w-planner-v2 .t2w-meal-suggest-drawer__eyebrow {
    color: var(--color-primary-dark, #B45309);
    font-size: 12px;
    font-weight: 800;
}
#t2w-planner-v2 .t2w-meal-suggest-drawer h3 {
    max-width: calc(100% - 42px);
    margin: 4px 0 6px;
    color: var(--t2w-text-warm, #1F2937);
    font-size: 20px;
    line-height: 1.25;
}
#t2w-planner-v2 .t2w-meal-suggest-drawer p {
    margin: 0 0 12px;
    color: var(--t2w-text-warm-secondary, #6B7280);
    font-size: 13px;
    line-height: 1.5;
}
#t2w-planner-v2 .t2w-meal-suggest-drawer .t2w-tl-meal-mini-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 0;
    padding: 0;
    overflow: visible;
}
#t2w-planner-v2 .t2w-meal-suggest-drawer .t2w-tl-meal-mini {
    width: auto;
    min-width: 0;
    scroll-snap-align: none;
}
#t2w-planner-v2 .t2w-meal-suggest-drawer__foot {
    margin-top: 11px;
    color: var(--t2w-text-warm-secondary, #6B7280);
    font-size: 12px;
}

@media (max-width: 768px) {
    
    
    
    #t2w-planner-v2 .t2w-meal-suggest-backdrop {
        background: rgba(17, 24, 39, 0.28);
    }
    #t2w-planner-v2 .t2w-meal-suggest-drawer {
        left: 0;
        right: 0;
        top: auto;
        bottom: 0;
        transform: none;
        width: auto;
        max-height: 72vh;
        border-radius: 18px 18px 0 0;
        padding: 18px 14px calc(18px + env(safe-area-inset-bottom, 0px));
    }
    #t2w-planner-v2 .t2w-meal-suggest-drawer h3 {
        font-size: 18px;
    }
    #t2w-planner-v2 .t2w-meal-suggest-drawer .t2w-tl-meal-mini-cards {
        display: flex;
        overflow-x: auto;
        padding-bottom: 4px;
    }
    #t2w-planner-v2 .t2w-meal-suggest-drawer .t2w-tl-meal-mini {
        flex: 0 0 154px;
        min-width: 154px;
    }
}

/* S246 Phase 3: route explanation. Explains route burden without changing route logic. */
#t2w-planner-v2 .t2w-route-explain {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    margin-top: 10px;
    padding: 12px 14px;
    border: 1px solid rgba(43, 37, 33, 0.10);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.78);
    color: var(--t2w-text-warm, #1F2937);
}
#t2w-planner-v2 .t2w-route-explain > .material-symbols-outlined {
    width: 34px;
    height: 34px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 183, 0, 0.16);
    color: var(--color-primary-dark, #B45309);
    font-size: 19px;
}
#t2w-planner-v2 .t2w-route-explain__copy {
    min-width: 0;
    display: grid;
    gap: 3px;
}
#t2w-planner-v2 .t2w-route-explain__copy strong {
    color: var(--t2w-text-warm, #1F2937);
    font-size: 13px;
    font-weight: 850;
    line-height: 1.25;
}
#t2w-planner-v2 .t2w-route-explain__copy span {
    color: var(--t2w-text-warm-secondary, #6B7280);
    font-size: 12px;
    line-height: 1.45;
}
#t2w-planner-v2 .t2w-route-explain__copy em {
    color: var(--color-primary-dark, #B45309);
    font-size: 11px;
    font-style: normal;
    font-weight: 800;
}
#t2w-planner-v2 .t2w-route-explain--heavy,
#t2w-planner-v2 .t2w-route-explain--busy {
    background: rgba(255, 251, 235, 0.9);
    border-color: rgba(180, 83, 9, 0.18);
}
#t2w-planner-v2 .t2w-route-explain--heavy > .material-symbols-outlined,
#t2w-planner-v2 .t2w-route-explain--busy > .material-symbols-outlined {
    background: rgba(180, 83, 9, 0.13);
}

/* S246 Phase 4: recommendation reason and day intro. Uses existing itinerary facts only. */
#t2w-planner-v2 .t2w-day-intro {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    margin: 0 0 12px;
    padding: 13px 15px;
    border: 1px solid rgba(43, 37, 33, 0.09);
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(255, 251, 235, 0.92), rgba(255, 255, 255, 0.88));
    color: var(--t2w-text-warm, #1F2937);
    box-shadow: 0 8px 22px rgba(43, 37, 33, 0.04);
}
#t2w-planner-v2 .t2w-day-intro__icon {
    width: 36px;
    height: 36px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 183, 0, 0.16);
    color: var(--color-primary-dark, #B45309);
}
#t2w-planner-v2 .t2w-day-intro__icon .material-symbols-outlined {
    font-size: 19px;
}
#t2w-planner-v2 .t2w-day-intro__copy {
    min-width: 0;
    display: grid;
    gap: 4px;
}
#t2w-planner-v2 .t2w-day-intro__copy strong {
    color: var(--t2w-text-warm, #1F2937);
    font-size: 14px;
    font-weight: 850;
    line-height: 1.25;
}
#t2w-planner-v2 .t2w-day-intro__copy > span {
    color: var(--t2w-text-warm-secondary, #5F6470);
    font-size: 12px;
    line-height: 1.5;
}
#t2w-planner-v2 .t2w-day-intro__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 2px;
}
#t2w-planner-v2 .t2w-day-intro__meta em {
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(43, 37, 33, 0.07);
    color: var(--color-primary-dark, #B45309);
    font-size: 11px;
    font-style: normal;
    font-weight: 750;
}
#t2w-planner-v2 .t2w-place-reason {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    gap: 7px;
    align-items: start;
    margin: 7px 0 8px;
    padding: 8px 10px;
    border-radius: 12px;
    background: rgba(249, 250, 251, 0.92);
    border: 1px solid rgba(43, 37, 33, 0.06);
    color: var(--t2w-text-warm-secondary, #5F6470);
    font-size: 12px;
    line-height: 1.45;
}
#t2w-planner-v2 .t2w-place-reason > .material-symbols-outlined {
    color: var(--color-primary-dark, #B45309);
    font-size: 17px;
    line-height: 1.15;
}
#t2w-planner-v2 .t2w-place-reason strong {
    color: var(--t2w-text-warm, #1F2937);
    font-weight: 850;
}
#t2w-planner-v2 .t2w-place-reason em {
    grid-column: 2;
    color: var(--color-primary-dark, #B45309);
    font-size: 11px;
    font-style: normal;
    font-weight: 750;
}
#t2w-planner-v2 .t2w-v7-content > .t2w-place-reason {
    grid-template-columns: 18px minmax(0, 1fr);
    gap: 5px;
    margin: 5px 0 0;
    padding: 0;
    border: 0;
    background: transparent;
    font-size: 11px;
    line-height: 1.35;
}
#t2w-planner-v2 .t2w-v7-content > .t2w-place-reason > .material-symbols-outlined {
    font-size: 15px;
    margin-top: 1px;
}
#t2w-planner-v2 .t2w-v7-content > .t2w-place-reason span:last-of-type {
    min-width: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
#t2w-planner-v2 .t2w-v7-content > .t2w-place-reason em {
    display: none;
}
#t2w-planner-v2 .t2w-v29-card--collapsed .t2w-place-reason {
    margin-bottom: 0;
}
#t2w-planner-v2 .t2w-v29-card--collapsed .t2w-place-reason em {
    display: none;
}
@media (max-width: 768px) {
    #t2w-planner-v2 .t2w-day-intro {
        grid-template-columns: 32px minmax(0, 1fr);
        gap: 10px;
        margin: 2px 0 10px;
        padding: 11px 12px;
        border-radius: 14px;
    }
    #t2w-planner-v2 .t2w-day-intro__icon {
        width: 32px;
        height: 32px;
    }
    #t2w-planner-v2 .t2w-day-intro__copy strong {
        font-size: 13px;
    }
    #t2w-planner-v2 .t2w-day-intro__copy > span {
        font-size: 11px;
    }
    #t2w-planner-v2 .t2w-day-intro__meta em {
        font-size: 10px;
        padding: 2px 7px;
    }
    #t2w-planner-v2 .t2w-route-explain {
        grid-template-columns: 30px minmax(0, 1fr);
        padding: 11px 12px;
        margin-top: 8px;
    }
    #t2w-planner-v2 .t2w-route-explain > .material-symbols-outlined {
        width: 30px;
        height: 30px;
        font-size: 17px;
    }
    #t2w-planner-v2 .t2w-place-reason--mobile {
        display: flex;
        align-items: flex-start;
        gap: 5px;
        margin: 6px 0 0;
        padding: 0;
        border: 0;
        background: transparent;
        color: var(--t2w-text-warm-secondary, #6B7280);
        font-size: 11px;
        line-height: 1.35;
    }
    #t2w-planner-v2 .t2w-place-reason--mobile > .material-symbols-outlined {
        font-size: 15px;
        margin-top: 1px;
    }
    #t2w-planner-v2 .t2w-place-reason--mobile span:last-child {
        min-width: 0;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
}

/* S247: mobile meal prompt micro polish — optional meal suggestions stay compact. */
@media (max-width: 768px) {
    #t2w-planner-v2 .t2w-tl-meal-hint--prompt {
    /* (S270 접기: L10716 병합) */
    padding: 11px 12px;
        padding: 10px 11px;
    }

    #t2w-planner-v2 .t2w-tl-meal-hint--prompt .t2w-tl-meal-hint-header {
        gap: 5px;
        font-size: 12px;
        line-height: 1.35;
    }

    #t2w-planner-v2 .t2w-meal-suggest-body p {
        font-size: 12px;
        line-height: 1.35;
    }

    #t2w-planner-v2 .t2w-meal-suggest-actions {
    /* (S270 접기: L10719 병합) */
    display: grid;
        grid-template-columns: 1fr;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
        margin-top: 8px;
    }

    #t2w-planner-v2 .t2w-meal-suggest-open {
        grid-column: 1 / -1;
    }

    #t2w-planner-v2 .t2w-meal-suggest-btn {
    /* (S270 접기: L10723 병합) */
    width: 100%;
        min-height: 42px;
        min-height: 38px;
        padding: 0 10px;
        font-size: 12px;
        white-space: nowrap;
    }
}

@media (min-width: 700px) and (max-width: 768px) {
    #t2w-planner-v2 .t2w-tl-meal-hint--prompt {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        column-gap: 12px;
        row-gap: 0;
        padding: 7px 9px;
    }

    #t2w-planner-v2 .t2w-tl-meal-hint--prompt .t2w-tl-meal-hint-header {
        grid-column: 1;
        min-width: 0;
        flex-wrap: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    #t2w-planner-v2 .t2w-meal-suggest-body {
        display: contents;
    }

    #t2w-planner-v2 .t2w-meal-suggest-body p,
    #t2w-planner-v2 .t2w-meal-suggest-status {
        display: none;
    }

    #t2w-planner-v2 .t2w-meal-suggest-actions {
        grid-column: 2;
        grid-row: 1;
        grid-template-columns: repeat(3, auto);
        align-self: center;
        margin-top: 0;
    }

    #t2w-planner-v2 .t2w-meal-suggest-open {
        grid-column: auto;
    }

    #t2w-planner-v2 .t2w-meal-suggest-btn {
        min-height: 30px;
        padding: 0 10px;
        font-size: 11px;
    }
}

@media (max-width: 480px) {
    #t2w-planner-v2 .t2w-tl-meal-hint--prompt {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        row-gap: 5px;
        margin-top: 0;
        padding: 7px 8px;
    }

    /* S269: -52px 당김은 투명한 이동(hop) 카드 다음에만 — 불투명 return 카드(z1) 다음이면
       버튼(추천 보기/괜찮아요/건너뛰기)이 카드 밑에 깔려 안 눌리는 라이브 사고 실측.
       hop(z1)이 투명한 채 클릭까지 가로채므로 제안 카드를 위로(z2) — 버튼 클릭 복구. */
    #t2w-planner-v2 .t2w-mobile-review-hop + .t2w-tl-meal-hint--prompt {
        margin-top: -52px;
        position: relative;
        z-index: 2;
    }

    #t2w-planner-v2 .t2w-tl-meal-hint--prompt .t2w-tl-meal-hint-header {
        min-width: 0;
        flex-wrap: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: 11px;
        line-height: 1.2;
    }

    #t2w-planner-v2 .t2w-meal-suggest-body {
        display: contents;
    }

    #t2w-planner-v2 .t2w-meal-suggest-body p,
    #t2w-planner-v2 .t2w-meal-suggest-status {
        display: none;
    }

    #t2w-planner-v2 .t2w-meal-suggest-actions {
        display: grid;
        grid-template-columns: 1.05fr 0.8fr 1.15fr;
        gap: 4px;
        margin-top: 0;
    }

    #t2w-planner-v2 .t2w-meal-suggest-open {
        grid-column: auto;
    }

    #t2w-planner-v2 .t2w-meal-suggest-btn {
        min-width: 0;
        min-height: 30px;
        padding: 0 4px;
        font-size: 10.5px;
        line-height: 1;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}

/* ============================================================
   S261 배치2 — 마스터 실기기 피드백 ④⑧ (2026-07-11)
   ④ 지도 제안 마커: 10px 점 → 아이콘 칩 / ⑧ 식사 제안 카드: 장소 카드 뼈대 통일 + 컴팩트
   ============================================================ */
/* ④ 제안 마커 칩 — .t2w-suggestion-dot 클래스 유지(하이라이트 로직 호환), 칩이 크기 격상 */
#t2w-planner-v2 .t2w-suggestion-chip {
    width: 26px;
    height: 26px;
    opacity: 0.95;
    border: 2px solid #fff;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
}
#t2w-planner-v2 .t2w-suggestion-chip .material-symbols-outlined {
    font-size: 15px;
    color: #fff;
}
#t2w-planner-v2 .t2w-suggestion-chip:hover {
    opacity: 1;
    transform: scale(1.12);
}
#t2w-planner-v2 .t2w-suggestion-chip.t2w-suggestion--active {
    transform: scale(1.25);
}

/* ⑧ 식사 제안 카드 — 데스크톱 v29 타임라인에선 장소 카드와 같은 [배지+카드] flex 뼈대 */
#t2w-planner-v2 .t2w-tl-meal-hint--prompt .t2w-meal-suggest-badge {
    display: none; /* 모바일 리뷰 레이아웃 등 비 v29 문맥에선 배지 숨김 */
}
#t2w-planner-v2 .t2w-v29-timeline .t2w-tl-meal-hint--prompt {
    display: flex;
    gap: 16px;
    position: relative;
    z-index: 1;
    margin: 0 0 32px 0;
    padding: 0;
    background: none;
    border: none;
    max-width: none; /* M59 calc(100% - 52px) 해제 — 장소 카드와 오른끝 정렬 */
    overflow: visible;
}
#t2w-planner-v2 .t2w-v29-timeline .t2w-tl-meal-hint--prompt .t2w-meal-suggest-badge {
    display: flex;
}
#t2w-planner-v2 .t2w-meal-suggest-badge .material-symbols-outlined {
    font-size: 16px;
    color: #D97706; /* .t2w-v29-circle--meal 기존 아이콘 색과 동일 */
}
#t2w-planner-v2 .t2w-v29-timeline .t2w-tl-meal-hint--prompt .t2w-meal-suggest-card {
    flex: 1;
    min-width: 0;
    background: #fff;
    border: 1px solid var(--t2w-border-warm, #e8e0d0);
    border-radius: 16px;
    padding: 13px 18px;
    box-shadow: 0 4px 20px -2px rgba(29, 24, 12, 0.05);
}
/* 컴팩트(데스크톱 전용 — 모바일·태블릿 터치 타깃은 기존 유지) */
@media (min-width: 1025px) {
    #t2w-planner-v2 .t2w-v29-timeline .t2w-meal-suggest-body { margin-top: 5px; }
    #t2w-planner-v2 .t2w-v29-timeline .t2w-meal-suggest-actions { margin-top: 8px; gap: 6px; }
    #t2w-planner-v2 .t2w-v29-timeline .t2w-meal-suggest-btn { min-height: 30px; font-size: 12.5px; padding: 0 11px; }
}

/* ═══════════════════════════════════════════════════════════════
   S257 P3: 장소 상세 탭(사진/리뷰/주변) 시각 리뉴얼
   전 셀렉터 .t2w-place-detail 범위 지정 — 상품 상세 시트(.t2w-product-detail) 무영향
   + last-wins 특이도 확보(!important 불필요). 키프레임 신설 없음.
   ═══════════════════════════════════════════════════════════════ */
/* 히어로 — 인라인 스타일 이관 (서체 제거는 templates.js) */
.t2w-place-detail .t2w-pd-hero-name-en{font-style:italic}
.t2w-place-detail .t2w-pd-hero-stars{display:inline-flex;align-items:center;gap:1px}
.t2w-place-detail .t2w-pd-hero-stars .material-symbols-outlined{font-size:12px;color:var(--color-primary,#FFB700);font-variation-settings:'FILL' 1}
/* 공용 빈 상태 (사진/리뷰/주변) */
.t2w-place-detail .t2w-pd-empty{text-align:center;padding:32px 16px;color:var(--color-text-muted,#6B7280)}
.t2w-place-detail .t2w-pd-empty .material-symbols-outlined{font-size:32px;display:block;margin:0 auto 10px;color:var(--color-primary,#FFB700);opacity:.55}
.t2w-place-detail .t2w-pd-empty p{font-size:13px;margin:0}
/* 사진 탭 — 개수 헤더 + 그리드 폴리시 (그리드=축소본, 라이트박스=원본은 JS) */
.t2w-place-detail .t2w-pd-photos-count{display:flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;color:var(--color-text-secondary,#4B5563);margin-bottom:10px}
.t2w-place-detail .t2w-pd-photos-count .material-symbols-outlined{font-size:15px;color:var(--color-primary-dark,#B45309)}
.t2w-place-detail .t2w-pd-photo-full-grid{gap:8px}
.t2w-place-detail .t2w-pd-photo-full-grid .t2w-pd-photo{border-radius:12px;background-color:var(--color-bg-warm,#F8F6F0);transition:transform .15s,box-shadow .15s}
.t2w-place-detail .t2w-pd-photo-full-grid .t2w-pd-photo:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(0,0,0,0.10)}
/* 리뷰 탭 — 평점 요약 (JS 인라인 → 클래스) + 별/막대 골드 토큰 통일 */
.t2w-place-detail .t2w-pd-rating-summary{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.t2w-place-detail .t2w-pd-rating-avg{font-size:30px;font-weight:800;line-height:1;color:var(--color-text-primary,#1F2937)}
.t2w-place-detail .t2w-pd-rating-stars{color:var(--color-primary,#FFB700);font-size:12px}
.t2w-place-detail .t2w-pd-rating-stars .material-symbols-outlined{font-size:14px;font-variation-settings:'FILL' 1}
.t2w-place-detail .t2w-pd-rating-total{font-size:12px;color:var(--color-text-muted,#6B7280)}
.t2w-place-detail .t2w-pd-rating-fill{background:var(--color-primary,#FFB700)}
.t2w-place-detail .t2w-pd-review-stars{color:var(--color-primary,#FFB700)}
.t2w-place-detail .t2w-pd-review-stars .material-symbols-outlined{font-variation-settings:'FILL' 1}
.t2w-place-detail .t2w-pd-ri-box .t2w-pd-ri-tags{margin-top:8px}
/* 주변 탭 — 회색·주황 옛 톤 → 웜 골드 리컬러 (마크업 계약 불변, --cat-color는 아이콘 칩에만 유지) */
.t2w-place-detail .t2w-nearby-header-left{color:var(--color-text-primary,#1F2937)}
.t2w-place-detail .t2w-nearby-header-left .material-symbols-outlined{font-size:17px;color:var(--color-primary-dark,#B45309)}
.t2w-place-detail .t2w-nearby-cat{border-color:var(--t2w-border-warm,#e8e0d0);transition:transform .15s,box-shadow .15s,border-color .15s,background .15s}
.t2w-place-detail .t2w-nearby-cat:hover{border-color:var(--color-primary,#FFB700)}
.t2w-place-detail .t2w-nearby-cat--active{border-color:var(--color-primary,#FFB700);background:var(--color-bg-cream,#FFFBEB)}
.t2w-place-detail .t2w-nearby-cat--active::after{background:var(--color-primary,#FFB700)}
.t2w-place-detail .t2w-nearby-cat-label{color:var(--color-text-secondary,#4B5563)}
.t2w-place-detail .t2w-nearby-cat-count{color:var(--color-text-muted,#6B7280)}
.t2w-place-detail .t2w-nearby-pill{background:var(--t2w-surface-warm,#f4f0e6);color:var(--t2w-text-warm-secondary,#7a6f5d);transition:background .15s,color .15s,border-color .15s}
.t2w-place-detail .t2w-nearby-pill:hover{background:var(--color-tag-gold-bg,#FFF4D6);color:var(--color-primary-dark,#B45309)}
.t2w-place-detail .t2w-nearby-pill--active{background:var(--color-tag-gold-bg,#FFF4D6);color:var(--color-primary-dark,#B45309);border-color:var(--color-primary,#FFB700);font-weight:700}
.t2w-place-detail .t2w-nearby-skel-card{background:var(--t2w-bg-warm,#FFFDF7)}
.t2w-place-detail .t2w-nearby-skel-card::before,
.t2w-place-detail .t2w-nearby-skel-card::after{background:linear-gradient(90deg,#f4f0e6 25%,#ece5d4 50%,#f4f0e6 75%);background-size:200% 100%}
.t2w-place-detail .t2w-nearby-card{border-color:var(--t2w-border-warm,#eee7d9);transition:transform .15s,box-shadow .15s,border-color .15s,background .15s}
.t2w-place-detail .t2w-nearby-card:hover{background:var(--t2w-bg-warm,#FFFDF7);border-color:var(--color-primary-light,#FFD35C);box-shadow:0 2px 10px rgba(180,120,0,0.10)}
.t2w-place-detail .t2w-nearby-card-name{color:var(--color-text-primary,#1F2937)}
.t2w-place-detail .t2w-nearby-card-rating{color:var(--color-primary-dark,#B45309)}
.t2w-place-detail .t2w-nearby-card-rating .material-symbols-outlined{font-variation-settings:'FILL' 1;color:var(--color-primary,#FFB700)}
.t2w-place-detail .t2w-nearby-card-hook{color:var(--color-text-muted,#6B7280)}
.t2w-place-detail .t2w-nearby-card-badge{background:var(--color-tag-gold-bg,#FFF4D6);color:var(--color-tag-gold-text,#8a5a00)}
.t2w-place-detail .t2w-nearby-card-add:hover{border-color:var(--color-primary,#FFB700);color:var(--color-primary-dark,#B45309);background:var(--color-tag-gold-bg,#FFF4D6)}
.t2w-place-detail .t2w-nearby-empty{color:var(--color-text-muted,#6B7280)}
.t2w-place-detail .t2w-nearby-maps-link a{color:var(--color-text-muted,#6B7280)}
.t2w-place-detail .t2w-nearby-maps-link a:hover{color:var(--color-primary-dark,#B45309)}
/* 주변 탭 하단 제휴 상품 섹션 — 회색·파랑 → 웜 톤 */
.t2w-place-detail .t2w-pd-product-section{background:var(--t2w-bg-warm,#FFFDF7);border:1px solid var(--t2w-border-warm,#f0e9db)}
.t2w-place-detail .t2w-pd-product-label{color:var(--color-text-secondary,#4B5563)}
.t2w-place-detail .t2w-pd-product-card{border-color:var(--t2w-border-warm,#e8e0d0)}
.t2w-place-detail .t2w-pd-product-card:hover{border-color:var(--color-primary-light,#FFD35C)}
.t2w-place-detail .t2w-pd-product-btn{border-color:var(--color-primary,#FFB700);color:var(--color-primary-dark,#B45309);transition:background .15s,color .15s}
.t2w-place-detail .t2w-pd-product-btn:hover{background:var(--color-primary,#FFB700);color:var(--t2w-text-main,#1d180c)}
@media (max-width:768px){
.t2w-place-detail .t2w-pd-photo-full-grid{gap:6px}
.t2w-place-detail .t2w-pd-rating-avg{font-size:26px}
.t2w-place-detail .t2w-pd-empty{padding:26px 12px}
}

/* ============================================================
   S265 — 여정 앵커 바 (숙소·출발/도착, 옵션 B 마스터 승인)
   S154가 숨겼던 endpoint 카드의 데스크톱 복귀: 평소 한 줄 접힘,
   누르면 출발지·도착지 검색 + "이 날만 적용" 범위 선택.
   markup = timeline.js _renderDepartureCard (데스크톱 분기)
   ============================================================ */
#t2w-planner-v2 .t2w-endpoint-stack--anchor {
    display: block;
    margin: 0 0 10px;
}
#t2w-planner-v2 .t2w-endpoint-stack--anchor > summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    padding: 9px 14px;
    background: linear-gradient(135deg, var(--color-bg-cream, #FFFBEB), #fff);
    border: 1.5px solid rgba(255, 183, 0, 0.35);
    border-radius: 14px;
    box-shadow: 0 2px 8px rgba(229, 164, 0, 0.07);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
#t2w-planner-v2 .t2w-endpoint-stack--anchor > summary::-webkit-details-marker { display: none; }
#t2w-planner-v2 .t2w-endpoint-stack--anchor > summary:hover {
    border-color: var(--color-primary, #FFB700);
    box-shadow: 0 4px 12px rgba(229, 164, 0, 0.14);
}
#t2w-planner-v2 .t2w-endpoint-stack--anchor .t2w-endpoint-summary__icon {
    font-size: 20px;
    color: var(--color-primary-dark, #E5A400);
    flex: none;
}
#t2w-planner-v2 .t2w-endpoint-stack--anchor .t2w-endpoint-summary__text {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: baseline;
    gap: 8px;
}
#t2w-planner-v2 .t2w-endpoint-stack--anchor .t2w-endpoint-summary__text strong {
    font-size: 13px;
    font-weight: 900;
    color: var(--t2w-text-main, #1d180c);
    white-space: nowrap;
}
#t2w-planner-v2 .t2w-endpoint-stack--anchor .t2w-endpoint-summary__text em {
    font-style: normal;
    font-size: 12.5px;
    font-weight: 600;
    color: #6B7280;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
#t2w-planner-v2 .t2w-endpoint-stack--anchor .t2w-endpoint-summary__edit {
    flex: none;
    font-size: 12px;
    font-weight: 800;
    color: var(--color-primary-dark, #E5A400);
}
#t2w-planner-v2 .t2w-endpoint-stack--anchor[open] > summary {
    border-radius: 14px 14px 0 0;
    border-bottom-color: rgba(255, 183, 0, 0.15);
    box-shadow: none;
}
#t2w-planner-v2 .t2w-endpoint-stack--anchor .t2w-endpoint-fields {
    display: grid;
    gap: 6px;
    padding: 10px 12px 12px;
    border: 1.5px solid rgba(255, 183, 0, 0.35);
    border-top: none;
    border-radius: 0 0 14px 14px;
    background: #fff;
}
/* 적용 범위 줄 (모바일 fields에도 공용) */
#t2w-planner-v2 .t2w-endpoint-scope {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 2px 4px 0;
    font-size: 12px;
    font-weight: 700;
    color: #6B7280;
    cursor: pointer;
}
#t2w-planner-v2 .t2w-endpoint-scope input {
    width: 15px;
    height: 15px;
    accent-color: var(--color-primary, #FFB700);
}
#t2w-planner-v2 .t2w-endpoint-scope i {
    font-style: normal;
    font-weight: 600;
    color: #9CA3AF;
}
/* 출발/도착 아이콘: 이모지 → 머티리얼 전환분 색 */
#t2w-planner-v2 .t2w-departure-v3-icon.material-symbols-outlined {
    color: var(--color-primary-dark, #E5A400);
}
#t2w-planner-v2 .t2w-destination-v3 .t2w-departure-v3-icon.material-symbols-outlined {
    color: var(--color-secondary-dark, #152A47);
}

/* ========================================
   S266 — 연예인 노출 전면화 (마스터 승인 옵션 A)
   ① 지도 핀 골드 별 배지(.t2w-place-marker-celeb — 구역 골드 마커와 별개 요소)
   ② 장소 상세 "여기 다녀간 사람"(.t2w-pd-celeb — About 탭, 복수 방문·출처 링크)
   데이터 = t2w_celebrity_visits (S184 V27, 출처 URL 필수 계약)
   ======================================== */
.t2w-place-marker-celeb {
    position: absolute;
    top: -6px;
    right: -6px;
    width: 14px;
    height: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--color-primary, #FFB700), var(--color-primary-dark, #E5A400));
    color: #fff;
    font-size: 10px;
    font-style: normal;
    font-variation-settings: 'FILL' 1;
    border: 1.5px solid #fff;
    box-shadow: 0 1px 4px rgba(20, 30, 50, 0.35);
    pointer-events: none;
}
#t2w-planner-v2 .t2w-pd-celeb {
    margin: 14px 0;
    padding: 12px 14px;
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(255, 183, 0, 0.09), rgba(255, 248, 231, 0.7));
    border: 1px solid rgba(229, 164, 0, 0.28);
}
#t2w-planner-v2 .t2w-pd-celeb-title {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 800;
    color: #92400E;
    margin-bottom: 8px;
}
#t2w-planner-v2 .t2w-pd-celeb-title .material-symbols-outlined {
    font-size: 16px;
}
#t2w-planner-v2 .t2w-pd-celeb-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 7px 0;
}
#t2w-planner-v2 .t2w-pd-celeb-row + .t2w-pd-celeb-row {
    border-top: 1px dashed rgba(229, 164, 0, 0.25);
}
#t2w-planner-v2 .t2w-pd-celeb-icon {
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #fff;
    border: 1px solid rgba(229, 164, 0, 0.35);
    color: var(--color-primary-dark, #E5A400);
    font-size: 16px;
    font-variation-settings: 'FILL' 1;
}
#t2w-planner-v2 .t2w-pd-celeb-body {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}
#t2w-planner-v2 .t2w-pd-celeb-body strong {
    font-size: 13.5px;
    font-weight: 800;
    color: var(--t2w-text-main, #1d180c);
}
#t2w-planner-v2 .t2w-pd-celeb-body em {
    font-style: normal;
    font-size: 12px;
    font-weight: 700;
    color: #92400E;
}
#t2w-planner-v2 .t2w-pd-celeb-label {
    font-size: 11.5px;
    color: var(--t2w-text-sub, #6B7280);
}
#t2w-planner-v2 .t2w-pd-celeb-src {
    flex: 0 0 auto;
    font-size: 11.5px;
    font-weight: 700;
    color: var(--t2w-text-sub, #6B7280);
    text-decoration: underline;
    padding: 6px 4px;
}
@media (max-width: 768px) {
    .t2w-place-marker-celeb {
        top: -5px;
        right: -5px;
        width: 13px;
        height: 13px;
        font-size: 9px;
    }
    /* 출처 링크 터치 타깃 44px 보강 */
    #t2w-planner-v2 .t2w-pd-celeb-src {
        padding: 16px 8px;
    }
}

/* ============================================================
   S269 응급 수리 (2026-07-17) — 라이브 실측 겹침·가림 보정
   근거: .tmp/site-check-s259/s269-planner-diagnose.cjs + s269-rootcause.cjs
   (식사 제안 -52px·오버레이 헤더 가림은 원 블록에서 직접 교정 — 이 블록은 잔여 2건)
   ============================================================ */
@media (max-width: 768px) {
    /* 본문 끝이 하단 네비(61px)보다 body 패딩(56px, planner-features.css:252)이 얕아 먹힘 + iOS safe-area 미반영.
       body 레벨 보정 — features.css 동일 특정성이지만 이 파일이 뒤에 로드돼 이김. */
    body.t2w-planner-skin {
        padding-bottom: calc(61px + env(safe-area-inset-bottom, 0px));
    }

    /* 스티키 데이칩 바 밑으로 지나가는 본문이 경계 없이 맞닿아 겹쳐 보임 — 분리 그림자 */
    #t2w-planner-v2 .t2w-mob-overview {
        box-shadow: 0 6px 12px -8px rgba(0, 0, 0, 0.18);
    }
}
