@import "https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css";
:root{--primary:#16a34a;--primary-light:#4ade80;--primary-dark:#15803d;--secondary:#f59e0b;--secondary-light:#fcd34d;--porto:#ea580c;--camino:#16a34a;--swiss:#dc2626;--london:#2563eb;--paris:#db2777;--accent-yellow:#fbbf24;--accent-cream:#fff8e7;--bg:#fafaf7;--bg-card:#fff;--bg-soft:#f5f5f0;--bg-sidebar:#fff;--bg-sidebar-active:#ecfdf5;--text:#0f172a;--text-light:#334155;--text-muted:#64748b;--text-on-sidebar:#0f172a;--text-on-sidebar-muted:#475569;--border:#e5e7eb;--border-soft:#f3f4f6;--shadow-sm:0 1px 2px #0f172a0a;--shadow:0 2px 8px #0f172a0f,0 1px 3px #0f172a0a;--shadow-lg:0 12px 32px #0f172a14,0 4px 12px #0f172a0d;--shadow-camino:0 8px 24px #16a34a24;--radius:16px;--radius-sm:12px;--radius-lg:22px;--radius-pill:999px;--sidebar-w:280px;--sidebar-w-collapsed:76px;--topbar-h:60px;--font-sans:"Pretendard Variable",-apple-system,BlinkMacSystemFont,system-ui,sans-serif;--font-display:"Pretendard Variable",sans-serif}[data-theme=dark]{--bg:#0b1120;--bg-card:#111827;--bg-soft:#0f172a;--bg-sidebar:#0b1120;--bg-sidebar-active:#064e3b;--text:#f8fafc;--text-light:#e2e8f0;--text-muted:#94a3b8;--text-on-sidebar:#f8fafc;--text-on-sidebar-muted:#94a3b8;--border:#1f2937;--border-soft:#111827;--accent-cream:#422006;--shadow:0 2px 8px #00000080;--shadow-lg:0 12px 32px #0009;--shadow-camino:0 8px 24px #16a34a40}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-size:18px}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-feature-settings:"kern","liga","tnum";min-height:100vh;font-weight:450;line-height:1.7}.app-layout{min-height:100vh;display:flex}.main-content{margin-left:var(--sidebar-w);flex:1;width:100%;max-width:1400px;min-height:100vh;padding:36px clamp(20px,4vw,44px);transition:margin-left .3s}.sidebar{width:var(--sidebar-w);background:var(--bg-sidebar);height:100vh;color:var(--text-on-sidebar);z-index:1000;border-right:1px solid var(--border);flex-direction:column;transition:transform .3s,width .3s;display:flex;position:fixed;top:0;left:0;overflow-y:auto}.sidebar.collapsed{width:var(--sidebar-w-collapsed)}.sidebar.collapsed .nav-item-label,.sidebar.collapsed .sidebar-dday .dday-label,.sidebar.collapsed .sidebar-progress,.sidebar.collapsed .sidebar-brand p,.sidebar.collapsed .sidebar-party,.sidebar.collapsed .collapse-toggle span{display:none}.sidebar.collapsed .sidebar-top{flex-direction:column;gap:12px}.sidebar.collapsed .sidebar-brand h1{text-align:center;font-size:1.6rem}.sidebar.collapsed .sidebar-brand-emoji-text{display:none}.sidebar.collapsed .sidebar-dday .dday-number{font-size:1.05rem}.sidebar.collapsed .nav-item{justify-content:center;padding:16px 0}.sidebar.collapsed .nav-item-icon{font-size:1.5rem}.main-content.sidebar-collapsed{margin-left:var(--sidebar-w-collapsed)}.sidebar-top{border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;padding:22px 22px 18px;display:flex}.sidebar-brand{flex:1;min-width:0}.sidebar-brand h1{color:var(--text);letter-spacing:-.4px;white-space:nowrap;align-items:center;gap:8px;margin-bottom:4px;font-size:1.18rem;font-weight:800;display:flex;overflow:hidden}.sidebar-brand-emoji{flex-shrink:0;font-size:1.55rem}.sidebar-brand-emoji-text{text-overflow:ellipsis;overflow:hidden}.sidebar-brand p{color:var(--text-muted);font-size:.88rem;font-weight:600}.theme-btn{border:1.5px solid var(--border);background:var(--bg-soft);cursor:pointer;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.25rem;transition:all .2s;display:flex}.theme-btn:hover{background:var(--bg-card);border-color:var(--primary);transform:translateY(-1px)}.sidebar-close{background:var(--bg-soft);border:1px solid var(--border);color:var(--text-light);cursor:pointer;border-radius:12px;padding:8px;transition:all .2s;display:none;position:absolute;top:16px;right:16px}.sidebar-dday{text-align:center;border-bottom:1px solid var(--border-soft);background:linear-gradient(135deg,var(--accent-cream)0%,transparent 100%);padding:22px}.sidebar-dday .dday-number{color:var(--primary-dark);letter-spacing:-1.2px;font-feature-settings:"tnum";font-size:2.2rem;font-weight:800;line-height:1.1}.sidebar-dday .dday-label{color:var(--text-muted);margin-top:6px;font-size:.9rem;font-weight:600}.sidebar-party{border-bottom:1px solid var(--border-soft);background:#16a34a0a;flex-direction:column;gap:4px;padding:14px 22px;display:flex}.sidebar-party-row{color:var(--text);justify-content:space-between;align-items:center;font-size:.92rem;font-weight:600;display:flex}.sidebar-party-row .party-emoji{font-size:1.1rem}.sidebar-party-row .party-count{color:var(--primary-dark);font-weight:700}.sidebar-progress{border-bottom:1px solid var(--border-soft);padding:20px 22px}.progress-bar{border-radius:var(--radius-pill);gap:3px;height:10px;display:flex;overflow:hidden}.progress-segment{border-radius:var(--radius-pill);cursor:pointer;height:100%;transition:opacity .2s,transform .2s}.progress-segment:hover{opacity:.85;transform:scaleY(1.4)}.progress-labels{color:var(--text-muted);justify-content:space-between;margin-top:12px;font-size:.78rem;font-weight:700;display:flex}.progress-labels span{cursor:pointer;transition:color .2s}.progress-labels span:hover{color:var(--primary)}.sidebar-nav{flex-direction:column;flex:1;gap:3px;padding:16px 14px;display:flex}.nav-item{cursor:pointer;color:var(--text-on-sidebar-muted);text-align:left;width:100%;font-size:1.12rem;font-weight:600;font-family:var(--font-sans);border-radius:var(--radius-sm);letter-spacing:-.2px;background:0 0;border:none;align-items:center;gap:14px;min-height:52px;padding:14px 16px;transition:all .2s;display:flex}.nav-item:hover{background:var(--bg-soft);color:var(--text)}.nav-item.active{background:var(--bg-sidebar-active);color:var(--primary-dark);font-weight:700}.nav-item-icon{text-align:center;width:32px;font-size:1.5rem}.collapse-toggle{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-light);font-size:.92rem;font-weight:600;font-family:var(--font-sans);cursor:pointer;justify-content:center;align-items:center;gap:8px;min-height:44px;margin:10px 18px 22px;padding:12px 16px;transition:all .2s;display:flex}.collapse-toggle:hover{background:var(--bg-card);color:var(--primary);border-color:var(--primary)}.topbar{height:var(--topbar-h);background:var(--bg-card);color:var(--text);z-index:999;border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);align-items:center;gap:12px;padding:0 16px;display:none;position:fixed;top:0;left:0;right:0}.topbar-hamburger{color:var(--text);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;min-width:48px;min-height:48px;padding:10px;font-size:1.6rem;display:flex}.topbar h2{letter-spacing:-.3px;align-items:center;gap:8px;font-size:1.1rem;font-weight:700;display:flex}.sidebar-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:999;background:#0f172a8c;display:none;position:fixed;inset:0}.section-header{margin-bottom:32px}.section-header h2{font-family:var(--font-display);color:var(--text);letter-spacing:-.7px;align-items:center;gap:12px;margin-bottom:8px;font-size:clamp(1.85rem,3.5vw,2.4rem);font-weight:800;line-height:1.2;display:flex}.section-header p{color:var(--text-light);font-size:1.12rem;font-weight:500;line-height:1.5}.filter-bar{flex-wrap:wrap;gap:10px;margin-bottom:28px;display:flex}.filter-btn{border-radius:var(--radius-pill);border:2px solid var(--border);background:var(--bg-card);color:var(--text);cursor:pointer;font-size:1.05rem;font-weight:600;font-family:var(--font-sans);min-height:48px;padding:11px 22px;transition:all .2s}.filter-btn:hover{border-color:var(--primary);color:var(--primary-dark);transform:translateY(-1px)}.filter-btn.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:var(--shadow-camino)}.card{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border-soft);margin-bottom:16px;padding:24px 26px;transition:transform .2s,box-shadow .2s,border-color .2s}.card:hover{box-shadow:var(--shadow-lg);border-color:var(--border);transform:translateY(-2px)}.day-card{border-left:6px solid var(--border);position:relative}.day-card[data-phase=porto]{border-left-color:var(--porto)}.day-card[data-phase=camino]{border-left-color:var(--camino)}.day-card[data-phase=swiss]{border-left-color:var(--swiss)}.day-card[data-phase=london]{border-left-color:var(--london)}.day-card[data-phase=paris]{border-left-color:var(--paris)}.day-card-header{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px;display:flex}.day-badge{border-radius:var(--radius-pill);color:#fff;letter-spacing:.3px;justify-content:center;align-items:center;min-width:72px;padding:6px 14px;font-size:.92rem;font-weight:800;display:inline-flex}.day-badge.porto{background:var(--porto)}.day-badge.camino{background:var(--camino)}.day-badge.swiss{background:var(--swiss)}.day-badge.london{background:var(--london)}.day-badge.paris{background:var(--paris)}.day-card-title{letter-spacing:-.4px;flex:1;min-width:0;font-size:1.32rem;font-weight:700;line-height:1.35}.day-card-date{color:var(--text);background:var(--bg-soft);border-radius:var(--radius-sm);white-space:nowrap;margin-left:auto;padding:6px 14px;font-size:1rem;font-weight:700}.day-card-body{color:var(--text-light);font-size:1.08rem;line-height:1.7}.day-card-body .detail-row{align-items:flex-start;gap:10px;margin-top:8px;display:flex}.day-card-body .detail-label{color:var(--text);flex-shrink:0;font-size:1.2rem;font-weight:600}.day-card-restaurants{border-top:1px dashed var(--border);flex-wrap:wrap;gap:8px;margin-top:14px;padding-top:14px;display:flex}.restaurant-tag{color:#b45309;border-radius:var(--radius-pill);background:#f59e0b24;padding:6px 14px;font-size:.92rem;font-weight:600}[data-theme=dark] .restaurant-tag{color:var(--secondary-light);background:#f59e0b33}.phase-divider{font-family:var(--font-display);letter-spacing:-.4px;align-items:center;gap:14px;margin:36px 0 20px;font-size:1.45rem;font-weight:800;display:flex}.view-toggle{background:var(--bg-soft);border-radius:var(--radius-pill);border:1px solid var(--border-soft);gap:4px;margin-bottom:24px;padding:4px;display:inline-flex}.view-toggle-btn{border-radius:var(--radius-pill);font-family:var(--font-sans);color:var(--text-light);cursor:pointer;background:0 0;border:none;min-height:44px;padding:10px 22px;font-size:1rem;font-weight:600;transition:all .2s}.view-toggle-btn:hover{color:var(--text)}.view-toggle-btn.active{background:var(--bg-card);color:var(--primary-dark);box-shadow:var(--shadow-sm);font-weight:700}.calendar-view-wrap{flex-direction:column;gap:24px;display:flex}.calendar-legend{background:var(--bg-card);border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-wrap:wrap;gap:14px;padding:14px 18px;display:flex}.calendar-container{background:var(--bg-card);border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}.calendar-month-title{text-align:center;color:var(--primary-dark);letter-spacing:-.4px;margin-bottom:18px;font-size:1.55rem;font-weight:800}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.calendar-header{text-align:center;color:var(--text-muted);letter-spacing:.5px;padding:10px 0;font-size:.95rem;font-weight:700}.calendar-header.sun{color:#dc2626}.calendar-header.sat{color:var(--london)}.calendar-day{border-radius:var(--radius-sm);background:var(--bg-soft);border:1px solid var(--border-soft);flex-direction:column;gap:4px;min-height:110px;padding:10px;transition:transform .15s,box-shadow .15s;display:flex;position:relative}.calendar-day.not-in-month{opacity:.35}.calendar-day.trip-day{background:var(--bg-card);cursor:pointer;box-shadow:var(--shadow-sm);border-left:5px solid}.calendar-day.trip-day:hover{box-shadow:var(--shadow-lg);z-index:1;transform:translateY(-2px)}.calendar-day[data-phase=porto]{background:linear-gradient(135deg,#ea580c0f,var(--bg-card)50%)}.calendar-day[data-phase=camino]{background:linear-gradient(135deg,#16a34a12,var(--bg-card)50%)}.calendar-day[data-phase=swiss]{background:linear-gradient(135deg,#dc262612,var(--bg-card)50%)}.calendar-day[data-phase=paris]{background:linear-gradient(135deg,#db277712,var(--bg-card)50%)}.calendar-day[data-phase=london]{background:linear-gradient(135deg,#2563eb12,var(--bg-card)50%)}.calendar-day.today{outline:3px solid var(--primary);outline-offset:-1px}.calendar-day-top{justify-content:space-between;align-items:center;gap:4px;display:flex}.calendar-day-number{color:var(--text);font-size:1.05rem;font-weight:700;line-height:1}.calendar-day-number.sun{color:#dc2626}.calendar-day-number.sat{color:var(--london)}.calendar-day-badge{color:#fff;letter-spacing:.3px;border-radius:4px;padding:2px 6px;font-size:.72rem;font-weight:800;line-height:1.2}.calendar-day-badge.porto{background:var(--porto)}.calendar-day-badge.camino{background:var(--camino)}.calendar-day-badge.swiss{background:var(--swiss)}.calendar-day-badge.paris{background:var(--paris)}.calendar-day-badge.london{background:var(--london)}.calendar-trip-content{flex-direction:column;gap:2px;margin-top:auto;display:flex}.calendar-trip-emoji{font-size:1.5rem;line-height:1}.calendar-trip-title{color:var(--text);word-break:keep-all;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.78rem;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.calendar-trip-dist{color:var(--text-muted);font-size:.7rem;font-weight:600}.calendar-trip-transit{color:var(--primary-dark);word-break:keep-all;background:#16a34a14;border-radius:4px;margin-top:2px;padding:2px 5px;font-size:.68rem;font-weight:700;line-height:1.3}@media (max-width:768px){.calendar-trip-transit{padding:1px 3px;font-size:.6rem}}.expand-controls{flex-wrap:wrap;gap:10px;margin-bottom:18px;display:flex}.expand-btn{background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius-pill);color:var(--text-light);cursor:pointer;font-size:.95rem;font-weight:600;font-family:var(--font-sans);min-height:40px;padding:8px 18px;transition:all .2s}.expand-btn:hover{border-color:var(--primary);color:var(--primary-dark);background:var(--accent-cream)}.phase-section{margin-bottom:18px}.phase-header{background:var(--bg-card);border:1px solid var(--border-soft);border-left:7px solid var(--border);border-radius:var(--radius);cursor:pointer;width:100%;font-family:var(--font-sans);text-align:left;box-shadow:var(--shadow);color:var(--text);align-items:center;gap:18px;padding:22px 24px;transition:all .25s;display:flex}.phase-header:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.phase-header.expanded{box-shadow:var(--shadow-lg);border-radius:var(--radius)var(--radius)0 0;margin-bottom:0}.phase-header-emoji{flex-shrink:0;font-size:2.6rem;line-height:1}.phase-header-main{flex:1;min-width:0}.phase-header-title-row{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:8px;display:flex}.phase-header-title{color:var(--text);letter-spacing:-.5px;font-size:1.4rem;font-weight:800;line-height:1.2}.phase-header-nights{color:#fff;border-radius:var(--radius-pill);letter-spacing:-.2px;align-items:center;gap:4px;padding:5px 14px;font-size:.95rem;font-weight:700;display:inline-flex}.phase-header-meta{color:var(--text-light);flex-wrap:wrap;gap:16px;margin-bottom:6px;font-size:1.02rem;font-weight:600;display:flex}.phase-header-range{color:var(--text-muted);font-weight:600}.phase-header-extra{color:var(--text-muted);font-size:.98rem;font-weight:500;line-height:1.5}.phase-chevron{color:var(--text-muted);flex-shrink:0;transition:transform .3s}.phase-header.expanded .phase-chevron{color:var(--primary-dark);transform:rotate(180deg)}.phase-days{padding:16px 0 8px;animation:.3s phaseExpand}@keyframes phaseExpand{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.camino-banner{background:linear-gradient(135deg,var(--primary)0%,var(--primary-light)100%);border-radius:var(--radius-lg);color:#fff;box-shadow:var(--shadow-camino);flex-wrap:wrap;justify-content:center;gap:clamp(20px,5vw,56px);margin-bottom:32px;padding:36px 28px;display:flex;position:relative;overflow:hidden}.camino-banner:before{content:"🐚";opacity:.12;font-size:9rem;position:absolute;bottom:-30px;right:-20px;transform:rotate(-15deg)}.camino-stat{text-align:center;z-index:1}.camino-stat .stat-value{font-size:2.6rem;font-weight:800;font-family:var(--font-display);letter-spacing:-1.2px;line-height:1}.camino-stat .stat-label{opacity:.95;margin-top:6px;font-size:1rem;font-weight:600}.stage-card{border-left:6px solid var(--primary)}.stage-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:16px;display:flex}.stage-route{letter-spacing:-.3px;font-size:1.22rem;font-weight:800}.stage-km{color:var(--primary-dark);border-radius:var(--radius-pill);background:#16a34a1f;padding:6px 14px;font-size:1.05rem;font-weight:800}.stage-details{color:var(--text-light);grid-template-columns:100px 1fr;gap:10px 18px;font-size:1.02rem;display:grid}.stage-details dt{color:var(--text);font-weight:700}.difficulty-dots{gap:5px;display:inline-flex}.difficulty-dot{background:var(--border);border-radius:50%;width:12px;height:12px}.difficulty-dot.filled{background:var(--primary)}.stage-tip{background:var(--accent-cream);border-radius:var(--radius-sm);color:#78350f;border-left:4px solid var(--secondary);margin-top:16px;padding:14px 16px;font-size:1.02rem;font-weight:500;line-height:1.6}[data-theme=dark] .stage-tip{color:var(--secondary-light)}.taste-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px;display:grid}.taste-card{border-radius:var(--radius);background:var(--bg-card);box-shadow:var(--shadow);border:1px solid var(--border-soft);transition:transform .25s,box-shadow .25s;overflow:hidden}.taste-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.taste-card-img{object-fit:cover;width:100%;height:210px;display:block}.taste-card-body{padding:20px}.taste-card-body h3{letter-spacing:-.3px;margin-bottom:8px;font-size:1.2rem;font-weight:700;line-height:1.3}.taste-card-body p{color:var(--text-light);font-size:1.02rem;line-height:1.6}.taste-card-meta{border-top:1px dashed var(--border);color:var(--text-muted);justify-content:space-between;margin-top:14px;padding-top:14px;font-size:.92rem;font-weight:600;display:flex}.taste-section-title{letter-spacing:-.4px;align-items:center;gap:10px;margin:32px 0 18px;font-size:1.55rem;font-weight:800;display:flex}.accom-section-title{border-bottom:3px solid var(--border);letter-spacing:-.3px;align-items:center;gap:10px;margin:28px 0 16px;padding-bottom:10px;font-size:1.35rem;font-weight:800;display:flex}.accom-card{align-items:flex-start;gap:18px;display:flex}.accom-emoji{background:var(--bg-soft);border-radius:var(--radius);flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;font-size:2.6rem;display:flex}.accom-info{flex:1;min-width:0}.accom-info h3{letter-spacing:-.3px;margin-bottom:8px;font-size:1.18rem;font-weight:700}.accom-type{color:var(--london);border-radius:var(--radius-pill);background:#2563eb1f;margin-right:10px;padding:4px 12px;font-size:.9rem;font-weight:700;display:inline-block}.accom-price{color:var(--secondary);font-size:1.08rem;font-weight:800}.accom-desc{color:var(--text-light);margin-top:8px;font-size:1.02rem;line-height:1.6}.budget-table-wrap{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border-soft);overflow-x:auto}.budget-table{border-collapse:collapse;width:100%;min-width:640px}.budget-table th{background:linear-gradient(135deg,var(--primary-dark),var(--primary));color:#fff;text-align:left;padding:16px 20px;font-size:1.05rem;font-weight:700}.budget-table td{border-bottom:1px solid var(--border-soft);vertical-align:middle;padding:16px 20px;font-size:1.05rem}.budget-table tr:last-child td{border-bottom:none}.budget-table .total-row{background:var(--bg-soft);font-size:1.15rem;font-weight:800}.budget-table .total-row td{border-top:3px solid var(--primary)}.budget-input{border:2px solid var(--border);border-radius:var(--radius-sm);width:140px;font-size:1.05rem;font-family:var(--font-sans);text-align:right;background:var(--bg-card);color:var(--text);padding:10px 14px}.budget-input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 4px #16a34a26}.diff-positive{color:var(--primary-dark);font-weight:800}.diff-negative{color:#dc2626;font-weight:800}.pct-bar{background:var(--border-soft);border-radius:var(--radius-pill);vertical-align:middle;width:80px;height:10px;margin-right:10px;display:inline-block;overflow:hidden}.pct-bar-fill{border-radius:var(--radius-pill);height:100%;transition:width .3s}.flight-card{color:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);background:linear-gradient(135deg,#1e40af,#3b82f6,#60a5fa);margin-bottom:18px;padding:32px;position:relative;overflow:hidden}.flight-card:before{content:"✈️";opacity:.1;font-size:7rem;position:absolute;top:-10px;right:-10px;transform:rotate(20deg)}.flight-route{z-index:1;flex-wrap:wrap;justify-content:center;align-items:center;gap:28px;margin-bottom:18px;display:flex;position:relative}.flight-city{text-align:center}.flight-city .code{font-size:2.3rem;font-weight:800;font-family:var(--font-display);letter-spacing:-.8px;line-height:1}.flight-city .name{opacity:.92;margin-top:4px;font-size:.95rem;font-weight:600}.flight-arrow{opacity:.85;font-size:2rem}.flight-meta{text-align:center;opacity:.96;z-index:1;font-size:1.05rem;font-weight:500;line-height:1.6;position:relative}.flight-meta strong{font-weight:700}.transport-card{grid-template-columns:1fr auto auto auto;align-items:center;gap:16px;display:grid}.transport-route{letter-spacing:-.2px;font-size:1.12rem;font-weight:700}.transport-method{color:var(--text-light);margin-top:3px;font-size:1rem}.transport-time,.transport-price{text-align:right;font-size:1.05rem;font-weight:700}.transport-price{color:var(--primary-dark)}.transport-tip{color:var(--text-light);border-top:1px dashed var(--border);grid-column:1/-1;margin-top:10px;padding-top:12px;font-size:1rem;line-height:1.6}.airport-compare-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;display:grid}.airport-compare-card{flex-direction:column;gap:10px;display:flex;position:relative}.airport-compare-card.is-recommended{border:2px solid var(--primary);background:linear-gradient(135deg,var(--accent-cream)0%,var(--bg-card)60%)}.airport-compare-badge{background:var(--primary);color:#fff;border-radius:var(--radius-pill);letter-spacing:.3px;padding:4px 12px;font-size:.82rem;font-weight:700;position:absolute;top:-10px;right:14px;box-shadow:0 2px 8px #16a34a59}.airport-compare-title{letter-spacing:-.2px;font-size:1.15rem;font-weight:800}.airport-compare-method{color:var(--text-light);font-size:.96rem;line-height:1.5}.airport-compare-stats{background:var(--bg);border-radius:var(--radius-sm);border:1px solid var(--border-soft);grid-template-columns:1fr 1fr 1fr;gap:10px;padding:12px;display:grid}.airport-compare-stats>div{text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.airport-compare-stat-label{color:var(--text-muted);font-size:.78rem;font-weight:600}.airport-compare-stats strong{color:var(--text);font-size:.96rem;font-weight:700}.airport-compare-note{color:var(--text-light);border-top:1px dashed var(--border);padding-top:8px;font-size:.94rem;line-height:1.5}.checklist-category{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border-soft);margin-bottom:28px;padding:22px 24px}.checklist-cat-controls{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.checklist-cat-control-btn{background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius-pill);color:var(--text);cursor:pointer;font-size:.92rem;font-weight:600;font-family:var(--font-sans);padding:8px 16px;transition:all .2s}.checklist-cat-control-btn:hover{border-color:var(--primary);color:var(--primary-dark);background:var(--accent-cream)}[data-theme=dark] .checklist-cat-control-btn:hover{color:var(--primary-light);background:#16a34a26}.checklist-category.is-collapsed{padding-bottom:14px}.checklist-category-header{border:none;border-bottom:2px solid var(--border-soft);width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:0 0 12px;font-family:inherit;display:flex}.checklist-category.is-collapsed .checklist-category-header{border-bottom:none;margin-bottom:0;padding-bottom:0}.checklist-category-header:hover .checklist-category-title{color:var(--primary-dark)}[data-theme=dark] .checklist-category-header:hover .checklist-category-title{color:var(--primary-light)}.checklist-category-chevron{color:var(--text-muted);flex-shrink:0;transition:transform .25s;transform:rotate(-90deg)}.checklist-category-chevron.rot{transform:rotate(0)}.checklist-category-title{letter-spacing:-.3px;flex:1;min-width:0;font-size:1.28rem;font-weight:800}.checklist-category-progress{flex-shrink:0;align-items:center;gap:10px;display:flex}.checklist-category-progress-num{font-family:var(--font-display);color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.92rem;font-weight:700}.checklist-category-progress-bar{background:var(--border-soft);border-radius:var(--radius-pill);width:90px;height:8px;overflow:hidden}.checklist-category-progress-fill{background:linear-gradient(90deg,var(--primary),var(--primary-light));border-radius:var(--radius-pill);height:100%;transition:width .3s}.checklist-category-progress-pct{color:var(--primary-dark);font-variant-numeric:tabular-nums;text-align:right;min-width:36px;font-size:.92rem;font-weight:800}[data-theme=dark] .checklist-category-progress-pct{color:var(--primary-light)}.checklist-rows{flex-direction:column;gap:6px;display:flex}.checklist-row{border:1px solid var(--border-soft);background:var(--bg-card);z-index:1;border-radius:10px;transition:background .15s,border-color .15s,box-shadow .15s;position:relative}.checklist-row:has(details[open]){z-index:100}.checklist-row:hover{border-color:var(--border);box-shadow:var(--shadow-sm)}.checklist-row.is-checked{opacity:.65;background:var(--bg-soft)}.checklist-row.state-pending{border-left:3px solid var(--secondary)}.checklist-row.state-in-progress{border-left:3px solid #2563eb}.checklist-row.state-attention{background:linear-gradient(90deg,#dc26260a,var(--bg-card)40%);border-left:3px solid #dc2626}.checklist-row.state-completed{border-left:3px solid var(--primary)}[data-theme=dark] .checklist-row.state-attention{background:linear-gradient(90deg,#dc26261f,var(--bg-card)40%)}.checklist-row-main{grid-template-columns:130px 64px 110px 1fr auto;align-items:start;gap:12px;padding:12px 14px;display:grid}.checklist-col-status{align-items:flex-start;padding-top:0;display:flex;position:relative}.state-selector{display:inline-block;position:relative}.state-selector summary{list-style:none}.state-selector summary::-webkit-details-marker{display:none}.state-pill{border-radius:var(--radius-pill);white-space:nowrap;letter-spacing:-.2px;cursor:pointer;-webkit-user-select:none;user-select:none;border:1.5px solid #0000;align-items:center;gap:6px;padding:5px 10px;font-size:.82rem;font-weight:800;transition:all .15s;display:inline-flex}.state-pill:hover{filter:brightness(.97);transform:translateY(-1px)}.state-pill .state-emoji{font-size:.95rem;line-height:1}.state-pill .state-text{letter-spacing:-.2px}.state-pill .state-caret{opacity:.7;margin-left:2px}.state-pill.state-pending{color:#b45309;background:#f59e0b29;border-color:#f59e0b40}.state-pill.state-in-progress{color:#1e40af;background:#2563eb24;border-color:#2563eb40}.state-pill.state-attention{color:#b91c1c;background:#dc262626;border-color:#dc26264d;animation:2.5s ease-in-out infinite state-attention-pulse}@keyframes state-attention-pulse{0%,to{box-shadow:0 0 #dc262600}50%{box-shadow:0 0 0 4px #dc26261f}}.state-pill.state-completed{color:var(--primary-dark);background:#16a34a24;border-color:#16a34a40}[data-theme=dark] .state-pill.state-pending{color:var(--secondary-light);background:#f59e0b38}[data-theme=dark] .state-pill.state-in-progress{color:#93c5fd;background:#3b82f640}[data-theme=dark] .state-pill.state-attention{color:#fca5a5;background:#dc26264d}[data-theme=dark] .state-pill.state-completed{color:var(--primary-light);background:#16a34a40}.memo-indicator{margin-left:2px;font-size:.85rem;line-height:1;animation:1.6s ease-in-out infinite memo-bob}@keyframes memo-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-1px)}}.state-menu{z-index:50;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:2px;min-width:160px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 10px 28px #0f172a2e,0 4px 10px #0f172a1a}[data-theme=dark] .state-menu{box-shadow:0 10px 28px #0009,0 4px 10px #0006}.state-option{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:7px 10px;font-family:inherit;font-size:.92rem;font-weight:700;transition:background .12s;display:flex}.state-option:hover,.state-option.is-current{background:var(--bg-soft)}[data-theme=dark] .state-option:hover,[data-theme=dark] .state-option.is-current{background:#ffffff0f}.state-option .state-emoji{font-size:1rem}.state-option .state-text{flex:1}.state-option.state-pending{color:#b45309}.state-option.state-in-progress{color:#1e40af}.state-option.state-attention{color:#b91c1c}.state-option.state-completed{color:var(--primary-dark)}[data-theme=dark] .state-option.state-pending{color:var(--secondary-light)}[data-theme=dark] .state-option.state-in-progress{color:#93c5fd}[data-theme=dark] .state-option.state-attention{color:#fca5a5}[data-theme=dark] .state-option.state-completed{color:var(--primary-light)}.checklist-col-date{flex-direction:column;gap:3px;padding-top:1px;font-size:.86rem;display:flex}.checklist-day-tag{background:var(--bg-soft);color:var(--text);letter-spacing:-.2px;font-variant-numeric:tabular-nums;border-radius:6px;width:fit-content;padding:2px 7px;font-size:.78rem;font-weight:800;display:inline-block}[data-theme=dark] .checklist-day-tag{background:#ffffff14}.checklist-date-text{color:var(--text-light);font-variant-numeric:tabular-nums;letter-spacing:-.2px;font-size:.84rem;font-weight:600}.checklist-col-target{flex-direction:column;gap:2px;padding-top:1px;display:flex}.checklist-target-text{color:var(--text);letter-spacing:-.2px;font-size:.88rem;font-weight:700;line-height:1.3}.checklist-count-text{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.8rem;font-weight:600}.checklist-col-main{flex-direction:column;gap:6px;min-width:0;display:flex}.checklist-label-btn{color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;flex-wrap:wrap;align-items:center;gap:8px;margin:0;padding:0;font-family:inherit;font-size:1rem;font-weight:600;line-height:1.45;display:inline-flex}.checklist-label-btn:hover .checklist-label-text{color:var(--primary-dark)}[data-theme=dark] .checklist-label-btn:hover .checklist-label-text{color:var(--primary-light)}.checklist-label-btn.checked .checklist-label-text{color:var(--text-muted);text-decoration:line-through}.checklist-label-text{letter-spacing:-.2px}.checklist-meta{flex-wrap:wrap;align-items:center;gap:6px 8px;display:flex}.checklist-meta-chip{color:var(--text-light);background:var(--bg-soft);letter-spacing:-.2px;white-space:nowrap;border-radius:6px;align-items:center;padding:2px 8px;font-size:.78rem;font-weight:600;display:inline-flex}[data-theme=dark] .checklist-meta-chip{background:#ffffff0f}.checklist-meta-chip.route{color:#1e40af;background:#1e40af14}.checklist-meta-chip.code{color:#7c3aed;font-variant-numeric:tabular-nums;background:#7c3aed14}.checklist-meta-chip.time{color:#15803d;font-variant-numeric:tabular-nums;background:#16a34a14}.checklist-meta-chip.price{color:#b45309;font-variant-numeric:tabular-nums;background:#f59e0b1a}[data-theme=dark] .checklist-meta-chip.route{color:#93c5fd;background:#3b82f62e}[data-theme=dark] .checklist-meta-chip.code{color:#c4b5fd;background:#a78bfa2e}[data-theme=dark] .checklist-meta-chip.time{color:#86efac;background:#16a34a33}[data-theme=dark] .checklist-meta-chip.price{color:#fcd34d;background:#f59e0b33}.checklist-meta-note{color:var(--text-muted);width:100%;margin-top:2px;padding:0;font-size:.84rem;line-height:1.5}.checklist-row-expanded{padding:0 14px 14px 54px}.checklist-row-expanded>*+*{margin-top:10px}.checklist-booking{border:1px solid #16a34a40;border-left:4px solid var(--primary);border-radius:var(--radius-sm);background:linear-gradient(#16a34a0f,#16a34a05);padding:14px 16px}[data-theme=dark] .checklist-booking{background:linear-gradient(#16a34a24,#16a34a0f);border-color:#16a34a66}.checklist-booking-title{color:var(--primary-dark);letter-spacing:-.3px;margin-bottom:10px;font-size:.95rem;font-weight:800}[data-theme=dark] .checklist-booking-title{color:var(--primary-light)}.checklist-booking-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;display:grid}.booking-cell{flex-direction:column;gap:2px;min-width:0;display:flex}.booking-cell.wide{grid-column:span 2}.booking-cell.wide-full{grid-column:1/-1}.booking-label{color:var(--text-muted);letter-spacing:.3px;text-transform:uppercase;font-size:.72rem;font-weight:700}.booking-value{color:var(--text);word-break:break-word;font-size:.96rem;font-weight:700;line-height:1.4}.booking-value.mono{letter-spacing:-.2px;-webkit-user-select:all;user-select:all;cursor:text;font-family:ui-monospace,SF Mono,Menlo,Monaco,Consolas,monospace;font-size:.95rem}.booking-value.linkish{color:#1e40af;border-bottom:1px dashed;font-weight:700;text-decoration:none}.booking-value.linkish:hover{color:#1d4ed8}[data-theme=dark] .booking-value.linkish{color:#93c5fd}.booking-value.note{color:var(--text-light);background:#f59e0b1a;border-radius:8px;padding:8px 10px;font-size:.9rem;font-weight:500;line-height:1.5}[data-theme=dark] .booking-value.note{background:#f59e0b29}.checklist-booking-badge{margin-left:4px;font-size:.85rem;display:inline-flex}@media (max-width:640px){.checklist-booking-grid{grid-template-columns:1fr}.booking-cell.wide,.booking-cell.wide-full{grid-column:1}}.day-card-links{flex-wrap:wrap;gap:10px;padding:12px 20px 18px;display:flex}.checklist-link-btn{color:#fff;border-radius:var(--radius-pill);letter-spacing:-.2px;background:linear-gradient(135deg,#2563eb,#3b82f6);align-items:center;gap:8px;padding:10px 18px;font-size:.95rem;font-weight:700;text-decoration:none;transition:transform .15s,box-shadow .15s;display:inline-flex;box-shadow:0 2px 8px #2563eb40}.checklist-link-btn:hover{color:#fff;transform:translateY(-1px);box-shadow:0 4px 14px #2563eb59}.checklist-link-btn svg{stroke-width:2.5px}[data-theme=dark] .checklist-link-btn{background:linear-gradient(135deg,#3b82f6,#60a5fa);box-shadow:0 2px 10px #3b82f666}.checklist-instructions{border-radius:var(--radius-sm);background:linear-gradient(#2563eb0d,#2563eb05);border:1px solid #2563eb2e;border-left:4px solid #2563eb;padding:14px 18px}[data-theme=dark] .checklist-instructions{background:linear-gradient(#3b82f61f,#3b82f60f);border-color:#3b82f659}.checklist-instructions-title{color:#1e40af;letter-spacing:-.3px;margin-bottom:8px;font-size:.95rem;font-weight:800}[data-theme=dark] .checklist-instructions-title{color:#93c5fd}.checklist-instructions-list{flex-direction:column;gap:7px;margin:0;padding:0;list-style:none;display:flex}.checklist-instructions-list li{color:var(--text);padding-left:0;font-size:.94rem;line-height:1.55;position:relative}@media (max-width:900px){.checklist-row-main{grid-template-columns:1fr;gap:10px;padding:12px}.checklist-col-status{justify-self:flex-start}.checklist-col-date,.checklist-col-target{flex-direction:row;align-items:center;gap:8px}.checklist-row-expanded{padding-left:14px}.state-menu{min-width:180px}}.checklist-memo{border:2px solid var(--border);border-radius:var(--radius-sm);width:100%;font-size:1rem;font-family:var(--font-sans);resize:vertical;background:var(--bg);min-height:44px;color:var(--text);margin-top:10px;padding:12px 14px}.checklist-memo:focus{border-color:var(--primary);outline:none}.checklist-add-btn{border:2px dashed var(--border);border-radius:var(--radius-pill);color:var(--text-muted);cursor:pointer;font-size:1rem;font-weight:600;font-family:var(--font-sans);background:0 0;align-items:center;gap:8px;min-height:44px;margin-top:12px;padding:10px 18px;transition:all .2s;display:inline-flex}.checklist-add-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--accent-cream)}.checklist-delete-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;min-width:40px;min-height:40px;padding:6px 10px;font-size:1.15rem;transition:color .2s}.checklist-delete-btn:hover{color:#dc2626}.checklist-progress-bar{background:var(--border-soft);border-radius:var(--radius-pill);border:1px solid var(--border);width:100%;height:12px;margin-bottom:20px;overflow:hidden}.checklist-progress-fill{background:linear-gradient(90deg,var(--primary),var(--primary-light));border-radius:var(--radius-pill);height:100%;transition:width .4s;box-shadow:0 0 12px #16a34a66}.checklist-toolbar{background:var(--accent-cream);border:1.5px solid var(--secondary-light);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:24px;padding:14px 18px;display:flex}.checklist-reset-btn{background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius-pill);color:var(--text);cursor:pointer;font-size:.96rem;font-weight:600;font-family:var(--font-sans);min-height:44px;padding:10px 18px;transition:all .2s}.checklist-reset-btn:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.checklist-toolbar-hint{color:var(--text-light);font-size:.92rem;font-weight:500}.checklist-attachment-badge{background:var(--primary);color:#fff;border-radius:var(--radius-pill);vertical-align:middle;align-items:center;gap:3px;margin-left:8px;padding:2px 9px;font-size:.78rem;font-weight:700;display:inline-flex}.checklist-attachments{flex-direction:column;gap:8px;margin-top:10px;display:flex}.checklist-attachment-row{background:var(--bg);border:1.5px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:8px;padding:8px 10px;transition:border-color .2s;display:flex}.checklist-attachment-row:hover{border-color:var(--primary)}.checklist-attachment-link{color:var(--text);flex:1;align-items:center;gap:10px;min-width:0;min-height:36px;font-size:.95rem;font-weight:500;text-decoration:none;display:flex}.checklist-attachment-link:hover{color:var(--primary)}.checklist-attachment-icon{flex-shrink:0;font-size:1.3rem}.checklist-attachment-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.checklist-attachment-size{color:var(--text-light);flex-shrink:0;font-size:.82rem;font-weight:500}.checklist-attachment-delete{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;min-width:36px;min-height:36px;padding:6px 10px;font-size:1rem}.checklist-attachment-delete:hover{color:#dc2626;background:#dc262614}.checklist-attachment-upload{border:2px dashed var(--secondary-light);border-radius:var(--radius-pill);background:var(--accent-cream);color:var(--text);cursor:pointer;align-items:center;gap:8px;min-height:40px;margin-top:10px;padding:9px 16px;font-size:.94rem;font-weight:600;transition:all .2s;display:inline-flex}.checklist-attachment-upload:hover{border-color:var(--primary);color:var(--primary);border-style:solid}.checklist-attachment-upload input[type=file]{display:none}.checklist-category:first-of-type{border:2px solid var(--secondary);background:linear-gradient(135deg,var(--accent-cream)0%,var(--bg-card)60%)}.checklist-category:first-of-type .checklist-category-title{color:#b45309;border-bottom-color:var(--secondary)}.map-container{border-radius:var(--radius-lg);width:100%;height:calc(100vh - 140px);min-height:480px;box-shadow:var(--shadow-lg);border:1px solid var(--border);overflow:hidden}.map-info-window{max-width:300px;font-family:var(--font-sans);padding:6px}.map-info-window h3{color:#111;margin-bottom:6px;font-size:1.12rem;font-weight:700}.map-info-window p{color:#333;margin-bottom:5px;font-size:.95rem;line-height:1.55}.map-info-window .info-restaurants{flex-wrap:wrap;gap:5px;margin-top:10px;display:flex}.day-marker{border-radius:var(--radius-pill);color:#fff;cursor:pointer;min-width:42px;height:42px;font-size:.98rem;font-weight:800;font-family:var(--font-sans);white-space:nowrap;border:3px solid #fff;justify-content:center;align-items:center;padding:0 10px;line-height:1;transition:transform .2s;display:inline-flex;box-shadow:0 4px 12px #0000004d}.day-marker:hover{z-index:1000;transform:scale(1.15)}.day-marker.porto{background:var(--porto)}.day-marker.camino{background:var(--camino)}.day-marker.swiss{background:var(--swiss)}.day-marker.london{background:var(--london)}.day-marker.paris{background:var(--paris)}.meeting-marker{border:4px solid var(--secondary);cursor:pointer;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:46px;height:46px;font-size:1.6rem;line-height:1;transition:transform .2s,box-shadow .2s;display:inline-flex;box-shadow:0 4px 14px #f59e0b80,0 2px 6px #00000026}.meeting-marker:hover{transform:scale(1.15)rotate(-5deg);box-shadow:0 8px 22px #f59e0b99,0 4px 10px #0003}.airport-marker{border-radius:var(--radius-pill);color:#1f2937;cursor:pointer;font-size:.78rem;font-weight:700;font-family:var(--font-sans);white-space:nowrap;background:#fffffff2;border:2px solid #475569;align-items:center;gap:3px;padding:4px 10px;line-height:1;transition:transform .15s,box-shadow .15s;display:inline-flex;box-shadow:0 2px 8px #0003}.airport-marker:hover{border-color:var(--primary);transform:scale(1.1);box-shadow:0 4px 12px #0000004d}.airport-marker.layover{color:#475569;opacity:.92;background:#f1f5f9eb;border-color:#94a3b8;padding:3px 8px;font-size:.72rem}.airport-emoji{font-size:.85rem}.airport-code{letter-spacing:.3px}.day-marker .marker-emoji{margin-right:4px;font-size:1.15rem}.marker-emoji{cursor:pointer;filter:drop-shadow(0 3px 6px #00000059);font-size:2rem}.camino-route-selector{background:var(--bg-card);border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:18px;padding:20px 22px}.camino-route-label{color:var(--text);align-items:center;gap:6px;margin-bottom:14px;font-size:1.05rem;font-weight:500;display:flex}.camino-route-label strong{letter-spacing:-.3px;font-weight:800}.camino-route-tabs{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:16px;display:grid}.camino-route-tab{background:var(--bg-card);border:2.5px solid var(--border);border-radius:var(--radius);cursor:pointer;font-family:var(--font-sans);text-align:left;flex-direction:column;align-items:flex-start;gap:4px;min-height:76px;padding:14px 16px;transition:all .2s;display:flex}.camino-route-tab:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.camino-route-tab.active{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.camino-route-tab-emoji{font-size:1.4rem;line-height:1}.camino-route-tab-label{letter-spacing:-.3px;font-size:1.1rem;font-weight:800}.camino-route-tab-km{font-size:.88rem;font-weight:700}.camino-route-info{background:var(--bg-soft);border-radius:0 var(--radius-sm)var(--radius-sm)0;border-left:5px solid;padding:14px 18px}.camino-route-info-desc{color:var(--text);letter-spacing:-.2px;margin-bottom:8px;font-size:1.02rem;font-weight:600}.camino-route-info-highlights{color:var(--text-light);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:4px 16px;margin:0;padding-left:18px;font-size:.94rem;list-style:"✓  ";display:grid}.camino-route-info-highlights li{padding-left:4px;line-height:1.5}.swiss-route-tradeoffs{border-top:1px dashed var(--border);grid-template-columns:1fr 1fr;gap:18px;margin-top:14px;padding-top:14px;display:grid}.swiss-tradeoff-col{color:var(--text-light);font-size:.94rem}.swiss-tradeoff-col strong{margin-bottom:6px;font-size:1rem;font-weight:700;display:block}.swiss-tradeoff-col ul{margin:0;padding-left:18px;list-style:"· "}.swiss-tradeoff-col li{margin-bottom:2px;padding-left:4px;line-height:1.55}@media (max-width:768px){.swiss-route-tradeoffs{grid-template-columns:1fr;gap:12px}}.map-legend{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border-soft);box-shadow:var(--shadow-sm);flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:18px;padding:16px 22px;display:flex}.legend-item{color:var(--text);align-items:center;gap:8px;font-size:1.02rem;font-weight:600;display:flex}.legend-dot{border-radius:50%;flex-shrink:0;width:14px;height:14px}.trip-stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin-bottom:28px;display:grid}.stat-card{background:var(--bg-card);border-radius:var(--radius);text-align:center;border:1px solid var(--border-soft);box-shadow:var(--shadow-sm);padding:20px 18px;transition:transform .2s,box-shadow .2s}.stat-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.stat-card-emoji{margin-bottom:6px;font-size:1.8rem}.stat-card-value{color:var(--primary-dark);letter-spacing:-.5px;font-size:1.6rem;font-weight:800;line-height:1.1}.stat-card-label{color:var(--text-muted);margin-top:4px;font-size:.92rem;font-weight:600}@media (max-width:900px){.taste-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}}@media (max-width:768px){html{font-size:18px}.topbar{display:flex}.sidebar{width:min(300px,88vw);transform:translate(-100%);box-shadow:0 20px 40px #0000002e}.sidebar.open{transform:translate(0)}.sidebar-close{justify-content:center;align-items:center;display:flex}.sidebar-overlay.visible{display:block}.main-content{padding:18px;padding-top:calc(var(--topbar-h) + 14px);margin-left:0!important}.sidebar.collapsed{width:min(300px,88vw)}.collapse-toggle{display:none}.nav-item{min-height:56px;padding:16px 18px;font-size:1.18rem}.filter-btn{min-height:48px;padding:12px 20px;font-size:1.05rem}.section-header h2{font-size:1.75rem}.section-header p{font-size:1.05rem}.card{padding:20px}.day-card-header{gap:10px}.day-card-title{flex:100%;order:3;font-size:1.18rem}.day-card-date{margin-left:0;font-size:.95rem}.day-card-body{font-size:1.05rem}.taste-grid{grid-template-columns:1fr;gap:16px}.transport-card{grid-template-columns:1fr auto;gap:8px 14px}.transport-method{grid-column:1}.transport-time{grid-area:1/2}.transport-price{text-align:right;grid-area:2/2}.camino-banner{gap:22px;padding:26px 20px}.camino-stat .stat-value{font-size:2rem}.flight-card{padding:26px 22px}.flight-route{gap:18px}.flight-city .code{font-size:1.8rem}.flight-arrow{font-size:1.6rem}.stage-details{grid-template-columns:80px 1fr;font-size:.96rem}.budget-table th,.budget-table td{padding:12px 14px;font-size:.96rem}.budget-table .total-row{font-size:1.05rem}.budget-input{width:110px;font-size:.96rem}.map-container{height:calc(100vh - var(--topbar-h) - 130px)}.accom-emoji{width:56px;height:56px;font-size:2.3rem}.checklist-row-main{padding:14px 12px}.checklist-row-check{width:24px;height:24px}.stat-card-value{font-size:1.4rem}.phase-header{gap:14px;padding:18px 16px}.phase-header-emoji{font-size:2.2rem}.phase-header-title{font-size:1.18rem}.phase-header-title-row{gap:8px;margin-bottom:6px}.phase-header-nights{padding:4px 10px;font-size:.88rem}.phase-header-meta{gap:12px;font-size:.95rem}.phase-header-extra{font-size:.92rem}.expand-controls{gap:8px}.expand-btn{padding:8px 14px;font-size:.9rem}.calendar-container{padding:14px}.calendar-month-title{margin-bottom:12px;font-size:1.3rem}.calendar-grid{gap:3px}.calendar-header{padding:6px 0;font-size:.82rem}.calendar-day{gap:2px;min-height:78px;padding:6px 5px}.calendar-day-number{font-size:.95rem}.calendar-day-badge{padding:1px 4px;font-size:.62rem}.calendar-trip-emoji{font-size:1.1rem}.calendar-trip-title{-webkit-line-clamp:2;font-size:.66rem}.calendar-trip-dist{font-size:.62rem}.view-toggle-btn{padding:10px 16px;font-size:.95rem}.camino-route-selector{padding:16px}.camino-route-tabs{grid-template-columns:1fr;gap:8px}.camino-route-tab{flex-flow:wrap;align-items:center;gap:10px;min-height:56px;padding:12px 14px}.camino-route-tab-emoji{font-size:1.5rem}.camino-route-tab-label{flex:1;font-size:1.05rem}.camino-route-tab-km{font-size:.85rem}.camino-route-info-highlights{grid-template-columns:1fr;font-size:.92rem}}@media (max-width:480px){.filter-bar{gap:8px}.filter-btn{padding:10px 16px;font-size:1rem}.camino-stat .stat-value{font-size:1.7rem}.flight-route{gap:10px}.flight-city .code{font-size:1.5rem}}.day-timeline{border-radius:var(--radius-sm);background:linear-gradient(#16a34a0a,#16a34a05);border:1px solid #16a34a2e;margin:4px 0 18px;padding:16px 18px}[data-theme=dark] .day-timeline{background:linear-gradient(#16a34a1f,#16a34a0f);border-color:#16a34a59}.day-timeline-head{border-bottom:1px dashed #16a34a40;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;padding-bottom:10px;display:flex}.day-timeline-label{color:var(--primary-dark);letter-spacing:-.3px;font-size:.95rem;font-weight:800}[data-theme=dark] .day-timeline-label{color:var(--primary-light)}.day-timeline-count{color:#fff;background:var(--primary);border-radius:var(--radius-pill);padding:4px 12px;font-size:.82rem;font-weight:700}.day-timeline-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.day-timeline-item{background:var(--bg-card);border:1px solid var(--border-soft);border-radius:10px;grid-template-columns:108px 32px 1fr;align-items:start;gap:10px;padding:8px 10px;transition:transform .15s,box-shadow .15s;display:grid;position:relative}.day-timeline-item:hover{box-shadow:var(--shadow-sm);transform:translate(2px)}.day-timeline-item.is-confirmed{border-left:4px solid var(--primary);background:linear-gradient(90deg,#16a34a0f,var(--bg-card)30%)}[data-theme=dark] .day-timeline-item.is-confirmed{background:linear-gradient(90deg,#16a34a2e,var(--bg-card)30%)}.day-timeline-item.is-pending{border-left:4px solid var(--border);opacity:.92}.day-timeline-time{font-family:var(--font-display);color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.4px;text-align:right;white-space:nowrap;padding-top:2px;font-size:1rem;font-weight:800}.day-timeline-item.is-confirmed .day-timeline-time{color:var(--primary-dark)}[data-theme=dark] .day-timeline-item.is-confirmed .day-timeline-time{color:var(--primary-light)}.day-timeline-emoji{text-align:center;font-size:1.3rem;line-height:1.3}.day-timeline-body{min-width:0}.day-timeline-line{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.day-timeline-text{color:var(--text);font-size:1rem;font-weight:600;line-height:1.45}.day-timeline-badge{border-radius:var(--radius-pill);letter-spacing:.3px;flex-shrink:0;padding:2px 8px;font-size:.72rem;font-weight:800}.day-timeline-badge.confirmed{background:var(--primary);color:#fff}.day-timeline-detail{color:var(--text-muted);margin-top:3px;font-size:.88rem;line-height:1.5}@media (max-width:640px){.day-timeline{padding:12px 14px}.day-timeline-item{grid-template-columns:92px 26px 1fr;gap:8px;padding:8px}.day-timeline-time{letter-spacing:-.5px;font-size:.88rem}.day-timeline-text{font-size:.95rem}}.budget-summary{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:18px;display:grid}.budget-summary-card{border-radius:var(--radius);background:var(--bg-card);border:1px solid var(--border-soft);box-shadow:var(--shadow);padding:22px 24px;position:relative;overflow:hidden}.budget-summary-card:before{content:"";height:4px;position:absolute;top:0;left:0;right:0}.budget-summary-card.is-confirmed:before{background:var(--primary)}.budget-summary-card.is-pending:before{background:var(--secondary)}.budget-summary-card.is-total:before{background:linear-gradient(90deg,var(--primary),var(--secondary))}.budget-summary-card.is-actual:before{background:#2563eb}.budget-summary-card.is-diff.is-under:before{background:var(--primary)}.budget-summary-card.is-diff.is-over:before{background:#dc2626}.budget-summary-card.is-actual .budget-summary-value{color:#1e40af}[data-theme=dark] .budget-summary-card.is-actual .budget-summary-value{color:#93c5fd}.budget-summary-card.is-diff .budget-summary-value.positive{color:var(--primary-dark)}.budget-summary-card.is-diff .budget-summary-value.negative{color:#dc2626}[data-theme=dark] .budget-summary-card.is-diff .budget-summary-value.positive{color:var(--primary-light)}[data-theme=dark] .budget-summary-card.is-diff .budget-summary-value.negative{color:#fca5a5}.budget-summary-label{color:var(--text-muted);letter-spacing:-.2px;margin-bottom:8px;font-size:.92rem;font-weight:700}.budget-summary-value{font-family:var(--font-display);color:var(--text);letter-spacing:-1px;font-variant-numeric:tabular-nums;font-size:1.65rem;font-weight:800;line-height:1.15}.budget-summary-card.is-confirmed .budget-summary-value{color:var(--primary-dark)}[data-theme=dark] .budget-summary-card.is-confirmed .budget-summary-value{color:var(--primary-light)}.budget-summary-sub{color:var(--text-muted);margin-top:6px;font-size:.88rem}.budget-progress{margin-bottom:24px}.budget-progress-bar{border-radius:var(--radius-pill);height:14px;display:flex;overflow:hidden;box-shadow:inset 0 1px 2px #0000000d}.budget-progress-confirmed{background:linear-gradient(90deg,var(--primary),var(--primary-light));transition:width .4s}.budget-progress-pending{background:linear-gradient(90deg,var(--secondary-light),var(--secondary));transition:width .4s}.budget-progress-labels{color:var(--text-muted);gap:18px;margin-top:8px;font-size:.92rem;font-weight:600;display:flex}.budget-progress-labels .dot{vertical-align:middle;border-radius:50%;width:10px;height:10px;margin-right:6px;display:inline-block}.budget-progress-labels .dot.confirmed{background:var(--primary)}.budget-progress-labels .dot.pending{background:var(--secondary)}.budget-progress-labels .dot.used{background:#2563eb}.budget-controls{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.budget-control-btn{background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius-pill);color:var(--text);cursor:pointer;font-size:.92rem;font-weight:600;font-family:var(--font-sans);padding:8px 16px;transition:all .2s}.budget-control-btn:hover{border-color:var(--primary);color:var(--primary-dark);background:var(--accent-cream)}[data-theme=dark] .budget-control-btn:hover{color:var(--primary-light);background:#16a34a26}.budget-list{flex-direction:column;gap:14px;display:flex}.budget-item-card{background:var(--bg-card);border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:box-shadow .2s;overflow:hidden}.budget-item-card:hover{box-shadow:var(--shadow)}.budget-item-head{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;align-items:flex-start;gap:16px;padding:0;font-family:inherit;display:flex}.budget-item-head-left{border-left:6px solid;flex:1;min-width:0;padding:18px 16px 18px 20px}.budget-item-cat{color:var(--text);letter-spacing:-.4px;margin-bottom:4px;font-size:1.18rem;font-weight:800}.budget-item-detail{color:var(--text-muted);margin-bottom:10px;font-size:.92rem;line-height:1.55}.budget-item-pill-row{flex-wrap:wrap;gap:6px;display:flex}.status-pill{border-radius:var(--radius-pill);letter-spacing:-.2px;white-space:nowrap;align-items:center;padding:4px 10px;font-size:.78rem;font-weight:700;display:inline-flex}.status-pill.confirmed{color:var(--primary-dark);background:#16a34a24}.status-pill.pending{color:#b45309;background:#f59e0b29}[data-theme=dark] .status-pill.confirmed{color:var(--primary-light);background:#16a34a40}[data-theme=dark] .status-pill.pending{color:var(--secondary-light);background:#f59e0b38}.budget-item-head-right{flex-shrink:0;align-items:center;gap:14px;padding:18px 20px 18px 0;display:flex}.budget-item-totals{grid-template-columns:repeat(3,minmax(120px,auto));align-items:center;gap:12px;display:grid}.budget-item-total-cell{text-align:right;font-variant-numeric:tabular-nums;flex-direction:column;gap:2px;display:flex}.budget-item-total-label{color:var(--text-muted);letter-spacing:.2px;text-transform:uppercase;font-size:.72rem;font-weight:700}.budget-item-total-value{font-family:var(--font-display);color:var(--text);letter-spacing:-.4px;font-variant-numeric:tabular-nums;font-size:1.05rem;font-weight:800}.budget-item-total-value.actual{color:#1e40af}[data-theme=dark] .budget-item-total-value.actual{color:#93c5fd}.diff-cell{font-family:var(--font-display);letter-spacing:-.3px;font-variant-numeric:tabular-nums;flex-direction:column;align-items:flex-end;font-size:1rem;font-weight:800;display:inline-flex}.diff-cell.empty{color:var(--text-muted);font-weight:600}.diff-amount{white-space:nowrap}.diff-ratio{color:var(--text-muted);margin-top:1px;font-size:.72rem;font-weight:600}.budget-item-chevron{color:var(--text-muted);flex-shrink:0;transition:transform .25s}.budget-item-chevron.rot{transform:rotate(180deg)}.budget-breakdown{border-top:1px solid var(--border-soft);background:var(--bg-soft);flex-direction:column;gap:8px;padding:12px 20px 16px;display:flex}[data-theme=dark] .budget-breakdown{background:#0f172a99}.budget-settle-note{color:var(--text-soft,#475569);background:var(--accent-soft,#2563eb14);border:1px solid var(--border-soft);border-radius:10px;margin-bottom:4px;padding:10px 13px;font-size:13px;line-height:1.5}[data-theme=dark] .budget-settle-note{color:#cbd5e1;background:#2563eb1f}.budget-settle-list{flex-direction:column;display:flex}.budget-settle-row{border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:baseline;gap:12px;padding:9px 4px;display:flex}.budget-settle-row:last-child{border-bottom:none}.budget-settle-main{min-width:0}.budget-settle-label{color:var(--text,#1e293b);font-size:14px;font-weight:600}.budget-settle-meta{color:var(--text-soft,#64748b);margin-top:1px;font-size:12px}.budget-settle-amt{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text,#1e293b);font-size:14px;font-weight:700}.budget-settle-row.is-sum{border-top:2px solid var(--border);border-bottom:none;margin-top:4px;padding-top:12px}.budget-settle-row.is-sum .budget-settle-label,.budget-settle-row.is-sum .budget-settle-amt{font-size:15px;font-weight:800}[data-theme=dark] .budget-settle-label,[data-theme=dark] .budget-settle-amt{color:#e2e8f0}[data-theme=dark] .budget-settle-meta{color:#94a3b8}.budget-breakdown-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;grid-template-columns:80px 1fr 130px 150px 130px;align-items:center;gap:14px;padding:4px 12px 6px;font-size:.72rem;font-weight:800;display:grid}.budget-breakdown-header>span:nth-child(3),.budget-breakdown-header>span:nth-child(4),.budget-breakdown-header>span:nth-child(5){text-align:right}.budget-breakdown-row{background:var(--bg-card);border:1px solid var(--border-soft);border-radius:10px;grid-template-columns:80px 1fr 130px 150px 130px;align-items:center;gap:14px;padding:10px 12px;display:grid}.budget-breakdown-row.is-confirmed{border-left:3px solid var(--primary)}.budget-breakdown-row.is-pending{border-left:3px solid var(--secondary)}.budget-breakdown-main{min-width:0}.budget-breakdown-label{color:var(--text);font-size:.98rem;font-weight:600;line-height:1.45}.budget-breakdown-note{color:var(--text-muted);margin-top:3px;font-size:.82rem;line-height:1.5}.budget-breakdown-planned{font-family:var(--font-display);color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.3px;white-space:nowrap;text-align:right;font-size:1rem;font-weight:700}.budget-breakdown-actual{justify-content:flex-end;display:flex}.budget-line-input{text-align:right;font-variant-numeric:tabular-nums;color:#1e40af;width:100%;max-width:140px;padding:8px 12px;font-size:.95rem;font-weight:700}.budget-line-input::placeholder{color:var(--text-muted);opacity:.7;font-weight:500}[data-theme=dark] .budget-line-input{color:#93c5fd}.budget-line-input.is-auto{color:var(--text-muted);background:linear-gradient(#16a34a0a,#16a34a03);border-style:dashed;border-color:#16a34a40;font-style:italic}.budget-line-input.is-auto:focus{color:#1e40af;background:var(--bg-card);border-style:solid;font-style:normal}[data-theme=dark] .budget-line-input.is-auto{background:linear-gradient(#16a34a1a,#16a34a0a);border-color:#16a34a59}[data-theme=dark] .budget-line-input.is-auto:focus{color:#93c5fd;background:var(--bg-card)}.budget-breakdown-actual{position:relative}.auto-tag{background:var(--primary);color:#fff;border-radius:var(--radius-pill);letter-spacing:-.2px;pointer-events:none;padding:1px 7px;font-size:.65rem;font-weight:800;position:absolute;top:-8px;right:-2px;box-shadow:0 1px 3px #16a34a4d}.diff-cell.zero{color:var(--text-muted);font-weight:600}.budget-breakdown-diff{text-align:right;justify-content:flex-end;display:flex}.budget-grand-total{border-radius:var(--radius);background:linear-gradient(135deg,var(--primary-dark),var(--primary));color:#fff;box-shadow:var(--shadow-camino);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:6px;padding:22px 24px;display:flex}.budget-grand-label{letter-spacing:-.3px;font-size:1.18rem;font-weight:800}.budget-grand-amounts{flex-wrap:wrap;gap:24px;display:flex}.budget-grand-amounts>div{flex-direction:column;gap:2px;display:flex}.budget-grand-mini{opacity:.85;font-size:.78rem;font-weight:600}.budget-grand-value{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.3px;font-size:1.15rem;font-weight:800}.budget-grand-value.diff-positive{color:#bbf7d0}.budget-grand-value.diff-negative{color:#fecaca}@media (max-width:900px){.budget-item-head{flex-direction:column;gap:0}.budget-item-head-left{border-left-width:6px;padding-bottom:12px}.budget-item-head-right{flex-wrap:wrap;justify-content:space-between;align-items:stretch;width:100%;padding:4px 20px 16px}.budget-item-totals{border-top:1px dashed var(--border-soft);grid-template-columns:repeat(3,1fr);gap:8px;width:100%;padding-top:8px}.budget-item-total-cell{text-align:left;align-items:flex-start}.diff-cell{align-items:flex-start}.budget-breakdown{padding:10px 12px 14px}.budget-breakdown-header{display:none}.budget-breakdown-row{grid-template-columns:1fr 1fr;gap:8px 10px;padding:12px}.budget-breakdown-row .status-pill{grid-column:1/-1;justify-self:start}.budget-breakdown-main{grid-column:1/-1}.budget-breakdown-planned{text-align:left;flex-direction:column;gap:2px;display:flex}.budget-breakdown-planned:before{content:"예산";color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;font-size:.7rem;font-weight:700}.budget-breakdown-actual{flex-direction:column;justify-content:flex-start;align-items:stretch;gap:2px}.budget-breakdown-actual:before{content:"실제 사용";color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;font-size:.7rem;font-weight:700}.budget-line-input{max-width:100%}.budget-breakdown-diff{border-top:1px dashed var(--border-soft);grid-column:1/-1;justify-content:space-between;align-items:center;padding-top:4px}.budget-breakdown-diff:before{content:"차이";color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;font-size:.7rem;font-weight:700}.diff-cell{text-align:right;align-items:flex-end}}.budget-secret{justify-content:center;align-items:center;min-height:60vh;padding:40px 20px;display:flex}.budget-secret-card{text-align:center;background:linear-gradient(160deg,var(--accent-cream)0%,var(--bg-card)70%);border:1.5px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:460px;padding:48px 34px;box-shadow:0 12px 40px #0000000f}.budget-secret-emoji{margin-bottom:18px;font-size:4rem;line-height:1}.budget-secret-title{color:var(--primary-dark);letter-spacing:-.8px;margin:0 0 14px;font-size:1.9rem;font-weight:800}.budget-secret-desc{color:var(--text-light);margin:0 0 28px;font-size:1.02rem;font-weight:500;line-height:1.7}.budget-secret-unlock{border:1.5px solid var(--border);color:var(--text-muted);border-radius:var(--radius-pill);cursor:pointer;background:0 0;padding:9px 20px;font-size:.9rem;font-weight:600;transition:all .2s}.budget-secret-unlock:hover{border-color:var(--primary);color:var(--primary-dark);background:var(--bg-soft);transform:translateY(-1px)}
