.itinerary-builder,
.itinerary-single,
.itinerary-archive {
    --it-green:#08752c;
    --it-green-dark:#065f25;
    --it-soft:#eef9f2;
    --it-orange:#f58006;
    --it-line:#dfeae4;
    --it-text:#142033;
    --it-muted:#667085;
    color:var(--it-text);
}
.itinerary-builder { padding:28px 0; }
.cbkp-itinerary-admin-wrap .itinerary-builder { padding:18px 0 40px; }
.cbkp-itinerary-admin-wrap .itinerary-builder-head,
.cbkp-itinerary-admin-wrap .itinerary-builder-grid { max-width:none; margin-right:20px; }
.cbkp-itinerary-admin-wrap .itinerary-builder-head { margin-top:14px; }
#adminmenu .menu-icon-itineraries .wp-menu-image img { display:none; }
#adminmenu .menu-icon-itineraries .wp-menu-image:before {
    content:"\f4d7";
    font-family:"Font Awesome 6 Free";
    font-weight:900;
    font-size:17px;
}
.itinerary-builder-head,
.itinerary-archive-hero,
.itinerary-single-hero {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;
    max-width:1320px;
    margin:0 auto 22px;
    padding:28px;
    border:1px solid var(--it-line);
    border-radius:8px;
    background:#fff;
    box-shadow:0 14px 38px rgba(31,127,56,.07);
}
.itinerary-builder-head span,
.itinerary-archive-hero span,
.itinerary-single-hero span {
    display:block;
    margin-bottom:5px;
    color:var(--it-green);
    font-size:12px;
    font-weight:900;
    letter-spacing:.1em;
    text-transform:uppercase;
}
.itinerary-builder h1,
.itinerary-archive h1,
.itinerary-single h1 { margin:0 0 8px; font-size:clamp(30px,4vw,52px); font-weight:900; line-height:1.05; }
.itinerary-builder p,
.itinerary-archive p,
.itinerary-single p { color:var(--it-muted); }
.itinerary-save,
.itinerary-secondary,
.itinerary-map-toolbar button,
.itinerary-result button,
.itinerary-single-actions button,
.itinerary-single-actions .cbkp-favorite-button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:42px;
    padding:9px 14px;
    border:1px solid var(--it-green);
    border-radius:8px;
    background:var(--it-green);
    color:#fff;
    font-weight:900;
    text-decoration:none;
}
.itinerary-secondary,
.itinerary-map-toolbar button,
.itinerary-result button { background:#fff; color:var(--it-green-dark); }
.itinerary-builder-grid {
    max-width:1320px;
    margin:0 auto;
    display:grid;
    grid-template-columns:310px minmax(0,1fr) 380px;
    gap:18px;
    align-items:start;
}
.itinerary-panel,
.itinerary-map-panel,
.itinerary-days,
.itinerary-view-map,
.itinerary-view-day,
.itinerary-card,
.itinerary-disclaimer {
    border:1px solid var(--it-line);
    border-radius:8px;
    background:#fff;
    box-shadow:0 10px 28px rgba(31,127,56,.05);
}
.itinerary-panel { padding:18px; margin-bottom:16px; }
.itinerary-panel h2 { margin:0 0 14px; font-size:20px; font-weight:900; }
.itinerary-panel label { display:grid; gap:6px; margin-bottom:12px; color:#344054; font-size:13px; font-weight:850; }
.itinerary-panel input,
.itinerary-panel textarea,
.itinerary-panel select,
.itinerary-selected-item input {
    width:100%;
    min-height:40px;
    padding:8px 10px;
    border:1px solid var(--it-line);
    border-radius:8px;
    background:#fff;
}
.itinerary-departure-box {
    display:grid;
    gap:10px;
    margin:0 0 12px;
    padding:12px;
    border:1px solid var(--it-line);
    border-radius:8px;
    background:#f8fbf9;
}
.itinerary-departure-box > span {
    color:#344054;
    font-size:13px;
    font-weight:850;
}
.itinerary-departure-options { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.itinerary-departure-options label {
    display:flex;
    align-items:center;
    gap:8px;
    min-height:38px;
    margin:0;
    padding:8px 10px;
    border:1px solid var(--it-line);
    border-radius:8px;
    background:#fff;
    cursor:pointer;
}
.itinerary-departure-options input { width:auto; min-height:auto; }
.itinerary-location-btn { width:100%; }
.itinerary-departure-box small { color:var(--it-muted); font-weight:800; }
.itinerary-priority-routes {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin:0 0 12px;
}
.itinerary-priority-routes button {
    display:flex;
    align-items:center;
    gap:8px;
    min-height:42px;
    padding:9px 10px;
    border:1px solid var(--it-line);
    border-radius:8px;
    background:#fff;
    color:var(--it-text);
    font-weight:850;
    text-align:left;
}
.itinerary-priority-routes button i { color:var(--it-green); }
.itinerary-priority-routes button.is-active {
    border-color:var(--it-green);
    background:var(--it-soft);
    color:var(--it-green-dark);
    box-shadow:0 8px 20px rgba(8,117,44,.08);
}
.itinerary-priority-routes button span {
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.itinerary-two-cols { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.itinerary-type-filter { display:flex; flex-wrap:wrap; gap:7px; margin:10px 0; }
.itinerary-type-filter button,
[data-itinerary-day-tabs] button,
[data-itinerary-view-tabs] button {
    min-height:34px;
    padding:6px 10px;
    border:1px solid var(--it-line);
    border-radius:999px;
    background:#fff;
    color:var(--it-muted);
    font-size:12px;
    font-weight:850;
}
.itinerary-type-filter button.is-active,
[data-itinerary-day-tabs] button.is-active,
[data-itinerary-view-tabs] button.is-active { border-color:var(--it-green); background:var(--it-soft); color:var(--it-green-dark); }
.itinerary-search-results { display:grid; gap:9px; max-height:430px; overflow:auto; }
.itinerary-result { display:grid; grid-template-columns:54px minmax(0,1fr) auto; gap:9px; align-items:center; padding:9px; border:1px solid var(--it-line); border-radius:8px; }
.itinerary-result img { width:54px; height:48px; object-fit:cover; border-radius:7px; background:var(--it-soft); }
.itinerary-result strong,
.itinerary-result span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.itinerary-result span { color:var(--it-muted); font-size:12px; font-weight:750; }
.itinerary-map-panel { min-height:620px; overflow:hidden; }
.itinerary-map-toolbar { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px; border-bottom:1px solid var(--it-line); }
.itinerary-map-toolbar > div { display:flex; flex-wrap:wrap; gap:8px; }
.itinerary-map { height:520px; min-height:420px; background:var(--it-soft); }
.itinerary-summary { display:flex; flex-wrap:wrap; gap:10px; padding:12px; border-top:1px solid var(--it-line); color:var(--it-muted); font-weight:850; }
.itinerary-summary strong { color:var(--it-green-dark); }
.itinerary-route-options {
    padding:12px;
    border-top:1px solid var(--it-line);
    background:#fff;
}
.itinerary-route-options:empty { display:none; }
.itinerary-route-options h3 {
    margin:0 0 10px;
    color:var(--it-text);
    font-size:15px;
    font-weight:900;
}
.itinerary-route-option-group {
    margin-bottom:10px;
    padding:10px;
    border:1px solid var(--it-line);
    border-radius:8px;
    background:#f8fbf9;
}
.itinerary-route-option-group header {
    display:flex;
    justify-content:space-between;
    gap:10px;
    margin-bottom:8px;
}
.itinerary-route-option-group header strong,
.itinerary-route-option-group header span {
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.itinerary-route-option-group header span { color:var(--it-muted); font-size:12px; font-weight:800; }
.itinerary-route-option-group > div {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
}
.itinerary-route-option-group button {
    display:grid;
    gap:2px;
    min-height:48px;
    padding:8px 10px;
    border:1px solid var(--it-line);
    border-radius:8px;
    background:#fff;
    color:var(--it-text);
    text-align:left;
}
.itinerary-route-option-group button b,
.itinerary-route-option-group button span {
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.itinerary-route-option-group button b { font-size:13px; }
.itinerary-route-option-group button span { color:var(--it-muted); font-size:12px; font-weight:800; }
.itinerary-route-option-group button.is-active {
    border-color:var(--it-green);
    background:var(--it-soft);
    box-shadow:0 8px 20px rgba(8,117,44,.08);
}
.itinerary-route-suggestions {
    padding:12px;
    border-top:1px solid var(--it-line);
    background:#fff;
}
.itinerary-route-suggestions:empty { display:none; }
.itinerary-route-suggestions h3 {
    margin:0 0 10px;
    color:var(--it-text);
    font-size:15px;
    font-weight:900;
}
.itinerary-suggestion-filters {
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin:0 0 10px;
}
.itinerary-suggestion-filters button {
    min-height:32px;
    padding:6px 10px;
    border:1px solid var(--it-line);
    border-radius:999px;
    background:#fff;
    color:var(--it-muted);
    font-size:12px;
    font-weight:850;
}
.itinerary-suggestion-filters button.is-active {
    border-color:var(--it-green);
    background:var(--it-soft);
    color:var(--it-green-dark);
}
.itinerary-route-suggestions > div:not(.itinerary-suggestion-filters) {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
}
.itinerary-suggestion {
    display:grid;
    grid-template-columns:46px minmax(0,1fr) auto;
    gap:8px;
    align-items:center;
    padding:8px;
    border:1px solid var(--it-line);
    border-radius:8px;
    background:#f8fbf9;
}
.itinerary-suggestion img { width:46px; height:42px; object-fit:cover; border-radius:7px; background:var(--it-soft); }
.itinerary-suggestion strong,
.itinerary-suggestion span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.itinerary-suggestion span { color:var(--it-muted); font-size:12px; font-weight:750; }
.itinerary-suggestion em {
    display:inline-flex;
    align-items:center;
    gap:6px;
    margin-top:5px;
    padding:4px 8px;
    border-radius:999px;
    background:#fff7ed;
    color:#9a3412;
    font-size:12px;
    font-style:normal;
    font-weight:900;
}
.itinerary-suggestion.is-market {
    border-color:#fb923c;
    background:linear-gradient(180deg,#fff7ed,#fff);
    box-shadow:0 8px 20px rgba(251,146,60,.12);
}
.itinerary-suggestion.is-market strong { color:#9a3412; }
.itinerary-suggestion button { min-height:34px; padding:6px 10px; border:1px solid var(--it-green); border-radius:8px; background:#fff; color:var(--it-green-dark); font-weight:900; }
.itinerary-days { padding:14px; max-height:720px; overflow:auto; }
.itinerary-day { margin-bottom:14px; border:1px solid var(--it-line); border-radius:8px; overflow:hidden; }
.itinerary-day header { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px; background:#f8fbf9; }
.itinerary-day header span,
.itinerary-day header strong,
.itinerary-day header small { display:block; }
.itinerary-day header span { color:var(--it-green); font-size:12px; font-weight:900; text-transform:uppercase; }
.itinerary-day header small { margin-top:3px; color:var(--it-muted); font-size:12px; font-weight:800; }
.itinerary-day header button { border:0; background:transparent; color:var(--it-green-dark); font-weight:900; }
.itinerary-day-list { min-height:70px; padding:10px; display:grid; gap:9px; }
.itinerary-selected-item { display:grid; grid-template-columns:22px minmax(0,1fr) 70px 34px; gap:8px; align-items:center; padding:10px; border:1px solid var(--it-line); border-radius:8px; background:#fff; }
.itinerary-selected-item strong,
.itinerary-selected-item small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.itinerary-selected-item small { color:var(--it-muted); font-size:12px; font-weight:750; }
.itinerary-selected-item em {
    display:inline-flex;
    margin-top:5px;
    padding:3px 7px;
    border-radius:999px;
    background:#fff7ed;
    color:#9a3412;
    font-size:11px;
    font-style:normal;
    font-weight:900;
}
.itinerary-selected-item.is-market {
    border-color:#fb923c;
    background:#fffaf3;
}
.itinerary-selected-item.is-city-return {
    border-color:var(--it-green);
    background:#f3faf5;
}
.itinerary-selected-item.is-city-return strong i { color:var(--it-green-dark); margin-right:4px; }
.itinerary-selected-item .handle { color:var(--it-muted); cursor:grab; }
.itinerary-selected-item button { width:34px; height:34px; border:0; border-radius:8px; background:#fff1f2; color:#b42318; }
.itinerary-selected-item textarea[data-item-note] {
    box-sizing:border-box;
    width:100%;
    margin-top:6px;
    padding:6px 8px;
    border:1px solid var(--it-line);
    border-radius:6px;
    font-size:12px;
    font-family:inherit;
    color:#334155;
    resize:vertical;
    min-height:34px;
}
.itinerary-city-return-btn {
    width:100%;
    margin-top:10px;
    justify-content:center;
}
.itinerary-hint {
    margin:8px 0 0;
    color:var(--it-muted);
    font-size:12px;
    line-height:1.5;
}
.itinerary-custom-actions { display:flex; flex-wrap:wrap; gap:8px; }
.itinerary-custom-actions button { flex:1 1 auto; justify-content:center; }
.itinerary-custom-actions .is-picking { background:#f58006; border-color:#f58006; color:#fff; }
.itinerary-map.is-picking, .itinerary-map.is-picking .leaflet-grab { cursor:crosshair; }
.itinerary-draft-marker b { display:grid; width:30px; height:30px; place-items:center; border:2px solid #fff; border-radius:50%; background:#f58006; color:#fff; box-shadow:0 5px 14px rgba(15,23,42,.3); }
.itinerary-marker b { display:grid; width:34px; height:34px; place-items:center; border:2px solid #fff; border-radius:50%; color:#fff; font-size:12px; box-shadow:0 5px 14px rgba(15,23,42,.25); }
.itinerary-toast { position:fixed; left:50%; bottom:24px; z-index:10090; transform:translateX(-50%) translateY(18px); opacity:0; pointer-events:none; padding:10px 16px; border-radius:999px; background:#111827; color:#fff; font-weight:850; transition:.2s ease; }
.itinerary-toast.is-visible { opacity:1; transform:translateX(-50%) translateY(0); }
.itinerary-login { max-width:560px; margin:40px auto; padding:34px; border:1px solid var(--it-line); border-radius:8px; background:#fff; text-align:center; }
.itinerary-login a { display:inline-flex; margin-top:12px; padding:10px 16px; border-radius:8px; background:var(--it-green); color:#fff; font-weight:900; }
.itinerary-archive { padding:32px 16px; background:linear-gradient(180deg,var(--it-soft),#fff 360px); }
.itinerary-archive-grid { max-width:1180px; margin:0 auto; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.itinerary-card { overflow:hidden; }
.itinerary-card-image { display:block; height:170px; background:var(--it-soft); color:var(--it-green); }
.itinerary-card-image img { width:100%; height:100%; object-fit:cover; display:block; }
.itinerary-card-image span { display:grid; height:100%; place-items:center; font-size:34px; }
.itinerary-card > div { padding:14px; }
.itinerary-card h2 { margin:0 0 8px; font-size:17px; font-weight:900; line-height:1.3; }
.itinerary-card h2 a { color:var(--it-text); }
.itinerary-card-meta { display:flex; flex-wrap:wrap; gap:7px; }
.itinerary-card-meta span { padding:4px 8px; border-radius:999px; background:var(--it-soft); color:var(--it-green-dark); font-size:12px; font-weight:850; }
.itinerary-single { padding:32px 16px; background:linear-gradient(180deg,var(--it-soft),#fff 400px); }
.itinerary-single-hero,
.itinerary-view-grid,
.itinerary-disclaimer { max-width:1180px; margin-left:auto; margin-right:auto; }
.itinerary-single-stats { display:flex; flex-wrap:wrap; gap:9px; margin-top:16px; }
.itinerary-single-stats b { padding:8px 10px; border-radius:8px; background:var(--it-soft); color:var(--it-green-dark); }
.itinerary-budget-pill { background:#fff7ed!important; color:#9a3412!important; }
.itinerary-budget-note { margin-top:8px; color:var(--it-muted); font-size:12.5px; }
.itinerary-single-actions { display:grid; gap:10px; min-width:230px; }
.itinerary-print-button { background:#fff; border:1px solid var(--it-line); color:var(--it-text); }
.itinerary-view-grid { display:grid; grid-template-columns:minmax(0,1fr) 430px; gap:18px; align-items:start; }
.itinerary-view-map { overflow:hidden; position:sticky; top:88px; }
.itinerary-view-days { display:grid; gap:14px; }
.itinerary-view-day { padding:18px; }
.itinerary-view-day h2 { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:0 0 14px; font-size:22px; font-weight:900; }
.itinerary-view-day h2 small { color:var(--it-muted); font-size:13px; font-weight:700; }
.itinerary-day-weather,
.itinerary-day-budget { display:inline-flex; align-items:center; gap:5px; padding:4px 9px; border-radius:999px; background:var(--it-soft); color:var(--it-green-dark); font-size:13px; font-weight:800; }
.itinerary-day-weather em { color:#0369a1; font-style:normal; }
.itinerary-view-item { display:grid; grid-template-columns:58px minmax(0,1fr) auto; gap:12px; align-items:center; padding:12px 0; border-top:1px solid var(--it-line); }
.itinerary-view-item time { color:var(--it-green-dark); font-weight:900; }
.itinerary-view-item strong,
.itinerary-view-item span,
.itinerary-view-item em { display:block; }
.itinerary-view-item span,
.itinerary-view-item em { color:var(--it-muted); font-size:13px; font-style:normal; }
.itinerary-item-price { color:var(--it-green-dark)!important; font-weight:800; }
.itinerary-view-item.is-city-return { background:#f3faf5; border-radius:8px; padding-left:10px; padding-right:10px; }
.itinerary-view-item.is-city-return strong i { color:var(--it-green-dark); margin-right:4px; }
.itinerary-item-note { margin:6px 0 0; padding:8px 10px; background:#f8fafc; border-left:3px solid var(--it-green); border-radius:4px; color:#334155!important; font-size:13px; line-height:1.5; }
.itinerary-item-action { display:inline-flex; align-items:center; gap:6px; padding:8px 12px; border-radius:8px; border:1px solid var(--it-line); color:var(--it-text); text-decoration:none; font-size:13px; font-weight:800; white-space:nowrap; }
.itinerary-item-action.is-primary { border-color:var(--it-green); background:var(--it-green); color:#fff; }
@media (max-width:700px) {
    .itinerary-view-item { grid-template-columns:58px minmax(0,1fr); }
    .itinerary-item-action { grid-column:2 / -1; justify-self:start; margin-top:4px; }
}
.itinerary-view-start {
    margin-bottom:4px;
    border-top:0;
    border-radius:8px;
    background:var(--it-soft);
}
.itinerary-warning { padding:10px 12px; border:1px solid #fed7aa; border-radius:8px; background:#fff7ed; color:#9a3412!important; font-weight:850; }
.itinerary-progress-result { padding:12px; border-top:1px solid var(--it-line); }
.itinerary-progress-result strong,
.itinerary-progress-result b { display:block; }
.itinerary-progress-result b.late { color:#b42318; }
.itinerary-progress-result b.early { color:#0e7490; }
.itinerary-progress-result b.on_time { color:var(--it-green); }
.itinerary-disclaimer { margin-top:18px; padding:16px; }
.itinerary-muted,
.itinerary-empty { color:var(--it-muted); font-weight:800; }
@media(max-width:1100px){
    .itinerary-builder-grid,
    .itinerary-view-grid { grid-template-columns:1fr; }
    .itinerary-view-map { position:static; }
    .itinerary-archive-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:700px){
    .itinerary-builder-head,
    .itinerary-single-hero,
    .itinerary-archive-hero { align-items:flex-start; flex-direction:column; padding:20px; }
    .itinerary-two-cols,
    .itinerary-archive-grid { grid-template-columns:1fr; }
    .itinerary-map { height:390px; }
    .itinerary-selected-item { grid-template-columns:20px minmax(0,1fr) 58px 32px; }
    .itinerary-route-option-group > div { grid-template-columns:1fr; }
    .itinerary-route-suggestions > div:not(.itinerary-suggestion-filters) { grid-template-columns:1fr; }
    .itinerary-priority-routes { grid-template-columns:1fr; }
}

.itinerary-companions,
.itinerary-discussion { max-width:1180px; margin:24px auto 0; padding:22px; border:1px solid var(--it-line); border-radius:14px; background:#fff; }
.itinerary-companions h2,
.itinerary-discussion h2 { margin:0 0 10px; font-size:19px; font-weight:900; }
.itinerary-companion-count { color:var(--it-muted); font-weight:800; }
.itinerary-companion-count b { color:var(--it-green-dark); }
.itinerary-companions form { display:grid; gap:10px; max-width:520px; margin-top:10px; }
.itinerary-companions textarea { border:1px solid var(--it-line); border-radius:8px; padding:10px 12px; font-family:inherit; resize:vertical; }
.itinerary-companions form button { justify-self:start; display:inline-flex; align-items:center; gap:8px; padding:10px 18px; border:0; border-radius:999px; background:var(--it-green); color:#fff; font-weight:900; cursor:pointer; }
.itinerary-companion-login { display:inline-block; margin-top:8px; color:var(--it-green-dark); font-weight:800; }
.itinerary-companion-empty { color:var(--it-muted); }
.itinerary-companion-list { display:grid; gap:12px; margin:0; padding:0; list-style:none; }
.itinerary-companion-list li { display:grid; grid-template-columns:40px minmax(0,1fr); gap:10px; padding-top:12px; border-top:1px solid var(--it-line); }
.itinerary-companion-list li:first-child { padding-top:0; border-top:0; }
.itinerary-companion-list img { width:40px; height:40px; border-radius:999px; object-fit:cover; }
.itinerary-companion-list strong { display:block; }
.itinerary-companion-list p { margin:2px 0; color:var(--it-muted); font-size:13.5px; }
.itinerary-companion-list time { color:var(--it-muted); font-size:12px; }

/* In lộ trình / Xuất PDF: ẩn bản đồ tương tác, nút bấm và điều hướng - chỉ giữ nội dung lịch trình. */
@media print {
    body * { visibility:hidden; }
    .itinerary-single,
    .itinerary-single *:not(.itinerary-print-hide):not(.itinerary-print-hide *) { visibility:visible; }
    .itinerary-single { position:absolute; left:0; top:0; width:100%; padding:0; background:#fff; }
    .itinerary-print-hide { display:none!important; }
    .itinerary-view-grid { grid-template-columns:1fr; }
    .itinerary-view-day { border:1px solid #ddd; break-inside:avoid; page-break-inside:avoid; }
    a[href]::after { content:""; }
}

/* Thư viện ảnh (admin metabox) */
.cbkp-itin-gallery-list{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0;padding:0}
.cbkp-itin-gallery-list li{position:relative;width:92px;height:92px;margin:0;list-style:none;border:1px solid #dcdcde;border-radius:8px;background:#f6f7f7;overflow:hidden;cursor:move}
.cbkp-itin-gallery-list img{width:100%;height:100%;object-fit:cover;display:block}
.cbkp-itin-gallery-list .remove-image{position:absolute;top:4px;right:4px;width:24px;height:24px;min-height:0;padding:0;border:0;border-radius:50%;background:#b32d2e;color:#fff;line-height:24px;cursor:pointer}

/* Thư viện ảnh (trang chi tiết) */
.itinerary-gallery{margin:28px 0}
.itinerary-gallery h2{font-size:22px;margin:0 0 14px}
.itinerary-gallery h2 small{font-size:14px;font-weight:400;color:#667085}
.itinerary-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.itinerary-gallery-tile{padding:0;border:0;border-radius:10px;overflow:hidden;aspect-ratio:4/3;background:#eef2f0;cursor:zoom-in}
.itinerary-gallery-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s}
.itinerary-gallery-tile:hover img{transform:scale(1.05)}
.itinerary-lightbox[hidden]{display:none}
.itinerary-lightbox{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:14px}
.itinerary-lightbox-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.85)}
.itinerary-lightbox-dialog{position:relative;width:min(1100px,100%);max-height:100%;display:grid;grid-template-columns:48px 1fr 48px;gap:8px;align-items:center}
.itinerary-lightbox figure{grid-column:2;margin:0;text-align:center;color:#fff}
.itinerary-lightbox figure img{max-width:100%;max-height:70vh;border-radius:8px;object-fit:contain}
.itinerary-lightbox figcaption{margin-top:8px;font-size:14px}
.itinerary-lightbox-nav{width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.18);color:#fff;font-size:20px;cursor:pointer}
.itinerary-lightbox-nav.is-prev{grid-column:1;grid-row:1}
.itinerary-lightbox-nav.is-next{grid-column:3;grid-row:1}
.itinerary-lightbox figure{grid-row:1}
.itinerary-lightbox-close{position:absolute;top:-6px;right:0;z-index:2;width:40px;height:40px;border:0;border-radius:50%;background:#fff;color:#111;font-size:24px;line-height:1;cursor:pointer}
.itinerary-lightbox-thumbs{grid-column:1/-1;display:flex;gap:8px;overflow-x:auto;padding:4px 2px 8px}
.itinerary-lightbox-thumbs button{flex:0 0 76px;height:58px;padding:2px;border:2px solid transparent;border-radius:8px;background:#fff;overflow:hidden;cursor:pointer}
.itinerary-lightbox-thumbs button.is-active{border-color:#29a349}
.itinerary-lightbox-thumbs img{width:100%;height:100%;object-fit:cover;border-radius:5px;display:block}
.itinerary-lightbox-open{overflow:hidden}
@media(max-width:640px){.itinerary-lightbox-dialog{grid-template-columns:1fr}.itinerary-lightbox figure,.itinerary-lightbox-nav.is-prev,.itinerary-lightbox-nav.is-next{grid-column:1}.itinerary-lightbox-nav{position:absolute;top:30%;z-index:2}.itinerary-lightbox-nav.is-prev{left:4px}.itinerary-lightbox-nav.is-next{right:4px}.itinerary-gallery-grid{grid-template-columns:repeat(3,1fr)}}
