/* Atlas Trip. Same tokens as the directory and social plugins; logical properties keep RTL and LTR right. */
.atlas-trip {
	--at-bg: var(--atlas-bg, var(--atlas-t-bg, #F7F4EE));
	--at-surface: var(--atlas-surface, var(--atlas-t-surface, #FFFFFF));
	--at-ink: var(--atlas-ink, var(--atlas-t-ink, #1C2426));
	--at-muted: var(--atlas-muted, var(--atlas-t-muted, #5B6466));
	--at-line: var(--atlas-line, var(--atlas-t-line, #E4DED3));
	--at-line-strong: var(--atlas-line-strong, var(--atlas-t-line-strong, #D9D2C5));
	--at-accent: var(--atlas-accent, var(--atlas-t-accent, #0B6B67));
	--at-accent-soft: var(--atlas-accent-soft, var(--atlas-t-accent-soft, #E3EFEC));
	--at-accent-ink: var(--atlas-accent-ink, var(--atlas-t-accent-ink, #0B4F4C));
	--at-warm: var(--atlas-warm, #9A5B1E);
	--at-warm-soft: #F7EBDD;
	--at-danger: var(--atlas-danger, #9A3B1E);
	--at-radius: var(--atlas-radius, var(--atlas-t-radius, 16px));
	color: var(--at-ink);
	line-height: 1.8;
}
.atlas-trip *, .atlas-trip *::before, .atlas-trip *::after { box-sizing: border-box; }
.atlas-trip [hidden] { display: none !important; }
.atlas-trip a:focus-visible, .atlas-trip button:focus-visible, .atlas-trip input:focus-visible, .atlas-trip select:focus-visible, .atlas-trip summary:focus-visible { outline: 3px solid var(--at-accent); outline-offset: 2px; }
.atlas-trip p, .atlas-trip h2, .atlas-trip h3, .atlas-trip h4 { margin: 0; }
.atlas-trip ol, .atlas-trip ul { list-style: none; margin: 0; padding: 0; }
.at-icon { flex: none; }

.at-column { max-inline-size: 760px; margin-inline: auto; display: flex; flex-direction: column; gap: 16px; }
.at-card { background: var(--at-surface); border: 1px solid var(--at-line); border-radius: var(--at-radius); padding: 16px; }
.at-empty { color: var(--at-muted); text-align: center; padding: 24px 12px; }
.at-note { color: var(--at-muted); font-size: 13px; }
.at-lead { color: var(--at-muted); margin-block-end: 8px; }
.at-loading { text-align: center; color: var(--at-muted); padding: 32px 0; }
.at-gate { text-align: center; display: grid; gap: 12px; }
.at-error { color: var(--at-danger); font-size: 14px; }
.at-link { display: inline-flex; align-items: center; gap: 4px; color: var(--at-accent-ink); font-size: 13px; }

/* Buttons */
.at-btn { font: inherit; font-size: 14px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-block-size: 44px; padding: 8px 18px; border-radius: 12px; border: 1px solid var(--at-line-strong); background: var(--at-surface); color: var(--at-ink); cursor: pointer; text-decoration: none; }
.at-btn:hover { border-color: var(--at-ink); }
.at-btn--primary { background: var(--at-accent); border-color: var(--at-accent); color: #fff; font-weight: 600; }
.at-btn--primary:hover { background: var(--at-accent-ink); border-color: var(--at-accent-ink); color: #fff; }
.at-btn--big { min-block-size: 52px; padding-inline: 28px; font-size: 16px; }
.at-btn--small { min-block-size: 36px; padding: 4px 12px; font-size: 13px; }
.at-btn--danger { color: var(--at-danger); }
.at-btn--quiet { border-color: transparent; color: var(--at-muted); }
.at-btn[disabled] { opacity: .6; cursor: progress; }
.at-iconbtn { font: inherit; inline-size: 36px; block-size: 36px; display: inline-grid; place-items: center; border-radius: 10px; border: 1px solid var(--at-line); background: var(--at-surface); color: var(--at-muted); cursor: pointer; padding: 0; }
.at-iconbtn:hover { color: var(--at-ink); border-color: var(--at-ink); }
.at-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }

/* Form */
.at-form { display: grid; gap: 18px; }
.at-form h2 { font-size: 22px; }
.at-field { display: grid; gap: 6px; align-content: start; border: 0; padding: 0; margin: 0; min-inline-size: 0; }
.at-field > label, .at-field > legend { font-weight: 600; font-size: 14px; padding: 0; }
.at-field small { color: var(--at-muted); font-size: 12px; }
.at-field input[type=text], .at-field input[type=number], .at-field input[type=date], .at-field input[type=search], .at-field select {
	font: inherit; inline-size: 100%; border: 1px solid var(--at-line-strong); border-radius: 12px; padding: 10px 12px; background: var(--at-surface); color: inherit; min-block-size: 44px;
}
.at-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px; }
.at-field--wide { grid-column: 1 / -1; }
.at-check { display: inline-flex; gap: 8px; align-items: center; }
.at-more > summary { cursor: pointer; font-weight: 600; font-size: 14px; padding-block: 6px; }
.at-more[open] > summary { margin-block-end: 8px; }
.at-inline { display: flex; gap: 8px; }
.at-inline input { flex: 1; }

.at-search { position: relative; }
.at-search input { padding-inline-start: 40px !important; }
.at-search__icon { position: absolute; inset-inline-start: 12px; inset-block-start: 50%; transform: translateY(-50%); color: var(--at-muted); pointer-events: none; display: inline-flex; }
.at-suggest { border: 1px solid var(--at-line); border-radius: 12px; background: var(--at-surface); overflow: hidden; }
.at-suggest:empty { display: none; }
.at-suggest li { border-block-end: 1px solid var(--at-line); }
.at-suggest li:last-child { border-block-end: 0; }
.at-suggest button, .at-suggest li > span { font: inherit; display: block; inline-size: 100%; text-align: start; background: none; border: 0; padding: 10px 14px; cursor: pointer; color: inherit; }
.at-suggest button:hover { background: var(--at-accent-soft); }
.at-suggest li:has(button.at-btn) { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-inline-end: 8px; }
.at-suggest li:has(button.at-btn) > span { cursor: default; }
.at-suggest__none { padding: 10px 14px; color: var(--at-muted); }

.at-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.at-option { position: relative; display: block; cursor: pointer; }
.at-option input { position: absolute; opacity: 0; inset: 0; }
.at-option span { display: grid; gap: 2px; padding: 10px 12px; border: 1px solid var(--at-line-strong); border-radius: 12px; background: var(--at-surface); text-align: center; line-height: 1.4; }
.at-option small { color: var(--at-muted); font-size: 12px; }
.at-option input:checked + span { border-color: var(--at-accent); background: var(--at-accent-soft); box-shadow: 0 0 0 1px var(--at-accent) inset; }
.at-option input:focus-visible + span { outline: 3px solid var(--at-accent); outline-offset: 2px; }
@media (max-width: 480px) { .at-options { grid-template-columns: 1fr; } .at-option span { text-align: start; } }

.at-pick { display: flex; flex-wrap: wrap; gap: 8px; }
.at-pick label { position: relative; display: inline-block; cursor: pointer; }
.at-pick input { position: absolute; opacity: 0; inset: 0; }
.at-pick span { display: inline-block; padding: 6px 14px; border: 1px solid var(--at-line-strong); border-radius: 999px; background: var(--at-surface); font-size: 14px; }
.at-pick input:checked + span { background: var(--at-accent-soft); border-color: var(--at-accent); color: var(--at-accent-ink); font-weight: 600; }
.at-pick input:focus-visible + span { outline: 3px solid var(--at-accent); outline-offset: 2px; }

/* Chips */
.at-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.at-chips li { display: inline-flex; align-items: center; gap: 4px; padding: 2px 10px; border-radius: 999px; background: #F0ECE3; color: var(--at-muted); font-size: 12.5px; line-height: 1.7; }
.at-chips li.is-good { background: var(--at-accent-soft); color: var(--at-accent-ink); }
.at-chips li.is-warn { background: var(--at-warm-soft); color: var(--at-warm); }
.at-summary li { background: var(--at-surface); border: 1px solid var(--at-line); color: var(--at-ink); font-size: 13px; padding-inline: 12px; }
.at-x { font: inherit; border: 0; background: none; cursor: pointer; color: inherit; padding: 0 2px; font-size: 16px; line-height: 1; }
.at-badge { display: inline-block; background: var(--at-warm-soft); color: var(--at-warm); font-size: 12px; font-weight: 600; padding: 0 10px; border-radius: 999px; }

/* Plan */
.at-plan { display: grid; gap: 16px; }
.at-result.is-busy, [data-at-result].is-busy { opacity: .55; pointer-events: none; transition: opacity .15s; }
.at-budget { background: var(--at-surface); border: 1px solid var(--at-line); border-radius: var(--at-radius); padding: 16px; display: grid; gap: 6px; }
.at-budget h3 { font-size: 14px; color: var(--at-muted); font-weight: 600; }
.at-budget__total { font-size: 28px; font-weight: 700; line-height: 1.3; }
.at-budget__sub { color: var(--at-muted); font-size: 14px; }
.at-budget__limit { font-size: 14px; font-weight: 600; }
.at-budget__limit.is-ok { color: var(--at-accent-ink); }
.at-budget__limit.is-over { color: var(--at-danger); }
.at-budget__parts { display: grid; gap: 8px; margin-block-start: 8px; }
.at-budget__parts li { display: grid; grid-template-columns: 76px 1fr auto; gap: 10px; align-items: center; font-size: 13px; }
.at-bar { display: block; block-size: 8px; border-radius: 99px; background: #EEE9DF; overflow: hidden; }
.at-bar i { display: block; block-size: 100%; background: var(--at-accent); border-radius: 99px; }
.at-budget__hint { color: var(--at-muted); font-size: 12.5px; }
.at-warnings { background: var(--at-warm-soft); color: var(--at-warm); border-radius: 12px; padding: 10px 14px; display: grid; gap: 4px; font-size: 14px; }

.at-map { block-size: 320px; border-radius: var(--at-radius); border: 1px solid var(--at-line); overflow: hidden; background: #E9E5DB; z-index: 0; }
.at-pin-wrap { background: none; border: 0; }
.at-pin { display: grid; place-items: center; inline-size: 28px; block-size: 28px; border-radius: 50%; background: var(--c, #0B6B67); color: #fff; font-size: 13px; font-weight: 700; border: 2px solid #fff; box-shadow: 0 1px 4px rgba(0, 0, 0, .35); }
.at-pin--meal, .at-pin--stay { inline-size: 22px; block-size: 22px; margin: 3px; font-size: 11px; opacity: .85; }

.at-days { display: grid; gap: 20px; }
.at-day { background: var(--at-surface); border: 1px solid var(--at-line); border-radius: var(--at-radius); padding: 16px; display: grid; gap: 12px; }
.at-day__head h3 { font-size: 18px; }
.at-day__head h3 small { color: var(--at-muted); font-size: 14px; font-weight: 400; }
.at-day__meta { color: var(--at-muted); font-size: 13px; display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.at-items { display: grid; gap: 0; }
.at-item { display: grid; grid-template-columns: 56px 1fr; gap: 12px; padding-block: 12px; border-block-start: 1px dashed var(--at-line); }
.at-item:first-child { border-block-start: 0; }
.at-item__time { display: grid; align-content: start; text-align: center; line-height: 1.4; }
.at-item__time b { font-size: 15px; }
.at-item__time span { color: var(--at-muted); font-size: 12px; }
.at-item__body { display: grid; gap: 4px; min-inline-size: 0; }
.at-item__body h4 { font-size: 16px; display: flex; align-items: center; gap: 8px; line-height: 1.5; }
.at-item__body h4 a { color: inherit; text-decoration: none; }
.at-item__body h4 a:hover { text-decoration: underline; }
.at-item__travel { color: var(--at-muted); font-size: 12.5px; display: flex; align-items: center; gap: 4px; }
.at-item__meta { color: var(--at-muted); font-size: 13px; }
.at-item--meal { background: #FBF8F2; margin-inline: -8px; padding-inline: 8px; border-radius: 10px; border-style: solid; border-color: transparent; }
.at-item--meal h4 { font-size: 15px; font-weight: 500; }
.at-num { flex: none; inline-size: 26px; block-size: 26px; border-radius: 50%; background: var(--c, #0B6B67); color: #fff; display: inline-grid; place-items: center; font-size: 13px; font-weight: 700; }
.at-dot { flex: none; inline-size: 10px; block-size: 10px; border-radius: 50%; background: var(--c, #667); }
.at-controls { display: flex; flex-wrap: wrap; gap: 4px; margin-block-start: 4px; }
.at-night { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; background: #F2F0F8; border-radius: 12px; padding: 10px 14px; color: #3B3560; }
.at-night__body { display: grid; flex: 1; min-inline-size: 160px; line-height: 1.5; }
.at-night a { color: inherit; font-weight: 600; }
.at-hotels { flex-basis: 100%; background: var(--at-surface); border: 1px solid var(--at-line); border-radius: 10px; overflow: hidden; }
.at-hotels li { border-block-end: 1px solid var(--at-line); }
.at-hotels li:last-child { border-block-end: 0; }
.at-hotels button, .at-hotels li:not(:has(button)) { font: inherit; display: block; inline-size: 100%; text-align: start; background: none; border: 0; padding: 8px 12px; cursor: pointer; color: var(--at-ink); }
.at-hotels button:hover { background: var(--at-accent-soft); }

.at-adder { background: var(--at-surface); border: 1px solid var(--at-line); border-radius: var(--at-radius); padding: 16px; display: grid; gap: 10px; }
.at-adder h3 { font-size: 16px; }
.at-adder__lead { color: var(--at-muted); font-size: 13px; }
.at-spare { display: grid; gap: 6px; }
.at-spare li { display: flex; align-items: center; gap: 10px; }
.at-spare li > span:nth-child(2) { flex: 1; }
.at-spare small { color: var(--at-muted); }

/* Save bar and owner box */
.at-savebar, .at-owner { display: grid; gap: 12px; border-color: var(--at-accent); }
.at-owner h2 { font-size: 18px; }
.at-status { color: var(--at-accent-ink); font-size: 13px; min-block-size: 1.2em; }
.at-trip-head { display: grid; gap: 10px; }
.at-trip-meta { color: var(--at-muted); font-size: 14px; }
.at-toolbar { display: flex; flex-wrap: wrap; gap: 8px; }

/* Lists and cards */
.at-tabs { display: flex; gap: 4px; border-block-end: 1px solid var(--at-line); }
.at-tabs button { font: inherit; background: none; border: 0; border-block-end: 3px solid transparent; padding: 10px 16px; cursor: pointer; color: var(--at-muted); font-weight: 600; margin-block-end: -1px; }
.at-tabs button.is-on { color: var(--at-accent-ink); border-block-end-color: var(--at-accent); }
.at-filters { display: flex; flex-wrap: wrap; gap: 12px; margin-block-end: 12px; font-size: 14px; }
.at-filters select { font: inherit; border: 1px solid var(--at-line-strong); border-radius: 10px; padding: 6px 10px; background: var(--at-surface); }
.at-list { display: grid; gap: 14px; }
.at-more-row { text-align: center; margin-block-start: 14px; }
.at-card { overflow: hidden; }
.at-list > .at-card, .at-list > article.at-card { padding: 0; display: grid; grid-template-columns: 1fr; }
.at-card__img { display: block; aspect-ratio: 16 / 7; background: #E9E5DB; }
.at-card__img img { inline-size: 100%; block-size: 100%; object-fit: cover; display: block; }
.at-card__body { padding: 14px 16px 16px; display: grid; gap: 8px; }
.at-card__body h3 { font-size: 17px; }
.at-card__body h3 a { color: inherit; text-decoration: none; }
.at-card__body h3 a:hover { text-decoration: underline; }
.at-card__stops { color: var(--at-muted); font-size: 13px; }
.at-card__by { color: var(--at-muted); font-size: 12.5px; }
.at-card.is-featured { border-color: var(--at-warm); }
@media (min-width: 640px) {
	.at-list > article.at-card { grid-template-columns: 220px 1fr; }
	.at-card__img { aspect-ratio: auto; min-block-size: 140px; }
	.at-list > article.at-card:not(:has(.at-card__img)) { grid-template-columns: 1fr; }
}
.at-on-place .at-list { margin-block-start: 8px; }

.at-toast { position: fixed; inset-block-end: 20px; inset-inline: 0; margin-inline: auto; inline-size: max-content; max-inline-size: calc(100% - 32px); background: #1C2426; color: #fff; padding: 10px 18px; border-radius: 12px; opacity: 0; pointer-events: none; transition: opacity .2s; z-index: 99999; font-size: 14px; }
.at-toast.is-on { opacity: 1; }

/* Print: only the plan */
@media print {
	.at-noprint, .at-savebar, .at-owner, .at-adder, .at-controls, .at-toolbar, .at-map { display: none !important; }
	.atlas-trip { color: #000; }
	.at-day, .at-budget { border-color: #999; break-inside: avoid; }
	.at-item { break-inside: avoid; }
	.at-column { max-inline-size: none; }
}

/* After-trip feedback */
.at-feedback summary { cursor: pointer; font-weight: 700; font-size: 17px; }
.at-help { color: var(--at-muted, #5b6770); font-size: 14px; }
.at-fb-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.at-fb-item, .at-fb-done { display: grid; gap: 6px; padding: 10px 0; border-block-end: 1px solid var(--at-line, #e3e8ec); }
.at-fb-item select, .at-fb-item input { font: inherit; inline-size: 100%; min-block-size: 44px; border: 1px solid var(--at-line-strong, #b9c3cb); border-radius: 10px; padding: 6px 10px; background: #fff; }
.at-fb-done span { color: var(--at-good, #1e6b34); font-size: 14px; }
.at-sr { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Help along the road */
.at-svc { margin-block: 10px; padding: 10px 12px; border: 1px dashed var(--at-line); border-radius: var(--at-radius); background: #FBFAF6; }
.at-svc h4 { margin: 0 0 6px; font-size: 14px; }
.at-svc__chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.at-svc__chips li { padding: 3px 10px; border-radius: 999px; font-size: 13px; background: color-mix(in srgb, var(--c) 12%, #fff); border: 1px solid color-mix(in srgb, var(--c) 40%, #fff); }
.at-svc details { margin-top: 8px; }
.at-svc summary { cursor: pointer; font-size: 13px; color: var(--at-muted); min-block-size: 32px; display: flex; align-items: center; }
.at-svc__list { margin: 6px 0 0; padding: 0; list-style: none; display: grid; gap: 4px; font-size: 13.5px; }
.at-svc__list small { color: var(--at-muted); }
.at-svc__note { margin: 8px 0 0; font-size: 12.5px; color: var(--at-muted); }

/* Crafts and souvenirs from the trip's area */
.at-souvenirs { margin-block: 18px; padding: 12px 14px; border: 1px solid var(--at-line); border-radius: var(--at-radius); background: #FFFDF8; }
.at-souvenirs h3 { margin: 0 0 2px; font-size: 16px; }
