:root {
    --ton-bg: #0F1221;
    --ton-surface: #1B1F2C;
    --ton-surface-2: #23283A;
    --ton-primary: #6E2CF0;
    --ton-primary-2: #8A3FFC;
    --ton-primary-soft: #B16EF0;
    --ton-accent: #4BC9F0;
    --ton-text: #F7F8FF;
    --ton-muted: #C8D0E6;
    --ton-line: rgba(255,255,255,.10);
    --ton-shadow: 0 30px 80px rgba(0,0,0,.38);
}

#container_wr,
#container,
#wrapper { max-width:none !important; width:100% !important; margin:0 !important; padding:0 !important; }
#container_title { display:none !important; }

html { scroll-behavior:smooth; }
.travelon-app,
.travelon-app * { box-sizing:border-box; }
.travelon-app {
    min-height:100vh;
    color:var(--ton-text);
    background:
        radial-gradient(circle at 14% 14%, rgba(110,44,240,.25), transparent 28%),
        radial-gradient(circle at 86% 18%, rgba(75,201,240,.14), transparent 25%),
        radial-gradient(circle at 58% 90%, rgba(138,63,252,.16), transparent 26%),
        var(--ton-bg);
    font-family:'NEXON Lv2 Gothic','Malgun Gothic',sans-serif;
    overflow:hidden;
    position:relative;
}
.travelon-app::before {
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    opacity:.23;
    background-image:
        linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
    background-size:44px 44px;
    mask-image:linear-gradient(to bottom, #000 0%, transparent 72%);
}
.ton-shell { width:min(1240px, calc(100% - 36px)); margin:0 auto; position:relative; z-index:1; }
.ton-topbar { position:relative; display:flex; align-items:center; justify-content:flex-end; min-height:34px; padding:22px 0 4px; }
.ton-topbar .ton-kicker { position:absolute; left:50%; top:22px; transform:translateX(-50%); margin:0; white-space:nowrap; }
.ton-status {
    display:inline-flex; align-items:center; gap:8px; padding:9px 13px;
    color:#dce2f5; font-size:13px; border:1px solid rgba(255,255,255,.09);
    border-radius:999px; background:rgba(16,20,36,.62); backdrop-filter:blur(16px);
}
.ton-status-dot { width:8px; height:8px; border-radius:50%; background:#61e7aa; box-shadow:0 0 18px rgba(97,231,170,.8); }

.ton-hero { max-width:900px; margin:0 auto; padding:34px 0 24px; text-align:center; }
.ton-hero-copy { text-align:center; }
.ton-kicker { display:inline-flex; align-items:center; gap:8px; padding:8px 13px; border:1px solid rgba(177,110,240,.24); border-radius:999px; color:#d9c4ff; background:rgba(110,44,240,.10); font-size:13px; font-weight:700; }
.ton-kicker i { width:7px; height:7px; border-radius:50%; background:var(--ton-accent); box-shadow:0 0 15px rgba(75,201,240,.8); }
.ton-brand-title { margin-top:18px; color:#fff; font-size:clamp(18px,2vw,25px); font-weight:900; letter-spacing:.22em; text-indent:.22em; text-shadow:0 0 28px rgba(138,63,252,.45); }
.ton-gradient-text span { display:block; }
.ton-hero h1 { margin:16px auto 0; max-width:820px; font-size:clamp(38px,5.2vw,64px); line-height:1.08; letter-spacing:-.06em; font-weight:900; }
.ton-gradient-text { background:linear-gradient(90deg,#fff 4%,#d1b8ff 44%,#76e7ff 100%); -webkit-background-clip:text; background-clip:text; color:transparent; }
.ton-hero p { max-width:700px; margin:16px auto 0; color:var(--ton-muted); font-size:clamp(15px,1.5vw,18px); line-height:1.7; letter-spacing:-.02em; }
.ton-hero-cta { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:58px; margin-top:28px; padding:15px 25px; border-radius:16px; color:#fff; text-decoration:none; background:linear-gradient(135deg,var(--ton-primary),var(--ton-primary-2) 55%,var(--ton-accent)); box-shadow:0 18px 44px rgba(110,44,240,.36); font-size:17px; font-weight:900; }
.ton-hero-cta:hover { transform:translateY(-2px); }
.ton-hero-note { display:flex; flex-wrap:wrap; gap:10px 18px; margin-top:20px; color:#c4cae0; font-size:12px; }
.ton-hero-note span::before { content:"✓"; margin-right:6px; color:#61e7aa; font-weight:900; }
.ton-visual { min-height:430px; position:relative; display:grid; place-items:center; border:1px solid rgba(255,255,255,.08); border-radius:32px; background:radial-gradient(circle at 50% 56%,rgba(110,44,240,.32),transparent 27%),linear-gradient(145deg,rgba(28,32,54,.64),rgba(11,14,28,.42)); overflow:hidden; box-shadow:0 34px 90px rgba(0,0,0,.30); }
.ton-visual::before { content:""; position:absolute; inset:0; opacity:.22; background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px); background-size:38px 38px; }
.ton-orbit-visual { width:230px; height:230px; position:relative; border-radius:50%; border:1px solid rgba(117,226,255,.24); box-shadow:0 0 80px rgba(110,44,240,.38),inset 0 0 52px rgba(75,201,240,.08); }
.ton-orbit-visual::before,.ton-orbit-visual::after { content:""; position:absolute; border-radius:50%; border:1px solid rgba(177,110,240,.30); }
.ton-orbit-visual::before { inset:22px; } .ton-orbit-visual::after { inset:48px; }
.ton-suitcase { position:absolute; inset:50%; width:112px; height:142px; transform:translate(-50%,-50%); border:2px solid #9e7cff; border-radius:20px; background:linear-gradient(180deg,rgba(110,44,240,.30),rgba(75,201,240,.06)); box-shadow:0 0 34px rgba(110,44,240,.56),inset 0 0 24px rgba(255,255,255,.06); }
.ton-suitcase::before { content:""; position:absolute; width:46px; height:22px; left:31px; top:-24px; border:2px solid #9e7cff; border-bottom:0; border-radius:12px 12px 0 0; }
.ton-suitcase::after { content:"✈"; position:absolute; inset:0; display:grid; place-items:center; font-size:42px; filter:drop-shadow(0 0 10px rgba(75,201,240,.8)); }
.ton-float-card { position:absolute; min-width:116px; padding:13px 14px; border:1px solid rgba(154,126,255,.35); border-radius:16px; color:#fff; background:rgba(24,28,49,.82); backdrop-filter:blur(18px); box-shadow:0 16px 36px rgba(0,0,0,.28); font-size:13px; font-weight:800; }
.ton-float-card small { display:block; margin-top:4px; color:#8f98b8; font-size:10px; font-weight:600; }
.ton-float-card:nth-of-type(1) { left:28px; top:62px; } .ton-float-card:nth-of-type(2) { right:28px; top:84px; } .ton-float-card:nth-of-type(3) { left:34px; bottom:70px; } .ton-float-card:nth-of-type(4) { right:28px; bottom:58px; }
.ton-value-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:0; margin:10px 0 34px; border:1px solid rgba(255,255,255,.08); border-radius:24px; overflow:hidden; background:rgba(18,22,39,.62); }
.ton-value-item { padding:22px 16px; text-align:center; border-right:1px solid rgba(255,255,255,.07); } .ton-value-item:last-child { border-right:0; }
.ton-value-icon { display:grid; place-items:center; width:46px; height:46px; margin:0 auto 11px; border-radius:15px; color:#fff; background:linear-gradient(135deg,rgba(110,44,240,.72),rgba(75,201,240,.18)); font-size:22px; }
.ton-value-item b { display:block; font-size:14px; } .ton-value-item span { display:block; margin-top:6px; color:var(--ton-muted); font-size:11px; line-height:1.5; }
.ton-preview { display:grid; grid-template-columns:.82fr 1.18fr; gap:30px; align-items:center; margin:0 0 34px; padding:34px; border:1px solid rgba(255,255,255,.08); border-radius:28px; background:rgba(18,22,39,.58); }
.ton-section-label { display:inline-flex; padding:7px 11px; border-radius:999px; color:#cdb9ff; border:1px solid rgba(177,110,240,.22); background:rgba(110,44,240,.09); font-size:12px; font-weight:800; }
.ton-preview h2,.ton-how h2 { margin:16px 0 0; font-size:clamp(28px,4vw,46px); line-height:1.15; letter-spacing:-.05em; }
.ton-preview p { margin:16px 0 0; color:var(--ton-muted); line-height:1.75; }
.ton-preview-card { overflow:hidden; border:1px solid rgba(255,255,255,.10); border-radius:24px; background:linear-gradient(145deg,rgba(37,42,70,.92),rgba(18,22,39,.94)); box-shadow:0 24px 60px rgba(0,0,0,.28); }
.ton-preview-photo { min-height:170px; padding:24px; display:flex; align-items:flex-end; background:linear-gradient(to top,rgba(8,10,22,.86),rgba(8,10,22,.06)),radial-gradient(circle at 70% 30%,rgba(255,128,119,.58),transparent 24%),linear-gradient(135deg,#23315a,#56318f 55%,#ff8f73); }
.ton-preview-photo small { display:block; color:#ece8ff; } .ton-preview-photo strong { display:block; margin-top:7px; font-size:30px; }
.ton-preview-total { margin-left:auto; padding:13px 15px; border:1px solid rgba(255,255,255,.13); border-radius:15px; background:rgba(8,11,25,.48); } .ton-preview-total span { display:block; color:#aeb5ce; font-size:10px; } .ton-preview-total b { display:block; margin-top:5px; font-size:22px; }
.ton-preview-metrics { display:grid; grid-template-columns:repeat(4,1fr); padding:18px; } .ton-preview-metric { padding:8px 13px; border-right:1px solid rgba(255,255,255,.08); } .ton-preview-metric:last-child { border-right:0; }
.ton-preview-metric span { display:block; color:#99a3c2; font-size:10px; } .ton-preview-metric b { display:block; margin-top:6px; font-size:13px; }
.ton-score { display:flex; align-items:center; gap:12px; padding:0 18px 18px; } .ton-score-bar { flex:1; height:8px; border-radius:999px; background:rgba(255,255,255,.08); overflow:hidden; } .ton-score-bar i { display:block; width:97%; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--ton-primary-2),var(--ton-accent)); }
.ton-partners { margin:0 0 34px; padding:22px 28px; border:1px solid rgba(255,255,255,.08); border-radius:22px; background:rgba(18,22,39,.54); } .ton-partners p { margin:0 0 18px; color:#aab1ca; font-size:12px; } .ton-partner-row { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; align-items:center; } .ton-partner-row b { text-align:center; color:#eef0fa; font-size:20px; letter-spacing:-.03em; }
.ton-how { margin:0 0 34px; text-align:center; } .ton-step-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:24px; } .ton-step { display:flex; align-items:center; gap:15px; padding:20px; text-align:left; border:1px solid rgba(255,255,255,.08); border-radius:20px; background:rgba(18,22,39,.56); } .ton-step-num { flex:0 0 42px; width:42px; height:42px; display:grid; place-items:center; border-radius:50%; background:linear-gradient(135deg,var(--ton-primary),var(--ton-primary-2)); font-weight:900; } .ton-step b { display:block; } .ton-step span { display:block; margin-top:5px; color:var(--ton-muted); font-size:11px; line-height:1.5; }
.ton-final-cta { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:0 0 36px; padding:26px 30px; border:1px solid rgba(177,110,240,.24); border-radius:24px; background:linear-gradient(135deg,rgba(56,39,113,.76),rgba(110,44,240,.48)); box-shadow:0 18px 60px rgba(73,32,170,.16); } .ton-final-cta h3 { margin:0; font-size:23px; } .ton-final-cta p { margin:7px 0 0; color:#c7cbe0; font-size:13px; } .ton-final-cta a { flex:0 0 auto; padding:14px 20px; border-radius:14px; color:#3f1a83; background:#fff; text-decoration:none; font-weight:900; }
.ton-mode-switch { width:min(520px,100%); margin:0 auto 22px; display:grid; grid-template-columns:1fr 1fr; padding:6px; border:1px solid var(--ton-line); border-radius:18px; background:rgba(20,23,39,.72); backdrop-filter:blur(18px); }
.ton-mode-btn { border:0; border-radius:13px; padding:14px 16px; color:#929ab7; background:transparent; font-weight:800; transition:.2s ease; }
.ton-mode-btn.is-active { color:#fff; background:linear-gradient(135deg,rgba(110,44,240,.95),rgba(138,63,252,.9)); box-shadow:0 12px 28px rgba(110,44,240,.28); }

.ton-planner-wrap { padding:0 0 38px; }
.ton-planner {
    border:1px solid rgba(255,255,255,.11); border-radius:30px; overflow:hidden;
    background:linear-gradient(145deg,rgba(27,31,44,.91),rgba(19,22,37,.86));
    backdrop-filter:blur(26px); box-shadow:var(--ton-shadow);
}
.ton-planner-head { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:20px 24px; border-bottom:1px solid var(--ton-line); }
.ton-ai-id { display:flex; align-items:center; gap:12px; }
.ton-ai-avatar { width:42px; height:42px; display:grid; place-items:center; border-radius:14px; background:linear-gradient(135deg,var(--ton-primary),var(--ton-primary-2)); box-shadow:0 8px 22px rgba(110,44,240,.34); }
.ton-ai-id strong { display:block; font-size:15px; }
.ton-ai-id span { display:block; margin-top:3px; color:var(--ton-muted); font-size:12px; }
.ton-progress { display:flex; gap:7px; }
.ton-progress span { width:29px; height:5px; border-radius:999px; background:rgba(255,255,255,.10); transition:.2s; }
.ton-progress span.is-done { background:linear-gradient(90deg,var(--ton-primary-2),var(--ton-accent)); }

.ton-form { padding:26px; }
.ton-stage { display:none; animation:tonFade .28s ease; }
.ton-stage.is-active { display:block; }
@keyframes tonFade { from{opacity:0;transform:translateY(7px)} to{opacity:1;transform:none} }
.ton-question { margin:0 0 7px; font-size:clamp(24px,3vw,34px); letter-spacing:-.045em; font-weight:900; }
.ton-question-desc { margin:0 0 24px; color:var(--ton-muted); font-size:15px; line-height:1.65; }
.ton-grid { display:grid; gap:14px; }
.ton-grid-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.ton-grid-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.ton-field { display:block; }
.ton-label { display:block; margin:0 0 9px; color:#cbd1e8; font-size:13px; font-weight:800; }
.ton-input,
.ton-select,
.ton-textarea {
    width:100%; border:1px solid rgba(255,255,255,.10); outline:none; color:#fff; background:rgba(255,255,255,.055);
    border-radius:14px; padding:14px 15px; transition:.2s; font-size:15px;
}
.ton-select option { color:#111; }
.ton-input:focus,.ton-select:focus,.ton-textarea:focus { border-color:rgba(75,201,240,.65); box-shadow:0 0 0 4px rgba(75,201,240,.10); background:rgba(255,255,255,.075); }
.ton-textarea { min-height:104px; resize:vertical; line-height:1.6; }
.ton-choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.ton-choice input,.ton-chip input { position:absolute; opacity:0; pointer-events:none; }
.ton-choice span {
    min-height:92px; display:flex; flex-direction:column; justify-content:center; gap:7px; padding:17px;
    border:1px solid rgba(255,255,255,.10); border-radius:17px; background:rgba(255,255,255,.045); transition:.2s; cursor:pointer;
}
.ton-choice span b { font-size:16px; }
.ton-choice span em { color:var(--ton-muted); font-size:12px; font-style:normal; line-height:1.5; }
.ton-choice input:checked + span { border-color:rgba(177,110,240,.75); background:linear-gradient(135deg,rgba(110,44,240,.24),rgba(75,201,240,.08)); box-shadow:inset 0 0 0 1px rgba(177,110,240,.12),0 10px 30px rgba(110,44,240,.12); }
.ton-chip-wrap { display:flex; flex-wrap:wrap; gap:9px; }
.ton-chip span { display:inline-flex; align-items:center; min-height:40px; padding:9px 14px; border:1px solid rgba(255,255,255,.10); border-radius:999px; color:#bdc4dc; background:rgba(255,255,255,.04); cursor:pointer; transition:.2s; font-size:13px; font-weight:700; }
.ton-chip input:checked + span { color:#fff; border-color:rgba(75,201,240,.6); background:rgba(75,201,240,.12); box-shadow:0 0 0 3px rgba(75,201,240,.07); }
.ton-subsection { margin-top:22px; }
.ton-counter {
    display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:74px; padding:14px 15px;
    border:1px solid rgba(255,255,255,.10); border-radius:16px; background:rgba(255,255,255,.04);
}
.ton-counter b { display:block; font-size:14px; }
.ton-counter small { display:block; margin-top:4px; color:var(--ton-muted); font-size:11px; }
.ton-counter-control { display:flex; align-items:center; gap:12px; }
.ton-counter-control button { width:34px; height:34px; border-radius:11px; border:1px solid rgba(255,255,255,.13); color:#fff; background:rgba(255,255,255,.06); font-size:19px; }
.ton-counter-control output { min-width:18px; text-align:center; font-weight:900; }
.ton-budget-box { padding:22px; border:1px solid rgba(255,255,255,.11); border-radius:22px; background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(110,44,240,.055)); overflow:hidden; }
.ton-budget-value { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; }
.ton-budget-value strong { font-size:clamp(30px,5vw,42px); letter-spacing:-.055em; }
.ton-budget-value span { color:var(--ton-muted); font-size:12px; text-align:right; }
.ton-budget-controls { display:grid; grid-template-columns:1fr 170px; gap:14px; align-items:center; }
.ton-budget-range-wrap { position:relative; padding:14px 4px 6px; }
.ton-range { width:100%; height:34px; margin:0; appearance:none; -webkit-appearance:none; background:transparent; cursor:pointer; touch-action:pan-y; }
.ton-range::-webkit-slider-runnable-track { height:10px; border-radius:999px; background:linear-gradient(90deg,var(--ton-primary-2) 0 var(--budget-progress,0%),rgba(255,255,255,.11) var(--budget-progress,0%) 100%); box-shadow:inset 0 1px 2px rgba(0,0,0,.25); }
.ton-range::-webkit-slider-thumb { appearance:none; -webkit-appearance:none; width:30px; height:30px; margin-top:-10px; border:5px solid #fff; border-radius:50%; background:linear-gradient(135deg,var(--ton-primary-2),var(--ton-accent)); box-shadow:0 6px 22px rgba(110,44,240,.55); }
.ton-range::-moz-range-track { height:10px; border-radius:999px; background:rgba(255,255,255,.11); }
.ton-range::-moz-range-progress { height:10px; border-radius:999px; background:linear-gradient(90deg,var(--ton-primary-2),var(--ton-accent)); }
.ton-range::-moz-range-thumb { width:22px; height:22px; border:5px solid #fff; border-radius:50%; background:linear-gradient(135deg,var(--ton-primary-2),var(--ton-accent)); box-shadow:0 6px 22px rgba(110,44,240,.55); }
.ton-budget-input-wrap { display:flex; align-items:center; gap:8px; min-height:54px; padding:0 14px; border:1px solid rgba(255,255,255,.13); border-radius:15px; background:rgba(11,14,27,.55); }
.ton-budget-input { width:100%; min-width:0; border:0; outline:0; color:#fff; background:transparent; font-size:18px; font-weight:900; text-align:right; }
.ton-budget-input-wrap span { color:#bbc3dc; font-size:13px; font-weight:800; }
.ton-budget-presets { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:8px; margin-top:16px; }
.ton-budget-preset { min-height:42px; padding:9px 8px; border:1px solid rgba(255,255,255,.10); border-radius:12px; color:#c8cee2; background:rgba(255,255,255,.04); font-size:12px; font-weight:900; }
.ton-budget-preset:hover,.ton-budget-preset.is-active { color:#fff; border-color:rgba(75,201,240,.50); background:linear-gradient(135deg,rgba(110,44,240,.25),rgba(75,201,240,.11)); }
.ton-helper { margin-top:10px; color:#8f98b8; font-size:12px; line-height:1.5; }
.ton-helper-note { margin-top:7px; color:#8f98b8; font-size:11px; line-height:1.55; }
.ton-age-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:12px; }
.ton-age-fields:empty { display:none; }
.ton-pref-row { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; }
.ton-pref-row.is-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.ton-pref-row.is-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.ton-pref-row.is-1 { grid-template-columns:minmax(0,220px); }
.ton-pref-option { position:relative; }
.ton-pref-option input { position:absolute; opacity:0; pointer-events:none; }
.ton-pref-option span { min-height:48px; display:flex; align-items:center; justify-content:center; padding:10px 12px; text-align:center; border:1px solid rgba(255,255,255,.10); border-radius:13px; color:#c6cce0; background:rgba(255,255,255,.04); cursor:pointer; font-size:13px; font-weight:800; transition:.2s; }
.ton-pref-option span small { display:block; margin-top:4px; color:var(--ton-muted); font-size:10px; line-height:1.35; font-weight:600; }
.ton-pref-option input:checked + span { color:#fff; border-color:rgba(75,201,240,.58); background:linear-gradient(135deg,rgba(110,44,240,.22),rgba(75,201,240,.10)); box-shadow:0 0 0 3px rgba(75,201,240,.06); }
.ton-conflict { display:none; padding:26px; }
.ton-conflict.is-active { display:block; animation:tonFade .35s ease; }
.ton-conflict-badge { display:inline-flex; padding:8px 12px; border:1px solid rgba(255,158,180,.28); border-radius:999px; color:#ffb4c5; background:rgba(255,81,124,.09); font-size:12px; font-weight:900; }
.ton-conflict h2 { margin:17px 0 8px; font-size:clamp(29px,4.5vw,46px); letter-spacing:-.055em; }
.ton-conflict-desc { margin:0; color:var(--ton-muted); line-height:1.7; }
.ton-conflict-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-top:20px; }
.ton-conflict-summary div { padding:15px; border:1px solid rgba(255,255,255,.09); border-radius:15px; background:rgba(255,255,255,.035); }
.ton-conflict-summary span { display:block; color:#929ab7; font-size:11px; }
.ton-conflict-summary b { display:block; margin-top:6px; font-size:14px; }
.ton-conflict-actions { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-top:18px; }
.ton-conflict-actions button { min-height:50px; border:1px solid rgba(255,255,255,.11); border-radius:14px; color:#fff; background:rgba(255,255,255,.055); font-weight:900; }
.ton-conflict-actions button:hover { border-color:rgba(75,201,240,.5); background:rgba(75,201,240,.09); }
.ton-conflict-note { margin-top:14px; color:#8790ae; font-size:11px; line-height:1.6; }

.ton-actions { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:28px; padding-top:20px; border-top:1px solid var(--ton-line); }
.ton-btn { border:0; border-radius:14px; min-height:50px; padding:13px 20px; font-weight:900; transition:.2s; }
.ton-btn:hover { transform:translateY(-1px); }
.ton-btn-secondary { color:#d8dcef; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.09); }
.ton-btn-primary { color:#fff; background:linear-gradient(135deg,var(--ton-primary),var(--ton-primary-2) 65%,#7655fa); box-shadow:0 14px 34px rgba(110,44,240,.32); }
.ton-btn-primary svg { vertical-align:middle; margin-right:6px; }
.ton-btn[disabled] { opacity:.45; cursor:not-allowed; transform:none; }

.ton-analyzing { display:none; text-align:center; padding:42px 20px 48px; }
.ton-analyzing.is-active { display:block; }
.ton-orbit { width:88px; height:88px; margin:0 auto 22px; border-radius:50%; position:relative; border:1px solid rgba(177,110,240,.28); }
.ton-orbit::before { content:""; position:absolute; inset:15px; border-radius:50%; background:radial-gradient(circle,var(--ton-accent),var(--ton-primary)); filter:blur(.2px); box-shadow:0 0 40px rgba(110,44,240,.55); }
.ton-orbit::after { content:""; position:absolute; width:12px; height:12px; border-radius:50%; top:-6px; left:38px; background:#fff; box-shadow:0 0 18px var(--ton-accent); transform-origin:6px 50px; animation:tonOrbit 1.25s linear infinite; }
@keyframes tonOrbit { to{transform:rotate(360deg)} }
.ton-analyzing h3 { margin:0; font-size:clamp(25px,3vw,32px); letter-spacing:-.04em; line-height:1.3; }
.ton-analyzing p { margin:12px 0 0; color:#c5cce2; font-size:16px; line-height:1.65; }
.ton-analysis-elapsed { margin-top:10px; color:#9eeaff; font-size:14px; font-weight:900; }
.ton-analysis-eta { margin-top:7px; color:#d9def0; font-size:13px; font-weight:800; line-height:1.55; }
.ton-analysis-steps { width:min(520px,100%); margin:24px auto 0; display:grid; gap:9px; text-align:left; }
.ton-analysis-step { display:flex; align-items:center; gap:12px; padding:13px 15px; border:1px solid rgba(255,255,255,.10); border-radius:14px; color:#aeb7d1; background:rgba(255,255,255,.035); font-size:14px; font-weight:700; line-height:1.45; transition:.25s; }
.ton-analysis-step i { width:24px; height:24px; display:grid; place-items:center; flex:0 0 24px; border-radius:50%; background:rgba(255,255,255,.10); font-style:normal; font-size:11px; font-weight:900; }
.ton-analysis-step.is-active { color:#fff; border-color:rgba(75,201,240,.35); background:rgba(75,201,240,.07); }
.ton-analysis-step.is-done { color:#bfeeda; }
.ton-analysis-step.is-done i { background:rgba(97,231,170,.16); color:#61e7aa; }
.ton-analysis-note { margin-top:18px !important; color:#aeb7d0 !important; font-size:13px !important; line-height:1.65 !important; }

.ton-result { display:none; padding:26px; }
.ton-result.is-active { display:block; animation:tonFade .35s ease; }
.ton-result-badge { display:inline-flex; align-items:center; gap:8px; padding:8px 12px; border-radius:999px; background:rgba(75,201,240,.10); color:#9eeaff; border:1px solid rgba(75,201,240,.22); font-size:12px; font-weight:800; }
.ton-result-title { margin:17px 0 8px; font-size:clamp(31px,5vw,54px); letter-spacing:-.06em; }
.ton-result-desc { margin:0; color:#c7cee3; font-size:16px; line-height:1.75; }
.ton-ai-conclusion { margin-top:14px; padding:15px 17px; border:1px solid rgba(75,201,240,.18); border-radius:16px; color:#eefcff; background:linear-gradient(135deg,rgba(75,201,240,.09),rgba(110,44,240,.09)); font-size:14px; font-weight:800; line-height:1.65; }
.ton-result-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:14px; margin-top:22px; }
.ton-result-main-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(330px,.85fr); gap:16px; align-items:start; margin-top:22px; }
.ton-result-left,.ton-result-right { min-width:0; }
.ton-result-right { display:grid; gap:14px; }
.ton-result-right .ton-result-grid,.ton-result-right .ton-info-grid { margin-top:0; grid-template-columns:1fr; }
.ton-result-card { border:1px solid rgba(255,255,255,.10); border-radius:19px; padding:19px; background:rgba(255,255,255,.045); }
.ton-result-card h4 { margin:0 0 14px; font-size:17px; color:#f2f4ff; line-height:1.4; }
.ton-reason-list { margin:0; padding:0; list-style:none; }
.ton-reason-list li { position:relative; padding:9px 0 9px 24px; color:#d1d7e8; font-size:15px; line-height:1.7; }
.ton-reason-list li::before { content:""; position:absolute; left:0; top:14px; width:8px; height:8px; border-radius:50%; background:linear-gradient(135deg,var(--ton-primary-2),var(--ton-accent)); }
.ton-cost { display:flex; flex-direction:column; align-items:flex-start; gap:9px; }
.ton-cost strong { display:block; font-size:29px; line-height:1.3; word-break:keep-all; }
.ton-cost span { display:block; max-width:none; color:#d2d8e9; font-size:14px; line-height:1.65; text-align:left; }
.ton-cost-breakdown { display:grid; gap:0; margin-top:16px; padding-top:12px; border-top:1px solid rgba(255,255,255,.08); }
.ton-cost-row { display:grid; grid-template-columns:minmax(0,1fr); gap:9px; padding:14px 0 13px; color:#d0d6e7; font-size:15px; line-height:1.65; }
.ton-cost-row + .ton-cost-row { border-top:1px solid rgba(255,255,255,.065); }
.ton-cost-row > span { display:flex; flex-direction:column; gap:3px; min-width:0; }
.ton-cost-row > span strong { color:#f4f6ff; font-size:16px; line-height:1.45; font-weight:900; }
.ton-cost-row > span small { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:1; color:#c4ccdf; font-size:14px; line-height:1.6; font-weight:600; }
.ton-cost-row b { justify-self:end; max-width:100%; color:#ffffff; font-size:18px; line-height:1.25; font-weight:900; white-space:nowrap; letter-spacing:-.025em; }
.ton-cost-total { grid-template-columns:1fr auto; align-items:center; gap:18px; margin-top:6px; padding:15px 14px; border:1px solid rgba(177,110,240,.22) !important; border-radius:14px; color:#fff; background:rgba(138,63,252,.075); font-weight:900; }
.ton-cost-total > span { font-size:16px; font-weight:900; }
.ton-cost-total b { color:#9eeaff; font-size:20px; }
.ton-booking-row { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:14px; }
.ton-booking-row button { min-height:45px; border:1px solid rgba(255,255,255,.10); color:#e8ebf8; background:rgba(255,255,255,.05); border-radius:13px; font-weight:800; }
.ton-ad-cta { margin-top:14px; padding:17px; display:flex; align-items:center; justify-content:space-between; gap:15px; border-radius:18px; border:1px solid rgba(177,110,240,.22); background:linear-gradient(135deg,rgba(110,44,240,.13),rgba(75,201,240,.06)); }
.ton-ad-cta p { margin:0; color:#c2c8dd; font-size:13px; line-height:1.55; }
.ton-ad-cta b { color:#fff; }
.ton-ad-cta button { white-space:nowrap; border:0; border-radius:13px; padding:12px 15px; color:#fff; background:linear-gradient(135deg,var(--ton-primary),var(--ton-primary-2)); font-weight:900; }
.ton-recent-visit { margin-top:14px; padding:17px; display:flex; align-items:center; justify-content:space-between; gap:15px; border:1px solid rgba(97,231,170,.20); border-radius:18px; background:linear-gradient(135deg,rgba(97,231,170,.07),rgba(75,201,240,.045)); }
.ton-recent-visit p { margin:0; color:#c2c8dd; font-size:13px; line-height:1.55; }
.ton-recent-visit b { color:#fff; }
.ton-recent-visit button { flex:0 0 auto; border:1px solid rgba(97,231,170,.28); border-radius:13px; padding:12px 15px; color:#dffff1; background:rgba(97,231,170,.10); font-weight:900; }
.ton-recent-visit button:disabled { opacity:.55; cursor:not-allowed; }
.ton-exclusion-status { display:none; margin-top:10px; padding:11px 13px; border:1px solid rgba(255,255,255,.08); border-radius:13px; color:#aeb6cf; background:rgba(255,255,255,.035); font-size:11px; line-height:1.55; }
.ton-exclusion-status.is-active { display:block; }
.ton-exclusion-status button { margin-left:8px; padding:4px 8px; border:1px solid rgba(255,255,255,.12); border-radius:8px; color:#dfe4f5; background:rgba(255,255,255,.05); font-size:10px; font-weight:800; }
.ton-result-actions { display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; margin-top:18px; padding-top:18px; border-top:1px solid var(--ton-line); }
.ton-save-wrap { display:flex; align-items:center; gap:10px; }
.ton-save-status { color:var(--ton-muted); font-size:12px; line-height:1.5; }
.ton-save-status.is-success { color:#61e7aa; }
.ton-save-status.is-error { color:#ff9eb4; }


.ton-comparison { display:none; margin-top:18px; padding:19px; border:1px solid rgba(75,201,240,.18); border-radius:20px; background:linear-gradient(135deg,rgba(75,201,240,.06),rgba(110,44,240,.08)); }
.ton-comparison.is-active { display:block; animation:tonFade .35s ease; }
.ton-comparison-head { display:flex; align-items:end; justify-content:space-between; gap:12px; margin-bottom:14px; }
.ton-comparison-head h3 { margin:0; font-size:19px; }
.ton-comparison-head p { margin:5px 0 0; color:var(--ton-muted); font-size:11px; }
.ton-compare-table { width:100%; border-collapse:collapse; overflow:hidden; }
.ton-compare-table th,.ton-compare-table td { padding:11px 9px; border-bottom:1px solid rgba(255,255,255,.07); text-align:center; font-size:12px; }
.ton-compare-table th:first-child,.ton-compare-table td:first-child { text-align:left; color:#aeb6cf; }
.ton-compare-table th { color:#fff; font-size:13px; }
.ton-compare-winner { color:#9eeaff; font-weight:900; }
.ton-compare-summary { margin:14px 0 0; color:#d7dbeb; font-size:12px; line-height:1.65; }
.ton-score-cell { min-width:210px; }
.ton-score-line { display:flex; align-items:center; gap:9px; }
.ton-score-line b { flex:0 0 28px; font-size:13px; }
.ton-score-mini-bar { flex:1; height:7px; border-radius:999px; overflow:hidden; background:rgba(255,255,255,.09); }
.ton-score-mini-bar i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--ton-primary-2),var(--ton-accent)); }
.ton-score-reason { display:block; margin-top:7px; color:#9fa8c3; font-size:10px; line-height:1.5; text-align:left; }
.ton-comparison-insight { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:16px; }
.ton-comparison-destination { padding:15px; border:1px solid rgba(255,255,255,.08); border-radius:15px; background:rgba(255,255,255,.035); }
.ton-comparison-destination h4 { margin:0 0 10px; font-size:13px; }
.ton-comparison-destination b { display:block; margin-top:10px; color:#dfe4f5; font-size:11px; }
.ton-comparison-destination ul { margin:6px 0 0; padding:0; list-style:none; }
.ton-comparison-destination li { position:relative; padding:4px 0 4px 17px; color:#aeb6cf; font-size:11px; line-height:1.45; }
.ton-comparison-destination li::before { content:'✓'; position:absolute; left:0; color:#71e9bb; font-weight:900; }
.ton-comparison-destination ul.ton-tradeoffs li::before { content:'△'; color:#ffd382; }
.ton-final-decision { margin-top:14px; padding:15px 17px; border:1px solid rgba(177,110,240,.22); border-radius:15px; background:rgba(110,44,240,.10); }
.ton-final-decision strong { display:block; margin-bottom:6px; font-size:13px; }
.ton-final-decision p { margin:0; color:#d7dcef; font-size:12px; line-height:1.65; }


.ton-comparison-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:10px; margin-top:16px; padding-top:16px; border-top:1px solid rgba(255,255,255,.08); }
.ton-master-replace { min-height:44px; padding:11px 16px; border:0; border-radius:13px; color:#fff; background:linear-gradient(135deg,var(--ton-primary),var(--ton-primary-2)); font-weight:900; cursor:pointer; }
.ton-master-status { color:#9eeaff; font-size:11px; line-height:1.5; }
.ton-perspective-modal { position:fixed; inset:0; z-index:10020; display:none; align-items:center; justify-content:center; padding:20px; background:rgba(4,6,15,.84); backdrop-filter:blur(12px); }
.ton-perspective-modal.is-active { display:flex; }
.ton-perspective-card { width:min(640px,100%); max-height:min(760px,calc(100vh - 40px)); overflow-y:auto; padding:26px; border:1px solid rgba(255,255,255,.14); border-radius:24px; background:linear-gradient(145deg,#20253a,#121625); box-shadow:0 30px 90px rgba(0,0,0,.55); }
.ton-perspective-card h3 { margin:0; font-size:24px; letter-spacing:-.04em; }
.ton-perspective-card > p { margin:10px 0 0; color:var(--ton-muted); font-size:13px; line-height:1.65; }
.ton-perspective-grid { display:grid; grid-template-columns:1fr 1fr; gap:11px; margin-top:20px; }
.ton-perspective-option { display:flex; align-items:flex-start; gap:12px; width:100%; padding:16px; border:1px solid rgba(255,255,255,.10); border-radius:17px; color:#fff; background:rgba(255,255,255,.04); text-align:left; cursor:pointer; transition:.2s; }
.ton-perspective-option:hover { transform:translateY(-1px); border-color:rgba(75,201,240,.42); background:linear-gradient(135deg,rgba(110,44,240,.16),rgba(75,201,240,.07)); }
.ton-perspective-icon { flex:0 0 38px; width:38px; height:38px; display:grid; place-items:center; border-radius:12px; background:linear-gradient(135deg,rgba(110,44,240,.72),rgba(75,201,240,.22)); font-size:20px; }
.ton-perspective-option b { display:block; font-size:14px; }
.ton-perspective-option span { display:block; margin-top:5px; color:var(--ton-muted); font-size:11px; line-height:1.5; }
.ton-perspective-close { width:100%; min-height:42px; margin-top:12px; border:1px solid rgba(255,255,255,.10); border-radius:13px; color:#c4cae0; background:transparent; cursor:pointer; }

.ton-airport-card { margin-top:18px; border-color:rgba(101,205,255,.20); background:linear-gradient(145deg,rgba(31,38,60,.94),rgba(20,24,40,.96)); }
.ton-airport-card h4 { margin:0 0 16px; color:#fff; font-size:17px; font-weight:900; letter-spacing:-.025em; }
.ton-airport-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.ton-airport-grid div { min-height:86px; padding:15px 16px; border:1px solid rgba(118,213,255,.18); border-radius:14px; background:rgba(255,255,255,.055); box-shadow:inset 0 1px 0 rgba(255,255,255,.025); }
.ton-airport-grid span { display:block; color:#83dfff; font-size:11px; font-weight:800; letter-spacing:-.01em; }
.ton-airport-grid b { display:block; margin-top:8px; color:#fff; font-size:15px; font-weight:900; line-height:1.45; text-shadow:0 1px 12px rgba(255,255,255,.08); }
.ton-airport-grid div:nth-child(2) { border-color:rgba(135,111,255,.42); background:linear-gradient(135deg,rgba(112,72,224,.20),rgba(65,171,221,.10)); }
.ton-airport-grid div:nth-child(2) b { color:#f7f2ff; font-size:16px; }
.ton-airport-reason { display:grid; grid-template-columns:90px minmax(0,1fr); gap:12px; margin:13px 0 0; padding-top:13px; border-top:1px solid rgba(255,255,255,.08); color:#bdc4da; font-size:12px; line-height:1.6; }
.ton-airport-reason b { color:#fff; }

.ton-api-error { display:none; margin:16px 0 0; padding:14px 16px; border:1px solid rgba(255,115,145,.35); border-radius:15px; color:#ffd8e1; background:rgba(255,81,124,.09); font-size:13px; line-height:1.6; }
.ton-api-error.is-active { display:block; }
.ton-result-meta { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.ton-result-meta span { padding:7px 10px; border:1px solid rgba(255,255,255,.09); border-radius:999px; color:#cbd1e8; background:rgba(255,255,255,.04); font-size:11px; }
.ton-itinerary { margin-top:0; }
.ton-itinerary-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.ton-itinerary h3 { margin:0; font-size:21px; line-height:1.4; }
.ton-itinerary-head span { color:#aeeeff; font-size:13px; line-height:1.55; text-align:right; }
.ton-day-list { display:grid; gap:10px; max-height:none; overflow:visible; padding-right:0; }
.ton-day-list::-webkit-scrollbar { display:none; }
.ton-day-list::-webkit-scrollbar-track { background:rgba(255,255,255,.045); border-radius:999px; }
.ton-day-list::-webkit-scrollbar-thumb { background:linear-gradient(180deg,var(--ton-primary-2),var(--ton-accent)); border-radius:999px; }
.ton-day { border:1px solid rgba(255,255,255,.09); border-radius:18px; background:rgba(255,255,255,.035); overflow:hidden; }
.ton-day-head { width:100%; display:flex; align-items:center; gap:12px; padding:15px 17px; border:0; color:#fff; background:transparent; text-align:left; cursor:pointer; }
.ton-day-head:hover { background:rgba(255,255,255,.035); }
.ton-day-num { flex:0 0 auto; display:grid; place-items:center; width:38px; height:38px; border-radius:12px; background:linear-gradient(135deg,var(--ton-primary),var(--ton-primary-2)); font-weight:900; }
.ton-day-title-wrap { min-width:0; flex:1; }
.ton-day-title-wrap b { display:block; font-size:17px; line-height:1.4; }
.ton-day-summary { display:block; margin-top:5px; overflow:hidden; color:#b9c2da; font-size:13px; line-height:1.55; text-overflow:ellipsis; white-space:nowrap; }
.ton-day-toggle { flex:0 0 auto; width:28px; height:28px; display:grid; place-items:center; border-radius:9px; color:#bfc7df; background:rgba(255,255,255,.06); transition:transform .22s ease,background .22s ease; }
.ton-day.is-open .ton-day-toggle { transform:rotate(180deg); background:rgba(75,201,240,.11); color:#9eeaff; }
.ton-schedule { display:none; padding:6px 17px 13px; border-top:1px solid rgba(255,255,255,.07); }
.ton-day.is-open .ton-schedule { display:block; animation:tonFade .22s ease; }
.ton-schedule-item { display:grid; grid-template-columns:58px minmax(0,1fr); gap:12px; padding:12px 0; border-bottom:1px solid rgba(255,255,255,.06); }
.ton-schedule-item:last-child { border-bottom:0; }
.ton-schedule-time { color:#9eeaff; font-size:12px; font-weight:900; }
.ton-schedule-item b { display:block; font-size:13px; }
.ton-schedule-item p { margin:4px 0 0; color:var(--ton-muted); font-size:12px; line-height:1.55; }
.ton-info-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:14px; }
.ton-info-card { padding:17px; border:1px solid rgba(255,255,255,.09); border-radius:17px; background:rgba(255,255,255,.035); }
.ton-info-card h4 { margin:0 0 11px; color:#f1f3ff; font-size:16px; line-height:1.4; }
.ton-info-card p,.ton-info-card li { color:#c5cce0; font-size:14px; line-height:1.75; }
.ton-info-card ul { margin:0; padding-left:18px; }
.ton-keywords { display:flex; flex-wrap:wrap; gap:7px; }
.ton-keywords span { padding:8px 11px; border-radius:999px; color:#eadfff; background:rgba(110,44,240,.15); border:1px solid rgba(177,110,240,.28); font-size:13px; line-height:1.35; }
.ton-disclaimer { margin-top:14px; color:#8790ae; font-size:11px; line-height:1.6; }
.ton-trust { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:16px; }
.ton-trust-item { padding:15px; border-radius:16px; border:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.03); }
.ton-trust-item b { display:block; font-size:13px; }
.ton-trust-item span { display:block; margin-top:5px; color:var(--ton-muted); font-size:11px; line-height:1.5; }
.ton-access-modal { position:fixed; inset:0; z-index:9999; display:none; align-items:center; justify-content:center; padding:20px; background:rgba(4,6,15,.78); backdrop-filter:blur(12px); }
.ton-access-modal.is-active { display:flex; }
.ton-access-card { width:min(520px,100%); padding:26px; border:1px solid rgba(255,255,255,.14); border-radius:24px; background:linear-gradient(145deg,#20253a,#121625); box-shadow:0 30px 90px rgba(0,0,0,.55); }
.ton-access-card h3 { margin:0; font-size:24px; letter-spacing:-.04em; }
.ton-access-card p { margin:12px 0 0; color:var(--ton-muted); line-height:1.65; }
.ton-access-options { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:20px; }
.ton-access-option { padding:16px; border:1px solid rgba(255,255,255,.10); border-radius:17px; background:rgba(255,255,255,.04); }
.ton-access-option b { display:block; font-size:15px; }
.ton-access-option span { display:block; margin-top:6px; color:var(--ton-muted); font-size:12px; line-height:1.5; }
.ton-access-option strong { display:block; margin-top:10px; font-size:20px; }
.ton-access-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:18px; }
.ton-access-actions button { min-height:48px; border:0; border-radius:14px; font-weight:900; cursor:pointer; }
.ton-access-ad { color:#fff; background:linear-gradient(135deg,var(--ton-primary),var(--ton-primary-2)); }
.ton-access-pro { color:#31136d; background:#fff; }
.ton-access-close { width:100%; margin-top:10px; min-height:42px; border:1px solid rgba(255,255,255,.10); border-radius:13px; color:#c4cae0; background:transparent; cursor:pointer; }
.ton-pro-note { margin-top:10px; color:#7fe9ff; font-size:11px; text-align:center; }


.ton-flight-status { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:14px; padding:15px 16px; border:1px solid rgba(75,201,240,.20); border-radius:16px; background:rgba(75,201,240,.07); }
.ton-flight-status[hidden] { display:none !important; }
.ton-flight-status-copy { min-width:0; }
.ton-flight-status-copy b { display:block; color:#dff8ff; font-size:14px; }
.ton-flight-status-copy span { display:block; margin-top:5px; color:var(--ton-muted); font-size:12px; line-height:1.55; }
.ton-flight-status-price { flex:0 0 auto; text-align:right; }
.ton-flight-status-price strong { display:block; color:#fff; font-size:20px; }
.ton-flight-status-price small { color:#91e7ff; font-size:11px; }
.ton-booking-row a { display:flex; align-items:center; justify-content:center; min-height:48px; padding:12px 14px; border:1px solid rgba(75,201,240,.35); border-radius:14px; color:#fff; text-decoration:none; background:linear-gradient(135deg,rgba(110,44,240,.88),rgba(75,201,240,.48)); font-weight:900; }
.ton-booking-row a[hidden] { display:none !important; }
.ton-booking-row .ton-flight-retry { cursor:pointer; border-color:rgba(255,255,255,.16); color:#dbe0f1; background:rgba(255,255,255,.06); }

.ton-live-plan { margin-top:18px; padding:20px; border:1px solid rgba(177,110,240,.28); border-radius:20px; background:linear-gradient(135deg,rgba(110,44,240,.14),rgba(75,201,240,.07)); }
.ton-live-plan-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.ton-live-plan-head b { display:block; font-size:16px; }
.ton-live-plan-head span { display:block; margin-top:6px; color:var(--ton-muted); font-size:12px; line-height:1.6; }
.ton-live-plan-provider { flex:0 0 auto; padding:7px 10px; border:1px solid rgba(75,201,240,.28); border-radius:999px; color:#9eeaff; background:rgba(75,201,240,.08); font-size:11px; font-weight:900; }

.ton-premium-flow { margin-top:18px; padding:18px; border:1px solid rgba(132,108,255,.24); border-radius:22px; background:linear-gradient(145deg,rgba(24,29,62,.92),rgba(13,18,43,.92)); }
.ton-premium-flow-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:14px; }
.ton-premium-flow-head h3 { margin:0 0 5px; color:#fff; font-size:18px; }
.ton-premium-flow-head p { margin:0; color:#9eabc9; font-size:12px; line-height:1.6; }
.ton-premium-badge { flex:0 0 auto; padding:7px 10px; border-radius:999px; color:#c9bcff; background:rgba(122,92,255,.12); border:1px solid rgba(143,115,255,.28); font-size:11px; font-weight:900; }
.ton-premium-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.ton-premium-step { display:flex; align-items:center; gap:11px; min-height:78px; padding:12px; border:1px solid rgba(255,255,255,.08); border-radius:17px; background:rgba(255,255,255,.035); }
.ton-premium-step.is-complete { border-color:rgba(80,222,174,.32); background:rgba(45,186,139,.075); }
.ton-premium-step.is-optional { border-style:dashed; }
.ton-tourapi-step[hidden] { display:none!important; }
.ton-tourapi-step .ton-premium-copy span { line-height:1.55; }
.ton-hotel-map-button { display:flex; align-items:center; justify-content:center; width:100%; min-height:38px; margin-top:4px; padding:8px 10px; border-radius:9px; background:#fee500; color:#191919!important; font-size:12px; font-weight:900; text-decoration:none; box-sizing:border-box; }
.ton-hotel-map-button:hover { background:#f4db00; color:#191919!important; }
.ton-domestic-hotel-entry{margin-top:14px;padding:16px;border:1px solid #dfe6ee;border-radius:14px;background:#f8fafc}
.ton-domestic-hotel-entry>p{margin:0 0 12px;color:#475569;font-size:14px;line-height:1.6}
.ton-domestic-hotel-links{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.ton-domestic-hotel-links a{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 14px;border-radius:10px;background:#111827;color:#fff!important;font-size:13px;font-weight:800;text-decoration:none}
.ton-domestic-hotel-form{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.ton-domestic-hotel-form label{display:flex;flex-direction:column;gap:6px}
.ton-domestic-hotel-form label span{font-size:12px;font-weight:800;color:#334155}
.ton-domestic-hotel-form input{width:100%;height:42px;padding:0 11px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;box-sizing:border-box}
.ton-domestic-hotel-name{grid-column:1/3}
.ton-domestic-hotel-form button{align-self:end;height:42px;border:0;border-radius:9px;background:#fee500;color:#191919;font-weight:900;cursor:pointer}
.ton-domestic-hotel-verified{margin-top:12px;padding:13px;border-radius:10px;background:#fff;border:1px solid #cbd5e1}
.ton-domestic-hotel-verified b,.ton-domestic-hotel-verified span{display:block}
.ton-domestic-hotel-verified span{margin-top:4px;color:#64748b;font-size:13px}
.ton-domestic-hotel-verified a{display:flex;align-items:center;justify-content:center;margin-top:10px;min-height:38px;border-radius:9px;background:#fee500;color:#191919!important;font-size:12px;font-weight:900;text-decoration:none}
@media(max-width:720px){.ton-domestic-hotel-form{grid-template-columns:1fr 1fr}.ton-domestic-hotel-form label:first-child,.ton-domestic-hotel-name{grid-column:1/-1}.ton-domestic-hotel-form button{grid-column:1/-1}.ton-domestic-hotel-links a{width:100%}}
.ton-premium-num { display:grid; place-items:center; flex:0 0 30px; width:30px; height:30px; border-radius:10px; color:#d8ceff; background:rgba(121,85,255,.16); font-size:13px; font-weight:950; }
.ton-premium-step.is-complete .ton-premium-num { color:#b9ffe7; background:rgba(45,186,139,.16); }
.ton-premium-copy { min-width:0; flex:1; }
.ton-premium-copy b { display:block; color:#f5f7ff; font-size:13px; }
.ton-premium-copy span { display:block; margin-top:4px; color:#8997b9; font-size:11px; line-height:1.45; }
.ton-premium-action { flex:0 0 auto; padding:9px 11px; border:0; border-radius:11px; color:#fff; background:linear-gradient(135deg,#7142f5,#4d7cff); font-size:11px; font-weight:900; cursor:pointer; }
.ton-premium-action:disabled { opacity:.62; cursor:default; }
.ton-report-step { grid-column:1/-1; min-height:88px; border-color:rgba(255,196,92,.25); background:linear-gradient(135deg,rgba(255,183,77,.07),rgba(125,83,255,.08)); }
.ton-report-step .ton-premium-action { padding:11px 15px; background:linear-gradient(135deg,#ff9d4d,#8b5cff); }
.ton-premium-status { margin-top:12px; min-height:18px; color:#b8c3df; font-size:12px; line-height:1.55; }
.ton-premium-status.is-error { color:#ffb8c8; }
.ton-premium-status.is-success { color:#9ff3d4; }
@media (max-width:760px) { .ton-premium-grid { grid-template-columns:1fr; } .ton-report-step { grid-column:auto; } .ton-premium-step { align-items:flex-start; } .ton-premium-action { margin-top:2px; } }

.ton-live-plan-button { width:100%; min-height:54px; margin-top:16px; border:0; border-radius:15px; color:#fff; background:linear-gradient(135deg,var(--ton-primary),var(--ton-primary-2) 58%,var(--ton-accent)); box-shadow:0 15px 34px rgba(110,44,240,.28); font-size:15px; font-weight:900; cursor:pointer; }
.ton-live-plan-button:disabled { opacity:.6; cursor:wait; }
.ton-live-plan-note { margin-top:9px; color:#8f98b8; font-size:11px; line-height:1.55; }
.ton-live-plan-status { display:none; margin-top:12px; padding:12px 14px; border-radius:13px; color:#dce5ff; background:rgba(255,255,255,.05); font-size:12px; line-height:1.55; }
.ton-live-plan-status.is-active { display:block; }
.ton-realtime-modal { position:fixed; inset:0; z-index:10000; display:none; align-items:center; justify-content:center; padding:20px; background:rgba(4,6,15,.82); backdrop-filter:blur(12px); }
.ton-realtime-modal.is-active { display:flex; }
.ton-realtime-card { width:min(520px,100%); padding:26px; border:1px solid rgba(255,255,255,.14); border-radius:24px; background:linear-gradient(145deg,#20253a,#121625); box-shadow:0 30px 90px rgba(0,0,0,.55); }
.ton-realtime-card h3 { margin:0; font-size:23px; }
.ton-realtime-card p { margin:10px 0 0; color:var(--ton-muted); font-size:13px; line-height:1.65; }
.ton-realtime-options { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:18px; }
.ton-realtime-option { padding:16px; border:1px solid rgba(255,255,255,.10); border-radius:17px; background:rgba(255,255,255,.04); }
.ton-realtime-option b,.ton-realtime-option span { display:block; }
.ton-realtime-option span { margin-top:6px; color:var(--ton-muted); font-size:11px; line-height:1.5; }
.ton-realtime-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:16px; }
.ton-realtime-actions button { min-height:48px; border:0; border-radius:14px; font-weight:900; cursor:pointer; }
.ton-realtime-ad { color:#fff; background:linear-gradient(135deg,var(--ton-primary),var(--ton-primary-2)); }
.ton-realtime-credit { color:#31136d; background:#fff; }
.ton-realtime-close { width:100%; min-height:42px; margin-top:10px; border:1px solid rgba(255,255,255,.10); border-radius:13px; color:#c4cae0; background:transparent; cursor:pointer; }
@media (max-width: 780px) {
    .ton-perspective-grid { grid-template-columns:1fr; }
    .ton-shell { width:min(100% - 24px, 1240px); }
    .ton-topbar { min-height:32px; padding-top:14px; }
    .ton-topbar .ton-kicker { top:14px; font-size:11px; }
    .ton-status { font-size:11px; padding:8px 10px; }
    .ton-hero { padding:22px 0 18px; }
    .ton-hero h1 { font-size:clamp(35px,11vw,50px); }
    .ton-hero p { font-size:15px; }
    .ton-hero-cta { width:100%; }
    .ton-visual { min-height:350px; }
    .ton-float-card { min-width:100px; padding:11px; font-size:11px; }
    .ton-float-card:nth-of-type(1) { left:12px; top:48px; }
    .ton-float-card:nth-of-type(2) { right:12px; top:67px; }
    .ton-float-card:nth-of-type(3) { left:14px; bottom:48px; }
    .ton-float-card:nth-of-type(4) { right:12px; bottom:42px; }
    .ton-value-grid { grid-template-columns:1fr 1fr; }
    .ton-value-item { border-right:0; border-bottom:1px solid rgba(255,255,255,.07); }
    .ton-value-item:last-child { grid-column:1 / -1; border-bottom:0; }
    .ton-preview { grid-template-columns:1fr; padding:22px; }
    .ton-preview-metrics { grid-template-columns:1fr 1fr; }
    .ton-preview-metric { border-bottom:1px solid rgba(255,255,255,.07); }
    .ton-partner-row { grid-template-columns:1fr 1fr; }
    .ton-step-grid { grid-template-columns:1fr; }
    .ton-final-cta { align-items:stretch; flex-direction:column; padding:22px; }
    .ton-final-cta a { text-align:center; }
    .ton-mode-switch { margin-left:0; }
    .ton-planner { border-radius:23px; }
    .ton-planner-head { padding:16px; }
    .ton-progress span { width:17px; }
    .ton-form,.ton-result { padding:18px; }
    .ton-grid-2,.ton-grid-4,.ton-result-grid,.ton-result-main-grid { grid-template-columns:1fr; }
    .ton-day-list { max-height:none; overflow:visible; padding-right:0; }
    .ton-choice-grid { grid-template-columns:1fr; }
    .ton-age-fields { grid-template-columns:1fr 1fr; }
    .ton-pref-row,.ton-pref-row.is-3,.ton-pref-row.is-4 { grid-template-columns:1fr 1fr; }
    .ton-conflict { padding:18px; }
    .ton-conflict-summary { grid-template-columns:1fr 1fr; }
    .ton-conflict-actions { grid-template-columns:1fr; }
    .ton-actions { position:sticky; bottom:0; margin-left:-18px; margin-right:-18px; margin-bottom:-18px; padding:14px 18px 18px; background:linear-gradient(to top,rgba(15,18,33,.98) 70%,rgba(15,18,33,0)); border-top:0; z-index:4; }
    .ton-actions .ton-btn { flex:1; }
    .ton-booking-row,.ton-trust,.ton-info-grid { grid-template-columns:1fr; }
    .ton-ad-cta { align-items:stretch; flex-direction:column; }
    .ton-ad-cta button { width:100%; }
    .ton-result-actions,.ton-save-wrap { align-items:stretch; flex-direction:column; }
    .ton-result-actions .ton-btn { width:100%; }
    .ton-access-options,.ton-access-actions { grid-template-columns:1fr; }
    .ton-access-card { padding:21px; }
}

@media (max-width:760px) {
    .ton-airport-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .ton-airport-reason { grid-template-columns:1fr; gap:5px; }
}

@media (max-width:720px) {
    .ton-budget-box { padding:18px 15px; }
    .ton-budget-value { align-items:flex-start; flex-direction:column; gap:5px; }
    .ton-budget-value span { text-align:left; }
    .ton-budget-controls { grid-template-columns:1fr; gap:8px; }
    .ton-budget-range-wrap { padding:14px 2px 4px; }
    .ton-range { height:44px; }
    .ton-range::-webkit-slider-thumb { width:34px; height:34px; margin-top:-12px; }
    .ton-budget-presets { grid-template-columns:repeat(3,1fr); }
    .ton-comparison { padding:15px; overflow:hidden; }
    .ton-compare-table { min-width:760px; }
    #comparisonTable { overflow-x:auto; padding-bottom:5px; }
    .ton-comparison-insight { grid-template-columns:1fr; }
}


/* v2.4.1 result readability */
.ton-result .ton-schedule { color:#d2d8e9; }
.ton-result .ton-schedule-row { font-size:14px; line-height:1.65; }
.ton-result .ton-schedule-row time,
.ton-result .ton-schedule-time { color:#9eeaff; font-size:14px; font-weight:900; }
.ton-result .ton-schedule-row b,
.ton-result .ton-schedule-title { color:#f5f6ff; font-size:15px; line-height:1.5; }
.ton-result .ton-schedule-row p,
.ton-result .ton-schedule-desc { color:#bac3d9; font-size:13px; line-height:1.65; }
.ton-result-card p, .ton-result-card li { text-wrap:pretty; }



/* TravelON v2.5.0 - compact desktop result layout and readable secondary text */
@media (min-width: 901px) {
    .ton-result-main-grid {
        grid-template-columns:minmax(0,1fr) minmax(0,1fr);
        gap:18px;
    }

    .ton-result-card,
    .ton-info-card {
        padding:17px;
    }

    .ton-itinerary-head {
        margin-bottom:10px;
    }

    .ton-day-list {
        gap:9px;
    }

    .ton-day-head {
        gap:11px;
        padding:12px 14px;
    }

    .ton-day-num {
        width:36px;
        height:36px;
        border-radius:11px;
        font-size:16px;
    }

    .ton-day-title-wrap b {
        font-size:18px;
        line-height:1.35;
    }

    .ton-day-summary {
        margin-top:3px;
        font-size:15px;
        line-height:1.5;
        color:#d0d6e7;
    }

    .ton-schedule {
        padding:3px 14px 9px;
    }

    .ton-schedule-item {
        grid-template-columns:64px minmax(0,1fr);
        gap:12px;
        padding:10px 0;
    }

    .ton-schedule-time {
        font-size:15px;
        line-height:1.45;
    }

    .ton-schedule-item b {
        font-size:15px;
        line-height:1.45;
    }

    .ton-schedule-item p {
        margin-top:3px;
        color:#cbd2e4;
        font-size:15px;
        line-height:1.65;
    }
}

/* Use the recommendation-reason card as the readability baseline */
.ton-result-desc,
.ton-ai-conclusion,
.ton-reason-list li,
.ton-cost span,
.ton-info-card p,
.ton-info-card li,
.ton-airport-reason,
.ton-ad-cta p,
.ton-recent-visit p,
.ton-comparison-head p,
.ton-compare-summary,
.ton-score-reason,
.ton-comparison-destination li,
.ton-final-decision p,
.ton-trust-item span,
.ton-disclaimer {
    font-size:15px;
    line-height:1.7;
    color:#d1d7e8;
}

.ton-cost-row > span small,
.ton-score-reason,
.ton-disclaimer,
.ton-trust-item span {
    color:#c4ccdf;
}

.ton-info-card h4,
.ton-result-card h4 {
    font-size:18px;
}

.ton-cost-row > span strong {
    font-size:16px;
}

.ton-keywords span {
    font-size:14px;
}

@media (max-width: 900px) {
    .ton-day-summary,
    .ton-schedule-item p,
    .ton-info-card p,
    .ton-info-card li,
    .ton-reason-list li,
    .ton-cost span,
    .ton-ai-conclusion {
        font-size:14px;
        line-height:1.65;
    }
    .ton-cost-row { padding:12px 0; gap:7px; }
    .ton-cost-row > span strong { font-size:15px; }
    .ton-cost-row > span small { font-size:13px; }
    .ton-cost-row b { font-size:17px; }
    .ton-cost-total { padding:13px 12px; }
    .ton-cost-total b { font-size:18px; }
}

/* v3.1 itinerary editor cleanup */
.ton-schedule-edit{justify-content:flex-end}
.ton-schedule-edit button{width:28px;height:28px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:900}
.ton-schedule-edit button.danger{font-size:17px}

/* =========================================================
   TravelON v4.0 UI Renewal
   Unified dark design system for planner, result, cards,
   progress overlays, itinerary, premium, shopping and forms.
   ========================================================= */
:root{
  --ton-bg:#0f1320;
  --ton-surface:#171c2b;
  --ton-surface-2:#1d2334;
  --ton-surface-3:#252c3f;
  --ton-border:rgba(255,255,255,.10);
  --ton-border-strong:rgba(255,255,255,.16);
  --ton-text:#f5f7ff;
  --ton-muted:#aeb6cd;
  --ton-subtle:#7f899f;
  --ton-purple:#8b5cf6;
  --ton-purple-2:#a78bfa;
  --ton-blue:#63b3ff;
  --ton-cyan:#8ce6ff;
  --ton-danger:#ef718b;
  --ton-radius-sm:10px;
  --ton-radius-md:14px;
  --ton-radius-lg:20px;
  --ton-shadow:0 18px 45px rgba(0,0,0,.25);
}

.ton-planner,
.ton-result,
.ton-conflict,
.ton-modal-card,
.ton-premium-panel,
.ton-shopping-section{
  color:var(--ton-text);
}

.ton-card,.ton-stage,.ton-result-card,.ton-info-card,.ton-premium-card,.ton-shop-card,.ton-day{
  border-color:var(--ton-border)!important;
  background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.018))!important;
  box-shadow:none!important;
}

.ton-itinerary-head{
  align-items:flex-start;
  gap:16px;
  margin-bottom:10px;
}
.ton-itinerary-head h3{
  margin:0;
  font-size:24px;
  line-height:1.2;
  letter-spacing:-.6px;
}
.ton-itinerary-head>span{
  color:var(--ton-cyan)!important;
  font-size:13px!important;
  font-weight:700;
  white-space:nowrap;
}

.ton-ai-edit-panel{
  margin:0 0 18px;
  padding:15px 16px;
  border:1px solid var(--ton-border);
  border-radius:var(--ton-radius-md);
  background:rgba(255,255,255,.025);
}
.ton-ai-edit-panel p{
  margin:0 0 12px;
  color:#dce1ef;
  line-height:1.55;
}
.ton-ai-edit-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
#aiRefreshAllButton,#restoreAiOriginalButton{
  min-height:46px!important;
  margin:0!important;
  padding:11px 18px!important;
  border-radius:11px!important;
  font-size:15px!important;
  font-weight:850!important;
  letter-spacing:-.25px;
}
#aiRefreshAllButton{
  border:1px solid rgba(181,151,255,.65)!important;
  background:linear-gradient(135deg,#7141dc,#9c6cf5)!important;
  color:#fff!important;
  box-shadow:0 10px 25px rgba(87,46,185,.25)!important;
}
#restoreAiOriginalButton{
  border:1px solid rgba(99,179,255,.55)!important;
  background:rgba(40,65,101,.42)!important;
  color:#8bc6ff!important;
}
#aiRefreshAllButton:hover,#restoreAiOriginalButton:hover{transform:translateY(-1px)}

.ton-day{
  overflow:hidden;
  margin-bottom:14px;
  border-radius:18px!important;
}
.ton-day-head{
  min-height:74px;
  padding:15px 16px!important;
  border-bottom:1px solid transparent;
}
.ton-day.is-open .ton-day-head{border-bottom-color:var(--ton-border)}
.ton-day-num{
  width:42px!important;
  height:42px!important;
  border-radius:13px!important;
  background:linear-gradient(145deg,#7b35f2,#9a4df6)!important;
  font-size:17px!important;
  box-shadow:0 8px 22px rgba(123,53,242,.25);
}
.ton-day-title-wrap b{font-size:17px!important;line-height:1.35}
.ton-day-summary{margin-top:4px;color:var(--ton-muted)!important;font-size:13px!important}
.ton-day-toggle{
  width:34px;height:34px;border-radius:10px;
  display:inline-flex;align-items:center;justify-content:center;
  background:rgba(99,179,255,.12);color:#9fd5ff;
}

.ton-schedule{padding:0 16px!important}
.ton-schedule-item{
  grid-template-columns:72px minmax(0,1fr)!important;
  gap:15px!important;
  padding:18px 0!important;
  border-bottom:1px solid rgba(255,255,255,.075)!important;
}
.ton-schedule-item:last-child{border-bottom:0!important}
.ton-schedule-time{
  color:#91e4ff!important;
  font-size:15px!important;
  font-weight:850!important;
  letter-spacing:-.2px;
}
.ton-schedule-item h4{
  margin:0 0 5px!important;
  color:#f3f5fb!important;
  font-size:16px!important;
  line-height:1.35!important;
  letter-spacing:-.3px;
}
.ton-schedule-item p{
  margin:0!important;
  color:#c4cada!important;
  font-size:14px!important;
  line-height:1.55!important;
}

.ton-google-card{
  margin-top:12px!important;
  padding:14px 15px!important;
  border:1px solid rgba(255,255,255,.13)!important;
  border-radius:13px!important;
  background:rgba(255,255,255,.045)!important;
  gap:11px!important;
}
.ton-google-row{
  gap:9px!important;
  color:#cdd3e2!important;
  font-size:13px!important;
  line-height:1.5!important;
}
.ton-google-icon{font-size:14px!important;opacity:.92!important;filter:none!important}
.ton-google-badges{gap:8px!important}
.ton-google-badge{
  min-height:34px!important;
  padding:7px 11px!important;
  border-color:rgba(255,255,255,.15)!important;
  background:rgba(255,255,255,.075)!important;
  color:#eef1f8!important;
  font-size:14px!important;
  font-weight:800!important;
}
.ton-google-badge-rating{color:#ffe57a!important;background:rgba(255,217,87,.09)!important;border-color:rgba(255,217,87,.22)!important}
.ton-google-badge-review{color:#eef1f8!important}
.ton-google-map-link{
  min-height:42px!important;
  padding:10px 15px!important;
  border-radius:10px!important;
  border-color:rgba(174,136,255,.68)!important;
  background:rgba(125,79,231,.18)!important;
  color:#d7c6ff!important;
  font-size:15px!important;
  font-weight:850!important;
}
.ton-google-map-link:hover{background:rgba(125,79,231,.29)!important;color:#fff!important}

.ton-schedule-edit{
  justify-content:flex-end;
  gap:7px!important;
  margin-top:9px!important;
}
.ton-schedule-edit button{
  width:32px!important;
  height:32px!important;
  border-radius:9px!important;
  border-color:rgba(255,255,255,.13)!important;
  background:rgba(255,255,255,.055)!important;
  color:#aeb6ca!important;
  font-size:15px!important;
}
.ton-schedule-edit button:hover{background:rgba(255,255,255,.11)!important;color:#fff!important}
.ton-schedule-edit button.danger:hover{background:rgba(239,113,139,.14)!important;border-color:rgba(239,113,139,.38)!important;color:#ff9db0!important}

.ton-modal-card,
.ton-progress-monitor,
.ton-floating-progress{
  border:1px solid var(--ton-border-strong)!important;
  border-radius:17px!important;
  background:rgba(20,25,39,.96)!important;
  box-shadow:var(--ton-shadow)!important;
  backdrop-filter:blur(18px);
}
.ton-progress-bar,.ton-loading-bar{overflow:hidden;border-radius:999px;background:rgba(255,255,255,.08)!important}
.ton-progress-bar>span,.ton-loading-bar>span{background:linear-gradient(90deg,#7345df,#a57af9,#61b9ff)!important}

.ton-premium-step,.ton-cost-row,.ton-info-card,.ton-shop-card-inner{
  border-color:var(--ton-border)!important;
}
.ton-premium-action,.ton-primary-btn,.ton-btn-primary{
  border-radius:10px!important;
  font-weight:800!important;
}

.ton-field input,.ton-field select,.ton-field textarea,.ton-input,.ton-select{
  border-color:var(--ton-border)!important;
  background:rgba(255,255,255,.045)!important;
  color:var(--ton-text)!important;
  border-radius:11px!important;
}
.ton-field input:focus,.ton-field select:focus,.ton-field textarea:focus,.ton-input:focus,.ton-select:focus{
  border-color:rgba(139,92,246,.75)!important;
  box-shadow:0 0 0 3px rgba(139,92,246,.12)!important;
}

@media(max-width:760px){
  .ton-itinerary-head{display:block}
  .ton-itinerary-head>span{display:block;margin-top:7px;white-space:normal}
  .ton-ai-edit-actions{display:grid;grid-template-columns:1fr 1fr}
  #aiRefreshAllButton,#restoreAiOriginalButton{min-width:0!important;padding:10px 11px!important;font-size:13px!important}
  .ton-day-head{padding:13px!important}
  .ton-day-num{width:38px!important;height:38px!important}
  .ton-day-title-wrap b{font-size:15px!important}
  .ton-schedule{padding:0 13px!important}
  .ton-schedule-item{grid-template-columns:58px minmax(0,1fr)!important;gap:10px!important;padding:16px 0!important}
  .ton-schedule-time{font-size:14px!important}
  .ton-schedule-item h4{font-size:15px!important}
  .ton-schedule-item p{font-size:13px!important}
  .ton-google-card{padding:12px!important}
  .ton-google-row{font-size:12px!important}
  .ton-google-badge{min-height:32px!important;padding:6px 9px!important;font-size:13px!important}
  .ton-google-map-link{width:100%!important;min-height:41px!important;font-size:14px!important}
}

/* v6.7.27 - simple domestic page 2/3 flow */
#tonResult.is-domestic-simple .ton-result-progress button[data-result-step="1"] span{font-size:0}
#tonResult.is-domestic-simple .ton-result-progress button[data-result-step="1"] span::after{content:'여행 추천';font-size:13px}
#tonResult.is-domestic-simple .ton-result-progress button[data-result-step="2"] span{font-size:0}
#tonResult.is-domestic-simple .ton-result-progress button[data-result-step="2"] span::after{content:'이동·호텔·일정';font-size:13px}
#tonResult.is-domestic-simple .ton-result-progress button[data-result-step="3"] span{font-size:0}
#tonResult.is-domestic-simple .ton-result-progress button[data-result-step="3"] span::after{content:'지도·여행계획';font-size:13px}
#tonResult.is-domestic-simple #tonPremiumFlow .ton-premium-badge{display:none}
#tonResult.is-domestic-simple #tonFinalActions #premiumStep5,
#tonResult.is-domestic-simple #tonFinalActions #tonActivitySearch{display:none!important}
.ton-domestic-map-panel{margin:18px 0;padding:22px;border:1px solid rgba(143,223,255,.22);border-radius:20px;background:linear-gradient(145deg,rgba(35,45,72,.96),rgba(20,26,47,.96))}
.ton-domestic-map-panel[hidden]{display:none!important}
.ton-domestic-map-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.ton-domestic-map-head span{color:#8fdfff;font-size:11px;font-weight:900;letter-spacing:.08em}
.ton-domestic-map-head h3{margin:4px 0 5px;color:#f5f7ff;font-size:20px}
.ton-domestic-map-head p{margin:0;color:#9da7c2;font-size:12px;line-height:1.55}
.ton-domestic-map-head button{flex:0 0 auto;padding:9px 13px;border:1px solid rgba(143,223,255,.28);border-radius:10px;background:rgba(143,223,255,.08);color:#dff8ff;font-weight:800;cursor:pointer}
.ton-domestic-map-status{margin:16px 0 10px;padding:11px 13px;border-radius:11px;background:rgba(255,255,255,.05);color:#cbd3e9;font-size:12px}
.ton-domestic-map-status.is-error{color:#ffb9c2;background:rgba(255,90,110,.09)}
.ton-domestic-map-days{display:grid;gap:12px}
.ton-kakao-day{padding:14px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(255,255,255,.035)}
.ton-kakao-day h4{margin:0 0 11px;color:#eef2ff;font-size:14px}
.ton-kakao-place{display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 0;border-top:1px solid rgba(255,255,255,.07)}
.ton-kakao-place:first-of-type{border-top:0}
.ton-kakao-place time{color:#8fdfff;font-size:12px;font-weight:800}
.ton-kakao-place b,.ton-kakao-place small{display:block}
.ton-kakao-place b{color:#eef2ff;font-size:13px}
.ton-kakao-place small{margin-top:3px;color:#8994b2;font-size:11px}
.ton-kakao-place a{padding:8px 10px;border-radius:9px;background:#fee500;color:#191919;font-size:11px;font-weight:900;text-decoration:none}
.ton-kakao-inline{display:grid;gap:8px;margin-top:9px}
.ton-kakao-place{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px 9px;padding:10px;border:1px solid rgba(254,229,0,.18);border-radius:10px;background:rgba(255,255,255,.035)}
.ton-kakao-place>b{grid-column:1/-1;color:#f6f7fb;font-size:13px}
.ton-kakao-place small{color:#8994b2;font-size:11px;line-height:1.5}
.ton-kakao-place.is-unverified{grid-template-columns:1fr;border-color:rgba(255,255,255,.08)}
.ton-kakao-inline a{display:inline-flex;align-items:center;justify-content:center;min-height:31px;padding:6px 10px;border-radius:8px;background:#fee500;color:#191919!important;font-size:11px;font-weight:900;text-decoration:none}
.ton-kakao-inline a:hover{background:#f4db00;color:#191919!important}
@media(max-width:760px){
  .ton-domestic-map-panel{padding:17px}
  .ton-domestic-map-head{display:block}
  .ton-domestic-map-head button{width:100%;margin-top:12px}
  .ton-kakao-place{grid-template-columns:46px minmax(0,1fr)}
  .ton-kakao-place a{grid-column:1/-1;text-align:center}
  .ton-kakao-place{grid-template-columns:1fr}
  .ton-kakao-place>b{grid-column:auto}
  .ton-kakao-inline a{width:100%;min-height:38px}
}

/* v6.7.23: domestic page-3 action flow only. Overseas keeps the frozen layout. */
.ton-final-actions.is-domestic-flow{margin-top:24px;padding:22px;border:1px solid rgba(255,255,255,.1);border-radius:22px;background:rgba(18,23,45,.86);box-shadow:0 18px 45px rgba(0,0,0,.16)}
.ton-final-actions.is-domestic-flow .ton-premium-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 20px}
.ton-final-actions.is-domestic-flow .ton-premium-step{min-height:0;padding:18px 0;border:0;border-radius:0;background:transparent}
.ton-final-actions.is-domestic-flow #premiumStep5{grid-column:1/-1;border-bottom:1px solid rgba(255,255,255,.09)}
.ton-final-actions.is-domestic-flow #premiumStep5 .ton-premium-action{width:auto;min-width:128px;padding:10px 16px;color:#e9edff;border:1px solid rgba(151,167,218,.25);background:#29304a;box-shadow:none}
.ton-final-actions.is-domestic-flow .ton-activity-search{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:14px 0 18px 41px;border-bottom:1px solid rgba(255,255,255,.09)}
.ton-final-actions.is-domestic-flow .ton-activity-search::before{content:'제휴 검색';margin-right:4px;color:#8793b2;font-size:11px;font-weight:800}
.ton-final-actions.is-domestic-flow .ton-activity-search a{display:inline-flex;align-items:center;justify-content:center;min-height:34px;width:auto;padding:7px 11px;border:1px solid rgba(255,255,255,.11);border-radius:9px;color:#cbd3e9;background:rgba(255,255,255,.045);font-size:11px;font-weight:800;text-decoration:none}
.ton-final-actions.is-domestic-flow .ton-report-step{grid-column:1/-1;padding:20px 0 0}
.ton-final-actions.is-domestic-flow .ton-report-step .ton-premium-action{min-width:160px;min-height:46px;padding:11px 20px;background:linear-gradient(135deg,#7448f5,#9366ff);box-shadow:0 10px 24px rgba(116,72,245,.25)}
@media(max-width:760px){.ton-final-actions.is-domestic-flow{padding:18px}.ton-final-actions.is-domestic-flow .ton-premium-grid{grid-template-columns:minmax(0,1fr)!important}.ton-final-actions.is-domestic-flow .ton-premium-step{padding:16px 0!important}.ton-final-actions.is-domestic-flow .ton-premium-action,.ton-final-actions.is-domestic-flow .ton-report-step .ton-premium-action{width:100%!important}.ton-final-actions.is-domestic-flow .ton-activity-search{padding:13px 0 16px}.ton-final-actions.is-domestic-flow .ton-activity-search::before{flex-basis:100%}.ton-final-actions.is-domestic-flow .ton-activity-search a{flex:1 1 calc(50% - 8px)}}

/* v6.7.15 — use the final report's Coupang card and category navigation on result stages 1–3 only */
#tonShoppingSection.ton-report-product-mode .ton-product-head>strong{
  flex:0 0 auto;
  padding:9px 12px;
  border-radius:999px;
  background:rgba(139,92,246,.18);
  color:#d7c8ff;
}
#tonShoppingSection.ton-report-product-mode .ton-product-slide{
  display:block;
  margin-top:0;
}
#tonShoppingSection.ton-report-product-mode .ton-product-slide-head{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  margin-bottom:14px;
}
#tonShoppingSection.ton-report-product-mode .ton-product-slide-head h4{
  margin:0;
  font-size:19px;
}
#tonShoppingSection.ton-report-product-mode .ton-product-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:14px!important;
  transform:none!important;
}
#tonShoppingSection.ton-report-product-mode .ton-product-card{
  display:grid!important;
  grid-template-columns:150px minmax(0,1fr)!important;
  width:auto!important;
  min-width:0!important;
  min-height:190px!important;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.1)!important;
  border-radius:19px!important;
  background:rgba(255,255,255,.045)!important;
}
#tonShoppingSection.ton-report-product-mode .ton-product-image{
  min-width:0!important;
  min-height:0!important;
  padding:0!important;
  background:#fff!important;
}
#tonShoppingSection.ton-report-product-mode .ton-product-image img{
  width:100%!important;
  height:100%!important;
  max-height:none!important;
  aspect-ratio:auto!important;
  object-fit:cover!important;
}
#tonShoppingSection.ton-report-product-mode .ton-product-copy{
  display:flex;
  min-width:0;
  flex-direction:column;
  padding:18px!important;
}
#tonShoppingSection.ton-report-product-mode .ton-product-copy small{color:#bda3ff}
#tonShoppingSection.ton-report-product-mode .ton-product-copy h4{
  display:-webkit-box;
  overflow:hidden;
  margin:8px 0 12px;
  font-size:18px;
  line-height:1.4;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
#tonShoppingSection.ton-report-product-mode .ton-product-copy b{
  margin-top:auto;
  font-size:20px;
}
#tonShoppingSection.ton-report-product-mode .ton-product-copy a{
  display:block;
  min-height:0;
  margin-top:12px;
  padding:11px;
  border-radius:11px;
  color:#fff;
  background:linear-gradient(135deg,#7c3aed,#a855f7);
  font-size:inherit;
  font-weight:900;
  text-align:center;
  text-decoration:none;
}
#tonShoppingSection.ton-report-product-mode .ton-product-controls{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  margin-top:18px;
}
#tonShoppingSection.ton-report-product-mode .ton-product-controls>button{
  width:40px;
  height:40px;
  padding:0;
  border:0;
  border-radius:12px;
  color:#fff;
  background:rgba(255,255,255,.09);
  font-size:24px;
}
#tonShoppingSection.ton-report-product-mode .ton-product-dots{display:flex;gap:6px}
#tonShoppingSection.ton-report-product-mode .ton-product-dots button{
  width:8px;
  height:8px;
  padding:0;
  border:0;
  border-radius:50%;
  background:#4b5268;
}
#tonShoppingSection.ton-report-product-mode .ton-product-dots button.is-active{
  width:22px;
  border-radius:8px;
  background:#9b72ff;
}
#tonShoppingSection.ton-report-product-mode .ton-product-notice,
#tonShoppingSection.ton-report-product-mode .ton-product-disclosure{
  max-width:none;
  margin:12px 0 0;
  padding:0;
  border:0;
  color:#9da5bd;
  background:none;
  font-size:11px;
  text-align:center;
}
#tonShoppingSection.ton-report-product-mode .ton-product-disclosure{margin-top:5px}
@media(max-width:720px){
  #tonShoppingSection.ton-report-product-mode{padding:18px!important}
  #tonShoppingSection.ton-report-product-mode .ton-product-head{display:flex!important;flex-direction:column}
  #tonShoppingSection.ton-report-product-mode .ton-product-grid{grid-template-columns:1fr!important}
  #tonShoppingSection.ton-report-product-mode .ton-product-card{
    grid-template-columns:110px minmax(0,1fr)!important;
    min-height:155px!important;
  }
  #tonShoppingSection.ton-report-product-mode .ton-product-copy{padding:14px!important}
  #tonShoppingSection.ton-report-product-mode .ton-product-dots{gap:4px}
  #tonShoppingSection.ton-report-product-mode .ton-product-dots button{width:6px;height:6px}
  #tonShoppingSection.ton-report-product-mode .ton-product-dots button.is-active{width:15px}
}
@media (max-width: 520px) {
    .ton-topbar .ton-kicker { font-size:10px; padding:7px 9px; }
    .ton-status { gap:5px; padding:7px 8px; font-size:8px; }
    .ton-status-dot { width:6px; height:6px; }
}

/* TravelON product cards — v5.7.1 visual system, shared desktop/mobile */
.ton-product-hub.ton-shopping-section{margin:24px 0;padding:28px;border:1px solid rgba(255,255,255,.1);border-radius:28px;background:radial-gradient(circle at 90% 0,rgba(108,92,231,.14),transparent 34%),linear-gradient(145deg,rgba(20,25,42,.98),rgba(12,16,29,.98));box-shadow:0 24px 70px rgba(0,0,0,.28);color:#f7f8fc}
.ton-product-head{display:flex;justify-content:space-between;align-items:flex-start;gap:28px;margin-bottom:24px}
.ton-product-eyebrow{display:inline-flex;padding:6px 10px;border:1px solid rgba(88,190,255,.28);border-radius:999px;color:#74d2ff;background:rgba(88,190,255,.08);font-size:10px;font-weight:900;letter-spacing:.08em}
.ton-product-head h3{margin:11px 0 6px;font-size:clamp(21px,3vw,28px);letter-spacing:-.035em}
.ton-product-head p{margin:0;color:#aab2c8;font-size:13px}
.ton-product-disclosure{max-width:420px;padding:11px 14px;border:1px solid rgba(255,194,92,.22);border-radius:13px;color:#e9c98e;background:rgba(255,194,92,.06);font-size:11px;line-height:1.5}
.ton-product-slide{margin-top:20px}
.ton-product-slide-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:14px}
.ton-product-slide-head span{color:#7a87a8;font-size:10px;font-weight:800}
.ton-product-slide-head h4{margin:3px 0 0;font-size:17px}
.ton-product-slide-head>strong{font-size:19px;color:#73cfff}
.ton-product-slide-head small{font-size:11px;color:#78839e}
.ton-shop-slider{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;gap:14px}
.ton-shop-viewport{min-width:0;overflow:hidden}
.ton-product-grid.ton-shop-track{display:flex;gap:14px;transition:transform .24s ease}
.ton-product-card.ton-shop-card{display:block;flex:0 0 calc(50% - 7px);min-width:0;min-height:180px;overflow:hidden;border:1px solid rgba(255,255,255,.1)!important;border-radius:20px;background:linear-gradient(145deg,rgba(255,255,255,.065),rgba(255,255,255,.025))!important;transition:.2s}
.ton-product-card .ton-shop-card-inner{display:grid;grid-template-columns:150px minmax(0,1fr);height:100%;min-height:180px;border:0!important}
.ton-product-card:hover{transform:translateY(-2px);border-color:rgba(125,100,255,.42)!important;box-shadow:0 14px 35px rgba(0,0,0,.22)!important}
.ton-product-image{display:flex;align-items:center;justify-content:center;padding:12px;background:#fff}
.ton-product-image img{width:100%;height:100%;max-height:156px;object-fit:contain}
.ton-product-image .ton-shop-placeholder{display:grid;place-items:center;width:80px;height:80px;border-radius:24px;color:#fff;background:linear-gradient(135deg,#7659f5,#45b5f5);font-size:11px;font-weight:900}
.ton-product-copy{display:flex;min-width:0;flex-direction:column;padding:18px}
.ton-product-label{margin-bottom:7px;color:#74d2ff;font-size:10px;font-weight:900}
.ton-product-copy>b{display:-webkit-box;overflow:hidden;font-size:15px;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.ton-product-copy>p{display:-webkit-box;overflow:hidden;margin:6px 0 10px;color:#919bb5;font-size:11px;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.ton-shop-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:auto}
.ton-product-copy .ton-shop-link{display:flex;align-items:center;justify-content:space-between;min-height:40px;padding:0 14px;border-radius:12px;color:#fff;text-decoration:none;background:linear-gradient(135deg,#6f3df4,#9837ff);font-size:12px;font-weight:900}
.ton-shop-save{min-height:40px;padding:0 11px;border:1px solid rgba(255,255,255,.12);border-radius:12px;color:#cfd5e6;background:rgba(255,255,255,.055);font-size:11px;font-weight:800}
.ton-shop-save.is-saved{border-color:rgba(116,210,255,.35);color:#74d2ff;background:rgba(88,190,255,.09)}
.ton-shop-arrow{width:42px;height:42px;padding:0;border:1px solid rgba(255,255,255,.12);border-radius:50%;color:#fff;background:rgba(255,255,255,.055);font-size:24px;cursor:pointer}
.ton-shop-saved-summary{margin-top:14px;text-align:center;color:#75809d;font-size:11px}
.ton-shop-saved-summary.is-active{padding:10px 12px;border-radius:12px;background:rgba(88,190,255,.06)}
.ton-shop-admin-link{margin-left:9px;color:#74d2ff;font-size:11px;text-decoration:none}
@media(max-width:760px){
  .ton-product-hub.ton-shopping-section{margin:18px 0;padding:20px 14px;border-radius:22px}
  .ton-product-head{display:block;margin-bottom:18px}
  .ton-product-head h3{font-size:21px}
  .ton-product-disclosure{max-width:none;margin-top:14px}
  .ton-product-slide{margin-top:16px}
  .ton-shop-slider{grid-template-columns:36px minmax(0,1fr) 36px;gap:8px}
  .ton-product-card.ton-shop-card{flex-basis:100%;min-height:142px}
  .ton-product-card .ton-shop-card-inner{grid-template-columns:112px minmax(0,1fr);min-height:142px}
  .ton-product-image{padding:10px}
  .ton-product-image img{max-height:118px}
  .ton-product-copy{padding:13px}
  .ton-product-label{margin-bottom:5px}
  .ton-product-copy>b{font-size:13px;line-height:1.4;-webkit-line-clamp:2}
  .ton-product-copy>p{margin:4px 0 7px;font-size:10px;-webkit-line-clamp:1}
  .ton-shop-actions{grid-template-columns:1fr}
  .ton-product-copy .ton-shop-link{min-height:36px;padding:0 12px}
  .ton-shop-save{display:none}
  .ton-shop-arrow{width:36px;height:36px}
}

/* v6.7.13 — report-card based mobile layout */
.ton-hotel-media .ton-hotel-image-message{
  display:none;
}
.ton-hotel-media.is-unavailable{
  display:grid;
  place-items:center;
  padding:18px;
  text-align:center;
}
.ton-hotel-media.is-unavailable::before{
  display:none!important;
}
.ton-hotel-media.is-unavailable .ton-hotel-image-message{
  display:block;
  color:rgba(226,231,246,.68);
  font-size:12px;
  font-weight:700;
  line-height:1.55;
}

@media(max-width:760px){
  /* All compact disclosures use the same height as 여행 설명 보기. */
  .ton-mobile-disclosure{
    min-height:0!important;
    padding:0!important;
  }
  .ton-mobile-disclosure>summary{
    min-height:52px!important;
    padding:0 16px!important;
    align-items:center!important;
  }
  .ton-mobile-disclosure>.ton-disclosure-body{
    padding:0 16px 16px!important;
  }
  .ton-result-right{
    gap:12px!important;
  }
  .ton-result-right>.ton-mobile-disclosure,
  .ton-airport-card.ton-mobile-disclosure{
    margin:0!important;
  }

  /* Explanation first, action below: prevents one-character vertical text. */
  .ton-premium-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:12px!important;
  }
  .ton-premium-step,
  .ton-final-actions .ton-premium-step{
    display:grid!important;
    grid-template-columns:30px minmax(0,1fr)!important;
    align-items:start!important;
    gap:10px!important;
    width:100%!important;
    min-width:0!important;
    min-height:0!important;
    padding:14px!important;
    box-sizing:border-box!important;
  }
  .ton-premium-copy{
    min-width:0!important;
    width:100%!important;
  }
  .ton-premium-copy>b,
  .ton-premium-copy>span{
    display:block!important;
    width:100%!important;
    white-space:normal!important;
    word-break:keep-all!important;
    overflow-wrap:anywhere!important;
  }
  .ton-premium-action,
  .ton-final-actions .ton-premium-action{
    grid-column:1 / -1!important;
    width:100%!important;
    max-width:none!important;
    min-height:48px!important;
    margin:2px 0 0!important;
    white-space:normal!important;
  }
  .ton-activity-search{
    width:100%!important;
    grid-column:1 / -1!important;
  }
  .ton-final-actions{
    padding-top:0!important;
  }

  /* Product cards now follow the report: full-width image-left/copy-right. */
  .ton-product-hub.ton-shopping-section{
    padding:18px!important;
  }
  .ton-shop-slider{
    grid-template-columns:40px minmax(0,1fr) 40px!important;
    gap:8px!important;
  }
  .ton-product-card.ton-shop-card{
    flex:0 0 100%!important;
    width:100%!important;
    min-height:0!important;
    border-radius:18px!important;
  }
  .ton-product-card .ton-shop-card-inner{
    grid-template-columns:minmax(118px,42%) minmax(0,1fr)!important;
    min-height:220px!important;
  }
  .ton-shop-image{
    min-width:0!important;
    padding:0!important;
    background:#fff!important;
  }
  .ton-product-image img{
    width:100%!important;
    height:100%!important;
    max-height:none!important;
    object-fit:contain!important;
  }
  .ton-shop-copy{
    min-width:0!important;
    padding:14px!important;
  }
  .ton-product-copy>b{
    display:-webkit-box!important;
    min-height:0!important;
    font-size:15px!important;
    line-height:1.45!important;
    word-break:keep-all!important;
    overflow-wrap:anywhere!important;
    -webkit-line-clamp:4!important;
    -webkit-box-orient:vertical!important;
    overflow:hidden!important;
  }
  .ton-shop-price{
    margin-top:10px!important;
    font-size:20px!important;
  }
  .ton-shop-actions{
    margin-top:auto!important;
  }
  .ton-product-copy .ton-shop-link{
    width:100%!important;
    min-height:46px!important;
    box-sizing:border-box!important;
  }
  .ton-shop-placeholder{
    padding:12px!important;
    color:#596077!important;
    font-size:11px!important;
    line-height:1.45!important;
    text-align:center!important;
  }

  .ton-hotel-media{
    aspect-ratio:16/8!important;
  }
}
