/* Lifecycle roots replace the retired onboarding/chat surfaces as a unit. */
#retiredTravelSurfaces{display:none!important}
.travel-product{max-width:900px;margin:32px auto 56px}.travel-product [hidden]{display:none!important}.tc-hero{text-align:center;margin:34px auto 30px}.tc-hero h1{font-size:38px;line-height:1.3;margin:0 0 12px}.tc-hero p{color:var(--muted);font-size:15px}.tc-primary-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:32px}.tc-primary{min-height:125px;border:1px solid var(--border-soft);border-radius:14px;background:var(--surface-origin);text-align:left;padding:24px;color:var(--sage-deep);font-size:20px;cursor:pointer}.tc-primary:hover{border-color:var(--sage-deep);background:var(--surface-origin)}.tc-primary-value{display:block;margin-top:14px;font-size:13px;color:var(--muted);overflow-wrap:anywhere}.tc-alternative{display:block;text-align:center;color:var(--muted);font-size:12px;margin-bottom:10px}.tc-initial-input{display:flex;max-width:660px;margin:auto;gap:8px;border:1px solid var(--line);border-radius:10px;padding:6px 8px;background:var(--surface-reading)}.tc-initial-input input{border:0;background:transparent;flex:1;min-width:0;padding:8px;outline:none;font-size:14px}.tc-examples{display:grid;gap:8px;max-width:660px;margin:18px auto}.tc-example{background:none;border:0;color:var(--muted);text-align:left;font-size:12px;line-height:1.5;padding:3px 8px;cursor:pointer}.tc-example:hover{color:var(--sage-deep)}.tc-trip-summary{display:flex;gap:10px;align-items:center;font-size:13px;color:var(--muted);margin:0 2px 16px;line-height:1.7}.tc-summary-edit{border:0;background:none;color:var(--sage-deep);cursor:pointer}.tc-head h3{font-family:inherit;font-size:22px}.tc-head p{max-width:460px;line-height:1.6}.tc-actions{flex-wrap:wrap}.tc-destination-row{grid-template-columns:48px minmax(0,1fr) auto auto auto auto auto}.tc-delete{border:0;background:none;color:var(--muted);font-size:11px;padding:8px;cursor:pointer}.tc-name,.tc-day-theme{font-family:inherit}.tc-day-theme{font-size:15px}.tc-day-summary{font-size:12px;line-height:1.6}.tc-guide{background:none;border:0;padding:0;color:var(--muted);font-size:12px;margin:0 0 24px}.tc-messages,.tc-initial-dialogue{font-size:13px;line-height:1.7;max-width:760px;margin:20px auto}.tc-user-message{margin-left:12%;background:var(--surface-origin);padding:12px 16px;border-radius:12px;white-space:pre-wrap}.tc-assistant-message{color:var(--muted)}.tc-clarify{font-size:15px;color:var(--ink)}.tc-clarify-options{display:flex;gap:8px;flex-wrap:wrap}.tc-status{font-size:12px;color:var(--muted);margin-top:14px;display:flex;gap:10px;align-items:center}.tc-field{display:grid;gap:7px;font-size:12px;color:var(--muted)}.travel-product button:disabled{opacity:.5;cursor:default}.travel-product button:focus-visible,.travel-product input:focus-visible{outline:2px solid var(--sage-deep);outline-offset:3px}.tc-planning>.mini-input{display:flex;gap:8px;border:1px solid var(--line);border-radius:10px;padding:9px;background:var(--surface-reading)}.tc-planning>.mini-input input{flex:1;min-width:0;border:0;outline:0;background:none}.tc-canvas .tc-origin{position:absolute!important;visibility:hidden!important;pointer-events:none!important}
/* Preserve the existing responsive breakpoint and touch targets. */
@media(max-width:760px){.travel-product{margin-top:18px}.tc-primary-controls{gap:7px}.tc-primary{padding:14px 10px;min-height:112px;font-size:15px}.tc-hero h1{font-size:28px}.tc-destination-row{grid-template-columns:44px minmax(0,1fr) 36px 42px 36px 36px}.tc-destination-row>.tc-delete{grid-column:2/-1;text-align:right}.tc-head{display:block}.tc-actions{margin-top:12px}.tc-activity{grid-template-columns:42px minmax(0,1fr)}.tc-activity>.tc-delete{grid-column:2}}
/* Draft facts are read-only; preferences are a separate input. */
.tc-draft-summary{padding:14px 18px;border:1px solid var(--line);border-radius:10px;background:var(--surface-reading);color:var(--text-muted);font-size:14px;line-height:1.7;overflow-wrap:anywhere}.tc-initial-input{display:flex;gap:10px}.tc-initial-input input{flex:1;min-width:0;color:var(--ink)}.tc-initial>.tc-meta{line-height:1.6}.tc-tabs{gap:6px;margin:12px 0}.tc-tabs [aria-selected=true]{background:var(--sage-deep);color:var(--surface-reading)}.tc-field-error{color:var(--state-error)}.tc-modal-body>.tc-field{margin-top:10px}.tc-grid{max-height:240px;overflow:auto}.tc-search{min-width:0}
.travel-product[data-lifecycle=planning]{max-width:1100px}.tc-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,290px);gap:18px;align-items:start}.tc-main{min-width:0}.tc-main>.mini-input{display:flex;gap:8px;border:1px solid var(--line);border-radius:10px;padding:9px;background:var(--surface-reading)}.tc-main>.mini-input input{min-width:0;flex:1;border:0}.tc-decisions{border:1px solid var(--line);border-radius:12px;padding:14px;font-size:12px;color:var(--muted);position:sticky;top:18px;min-width:0;background:var(--surface-secondary)}.tc-decision-head h3{margin:0 0 5px;color:var(--ink);font:500 18px 'Playfair Display'}.tc-decision-head p{margin:0 0 12px;line-height:1.5}.tc-drag-hint{margin:0 0 12px;padding:8px 10px;border-radius:8px;background:var(--surface-interactive);color:var(--ink);font-size:12px;line-height:1.5;overflow-wrap:anywhere}.tc-decision-category{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.tc-decision-category>summary{cursor:pointer;color:var(--ink);font-size:14px;font-weight:600;line-height:1.6}.tc-decision-section{display:grid;gap:10px;margin-top:10px}.tc-candidate-group{display:grid;gap:8px}.tc-candidate-group+ .tc-candidate-group{padding-top:10px;border-top:1px solid var(--line)}.tc-candidate-group h5{margin:0;color:var(--muted);font-size:11px}.tc-candidate{display:grid;gap:8px;padding:9px;border:1px solid var(--line);border-radius:10px;background:var(--surface-reading)}.tc-candidate-top{display:grid;grid-template-columns:44px minmax(0,1fr);gap:7px;align-items:start}.tc-candidate-copy{min-width:0}.tc-candidate-copy strong{display:block;color:var(--ink);font-size:13px;overflow-wrap:anywhere}.tc-candidate-copy p{margin:5px 0 0;line-height:1.5;overflow-wrap:anywhere}.tc-candidate-reason.is-compact{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden}.tc-candidate-matches{color:var(--udon-green)}.tc-candidate-used{color:var(--udon-blue);font-weight:600}.tc-candidate-actions,.tc-empty-actions{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.tc-candidate>.tc-btn{padding:6px 9px}.tc-link-button{border:0;background:none;color:var(--udon-blue);padding:5px 2px;font-size:11px;cursor:pointer;text-align:left}.tc-candidate.tc-origin{opacity:.3}.tc-empty-candidates{margin:2px 0;line-height:1.55}.tc-stay-summary,.tc-day-stay{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;color:var(--ink);font-size:11px;line-height:1.5}.tc-stay-summary{margin:0;padding:9px 14px;border-top:1px solid var(--line);background:var(--surface-interactive)}.tc-day-stay{margin:8px 0 2px;padding:8px 10px;border-radius:8px;background:var(--surface-interactive)}.tc-stay-summary .tc-delete,.tc-day-stay .tc-delete{font-size:17px;padding:4px 7px}.tc-lodging-overrides{padding:7px 14px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}.tc-planning-basis{margin:0;padding:8px 14px;border-top:1px solid var(--line);color:var(--muted);font-size:11px;line-height:1.5}.tc-duration-conflict{margin-bottom:12px;padding:13px 15px;border:1px solid var(--border-interactive);border-radius:10px;background:var(--surface-interactive);font-size:13px;line-height:1.6}.tc-duration-conflict p{margin:0}.tc-conflict-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.tc-drop-target{box-shadow:inset 0 0 0 3px var(--border-interactive)!important}.tc-revisions{margin-top:18px;border-top:1px solid var(--line);padding-top:12px;font-size:11px;color:var(--muted);min-width:0}.tc-revisions>summary,.tc-conversation>summary{cursor:pointer;line-height:1.6}.tc-revision-list{max-height:30vh;overflow:auto;overscroll-behavior:contain}.tc-revision{padding:10px 0;border-bottom:1px solid var(--line);line-height:1.6;overflow-wrap:anywhere}.tc-revision button{font-size:11px;padding:4px 7px;margin-top:5px}.tc-conversation{margin-top:14px}.tc-messages{max-height:30vh;overflow:auto;font-size:12px;margin:10px 0}.tc-user-message{margin-left:0}.tc-clarification{margin-bottom:12px}
[data-view=read] .tc-destination-row{grid-template-columns:minmax(0,1fr) auto;padding:18px}[data-view=read] .tc-day-head{grid-template-columns:1fr auto;padding:12px}[data-view=read] .tc-activity{display:block;padding:10px 12px}[data-view=read] .tc-day{break-inside:avoid}.tc-print-help{font-size:11px;color:var(--muted);line-height:1.5}.tc-status{flex-wrap:wrap}
@media(max-width:760px){.tc-workspace{grid-template-columns:minmax(0,1fr)}.tc-decisions{position:static}.tc-revision-list{max-height:240px}.tc-initial-input{flex-wrap:wrap}.tc-initial-input input{flex-basis:100%}.tc-initial-input>button{width:100%}}
@media print{#retiredTravelSurfaces,.modal-backdrop,.profile-drawer,#feedbackButton,.tc-actions,.tc-status,.tc-print-help,.tc-decisions,.tc-guide,.tc-main>.mini-input,.tc-clarification,.tc-duration-conflict{display:none!important}.travel-product{max-width:none;margin:0}.tc-workspace{display:block}.tc-canvas{border:0;overflow:visible}.tc-destination{overflow:visible;break-inside:auto;margin-bottom:16px}.tc-day{break-inside:avoid}.tc-days{display:grid!important}.tc-handle,.tc-step,.tc-delete{display:none!important}.tc-destination-row{display:flex}.tc-activity{display:block}.tc-head{break-after:avoid}}
/* Color roles: green identity, blue action, sand content, mist context. */
:root{--accent-warm:#b85c38;--accent-warm-hover:#9e4c2d;--accent-warm-text:#8a4227;--udon-green:#41664f;--udon-blue:#416782;--udon-blue-hover:#34546d;--surface-warm:#f5f3ee;--surface-reading:#fffefa;--surface-destination:#e5ede3;--surface-day:#fffefa;--surface-activity:#f3ebdd;--surface-secondary:#eeecf4;--surface-origin:#edf0e7;--surface-interactive:#e7eff4;--surface-selected:#dbe9f3;--text-primary:#303d39;--text-muted:#616b65;--border-soft:#d4d9cf;--border-interactive:#789bb4;--text-on-accent:#fff;--state-error:#943f35;--ink:var(--text-primary);--muted:var(--text-muted);--sage-deep:var(--udon-green);--line:var(--border-soft);--cream:var(--surface-warm)}
body{background:var(--surface-warm);color:var(--text-primary)}
.tc-primary{border-color:var(--border-soft);color:var(--udon-green);background:var(--surface-origin)}
.tc-primary:nth-child(2){background:var(--surface-interactive)}.tc-primary:nth-child(3){background:var(--surface-activity)}
.tc-primary:hover{border-color:var(--border-interactive);box-shadow:0 3px 12px rgb(48 61 57 / 7%)}
.tc-primary-value,.tc-draft-summary{color:var(--text-muted)}.tc-draft-summary,.tc-canvas,.tc-initial-input,.tc-main>.mini-input{background:var(--surface-reading)}
.tc-canvas{border-color:var(--border-soft)}.tc-destination,.tc-destination-row{background:var(--surface-destination)}.tc-day{background:var(--surface-day)}.tc-activity{background:var(--surface-activity);border-color:var(--border-soft)}
.tc-decisions,.tc-connector{background:var(--surface-secondary)}.tc-user-message{background:var(--surface-origin)}
.tc-btn{border-color:var(--border-soft);color:var(--text-primary);background:var(--surface-reading)}
.tc-btn.primary{background:var(--udon-blue);border-color:var(--udon-blue);color:var(--text-on-accent)}
.tc-btn.primary:hover{background:var(--udon-blue-hover);border-color:var(--udon-blue-hover)}
.tc-tabs [aria-selected=true],.tc-grid [aria-pressed=true],.tc-modal-body [aria-pressed=true]{background:var(--surface-selected);color:var(--text-primary);border-color:var(--border-interactive);box-shadow:inset 0 0 0 1px var(--border-interactive)}
.tc-btn:not(.primary):hover{background:var(--surface-interactive);border-color:var(--border-interactive)}
.travel-product :is(button,input,select):focus-visible,.canvas-modal :is(button,input,select):focus-visible{outline:3px solid var(--udon-blue);outline-offset:3px}
.canvas-modal button:disabled,.travel-product button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}
.tc-origin-or{text-align:center;color:var(--text-muted);font-size:12px;margin:14px 0}
.tc-connector{margin:14px 0;padding:12px 16px;border:1px solid var(--border-soft);border-radius:10px;color:var(--text-primary);font-size:12px;line-height:1.7;overflow-wrap:anywhere}.tc-connector .tc-meta{margin:6px 0 0}.tc-field-error{color:var(--state-error)}
.tc-period-chips{display:flex;flex-wrap:wrap;gap:8px}.tc-period-chips .tc-btn{min-height:36px}.tc-period-chips [aria-pressed=true]{background:var(--surface-selected);border-color:var(--border-interactive);color:var(--text-primary)}
.tc-candidate-ghost{height:auto!important}.tc-status.is-processing{position:sticky;bottom:12px;z-index:20;margin-top:18px;padding:13px 15px;border:1px solid var(--border-interactive);border-radius:10px;background:linear-gradient(110deg,var(--surface-interactive) 25%,var(--surface-reading) 45%,var(--surface-interactive) 65%);background-size:220% 100%;box-shadow:0 8px 24px rgb(48 61 57 / 12%);animation:tc-processing 2.2s ease-in-out infinite;color:var(--ink)}.tc-processing{display:grid;gap:3px;font-size:13px}.tc-processing strong{font-size:15px;font-weight:600}.tc-processing span{color:var(--muted)}@keyframes tc-processing{0%,100%{background-position:100% 0}50%{background-position:0 0}}@media(prefers-reduced-motion:reduce){.tc-status.is-processing{animation:none}}
/* The hidden attribute always wins inside the product (several layout rules set display explicitly). */
.travel-product [hidden],.tc-guide-backdrop[hidden]{display:none!important}
@media(max-width:760px){
 .travel-product,.tc-planning,.tc-workspace,.tc-main,.tc-canvas,.tc-list,.tc-destination,.tc-days,.tc-day,.tc-activity{min-width:0;max-width:100%}
 .tc-trip-summary{flex-wrap:wrap;overflow-wrap:anywhere}
 .tc-candidate-actions .tc-btn,.tc-empty-actions .tc-btn,.tc-candidate>.tc-btn{min-height:44px;padding:9px 12px}.tc-link-button{min-height:44px;padding:9px 4px}
 .tc-main>.mini-input{position:sticky;bottom:max(8px,env(safe-area-inset-bottom));z-index:16;margin:12px 0 4px;padding:8px;background:var(--surface-reading);box-shadow:0 8px 28px rgb(35 45 41 / 16%)}
 .tc-main>.mini-input input{min-height:44px;font-size:16px}.tc-main>.mini-input button{min-width:44px;min-height:44px}
 .tc-status.is-processing{bottom:calc(72px + env(safe-area-inset-bottom));z-index:19}
 .travel-product button,.tc-summary-edit{min-height:44px}.tc-step{min-width:44px;min-height:44px}.tc-delete{min-width:44px;min-height:44px}
 .tc-stay-summary,.tc-day-stay{font-size:12px;overflow-wrap:anywhere}.tc-drop-target{background:var(--surface-selected)!important;box-shadow:inset 0 0 0 4px var(--border-interactive)!important}
 .tc-revision-list,.tc-messages{max-height:34dvh}.tc-user-message{margin-left:0}
}
@media(max-width:540px){
 .travel-product{margin:14px auto 44px}.tc-hero{margin:24px auto 22px}.tc-hero h1{font-size:27px}
 .tc-primary-controls{grid-template-columns:minmax(0,1fr);gap:10px;margin-bottom:22px}.tc-primary{min-height:92px;padding:16px;font-size:17px}.tc-primary-value{margin-top:8px}
 .tc-initial-input{padding:8px}.tc-initial-input input{min-height:44px;font-size:16px}.tc-initial-input>button{min-height:44px}
 .tc-period-chips{gap:7px}.tc-period-chips .tc-btn{min-width:calc(33.333% - 5px);min-height:44px;padding:8px 6px}
 .tc-head{padding:13px}.tc-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.tc-actions .tc-btn{white-space:normal}
 .tc-list{padding:7px}.tc-destination-row{gap:3px;padding:7px 4px}.tc-name{font-size:15px;overflow-wrap:anywhere}
 .tc-days{padding:7px}.tc-day-head{padding:4px}.tc-day-theme{font-size:15px}.tc-activities{padding:0 6px 7px}.tc-activity{padding-right:3px;overflow-wrap:anywhere}
}
/* Pending days and light inline editing reuse the existing tokens. */
.tc-day-theme.is-pending{color:var(--muted);font-style:italic}
.tc-editable{cursor:text;border-radius:4px}.tc-editable:hover,.tc-editable:focus-visible{background:var(--surface-selected);outline:none}
.tc-inline-input{width:100%;min-width:0;border:1px solid var(--border-interactive);border-radius:6px;background:var(--surface-reading);color:inherit;font:inherit;padding:4px 6px}
.tc-day-head:has(>.tc-day-remove){grid-template-columns:48px minmax(0,1fr) auto auto}
.tc-day-remove{display:inline-block}
.tc-add-activity{margin:4px 0 0 10px}
.tc-day-pending-hint,.tc-day-busy{padding:0 12px;margin:4px 0}
/* Insertion slots while placing a candidate, and the read-only trip check. */
.tc-drop-slot{display:none}
body.tc-placing .tc-drop-slot{display:block;margin:6px 0;padding:9px 12px;border:1px dashed var(--border-interactive);border-radius:10px;color:var(--muted);font-size:12px;text-align:center}
body.tc-placing .tc-drop-slot.tc-drop-target{background:var(--surface-selected);color:var(--text-primary)}
.tc-review{border:1px solid var(--border-soft);border-radius:12px;background:var(--surface-reading);padding:12px 14px;margin:12px 0;font-size:13px}
.tc-review-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.tc-review-close{border:0;background:none;color:var(--muted);font-size:17px;padding:4px 7px;cursor:pointer}
.tc-review-notes{margin:8px 0 0;padding-left:18px;line-height:1.7}
/* Date window bar and one-time planning hint reuse the existing tokens. */
.tc-window-state{margin:0;font-size:13px}
.tc-planning-hint{display:flex;gap:10px;align-items:center;justify-content:space-between;margin:12px 0;padding:8px 12px;border-radius:10px;background:var(--surface-selected);font-size:12px;color:var(--text-primary)}
.tc-confirm-message{line-height:1.7;margin:4px 0 14px}
/* Progressive first proposal: a quiet per-stop marker while its days are written. */
.tc-filling{margin-left:10px;font-size:12px}
.tc-candidate-group{display:block}.tc-candidate-group[open]>*+*{margin-top:8px}.tc-candidate-group-title{cursor:pointer;color:var(--ink);font-size:12px;font-weight:600;line-height:1.6;overflow-wrap:anywhere}.tc-candidate-group-meta{float:right;margin-left:8px;color:var(--muted);font-weight:400;font-size:11px}.tc-candidate-source{margin:0;color:var(--muted);font-size:11px;line-height:1.5}.tc-candidate-links{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center}
/* Transport between stops: a quiet line in the gap between two stop cards, a drop target while a transport card is dragged. */
.tc-transfer{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:6px 0 6px 22px;padding:6px 12px;border-left:2px dotted var(--border-soft);font-size:12px;color:var(--muted);min-height:30px}
.tc-transfer .tc-meta,.tc-transport-line .tc-meta{margin:0}
.tc-transport-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-top:6px}
.tc-transport-chip{display:inline-flex;align-items:center;gap:8px;padding:3px 6px 3px 10px;border:1px solid var(--border-interactive);border-radius:999px;background:var(--surface-interactive);color:var(--text-primary);font-size:12px}
.tc-transport-chip .tc-delete{padding:2px 6px;font-size:14px}
.tc-transport-period{border:1px solid var(--border-soft);border-radius:8px;background:var(--surface-reading);color:var(--text-primary);font:inherit;font-size:12px;padding:2px 4px;max-width:150px}
.tc-transport-drop{display:none}
body.tc-placing-transport [data-transport]{outline:1px dashed var(--border-interactive);outline-offset:2px;border-radius:10px}
body.tc-placing-transport .tc-transport-drop{display:inline;color:var(--udon-blue)}
body.tc-placing-transport .tc-transport-empty{display:none}
.tc-transfer.tc-drop-target,.tc-connector.tc-drop-target{background:var(--surface-selected)!important;box-shadow:inset 0 0 0 2px var(--border-interactive)!important}
.tc-transport-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.tc-transport-card{padding:8px 10px}.tc-transport-card .tc-candidate-top{align-items:center}.tc-transport-card strong{font-size:13px;font-weight:600}
.tc-transport-help{margin:0 0 8px}
body.tc-dragging .tc-list>.tc-transfer{opacity:.45}
body.tc-placing-transport .tc-list>.tc-transfer{opacity:1}
/* This trip's own edits shaping suggestions: one plain sentence and a way to turn it off. */
.tc-adaptation{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;font-size:13px;line-height:1.6}
.tc-review .tc-adaptation{margin-top:10px;padding-top:8px;border-top:1px solid var(--border-soft);color:var(--muted)}
@media print{.tc-transport-drop,.tc-transport-chip .tc-delete{display:none!important}.tc-transport-period{border:0;appearance:none}}
/* Travel mode guidance: activity details and the day guide open in a side panel (desktop) or a bottom sheet (phone). */
.travel-product[data-lifecycle=final] .tc-workspace{grid-template-columns:minmax(0,1fr)}.travel-product[data-lifecycle=final] .tc-workspace.has-guide{grid-template-columns:minmax(0,1fr) minmax(300px,380px)}
.tc-guide-panel{position:sticky;top:16px;max-height:calc(100vh - 32px);overflow:auto;border:1px solid var(--border-soft);border-radius:14px;background:var(--surface-reading);padding:14px 16px 18px;font-size:13px;line-height:1.7}
.tc-guide-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;border-bottom:1px solid var(--border-soft);padding-bottom:10px;margin-bottom:6px}
.tc-guide-head h3{margin:2px 0 0;font-size:17px;line-height:1.4}.tc-guide-head .tc-meta{margin:0}
.tc-guide-close{border:0;background:none;color:var(--muted);font-size:20px;line-height:1;padding:4px 8px;cursor:pointer}
.tc-guide-section{margin:14px 0 0}.tc-guide-section h4{margin:0 0 4px;font-size:13px;font-weight:600;color:var(--sage-deep)}
.tc-guide-section.is-stale .tc-guide-text{opacity:.55}
.tc-guide-text{margin:0;white-space:pre-line;overflow-wrap:anywhere}.tc-guide-text.is-empty{color:var(--muted);font-style:italic}
.tc-guide-text.tc-editable{cursor:text;border-radius:6px}.tc-guide-text.tc-editable:hover,.tc-guide-text.tc-editable:focus{background:var(--surface-interactive);outline:none}
.tc-guide-source{display:inline-block;margin-top:4px;font-size:11px;color:var(--muted)}.tc-guide-source.is-own{color:var(--udon-green)}
.tc-guide-checklist{margin:0;padding-left:0;list-style:none}.tc-guide-checklist li::before{content:"\2610\00a0";color:var(--muted)}
.tc-guide-status{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;margin:10px 0 0;padding:8px 10px;border-radius:8px;background:var(--surface-secondary);font-size:12px}
.tc-guide-progress{margin:10px 0 0}
.tc-guide-textarea{width:100%;box-sizing:border-box;border:1px solid var(--border-interactive);border-radius:8px;padding:8px;font:inherit;font-size:13px;background:var(--surface-reading);color:var(--text-primary);resize:vertical}
.tc-guide-edit .tc-meta{margin:4px 0 0}
.tc-guide-more{margin-top:14px}
.tc-guide-tag{margin-left:8px;padding:1px 8px;border-radius:999px;background:var(--surface-interactive);color:var(--udon-blue);font-size:11px}.tc-guide-tag.is-stale{background:var(--surface-activity);color:var(--state-error)}
.tc-day-guide{margin-left:auto}
.tc-guide-tag-open{margin-left:auto;border:1px solid transparent;font:inherit;font-size:11px;cursor:pointer}.tc-guide-tag-open:hover,.tc-guide-tag-open:focus-visible{border-color:var(--border-interactive);background:var(--surface-selected)}
.travel-product[data-lifecycle=planning] .tc-workspace.has-guide{grid-template-columns:minmax(0,1fr) minmax(300px,360px)}
.tc-guide-preview-note{margin:16px 0 0;padding-top:10px;border-top:1px solid var(--border-soft)}
.tc-activity-open{display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline;width:100%;border:0;background:none;padding:0;color:inherit;font:inherit;text-align:left;cursor:pointer}
.tc-activity-open:hover,.tc-activity-open:focus-visible{color:var(--udon-blue)}.tc-activity-meta{font-size:11px}
.tc-guide-backdrop{display:none}
@media(max-width:760px){
 .travel-product[data-lifecycle] .tc-workspace.has-guide{grid-template-columns:minmax(0,1fr)}
 .tc-guide-panel{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:40;max-height:78vh;border-radius:16px 16px 0 0;border-bottom:0;box-shadow:0 -10px 30px rgb(48 61 57 / 18%);padding-bottom:calc(18px + env(safe-area-inset-bottom))}
 .tc-guide-backdrop:not([hidden]){display:block;position:fixed;inset:0;z-index:39;border:0;background:rgb(48 61 57 / 28%)}
 body.tc-guide-open{overflow:hidden}
}
@media print{.tc-guide-panel,.tc-guide-backdrop,.tc-day-guide{display:none!important}}
.tc-guide-intro{flex-wrap:wrap;align-items:flex-start;line-height:1.6}.tc-guide-intro-actions{display:flex;gap:12px;flex-shrink:0}
/* Printed itinerary (#tcPrint): its own document, never shown on screen. Hierarchy comes from weight, size and
   grey level first, so it reads the same in black and white; the Udon tones only add a second cue in colour. */
#tcPrint{display:none}
@media print{
 @page{size:A4;margin:14mm 14mm 15mm}
 body.tc-print-doc{background:#fff!important}
 body.tc-print-doc>*:not(#tcPrint){display:none!important}
 body.tc-print-doc #tcPrint{display:block}
 .up-doc{--p-ink:#1f2b26;--p-muted:#56605a;--p-soft:#858c87;--p-green:#3b5e48;--p-blue:#3a5c75;--p-sand:#f3ebdd;--p-sand-line:#d9cbb0;--p-mist:#edf1ec;--p-blue-mist:#eef3f6;--p-rule:#cdd3ca;color:var(--p-ink);font:10pt/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans","Noto Sans CJK SC","Microsoft YaHei",sans-serif;-webkit-print-color-adjust:exact;print-color-adjust:exact}
 .up-doc h1,.up-doc h2,.up-doc h3,.up-doc h4,.up-doc p{margin:0;font-family:inherit;letter-spacing:normal;color:inherit}
 /* The cover page: the trip's picture across the page's width, a band below it in the picture's tone. */
 .up-art-cover{display:block;height:262mm;overflow:hidden;break-inside:avoid;break-after:page;page-break-after:always;-webkit-print-color-adjust:exact;print-color-adjust:exact}
 .up-art-cover img{display:block;width:100%;height:226mm;object-fit:cover;object-position:50% 40%}
 .up-art-band{box-sizing:border-box;height:36mm;overflow:hidden;position:relative;padding:7mm 9mm 6mm;background:#f6f0e4;color:#2c3a35}
 .up-art-cover.is-night .up-art-band{background:#1f2a38;color:#f6f0e4}
 .up-art-band h1{margin:0;font:700 20pt/1.2 Georgia,'Songti SC','Noto Serif CJK SC',serif}
 .up-art-band p{margin:2mm 0 0;font-size:10.5pt;opacity:.8}
 .up-art-brand{position:absolute;right:9mm;bottom:5mm;font:italic 600 11pt Georgia,serif;color:#3f6656}
 .up-art-cover.is-night .up-art-brand{color:#f6f0e4}
 .up-cover{padding-bottom:9pt;margin-bottom:12pt;border-bottom:1.5pt solid var(--p-ink)}
 .up-brand{font-size:8.5pt;font-weight:700;letter-spacing:.18em;color:var(--p-green)}
 .up-cover h1{margin:3pt 0 2pt;font-size:21pt;line-height:1.25}
 .up-meta{color:var(--p-muted);font-size:10pt}
 .up-cover.has-qr{position:relative;padding-right:32mm;min-height:27mm}
 .up-qr{position:absolute;right:0;top:0;width:26mm;text-align:center}
 .up-qr-code{display:block;width:22mm;height:22mm;margin:0 auto}
 .up-qr-caption{display:block;margin-top:2pt;font-size:6.5pt;line-height:1.3;color:var(--p-muted)}
 .up-section-title{margin:0 0 5pt;font-size:8.5pt;font-weight:700;letter-spacing:.12em;color:var(--p-green)}
 .up-table{width:100%;border-collapse:collapse;font-size:9pt;line-height:1.5}
 .up-table td{padding:4pt 6pt;border-bottom:.5pt solid var(--p-rule);vertical-align:top}
 .up-table tr{break-inside:avoid}
 .up-stop-row td{padding:4pt 6pt;background:var(--p-mist);font-weight:700;border-bottom:0}
 .up-day-cell{width:17%;white-space:nowrap;font-weight:700;color:var(--p-green)}.up-day-cell .up-date{display:block;font-weight:400}
 .up-theme-cell{width:31%;font-weight:600}.up-acts-cell{color:var(--p-muted)}
 .up-travel{break-inside:avoid-page;margin:10pt 0;padding:4pt 8pt 6pt;border:.75pt solid var(--p-blue);border-radius:6pt;background:#f1f4f9}.up-travel .up-leg{margin:4pt 0 6pt;break-after:avoid}
 .up-leg{display:flex;flex-wrap:wrap;gap:3pt 10pt;align-items:baseline;margin:10pt 0;padding:5pt 9pt;border:.75pt dashed var(--p-blue);border-radius:4pt;font-size:9pt;color:var(--p-blue);break-inside:avoid}
 .up-leg-route{font-weight:700}.up-leg-meta{color:var(--p-muted)}
 .up-stop{margin-top:14pt}
 .up-stop-head{display:flex;justify-content:space-between;align-items:baseline;gap:10pt;padding:6pt 10pt;background:var(--p-mist);border-left:3pt solid var(--p-green);font-size:14pt;line-height:1.3;break-after:avoid}
 .up-stop-head span{font-size:9pt;font-weight:400;color:var(--p-muted)}
 .up-stay{margin-top:4pt;padding:0 10pt 0 13pt;font-size:9pt;color:var(--p-muted);break-after:avoid}
 .up-date{font-size:8.5pt;color:var(--p-muted)}
 .up-day{margin-top:11pt;padding-top:9pt;border-top:.75pt solid var(--p-rule)}
 .up-stop-head+.up-day,.up-stay+.up-day{border-top:0;padding-top:4pt}
 .up-day-top{break-inside:avoid}
 .up-day-head{display:flex;gap:8pt;align-items:baseline}
 .up-day-no{padding:1pt 7pt;border-radius:3pt;background:var(--p-green);color:#fff;font-size:8.5pt;font-weight:700}
 .up-day h3{margin:4pt 0 1pt;font-size:12.5pt;line-height:1.4}
 .up-summary{margin-bottom:5pt;color:var(--p-muted);font-size:9.5pt}
 .up-acts{margin:0;padding:0;list-style:none;counter-reset:up-act}
 .up-acts li{display:grid;grid-template-columns:16pt minmax(0,1fr);column-gap:7pt;padding:2.5pt 0;counter-increment:up-act;break-inside:avoid}
 .up-acts li::before{content:counter(up-act);display:grid;place-items:center;width:15pt;height:15pt;margin-top:1pt;border:.75pt solid var(--p-sand-line);border-radius:50%;background:var(--p-sand);font-size:8pt;font-weight:700;line-height:1}
 .up-act-line{display:flex;flex-wrap:wrap;gap:0 8pt;align-items:baseline}
 .up-act-title{font-weight:600}.up-act-meta{font-size:8.5pt;color:var(--p-soft)}
 .up-act-note{grid-column:2;margin-top:1pt;font-size:9pt;line-height:1.55;color:var(--p-muted)}
 .up-guide{display:grid;gap:7pt;margin-top:8pt}
 .up-guide section{break-inside:avoid}
 .up-guide h4{margin-bottom:2pt;font-size:8.5pt;font-weight:700;letter-spacing:.04em}
 .up-guide p{white-space:pre-line}
 .up-route{padding:6pt 10pt;border-left:2pt solid var(--p-blue);background:var(--p-blue-mist)}.up-route h4{color:var(--p-blue)}
 .up-stale{margin-left:6pt;font-weight:400;color:var(--p-muted)}
 .up-check h4{color:var(--p-green)}
 .up-check ul{margin:0;padding:0;list-style:none;columns:2;column-gap:14pt;font-size:9pt}
 .up-check li{padding-left:12pt;text-indent:-12pt;break-inside:avoid}.up-check li::before{content:"\2610\00a0\00a0"}
 .up-know{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:10pt;padding-top:6pt;border-top:.5pt dotted var(--p-rule);font-size:8.5pt;line-height:1.55;color:var(--p-muted)}
 .up-know h4{color:var(--p-ink)}
 .up-foot{display:flex;justify-content:space-between;gap:12pt;margin-top:16pt;padding-top:6pt;border-top:.75pt solid var(--p-rule);font-size:8pt;color:var(--p-soft);break-inside:avoid}
}
/* Narrow screens: the workspace uses the reading layout; the one action left in the header spans the row. */
@media(max-width:760px){.tc-actions .tc-btn:only-child{grid-column:1/-1}[data-view=read] .tc-activity{padding:8px 12px}[data-view=read] .tc-activity-open{min-height:36px;align-content:center}[data-view=read] .tc-day-head{padding:6px 12px 2px}}
.tc-planning-hint>.tc-link-button,.tc-guide-intro-actions .tc-link-button{flex-shrink:0;white-space:nowrap}
/* Wide but short (a phone held sideways): keep the chrome small so the itinerary gets the height. */
@media(min-width:761px) and (max-height:500px){
 .app{padding-top:8px!important;padding-bottom:12px!important}header{min-height:0}.brand{font-size:20px}
 .travel-product{margin-top:6px}.tc-trip-summary{margin-bottom:8px}.tc-drag-hint,.tc-planning-hint:not(.tc-guide-intro):not(.tc-guide-offer){display:none}
 .tc-head{padding:8px 12px;flex-wrap:wrap;gap:6px}.tc-head>div:first-child{flex:1 1 100%;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px}.tc-head h3{font-size:18px;margin:0}.tc-head .tc-meta{font-size:11px;margin:0;line-height:1.5}.tc-head .tc-actions{margin-top:0}.tc-actions{flex-wrap:nowrap;gap:6px}.tc-actions .tc-btn{min-height:34px;padding:5px 10px;white-space:nowrap}.tc-connector{margin:8px 0;padding:8px 12px}.tc-decisions{top:8px;max-height:calc(100vh - 16px);overflow:auto}.tc-guide-panel{top:8px;max-height:calc(100vh - 16px)}
 .tc-status.is-processing{bottom:6px}
}
/* Conversation edits: what the last message changed, choices, where to put new items, undo. */
.tc-chat-panel{margin:14px 0 0;padding:12px 14px;border:1px solid var(--border-soft);border-radius:12px;background:var(--surface-secondary);font-size:13px;line-height:1.6}
.tc-chat-lines{margin:0;padding-left:18px}.tc-chat-lines li{margin:2px 0}
.tc-chat-confirm{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-top:8px}.tc-chat-confirm p{margin:0;flex:1 1 240px}
.tc-chat-actions{display:flex;gap:14px;justify-content:flex-end;margin-top:6px}
.tc-placement{margin-top:10px}.tc-placement-name{margin:0 0 6px;font-weight:600}
.tc-placement-options{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.tc-chip{min-height:34px;padding:5px 12px;font-size:12px}
.tc-waiting{margin:12px 0;padding:10px 12px;border:1px dashed var(--border-interactive);border-radius:10px;background:var(--surface-reading);font-size:13px}.tc-waiting summary{cursor:pointer;color:var(--udon-blue);font-weight:600}
.tc-kind-tag,.tc-source-tag{display:inline-block;margin-left:8px;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:500;vertical-align:middle}
.tc-kind-tag{background:var(--surface-activity);color:var(--text-primary);border:1px solid var(--border-soft)}.tc-source-tag{background:var(--surface-interactive);color:var(--udon-blue)}
.tc-drive{color:var(--text-primary)}
@media print{.tc-chat-panel,.tc-waiting{display:none!important}}
/* Restaurants: their own warmer surface (the tag keeps it readable without colour); the tag has its own column. */
:root{--surface-restaurant:#f7e2d8;--border-restaurant:#e4c3b3}
.tc-activity.is-restaurant{background:var(--surface-restaurant);border-color:var(--border-restaurant)}
[data-view=edit] .tc-activity.is-restaurant,[data-view=edit] .tc-activity.has-tools{grid-template-columns:44px minmax(0,1fr) auto auto}
.tc-activity.is-restaurant .tc-kind-tag{margin-left:8px;background:#fff8f4;border-color:var(--border-restaurant)}
.tc-candidate.is-restaurant{background:#fbefe9;border-color:var(--border-restaurant)}
/* Options panel: source and use counts, removing a card, the traveller's own cards. */
.tc-source-tag.is-udon{background:transparent;border:1px solid var(--border-soft);color:var(--text-muted)}
.tc-used-tag{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:500;color:var(--udon-green);background:var(--surface-origin);vertical-align:middle}
.tc-candidate-top{position:relative}.tc-card-remove{margin-left:auto;align-self:flex-start;min-width:28px;min-height:28px;border:0;background:none;color:var(--text-muted);font-size:14px;cursor:pointer}.tc-card-remove:hover{color:var(--state-error)}
.tc-candidate-area{margin:2px 0 0}
.tc-own-add{margin-top:10px}
.tc-own-open{width:100%;min-height:40px;border:1px dashed var(--border-interactive);border-radius:10px;background:transparent;color:var(--udon-blue);font:inherit;font-size:13px;cursor:pointer}.tc-own-open:hover{background:var(--surface-interactive)}
.tc-own-form{display:grid;gap:8px;padding:10px;border:1px dashed var(--border-interactive);border-radius:10px;background:var(--surface-reading)}
.tc-own-form input,.tc-own-form select{min-width:0;min-height:36px;padding:6px 8px;border:1px solid var(--border-soft);border-radius:8px;background:#fff;font:inherit;font-size:13px;color:var(--text-primary)}
.tc-own-form .tc-btn{justify-self:start}
.tc-transport-card.is-own{background:var(--surface-interactive)}
@media print{.up-act-kind{font-size:8pt;font-weight:700;color:var(--p-muted);border:.5pt solid var(--p-rule);border-radius:3pt;padding:0 4pt}}
.tc-candidate-top:has(>.tc-card-remove){grid-template-columns:auto minmax(0,1fr) auto}
.tc-transport-cards .tc-transport-card.is-own{grid-column:1/-1}
.tc-undo-item{margin-left:10px;min-height:0;padding:0 2px;font-size:12px}.tc-chat-lines li.is-undone{color:var(--text-muted);text-decoration:line-through}.tc-undone{margin-left:6px;text-decoration:none;display:inline-block}
.tc-fill-day{padding:4px 12px 10px}.tc-fill-day-button{min-height:34px;padding:5px 12px;font-size:12px;border-style:dashed;color:var(--udon-blue)}
/* Favorites: a star next to the remove button on hotel/restaurant cards and on restaurant activities. */
.tc-card-tools{display:flex;gap:2px;align-items:flex-start;margin-left:auto}
.tc-candidate-top:has(>.tc-card-tools){grid-template-columns:auto minmax(0,1fr) auto}
.tc-star{min-width:28px;min-height:28px;border:0;background:none;color:var(--text-muted);font-size:16px;line-height:1;cursor:pointer;padding:0 4px}.tc-star.is-on{color:#c08a1e}.tc-star:hover{color:#c08a1e}
span.tc-star{cursor:default;align-self:center}
.tc-activity-tools{display:inline-flex;gap:4px;align-items:center}
.tc-source-tag.is-favorite{background:#fbf1dc;color:#8a6414}
.tc-favorite-card{background:#fffaf0;border-style:dashed}
[data-view=read] .tc-activity.is-restaurant{display:flex;align-items:center;gap:6px}[data-view=read] .tc-activity.is-restaurant .tc-activity-open{flex:1}

.tc-city-tag{font-size:.72rem;padding:.05rem .45rem;border-radius:999px;background:#eef1ec;color:#51605a;white-space:nowrap}
.tc-city-tag.is-off{background:#fbe9cf;color:#8a5a12}
.tc-other-days{margin-left:.25rem}
.tc-placement-note{width:100%;margin:0 0 .25rem}

.tc-review-stale{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.25rem 0 .5rem;padding:.4rem .6rem;border-radius:8px;background:#fbf1de}
.tc-review-notes li{display:flex;gap:.5rem;align-items:flex-start}
.tc-review-notes li input{margin-top:.25rem;flex:none}
.tc-review-notes li.is-done span{text-decoration:line-through;opacity:.6}
.tc-chat-lines li.is-failed{color:#8a4b12}

.tc-stop-span{display:block;font-weight:400;font-size:.78rem;margin-top:.1rem}
.tc-day-role{font-size:.75rem;padding:.05rem .5rem;border-radius:999px;background:#e8eef4;color:#3e5566;white-space:nowrap}
.up-day-role{font-size:.8em;color:#3e5566;margin-left:.5em}
.tc-source-tag.is-backup{background:#e8eef4;color:#3e5566}
/* Travel days and the return day sit between stops, joined with the move they belong to. */
.tc-travel-day{margin:14px 0;padding:10px 12px 12px;border:1.5px solid #b9c6d8;border-radius:14px;background:#eef2f8}
.tc-travel-day>.tc-transfer{margin:0 0 8px;border-left:0;padding:2px 4px}
.tc-travel-day>.tc-connector{margin:10px 0 0}
.tc-travel-day>.tc-day.is-travel{margin:0}
.tc-travel-day .tc-day-role{background:#dfe7f2;color:#2f4a63;font-weight:600}
.tc-stop-travel-only{margin:6px 12px}
@media print{.tc-travel-day{break-inside:avoid}}
.tc-travel-line{display:block;width:100%;text-align:left;border:0;background:#fff;border-radius:10px;padding:8px 12px;font-size:13px;color:#2f4a63;cursor:pointer}.tc-travel-line:hover{background:#f7f9fc}
.up-travel>.up-day:first-child{border-top:0;padding-top:4pt}

/* Removing a stop sits apart from the day controls. */
.tc-destination-row>.tc-stop-remove{margin-left:12px;padding-left:14px;border-left:1px solid var(--border-soft);border-radius:0}
/* What the last conversation edit changed. */
.tc-day.is-recent{box-shadow:inset 4px 0 0 #d9a441}
.tc-recent-tag{font-size:.72rem;padding:.05rem .5rem;border-radius:999px;background:#fbeed2;color:#7a5410;white-space:nowrap}
/* A day's plan B: dashed, quieter than the plan; an empty one only appears as a drop target while dragging. */
.tc-plan-b{margin:10px 12px 4px;padding:8px 10px;border:1.5px dashed #c9b28a;border-radius:10px;background:#fffaf0}
.tc-plan-b.is-empty{display:none}
body.tc-dragging .tc-plan-b.is-empty{display:block}
.tc-plan-b-head{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px;color:#7a5a1e}
.tc-plan-b .tc-meta{margin:2px 0 6px}
.tc-plan-b-list{padding:0;min-height:28px}
.tc-activity.is-plan-b{background:#fbf3e2;opacity:.9}
.tc-plan-b-drop{margin:4px 0;text-align:center}
.up-plan-b{margin:4pt 0 0;padding:4pt 8pt;border:.75pt dashed #b39153;border-radius:4pt;font-size:9pt;color:#6b4f1d}
/* Patch 9: your cards, then Udon's extra sights by city (two per row, tap to open); activities dragged back. */
.tc-candidate-subhead{margin:12px 0 6px;font-size:12px;font-weight:600;color:var(--muted)}
.tc-decision-section>.tc-candidate-subhead:first-child{margin-top:0}
.tc-sight-group{margin-top:4px}
.tc-sight-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.tc-sight-card{padding:6px 8px}.tc-sight-card .tc-candidate-top{grid-template-columns:22px minmax(0,1fr);gap:4px;align-items:center}.tc-sight-card .tc-handle{width:22px;min-width:22px;padding:0}
.tc-sight-name{appearance:none;border:0;background:none;padding:0;margin:0;font:inherit;font-size:13px;font-weight:600;color:var(--text-primary);text-align:left;cursor:pointer;min-width:0;overflow-wrap:break-word;hyphens:auto;line-height:1.3}
.tc-sight-name .tc-used-tag{margin-left:4px}
.tc-sight-cards .is-open-sight{grid-column:1/-1}.is-sight-toggle{cursor:pointer}
.tc-pool-drop{display:none;margin:0 0 10px;padding:10px;border:1px dashed var(--border-interactive);border-radius:10px;text-align:center;font-size:12px;color:var(--muted)}
body.tc-dragging-activity .tc-pool-drop{display:block}
.tc-decisions.tc-pool-target .tc-pool-drop{background:var(--surface-selected);color:var(--text-primary);border-style:solid}
.tc-decisions.tc-pool-target{box-shadow:inset 0 0 0 2px var(--border-interactive)}
/* Signed-in session: countdown before signing out after inactivity, and the note after it happened. */
.udon-session-warning{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(20,24,28,.38)}
.udon-session-box{width:min(420px,100%);padding:20px;border-radius:14px;background:var(--surface-reading,#fff);color:var(--text-primary,#222);box-shadow:0 12px 40px rgba(0,0,0,.18)}
.udon-session-box p{margin:0 0 16px;font-size:15px;line-height:1.5}
.udon-session-actions{display:flex;gap:10px;flex-wrap:wrap}
.udon-session-actions button{padding:9px 16px;border-radius:9px;border:1px solid var(--border-interactive,#9ab);background:var(--surface-interactive,#f4f6f8);font:inherit;cursor:pointer}
.udon-session-actions .udon-session-stay{background:var(--udon-blue,#3e6280);border-color:var(--udon-blue,#3e6280);color:#fff}
.udon-session-ended{position:fixed;left:50%;top:16px;transform:translateX(-50%);z-index:1000;display:flex;gap:12px;align-items:center;max-width:calc(100% - 32px);padding:10px 14px;border-radius:10px;background:var(--surface-selected,#e8eef3);color:var(--text-primary,#222);box-shadow:0 6px 20px rgba(0,0,0,.12);font-size:14px}
.udon-session-ended button{border:0;background:none;font-size:18px;line-height:1;cursor:pointer;color:inherit}
/* On the trip: today's card. */
.tc-today{border:1px solid var(--border-interactive);border-radius:14px;background:var(--surface-reading);padding:14px 16px;margin:12px 0}
.tc-today-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px}
.tc-today-title{font-size:17px;color:var(--text-primary)}
.tc-today-note{margin:6px 0 0}
.tc-today-next{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0 4px;padding:10px 12px;border-radius:10px;background:var(--surface-selected)}
.tc-today-next-label{font-weight:600;min-width:0;overflow-wrap:anywhere}
.tc-today-done{margin:12px 0 4px}
.tc-today-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.tc-today-item{display:flex;align-items:flex-start;gap:10px;padding:8px 10px;border:1px solid var(--border-soft);border-radius:10px;background:var(--surface-day)}
.tc-today-item input[type=checkbox]{width:20px;height:20px;margin:4px 0 0;flex-shrink:0;accent-color:var(--udon-green)}
.tc-today-item.is-done .tc-activity-open{text-decoration:line-through;color:var(--text-muted)}
.tc-today-body{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.tc-today-body .tc-activity-open{border:0;background:none;padding:0;font:inherit;font-size:15px;font-weight:600;color:var(--text-primary);text-align:left;cursor:pointer;overflow-wrap:anywhere}
.tc-nav-target{font-size:12px;text-align:left;overflow-wrap:anywhere}
.tc-nav-button{flex-shrink:0;white-space:nowrap}
.tc-today-tools{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:10px;font-size:12px}
@media(max-width:760px){.tc-today{padding:12px}.tc-today-item{padding:8px}.tc-nav-button{min-height:40px}}
/* Notes kept on a day, and questions on the trip. */
.tc-day-pinned{margin:10px 0 0;padding:8px 10px;border-radius:10px;background:var(--surface-interactive);font-size:12px;color:var(--text-primary)}
.tc-pinned-title{display:block;font-weight:600;margin-bottom:4px}
.tc-day-pinned ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.tc-day-pinned li{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;line-height:1.5;overflow-wrap:anywhere}
.tc-unpin{flex-shrink:0;font-size:15px;padding:0 6px}
.tc-ask{margin-top:14px;padding-top:12px;border-top:1px solid var(--border-soft)}
.tc-ask-title{margin:0 0 8px;font-size:14px;color:var(--text-primary)}
.tc-answer{margin:0 0 10px;padding:10px 12px;border:1px solid var(--border-soft);border-radius:10px;background:var(--surface-day);font-size:13px;line-height:1.6}
.tc-answer-q{margin:0 0 4px;font-weight:600;color:var(--text-primary);overflow-wrap:anywhere}
.tc-answer-text{margin:0;white-space:pre-line;overflow-wrap:anywhere}
.tc-answer-note{margin:4px 0 0}
.tc-answer-background{margin:8px 0 0;padding-top:6px;border-top:1px dashed var(--border-soft)}
.tc-answer-background h5{margin:0 0 4px;font-size:12px;font-weight:600;color:var(--text-muted)}
.tc-answer-bg-item+.tc-answer-bg-item{margin-top:6px}
.tc-differ-tag{display:inline-block;margin-right:6px;padding:0 6px;border-radius:6px;background:#f3ead8;color:#7a5a1c;font-size:11px;vertical-align:1px}
.tc-answer-suggest{margin:6px 0 0;padding:6px 8px;border-left:3px solid var(--border-interactive);background:var(--surface-interactive);overflow-wrap:anywhere}
.tc-answer-sources{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:3px;font-size:12px}
.tc-answer-sources li{display:flex;flex-wrap:wrap;gap:2px 8px;align-items:baseline;overflow-wrap:anywhere}
.tc-source-kind{flex-shrink:0;padding:0 6px;border-radius:6px;background:var(--surface-secondary);color:var(--text-muted);font-size:11px}
.tc-source-link{color:var(--udon-blue);min-width:0}
.tc-answer-actions{display:flex;flex-wrap:wrap;gap:2px 12px;margin-top:6px;align-items:center}
.tc-ask-chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.tc-ask-chips .tc-chip{border:1px solid var(--border-interactive);border-radius:999px;background:var(--surface-reading);color:var(--udon-blue);padding:5px 10px;font-size:12px;cursor:pointer;text-align:left;max-width:100%;overflow-wrap:anywhere}
.tc-ask-chips .tc-chip:disabled{opacity:.5;cursor:default}
.tc-ask-form{display:flex;gap:8px}
.tc-ask-input{flex:1;min-width:0;border:1px solid var(--border-soft);border-radius:10px;padding:9px 10px;font:inherit;font-size:14px;background:var(--surface-reading);color:var(--text-primary)}
.tc-ask-notice{margin:6px 0}
.up-pinned{margin:6px 0 0;font-size:11px}
@media(max-width:760px){.tc-ask-chips .tc-chip{min-height:36px}.tc-ask-form .tc-btn{min-height:42px}}
/* The question thread scrolls on its own; replies that are not answers stand out. */
.tc-ask-thread{max-height:min(60vh,560px);overflow-y:auto;overscroll-behavior:contain;margin-bottom:6px;padding-right:2px}
.tc-answer.is-notice{background:var(--surface-interactive);border-color:var(--border-interactive)}
.tc-answer.is-action .tc-answer-actions{margin-top:10px}
.tc-nav-app{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin:2px 4px 6px;font-size:12px}
.tc-nav-app .tc-nav-change{padding:2px 4px;font-size:12px}
@media(max-width:760px){.tc-ask-thread{max-height:55vh}.tc-nav-app .tc-nav-change{min-height:36px}}
/* On the trip: skipped, added and swapped stops. */
.tc-today-item.is-skipped{opacity:.65}
.tc-today-item.is-skipped .tc-activity-open{text-decoration:line-through;color:var(--text-muted)}
.tc-trip-tag{display:inline-block;margin-top:2px;font-size:11px}
.tc-trip-actions{display:flex;flex-wrap:wrap;gap:0 12px}
.tc-trip-actions .tc-link-button{font-size:12px;padding:2px 0}
.tc-today-add{list-style:none}
.tc-trip-add{font-size:13px;padding:6px 2px}
@media(max-width:760px){.tc-trip-actions .tc-link-button{min-height:36px}}
.tc-trip-line{display:flex;flex-wrap:wrap;align-items:center;gap:0 14px}
.tc-trip-line .tc-nav-target,.tc-trip-line .tc-link-button{min-height:0;padding:4px 0;font-size:12px}
@media(max-width:760px){.tc-trip-line .tc-nav-target,.tc-trip-line .tc-link-button{min-height:32px}}
.tc-ask-back{margin:8px 0 0}
/* After the trip: the trip in numbers and the plan / actual / compare switch. */
.tc-trip-review{margin:12px 0;padding:12px 14px;border:1px solid var(--border-soft);border-radius:12px;background:var(--surface-reading)}
.tc-trip-review-title{margin:0 0 6px;font-size:15px;color:var(--text-primary)}
.tc-trip-stats{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-wrap:wrap;gap:4px 16px;font-size:13px;color:var(--text-primary)}
.tc-view-switch{display:flex;flex-wrap:wrap;gap:6px}
.tc-view-switch .tc-chip[aria-pressed="true"]{background:var(--udon-blue);border-color:var(--udon-blue);color:var(--text-on-accent)}
.tc-activity.is-skipped .tc-activity-open{text-decoration:line-through;color:var(--text-muted)}
.tc-activity.is-skipped{opacity:.7}
.tc-actual-tag{display:block;font-size:11px;margin-top:2px}
.up-acts li.is-skipped .up-act-title{text-decoration:line-through}
/* Taking the trip along: phone, home screen, calendar. */
.tc-take-along{margin:12px 0;padding:12px 14px;border:1px solid var(--border-soft);border-radius:12px;background:var(--surface-reading)}
.tc-take-along-title{margin:0 0 4px;font-size:15px;color:var(--text-primary)}
.tc-take-along-actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 6px}
.tc-take-along-qr{display:flex;align-items:center;gap:14px;margin:8px 0}
.tc-take-along-qr .tc-meta{max-width:34ch}
.tc-qr{width:132px;height:132px;flex:none;border-radius:6px}
.tc-take-along-help{margin:6px 0}
.tc-take-along-note{margin:6px 0 0;font-size:12px}
@media print{.tc-take-along{display:none}}
/* Waiting is said at the top and stays in view while scrolling. */
.tc-wait{position:sticky;top:0;z-index:40;margin:0 0 14px;padding:12px 15px;border:1px solid var(--border-interactive);border-radius:10px;background:var(--surface-interactive);box-shadow:0 8px 24px rgb(48 61 57 / 12%);color:var(--ink)}
.tc-wait.is-done{background:var(--surface-reading)}
.tc-wait-progress{height:4px;margin-top:6px;border-radius:2px;background:var(--border-soft);overflow:hidden}
.tc-wait-progress span{display:block;height:100%;background:var(--sage-deep,#526453);transition:width .3s ease}
.tc-guide-tag.is-preparing{color:var(--muted)}
.tc-link-signin{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 14px}
@media print{.tc-wait,.tc-link-slot{display:none}}
/* Trip library: the traveller's own trips, a left column mirroring the options column on the right ("what you have"
   beside "what you could add"), on a green-neutral ground instead of the options' lavender. */
.tc-header-start{display:flex;align-items:center;gap:20px;min-width:0}
.tc-library-toggle{display:inline-flex;align-items:center;gap:6px;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--muted);padding:5px 11px 5px 9px;font-size:14px;line-height:1.2;cursor:pointer}
.tc-library-toggle:hover{color:var(--ink);background:var(--surface-library)}
.tc-library-toggle.is-open{color:var(--udon-green);background:var(--surface-library);border-color:var(--border-library)}
.tc-library-icon{width:17px;height:17px;flex:none;fill:var(--paper);stroke:currentColor;stroke-width:1.4}.tc-library-toggle:hover .tc-library-icon,.tc-library-toggle.is-open .tc-library-icon{fill:var(--surface-library)}
.udon-booting .tc-library-toggle{visibility:hidden}
:root{--surface-library:#edf1ea;--border-library:#d3ddd0}
.tc-shell.library-open{display:grid;grid-template-columns:260px minmax(0,1fr);gap:18px;align-items:start;max-width:1178px;margin:0 auto}
.tc-shell.library-open[data-lifecycle=planning]{max-width:1378px}
.tc-shell.library-open>.travel-product{width:100%;margin-left:0;margin-right:0}
.tc-library{position:sticky;top:18px;margin-top:32px;max-height:calc(100vh - 36px);overflow:auto;overscroll-behavior:contain;box-sizing:border-box;border:1px solid var(--border-library);border-radius:12px;padding:14px;background:var(--surface-library);font-size:12px;color:var(--muted);min-width:0}
.tc-library-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.tc-library-head h3{margin:0 0 5px;color:var(--ink);font:500 18px 'Playfair Display'}
.tc-library-close{flex:none;width:28px;height:28px;border-radius:50%;border:1px solid var(--border-soft);background:var(--surface-reading);color:var(--text-muted);font-size:15px;line-height:1;cursor:pointer}
.tc-library-sub{margin:0 0 10px;line-height:1.5}
.tc-library-new{width:100%;margin:0 0 4px}
.tc-library-note{margin:6px 0 0;color:var(--state-error);line-height:1.5}.tc-library-note:empty{display:none}
.tc-library-group{margin-top:10px;border-top:1px solid var(--border-library);padding-top:8px}
.tc-library-group-head{display:flex;width:100%;justify-content:space-between;align-items:center;gap:8px;border:0;background:none;padding:4px 0;color:var(--ink);font-size:14px;font-weight:600;cursor:pointer;text-align:left}
.tc-library-group-head::after{content:'⌄';color:var(--text-muted);font-weight:400;margin-left:auto}
.tc-library-group-head[aria-expanded=true]::after{content:'⌃'}
.tc-library-count{color:var(--text-muted);font-weight:400;font-size:12px}
.tc-library-list{display:grid;gap:8px;margin-top:6px}
.tc-library-card{position:relative;display:grid;gap:7px;padding:9px;border:1px solid var(--line);border-radius:10px;background:var(--surface-reading)}
.tc-library-card.is-current{border-color:var(--udon-green);box-shadow:0 0 0 1px var(--udon-green)}
.tc-library-top{display:grid;grid-template-columns:44px minmax(0,1fr);gap:8px;align-items:start}.tc-library-top:has(.has-art){grid-template-columns:58px minmax(0,1fr);gap:10px}
.tc-library-badge{width:44px;min-height:44px;box-sizing:border-box;padding:3px;border-radius:8px;background:var(--surface-destination);color:var(--udon-green);display:grid;place-items:center;text-align:center;font-weight:600;font-size:11px;line-height:1.15;overflow-wrap:anywhere}
.tc-library-card.is-closed .tc-library-badge{background:var(--surface-activity);color:#8a6a3b}
.tc-library-text{display:grid;gap:2px;min-width:0}
.tc-library-name{color:var(--ink);font-size:13px;font-weight:600;overflow-wrap:anywhere}
.tc-library-line{line-height:1.45;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tc-library-actions{display:flex;align-items:center;gap:6px}
.tc-library-open{min-height:30px}
.tc-library-current{color:var(--udon-green);font-weight:600;padding:5px 2px}
.tc-library-more{margin-left:auto;min-width:32px;min-height:30px;border:1px solid transparent;border-radius:8px;background:none;color:var(--text-muted);font-size:16px;line-height:1;cursor:pointer}
.tc-library-more:hover,.tc-library-more[aria-expanded=true]{border-color:var(--border-soft);background:var(--surface-warm)}
.tc-library-menu{display:grid;gap:2px;padding:4px;border:1px solid var(--border-soft);border-radius:9px;background:var(--surface-reading);box-shadow:0 8px 20px rgb(35 45 41 / 12%)}
.tc-library-menu-item{border:0;border-radius:6px;background:none;text-align:left;padding:8px 9px;color:var(--ink);font-size:13px;cursor:pointer}
.tc-library-menu-item:hover{background:var(--surface-warm)}.tc-library-menu-item.is-danger{color:var(--state-error)}
.tc-library-empty{margin:4px 0 2px;line-height:1.5}
.tc-library-locked{margin-top:8px;padding-top:10px;border-top:1px solid var(--border-library);line-height:1.6;color:var(--text-primary);font-size:13px}
.tc-library-locked p{margin:0 0 12px}.tc-library-locked-actions{display:flex;gap:8px;flex-wrap:wrap}
.tc-library-failed{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}
.tc-library button:disabled{opacity:.5;cursor:not-allowed}
.tc-library :is(button):focus-visible,.tc-library-toggle:focus-visible{outline:3px solid var(--udon-blue);outline-offset:2px}
.tc-decisions-peek{display:none}
/* 761–1200px: three columns do not fit. With the library open the right column folds into a narrow tab that hands
   the space back (closing the library). */
@media(min-width:761px) and (max-width:1200px){
 .tc-shell.library-open .tc-workspace{grid-template-columns:minmax(0,1fr) auto}
 .tc-shell.library-open .tc-decisions{display:none}
 .tc-shell.library-open .tc-decisions-peek:not([hidden]){display:block;position:sticky;top:18px;align-self:start;writing-mode:vertical-rl;letter-spacing:.15em;min-height:132px;width:34px;padding:10px 0;border:1px solid var(--line);border-radius:10px;background:var(--surface-secondary);color:var(--udon-blue);font-size:12px;cursor:pointer}
 .tc-shell.library-open .travel-product[data-lifecycle=final] .tc-decisions-peek{display:none!important}
 .tc-shell.library-open .travel-product[data-lifecycle=final] .tc-workspace{grid-template-columns:minmax(0,1fr)}
}
/* Phones: a full-screen panel from the left with its own close button; no edge swipe (that is the browser's back). */
@media(max-width:760px){
 .tc-header-start{gap:8px;flex-direction:row-reverse}
 .tc-library-toggle{width:44px;height:44px;justify-content:center;padding:0;border:1px solid var(--line);border-radius:10px}
 .tc-library-toggle-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
 .tc-shell.library-open{display:block}
 .tc-library{position:fixed;inset:0;z-index:70;margin:0;max-height:none;height:100dvh;border:0;border-radius:0;padding:16px 16px calc(24px + env(safe-area-inset-bottom));font-size:13px;animation:tc-library-in .18s ease-out}
 .tc-library-close{width:44px;height:44px;font-size:20px}
 .tc-library-open,.tc-library-more,.tc-library-menu-item,.tc-library-group-head,.tc-library-new{min-height:44px}
 body.tc-library-sheet{overflow:hidden}
 body.tc-library-sheet .modal-backdrop{z-index:80}
}
@keyframes tc-library-in{from{transform:translateX(-24px);opacity:.6}to{transform:none;opacity:1}}
@media(prefers-reduced-motion:reduce){.tc-library{animation:none}}
@media print{.tc-library,.tc-library-toggle,.tc-decisions-peek{display:none!important}.tc-shell.library-open{display:block;max-width:none}}
/* Trip library, step 2: a trip opened to its days and places, dragged into the itinerary. */
.tc-library-tag{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:999px;background:var(--surface-warm);color:var(--text-muted);font-size:11px;font-weight:500;vertical-align:1px}
.tc-library-soon{margin-left:8px;padding:1px 7px;border-radius:999px;background:var(--surface-reading);border:1px solid var(--border-library);color:var(--text-muted);font-size:11px;font-weight:500}
.tc-library-shared .tc-library-group-head{justify-content:flex-start}
.tc-library-days{border-top:1px solid var(--line);padding-top:6px}
.tc-library-hint{margin:2px 0 6px;line-height:1.45}
.tc-library-day-list,.tc-library-places{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.tc-library-day-head{display:flex;align-items:center;gap:4px}
.tc-library-day-toggle{flex:1;min-width:0;display:grid;gap:1px;border:0;background:none;text-align:left;padding:5px 4px;border-radius:6px;cursor:pointer;color:var(--ink)}
.tc-library-day-toggle:hover{background:var(--surface-warm)}
.tc-library-day-label{font-size:12px;font-weight:600}.tc-library-day-theme{font-size:11px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tc-library-places{margin:0 0 6px 30px}
.tc-library-place{display:flex;align-items:center;gap:4px;padding:3px 4px;border-radius:6px;background:var(--surface-activity);color:var(--ink);font-size:12px}
.tc-library-place-name{min-width:0;overflow-wrap:anywhere}
.tc-library .tc-library-handle{flex:none;width:26px;height:26px;min-width:26px;min-height:26px;padding:0;border:0;background:none;color:var(--text-muted);cursor:grab;touch-action:none}
.tc-library-origin{opacity:.4}
.tc-library-ghost{position:fixed;z-index:90;pointer-events:none;background:var(--surface-reading);border:1px solid var(--border-soft);border-radius:8px;box-shadow:0 12px 28px rgb(32 35 31 / 18%);list-style:none}
/* A day dragged from the library: only the places it may land on (see libraryDaySlots). */
.tc-drop-slot.tc-extra-slot{display:none!important}
body.tc-placing-stops .tc-drop-slot:not(.is-library-target){display:none!important}
body.tc-placing-stops .tc-drop-slot.tc-extra-slot.is-library-target{display:block!important;margin-top:-4px}
/* What just came in from the library, marked until the next edit; a place now in another city keeps its city in the warning colour. */
.tc-destination.is-imported{box-shadow:0 0 0 2px var(--udon-green)}
.tc-day.is-imported{box-shadow:inset 4px 0 0 var(--udon-green);background:var(--surface-selected)}
.tc-activity.is-imported{box-shadow:0 0 0 2px var(--udon-green);animation:tc-imported 1.6s ease-out 1}
@keyframes tc-imported{from{background:var(--surface-selected)}}
@media(prefers-reduced-motion:reduce){.tc-activity.is-imported{animation:none}}
.tc-city-tag.is-moved{border:1px solid #e3b56a}
.tc-from{display:block;margin:2px 0 0;font-size:11px;color:var(--udon-green)}
.tc-day>.tc-from{padding:0 12px}
/* Trip library, 0030: a card opens with a click on it; trips being edited; the traveller's own name. */
.tc-library-top{cursor:pointer;border-radius:8px;margin:-3px;padding:3px}
.tc-library-top:hover{background:var(--surface-warm)}
.tc-library-top:focus-visible{outline:2px solid var(--udon-green);outline-offset:1px}
.tc-library-card.is-draft{border-style:dashed}
.tc-library-tag.is-unsaved{margin-left:0;background:#fbeed2;color:#7a5410}
.tc-library-rename{width:100%;box-sizing:border-box;font:600 13px/1.3 inherit;color:var(--ink);padding:3px 6px;border:1px solid var(--udon-green);border-radius:6px;background:var(--surface-reading)}
/* Trip library, 0031: a place's note and the day's guide as they were on that trip (read-only). */
.tc-library-place-words{display:grid;gap:1px;min-width:0}
.tc-library-place-note{font-size:11px;color:var(--text-muted);line-height:1.4;overflow-wrap:anywhere}
.tc-library-guide{margin:0 0 6px 30px}
.tc-library-guide-toggle{border:0;background:none;padding:3px 0;color:var(--udon-green);font-size:12px;font-weight:600;cursor:pointer}
.tc-library-guide-toggle::before{content:'▸ ';font-size:10px}.tc-library-guide-toggle[aria-expanded=true]::before{content:'▾ '}
.tc-library-guide-body{display:grid;gap:6px;padding:6px 8px;border-left:2px solid var(--border-library);background:var(--surface-reading);border-radius:0 6px 6px 0}
.tc-library-guide-part h5{margin:0 0 2px;font-size:11px;font-weight:600;color:var(--ink)}
.tc-library-guide-part p,.tc-library-guide-part ul{margin:0;font-size:11px;line-height:1.5;color:var(--text-muted);overflow-wrap:anywhere}
.tc-library-guide-part ul{padding-left:16px}
.tc-library-guide-note{margin:0;font-size:11px;line-height:1.45}
/* Trip library, 0033: tidying a group (tick several, remove with one question); a guide that updates after saving. */
.tc-library-group-bar{display:flex;align-items:center;gap:8px}
.tc-library-group-bar .tc-library-group-head{flex:1;min-width:0}
.tc-library-manage{font-size:12px;white-space:nowrap}
.tc-library-card.is-selectable{padding-left:34px}
.tc-library-select{position:absolute;left:10px;top:14px;width:16px;height:16px;margin:0;accent-color:var(--udon-green);cursor:pointer}
.tc-library-bulk{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.tc-library-bulk-go{background:var(--state-error);border-color:var(--state-error);color:#fff}
.tc-library-bulk-go:disabled{opacity:.45}
.tc-guide-tag.is-after-save{background:var(--surface-warm);color:var(--text-muted);border:1px dashed var(--border-soft);cursor:default}
@media(max-width:760px){.tc-library-manage,.tc-library-select{min-height:44px}.tc-library-select{width:22px;height:22px;min-height:22px}}
/* Past trips: poster and copy right on the card. The poster dialog shows the poster scaled to the screen. */
.tc-library-quick{min-height:30px;padding:5px 10px;font-size:12px;white-space:nowrap}
@media(max-width:760px){.tc-library-quick{min-height:44px}}
.modal.is-poster{width:min(620px,100%)}
.tc-poster-choices{display:flex;flex-wrap:wrap;gap:6px}
.tc-poster-stage{display:grid;place-items:center;min-height:200px;padding:8px;border-radius:10px;background:var(--surface-warm)}
.tc-poster-stage[data-format=paged]{display:flex;gap:10px;overflow-x:auto;place-items:initial;align-items:flex-start;scroll-snap-type:x mandatory}
.tc-poster-stage[data-format=paged] .tc-poster-canvas{flex:none;max-width:none;height:min(52dvh,560px);width:auto;scroll-snap-align:start}
.tc-poster-stage[data-format=long]{display:block;max-height:min(62dvh,760px);overflow-y:auto}
.tc-poster-stage[data-format=long] .tc-poster-canvas{max-height:none;width:100%;margin:0 auto}
.tc-poster-stage[data-format=landscape] .tc-poster-canvas{width:100%;max-height:none}
.tc-poster-choices .is-suggested{border-color:var(--udon-green);box-shadow:inset 0 0 0 1px var(--udon-green)}
.tc-poster-stage.is-loading .tc-poster-canvas{opacity:.45}
.tc-poster-canvas{display:block;width:auto;height:auto;max-width:100%;max-height:min(62dvh,760px);border-radius:6px;box-shadow:0 6px 18px rgb(35 45 41 / 16%);transition:opacity .2s}
.tc-poster-status:empty{display:none}
.tc-poster-actions{display:flex;gap:8px;justify-content:flex-end}
.tc-poster-note{margin:0;line-height:1.5}
.tc-library-card.is-closed .tc-library-actions{flex-wrap:wrap}.tc-library-current{white-space:nowrap}
.tc-poster-extras{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.tc-poster-photo-at{margin-left:4px}
.tc-poster-hint{margin:0;line-height:1.5}.tc-library-tag.is-poster{color:var(--udon-green)}

/* What the first version still needs: the box is marked and the reason sits right under the three boxes. */
.tc-primary{position:relative}
.tc-primary.is-needed{border:2px solid var(--accent-warm,#b85c38);box-shadow:0 0 0 4px rgb(184 92 56 / 14%)}
.tc-need-tag{position:absolute;top:10px;right:12px;padding:1px 8px;border-radius:999px;background:var(--accent-warm,#b85c38);color:#fff;font-size:11px;font-weight:600}
.tc-need-hint{margin:12px auto 0;max-width:900px;text-align:center;font-size:15px;font-weight:500;color:var(--accent-warm-text,#8a4227)}
@media (prefers-reduced-motion:no-preference){.tc-primary.is-needed{animation:tcNeedPulse 1.6s ease-out 2}}
@keyframes tcNeedPulse{0%{box-shadow:0 0 0 0 rgb(184 92 56 / 30%)}100%{box-shadow:0 0 0 10px rgb(184 92 56 / 0%)}}
/* The one warm accent: the button that starts the first version. */
.tc-initial-input .tc-btn.primary{background:var(--accent-warm);border-color:var(--accent-warm)}
.tc-initial-input .tc-btn.primary:hover{background:var(--accent-warm-hover);border-color:var(--accent-warm-hover)}
/* Trip library: the trip's picture (3:4), the lower part where the drawing sits, with the length on it. */
.tc-library-badge.has-art{position:relative;width:58px;height:78px;padding:0;overflow:hidden;background:var(--surface-warm)}
.tc-library-badge.has-art img{width:100%;height:100%;object-fit:cover;object-position:center 88%;display:block}
.tc-library-badge-days{position:absolute;left:4px;right:4px;bottom:4px;padding:1px 0;border-radius:6px;background:rgb(255 254 250 / 90%);color:var(--udon-green);font-size:10px;font-weight:600;text-align:center}
/* First screen: the trip-to-be on a picture. The picture keeps its 16:9 shape whatever the window (never cropped, so
   the landmarks drawn along its edges stay in view), sits at the bottom of the main area (the trip library stays
   outside it), fades into the paper on every side, and the boxes sit on a light paper panel in its empty middle.
   Narrow screens: the picture is a band above the boxes. */
.travel-product[data-lifecycle=initial]{max-width:1500px}
.tc-shell.library-open[data-lifecycle=initial]{max-width:1640px}
.tc-initial{container-type:inline-size}
.tc-initial-layout{display:grid}
.tc-initial-layout>*{grid-area:1/1}
.tc-home-art{align-self:end;position:relative;z-index:0;pointer-events:none;border:0;padding:0;background:none}
.tc-home-art-img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;
 -webkit-mask-image:linear-gradient(to right,transparent 0,#000 9%,#000 91%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 24%,#000 94%,transparent 100%);-webkit-mask-composite:source-in;
 mask-image:linear-gradient(to right,transparent 0,#000 9%,#000 91%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 24%,#000 94%,transparent 100%);mask-composite:intersect}
.tc-initial-main{position:relative;z-index:1;align-self:start;justify-self:center;width:min(100%,800px);box-sizing:border-box;margin:24px 0 48px;padding:26px 30px 20px;border-radius:22px;background:rgb(250 247 240 / 86%)}
.tc-initial-main .tc-hero{margin:2px auto 18px}.tc-initial-main .tc-hero h1{margin-bottom:6px}
.tc-initial-main .tc-primary{min-height:108px;padding:18px 22px}
.tc-initial-main /* Three starting examples, one per line, centred under the input. */
.tc-examples{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:6px}.tc-examples .tc-example{text-align:center;padding:4px 8px}
.tc-home-example{margin:12px 0 4px;text-align:center;font-size:13px;color:var(--text-muted);display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:4px 8px}
.tc-home-art-label::after{content:'\00a0\00b7'}
.tc-home-art-text{color:var(--text-primary,#20231f)}
.tc-home-art-use{border:0;background:none;padding:4px 0;font:inherit;font-size:13px;font-weight:600;color:var(--accent-warm-text);cursor:pointer}
.tc-home-art-use:hover{text-decoration:underline}
@container (max-width:640px){
 .tc-initial-layout>*{grid-area:auto}
 .tc-home-art{order:-1;align-self:auto}
 .tc-home-art-img{aspect-ratio:auto;height:170px;object-position:center bottom}
 .tc-initial-main{width:100%;margin:0;padding:0;background:none;border-radius:0}
}
.travel-product[data-need] .tc-status{display:none}
/* A picture drawn up to its top edge fades into the paper over a shorter distance. */
.tc-home-art.fade-short .tc-home-art-img{-webkit-mask-image:linear-gradient(to right,transparent 0,#000 9%,#000 91%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 8%,#000 94%,transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 9%,#000 91%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 8%,#000 94%,transparent 100%)}
/* First screen on wide windows: the picture fills the window from the bottom edge, behind everything (its landmarks
   sit along the left and right edges); the boxes' panel is centred and larger, near the top; the trip library hangs
   to its left, see-through, and the header lines up with the library. --p is the panel's width, --edge the space
   left of the library (and right of the header). */
.tc-home-stage{display:none}
@media (min-width:1100px){
 .tc-home-stage{display:block;position:fixed;left:0;right:0;bottom:0;z-index:-1;pointer-events:none}
 .travel-product:not([data-lifecycle=initial])>.tc-home-stage,.travel-product:has(>.tc-initial[hidden])>.tc-home-stage{display:none}
 .tc-home-stage img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;object-position:center bottom;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 24%);mask-image:linear-gradient(to bottom,transparent 0,#000 24%)}
 .tc-home-stage.fade-short img{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 9%);mask-image:linear-gradient(to bottom,transparent 0,#000 9%)}
 .app:has(>.tc-shell[data-lifecycle=initial]){max-width:none;padding-left:0;padding-right:0;--lib:280px;--p:min(820px,max(600px,calc(100% - 688px)));--edge:max(24px,calc((100% - var(--p)) / 2 - 320px))}
 .app:has(>.tc-shell[data-lifecycle=initial])>header{padding-left:var(--edge);padding-right:var(--edge)}
 .tc-shell[data-lifecycle=initial],.tc-shell.library-open[data-lifecycle=initial]{display:block;position:relative;max-width:none;margin:0}
 .tc-shell:not(.library-open)[data-lifecycle=initial]{--p:min(820px,calc(100% - 48px))}
 .tc-shell[data-lifecycle=initial]>.travel-product{max-width:none;margin:8px 0 40px}
 .tc-shell.library-open[data-lifecycle=initial]>.tc-library{position:absolute;top:8px;left:var(--edge);z-index:2;width:var(--lib);margin:0;max-height:min(calc(100vh - 150px),640px);background:rgb(246 243 236 / 55%);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-color:rgb(32 35 31 / 7%)}
 .tc-shell.library-open[data-lifecycle=initial] .tc-library-card{background:rgb(255 254 251 / 82%)}
 .tc-shell[data-lifecycle=initial] .tc-initial-layout>.tc-home-art{display:none}
 .tc-shell[data-lifecycle=initial] .tc-initial-main{justify-self:start;width:var(--p);margin:clamp(16px,calc(20vh - 110px),120px) 0 32px calc((100% - var(--p)) / 2);padding:32px 36px 24px;border-radius:24px}
 .tc-shell.library-open[data-lifecycle=initial] .tc-initial-main{margin-left:calc(var(--edge) + var(--lib) + 40px)}
}
.tc-library-badge.has-art.is-thumb img{object-position:center}
/* Sharing (0049): the dialog on a saved trip, and the read-only page a link opens (/s/<code>). */
.tc-library-tag.is-shared{color:var(--udon-blue)}
.tc-share-intro{margin:0 0 12px;line-height:1.6}
.tc-share-options{display:grid;gap:8px;margin:0 0 12px}
.tc-share-option{display:flex;gap:10px;align-items:flex-start;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface-reading);cursor:pointer;line-height:1.45}
.tc-share-option input{margin-top:3px;flex:none;accent-color:var(--udon-green)}
.tc-share-option-text{display:grid;gap:2px}.tc-share-option-text small{font-size:12px}
.tc-share-option:has(input:disabled){cursor:default;opacity:.78}
.tc-share-left{margin:0 0 6px}.tc-share-status{margin:0 0 10px;color:var(--accent-warm-text)}.tc-share-status:empty{display:none}
.tc-share-result{display:grid;gap:8px;margin:4px 0 14px;padding:12px;border:1px solid var(--border-library);border-radius:12px;background:var(--surface-library)}
.tc-share-result p{margin:0;line-height:1.5}
.tc-share-link{width:100%;box-sizing:border-box;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;font:inherit;font-size:13px}
.tc-share-id{font:600 20px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;color:var(--ink)}
.tc-share-result-actions{display:flex;flex-wrap:wrap;gap:8px}.tc-share-result-actions a.tc-btn{text-decoration:none;display:inline-flex;align-items:center}
.tc-share-mine{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}.tc-share-mine h4{margin:0 0 8px;font-size:14px;font-weight:600}
.tc-share-list{list-style:none;margin:0;padding:0;display:grid;gap:6px;max-height:260px;overflow:auto}
.tc-share-item{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-reading)}
.tc-share-item-text{display:grid;gap:2px;min-width:0}.tc-share-item-text strong{font-size:14px;font-weight:600;overflow-wrap:anywhere}.tc-share-item-text .tc-meta{font-size:12px}
.tc-share-item-actions{display:flex;gap:10px;flex:none}.tc-link-button.is-danger{color:var(--accent-warm-text)}
.tc-share-view{max-width:760px;margin:0 auto;display:grid;gap:18px}
.tc-share-hero{display:grid;grid-template-columns:minmax(0,240px) minmax(0,1fr);gap:22px;align-items:end;padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--surface-reading)}
.tc-share-cover{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:12px;display:block}
.tc-share-head h1{margin:0 0 8px;font:600 32px/1.25 'Playfair Display',Georgia,serif;color:var(--ink);overflow-wrap:anywhere}
.tc-share-head p{margin:0 0 6px;line-height:1.55}.tc-share-meta{color:var(--ink);font-weight:500}
.tc-share-mine-note{color:var(--udon-blue)!important}
.tc-share-stop{display:grid;gap:10px;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:var(--surface-destination)}
.tc-share-stop h2{margin:0;display:flex;gap:10px;align-items:baseline;font:600 22px/1.3 'Playfair Display',Georgia,serif;color:var(--ink)}.tc-share-stop h2 .tc-meta{font:400 13px/1 inherit}
.tc-share-hotel{margin:0;font-size:14px;color:var(--ink)}
.tc-share-day{padding:12px 14px;border-radius:12px;background:var(--surface-reading);border:1px solid var(--line)}
.tc-share-day h3{margin:0 0 4px;display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;font-size:16px;font-weight:600;color:var(--ink)}
.tc-share-daynum{font-size:12px;font-weight:600;color:var(--udon-green);text-transform:uppercase;letter-spacing:.03em}
.tc-share-day>.tc-meta{margin:0 0 8px;line-height:1.55}
.tc-share-activities{margin:0;padding-left:20px;display:grid;gap:6px}.tc-share-activities li{line-height:1.5}.tc-share-activities .tc-meta{margin:2px 0 0;font-size:13px}
.tc-share-activity{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.tc-share-tag{padding:1px 7px;border-radius:999px;background:var(--surface-restaurant);border:1px solid var(--border-restaurant);font-size:11px;color:var(--accent-warm-text)}
.tc-share-notes{margin-top:8px;padding:8px 10px;border-radius:8px;background:#fbf6e8;font-size:13px;line-height:1.5}.tc-share-notes p{margin:2px 0 0}
.tc-share-start{justify-self:center;margin:4px 0 24px}
.tc-share-missing{display:grid;justify-items:center;gap:14px;padding:48px 16px;text-align:center;color:var(--ink)}
@media (max-width:760px){.tc-share-view{padding:0 16px}.tc-share-hero{grid-template-columns:1fr;padding:14px}.tc-share-cover{max-width:260px;margin:0 auto}.tc-share-head h1{font-size:26px}.tc-share-stop{padding:12px}}
.tc-share-options[hidden],.tc-share-result[hidden],.tc-share-view[hidden]{display:none}
/* Sharing, the other side (0050): whether the person sharing has been there; keeping; trips shared with you. */
.tc-share-planning{display:grid;gap:4px;padding:14px 18px;border:1.5px solid #e2b04a;border-left-width:6px;border-radius:12px;background:#fdf3d8;color:#5c4210}
.tc-share-planning strong{font-size:16px;font-weight:700}.tc-share-planning p{margin:0;line-height:1.55;font-size:14px}
.tc-share-badge{display:inline-block;margin:0 0 8px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600}
.tc-share-badge.is-travelled{background:var(--surface-destination);color:var(--udon-green);border:1px solid #c7d8c4}
.tc-share-keep{display:grid;gap:6px;justify-items:start;margin-top:10px}.tc-share-keep-note{margin:0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.tc-library-tag.is-planning{background:#fdf3d8;color:#7a5410;border:1px solid #ecd39a}.tc-library-tag.is-travelled{background:var(--surface-destination);color:var(--udon-green)}
.tc-library-count{margin-left:6px;color:var(--text-muted);font-size:12px;font-weight:400}
.tc-library-find{display:flex;gap:6px;margin:8px 0}.tc-library-find input{flex:1;min-width:0;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:#fff;font:inherit;font-size:13px}.tc-library-find .tc-btn{padding:6px 10px;font-size:13px}
.tc-library-find-note{margin:0 0 6px;color:var(--accent-warm-text)}
.tc-library-cards{display:grid;gap:8px}.tc-library-card.is-revoked{opacity:.72}
.tc-share-badge.is-planning{background:#fdf3d8;color:#7a5410;border:1px solid #e2b04a}
/* Privacy notice and disclaimer (udon-legal.js): the reader over the page, the agreement boxes, the page's links. */
.udon-legal{z-index:1000!important}.udon-legal-card{width:min(680px,100%);max-height:calc(100dvh - 48px);display:flex;flex-direction:column}
.udon-legal-version{margin:4px 0 0;color:var(--muted,#6b6f68);font-size:12px}
.udon-legal-body{overflow:auto;padding-right:4px;color:var(--ink,#20231f);font-size:14px;line-height:1.65}
.udon-legal-part h4{margin:16px 0 6px;font-size:15px;font-weight:600}.udon-legal-part p{margin:0}.udon-legal-part ul{margin:0;padding-left:20px;display:grid;gap:4px}
.udon-legal-link{color:var(--udon-blue,#416782);text-decoration:underline;text-underline-offset:2px}
.register-terms{display:flex!important;flex-direction:row!important;gap:8px;align-items:flex-start;margin:6px 0 10px;font-size:13px;line-height:1.5;color:var(--ink,#20231f)}.register-terms[hidden]{display:none!important}.register-terms input{margin-top:3px;width:auto!important;flex:none}
.footer-legal{margin:6px 0 24px;text-align:center;font-size:11px;color:#8b8f88}.footer-legal .udon-legal-link{color:inherit}
.about-legal{margin:14px 0 0;font-size:13px}
#registerInviteRow[hidden]{display:none!important}
.register-form label.register-terms{font:400 13px/1.5 'DM Sans',system-ui,sans-serif;text-transform:none;letter-spacing:normal;color:var(--ink,#20231f)}
.beta-terms[hidden]{display:none!important}
#betaNoticeContinue:disabled,#registerInviteSubmit:disabled{opacity:.45;cursor:not-allowed}
/* Other plans: time kept on a day for the traveller's own arrangements (a quiet, dotted band; never a place). */
:root{--surface-hold:#f1eee6;--border-hold:#bdb39f;--text-hold:#5b5140}
.tc-hold-candidate{border-style:dashed;border-color:var(--border-hold);background:var(--surface-hold)}
.tc-hold-pick{max-width:100%;font:inherit;font-size:12px;padding:4px 6px;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface-reading);color:var(--text-primary)}
.tc-day-hold{margin:8px 0 2px;padding:8px 10px;border:1px dashed var(--border-hold);border-radius:8px;background:var(--surface-hold);color:var(--text-hold);font-size:12px;overflow-wrap:anywhere}
.tc-hold-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
.tc-hold-name{font-weight:600;color:var(--text-primary);min-width:0}
.tc-hold-periods{display:inline-flex;flex-wrap:wrap;gap:4px;margin-right:auto}
.tc-hold-period{font:inherit;font-size:11px;line-height:1.4;padding:2px 9px;border-radius:999px;border:1px solid var(--border-hold);background:transparent;color:var(--text-hold)}
button.tc-hold-period{cursor:pointer;min-height:26px}
.tc-hold-period.is-on{background:var(--text-hold);border-color:var(--text-hold);color:var(--surface-reading)}
.tc-hold-place{margin:4px 0 0}
.tc-hold-tools{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:4px}
.tc-source-tag.is-moved{background:var(--surface-hold);color:var(--text-hold);border:1px dashed var(--border-hold)}
.tc-source-tag.is-near-work{background:#e5ede3;color:var(--udon-green)}
.up-hold{margin:4px 0 6px;padding:4px 8px;border:1px dashed #b9b09c;border-radius:6px;font-size:10pt;color:#4d4536}
/* The route on the itinerary (the poster's map, small): folds like the other sections. */
.tc-route-map{margin:10px 0 4px;border:1px solid var(--border-soft);border-radius:10px;background:#fbf6ea;overflow:hidden}
.tc-route-map>summary{cursor:pointer;padding:8px 12px;font-size:12px;color:var(--text-muted);list-style-position:inside}
.tc-route-map-canvas{display:block;width:100%;height:auto;aspect-ratio:1200/440}
.tc-share-view .tc-route-map{margin:14px 0}
/* My notes: the add line sits with "add activity". */
.tc-add-note{display:inline-block;margin-top:4px;font-size:12px}
.tc-day-pinned .tc-add-note{margin-left:0}
/* Share: preview beside the share button; the preview is a full layer over the dialog. */
.tc-share-buttons{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.tc-share-preview{position:fixed;inset:0;z-index:1100;background:var(--surface-warm,#f5f3ee);overflow:auto;-webkit-overflow-scrolling:touch}
.tc-share-preview-bar{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:var(--surface-interactive);border-bottom:1px solid var(--border-soft);font-size:14px}
.tc-share-preview-page{max-width:820px;margin:0 auto;padding:16px}
body.tc-share-previewing{overflow:hidden}
/* Getting-started tour: a picture of the page with a demo trip, over a dimmed page; the page's own button closes it. */
.tc-tour{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:24px 16px;box-sizing:border-box;background:rgba(28,38,44,.72);animation:tc-tour-in .18s ease-out}
.tc-tour-card{position:relative;margin:0;display:flex;flex-direction:column;align-items:center;gap:14px;max-width:min(1180px,100%);max-height:100%}
.tc-tour-img{display:block;max-width:100%;max-height:calc(100vh - 120px);max-height:calc(100dvh - 120px);width:auto;height:auto;border-radius:16px;border:2px solid #5ED3C4;box-shadow:0 0 0 4px rgba(94,211,196,.16),0 18px 50px rgba(0,0,0,.45);background:#f4f2ec}
.tc-tour-frame{position:relative;max-width:100%;display:flex;justify-content:center}
.tc-tour-tag{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);padding:3px 10px;border-radius:999px;background:rgba(22,98,92,.92);color:#fff;font-size:12px;letter-spacing:.04em}
.tc-tour-close{position:absolute;top:-14px;right:-14px;width:36px;height:36px;border-radius:50%;border:2px solid #5ED3C4;background:#fffdf8;color:#16625C;font-size:22px;line-height:1;cursor:pointer;box-shadow:0 6px 16px rgba(0,0,0,.3)}
.tc-tour-actions{display:flex;justify-content:center}
.tc-tour-next.tc-btn.primary{min-width:140px;border-radius:999px;background:#16625C;border-color:#16625C;color:#fff;box-shadow:0 0 18px rgba(94,211,196,.45)}
.about-tour{display:inline-block;margin:4px 0 12px;padding:6px 14px;border-radius:999px;border:1px solid var(--border-strong,#c9d3cd);background:transparent;color:inherit;font:inherit;font-size:14px;cursor:pointer}
@media (max-width:760px){.tc-tour{padding:16px 10px}.tc-tour-img{max-height:calc(100dvh - 96px);border-radius:14px}.tc-tour-close{top:-10px;right:-6px}}
@keyframes tc-tour-in{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.tc-tour{animation:none}}
