@font-face{font-family:'ZT Editorial';src:url('/assets/fonts/zt-editorial-regular.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'ZT Editorial';src:url('/assets/fonts/zt-editorial-bold.woff') format('woff');font-weight:700;font-style:normal;font-display:swap}
.document-heading>img{display:block;width:260px;max-width:80%;height:auto;background:transparent!important;padding:0!important;border-radius:0!important;box-shadow:none!important;margin:0 0 28px}
/* Screen: keep the application's original typeface and separate day headings from controls. */
.itinerary-document p{white-space:pre-line;overflow-wrap:break-word}
.itinerary-document .day-title{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}
.itinerary-document .day-title>div:first-child{min-width:0;width:100%}
.itinerary-document .day-title>.actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:stretch;min-width:0;width:100%}
.itinerary-document .day-title>.actions>*{width:100%;min-width:0;min-height:42px;padding:10px 12px;white-space:normal;text-align:center;font-size:.85rem;line-height:1.35}
.itinerary-weather{margin-top:36px;padding-top:24px;border-top:2px solid #a8d9d0}
.weather-section-heading h2{margin-block:8px;font-size:1.65rem}
.weather-section-heading p{text-align:left}
.weather-month{margin-block:24px}
.weather-month>h3{text-transform:capitalize;margin-bottom:16px}
.weather-week-head,.weather-month-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:start}
.weather-week-head,.weather-empty{display:none}
.weather-week-head{margin-bottom:8px;text-align:center;font-size:.75rem;font-weight:700;color:#48716a}
.weather-month-grid .weather-day{min-width:0;padding:16px;border-radius:10px;background:#f8fbfa}
.weather-month-grid .weather-card-icon{position:static;margin-bottom:6px}.weather-month-grid .weather-card-icon .weather-emoji{font-size:1.65rem}
.weather-month-grid .weather-top{display:grid;padding:0;gap:6px;font-size:.88rem;line-height:1.4}
.weather-month-grid .weather-temp{font-family:inherit;font-size:1.12rem;line-height:1.3;margin-block:12px;text-align:left;white-space:normal}
.weather-month-grid .weather-temp small{font-size:.78rem}
.weather-month-grid .weather-facts{display:grid;gap:6px;font-size:.82rem;line-height:1.45}
.weather-month-grid .clothing-tips{font-size:.87rem;line-height:1.4;text-align:left}
.weather-month-grid .subtle{display:none}
.description-excerpt{white-space:pre-line;line-height:1.6;max-height:220px;overflow:auto}
.description-preview{padding:18px;border:1px solid #cbded8;border-radius:12px;background:#f8fbfa;margin-top:18px;max-height:280px;overflow:auto}
.description-preview p{white-space:pre-line;line-height:1.65;text-align:justify}
.description-filters select{min-width:180px}
@media(max-width:680px){.itinerary-document .day-title>.actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:390px){.itinerary-document .day-title>.actions{grid-template-columns:minmax(0,1fr)}}
@media(max-width:800px){.weather-week-head{display:none}.weather-month-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.weather-empty{display:none}.weather-month-grid .weather-day{padding:16px}.weather-month-grid .weather-top{font-size:.9rem}.weather-month-grid .weather-facts{font-size:.82rem}}
@media(max-width:480px){.weather-month-grid{grid-template-columns:minmax(0,1fr)}}
@media print{
 .no-print,.collection-filters,.collection-filter-note,.internal-note,.provider-status-control,.service-review{display:none!important}
 .document-heading>img{background:transparent!important;padding:0!important;border-radius:0!important;width:65mm!important;max-width:80%!important}
 .itinerary-document{color:#172f2b!important;font-family:Arial,sans-serif;font-size:10pt}
 .itinerary-document p,.itinerary-document .itinerary-item p{font-family:'ZT Editorial',Georgia,serif!important;font-size:11pt!important;line-height:1.55!important;color:#203832!important;text-align:justify;orphans:3;widows:3}
 .itinerary-document .document-heading h2{font-size:23pt;line-height:1.2;letter-spacing:-.025em;margin-top:6mm}
 .itinerary-document .document-heading{break-inside:avoid-page;page-break-inside:avoid;break-after:auto;page-break-after:auto;padding-bottom:5mm;margin-bottom:5mm;border-bottom:2px solid #a8d9d0}
 .itinerary-document .day-title{display:block;padding-bottom:3mm;margin-bottom:3mm;border-bottom:1px solid #deebe7;break-after:avoid-page;page-break-after:avoid}
 .itinerary-document .day-title h3{font-size:15pt;line-height:1.25;letter-spacing:-.02em}
 .itinerary-document .day-card{display:block!important;padding:4mm!important;border-radius:2mm;break-inside:auto!important;page-break-inside:auto!important}
 .itinerary-document .itinerary-item{border-bottom:1px solid #e2ece8;grid-template-columns:17mm minmax(0,1fr);gap:3mm;padding-block:3.5mm}
 .itinerary-document .itinerary-item>div>strong{font-size:11pt}
 .itinerary-weather{break-before:auto;page-break-before:auto;margin:0;padding-top:0;border-top:0}
 .weather-section-heading{break-after:avoid-page}
 .weather-month{break-inside:auto}.weather-month>h3{break-after:avoid-page}
 .itinerary-document .document-heading>p:first-of-type{text-align:left}
 .weather-week-head,.weather-empty{display:none}
 .weather-month-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:3mm}
 .weather-month-grid .weather-day{break-inside:avoid-page;page-break-inside:avoid;padding:3mm;border:1px solid #b8cec6!important;background:white!important}
 .weather-month-grid .weather-top{font-size:9pt}.weather-month-grid .weather-facts{font-size:9pt}
 .itinerary-document .weather-month-grid p{font-size:10pt!important;text-align:left;line-height:1.4!important}
 .weather-month-grid .weather-temp{font-size:14pt!important}
 .weather-emoji{animation:none!important;filter:none}
}

.weather-emoji svg{display:block;width:1em;height:1em}.weather-emoji{color:#168476}.weather-emoji.sun{color:#bd831e}


/* On paper, group related information while allowing oversized content to flow. */
.activity-print-time{display:none}
@media print{
 @page{margin:14mm}
 .itinerary-document{overflow:visible!important}
 .itinerary-document .document-heading{break-inside:auto;page-break-inside:auto}
 .itinerary-document .document-heading>img{break-after:avoid-page}
 .itinerary-document h2,.itinerary-document h3,.itinerary-document .eyebrow{break-after:avoid-page;page-break-after:avoid}
 .itinerary-document .document-heading>h2{break-inside:avoid-page}
 .itinerary-document .document-heading>p:last-child{break-inside:avoid-page}
 .itinerary-document .day-title{break-inside:avoid-page;page-break-inside:avoid}
 .itinerary-document .day-card{box-decoration-break:clone;-webkit-box-decoration-break:clone}
 .itinerary-document .itinerary-item{display:block!important;break-inside:avoid-page;page-break-inside:avoid;overflow:visible!important;padding:3.5mm 0;clear:both}
 .itinerary-document .itinerary-item>b{display:none}
 .itinerary-document .activity-heading{display:block;break-inside:avoid-page;page-break-inside:avoid;break-after:avoid-page;page-break-after:avoid}
 .itinerary-document .activity-heading:after{content:"";display:block;clear:both}
 .itinerary-document .activity-heading>strong{display:block;font-size:11pt;line-height:1.35}
 .itinerary-document .activity-print-time{display:block;float:right;margin:0 0 2mm 4mm;max-width:30%;font-family:Arial,sans-serif;font-size:10pt;font-weight:700;text-align:right;line-height:1.4}
 .itinerary-document .activity-heading .chip-row{margin-bottom:1.5mm}
 .itinerary-document .itinerary-item p{orphans:3;widows:3}
 .itinerary-document .itinerary-item p:empty{display:none}
 .itinerary-document .itinerary-item p:has(>b:first-child){break-inside:avoid-page;page-break-inside:avoid}
 .itinerary-document .weather-section-heading{break-inside:avoid-page;break-after:avoid-page}
 .itinerary-document .weather-month>h3{break-inside:avoid-page;break-after:avoid-page}
 .itinerary-document .weather-top{break-inside:avoid-page;break-after:avoid-page}
 .itinerary-document .weather-facts{break-inside:avoid-page}
 .document .table-wrap{overflow:visible!important}
 .document table{width:100%!important;min-width:0!important;table-layout:auto}
 .document thead{display:table-header-group}
 .document tfoot{display:table-footer-group}
 .document tr{break-inside:avoid-page;page-break-inside:avoid}
 .document td,.document th{overflow-wrap:anywhere}
}

/* Compact weather agenda shared by screen and print. */
.forecast-section{margin-top:30px;padding-top:24px}
.forecast-section .weather-section-heading h2{font-size:1.6rem;margin:7px 0}
.forecast-section .weather-section-heading p{color:var(--muted);font-size:.9rem;margin:8px 0 22px}
.forecast-month{margin:0 0 24px}
.forecast-month>h3{font-size:1rem;text-transform:none;color:#087a72;margin:0!important;padding:12px 0;border-bottom:2px solid #b9dfd8}
.weather-summary-table{min-width:0;width:100%;table-layout:fixed;border-collapse:collapse}
.weather-summary-table .forecast-date-column{width:25%}.weather-summary-table .forecast-condition-column{width:35%}.weather-summary-table .forecast-temp-column{width:18%}.weather-summary-table .forecast-details-column{width:22%}
.weather-summary-table thead th{padding:10px 12px;background:#f1f8f6;font-size:.68rem;letter-spacing:.035em;color:#49726b;border-top:0}
.weather-summary-table tbody th,.weather-summary-table tbody td{padding:14px 12px;vertical-align:top;border-top:0;border-bottom:1px solid #dce9e5;font-size:.84rem;line-height:1.5;white-space:normal;overflow-wrap:anywhere;text-transform:none;letter-spacing:normal;background:transparent}
.forecast-date{display:block;font-weight:800;color:#153d36;font-size:.93rem}.forecast-date small{margin-left:7px;font-weight:500;font-size:.73rem;text-transform:capitalize;color:#687c77}
.forecast-city{display:block;margin-top:4px;font-size:.76rem;font-weight:400;color:#687c77}
.forecast-symbol{display:inline-block;vertical-align:middle;font-size:1.4rem;margin-right:9px;line-height:1}.forecast-symbol .weather-emoji{animation:none;filter:none}
.forecast-temperature>span,.forecast-details>span{display:block}.forecast-temperature small{display:inline-block;min-width:30px;font-size:.71rem;color:#687c77}.forecast-temperature b{font-size:.95rem;font-weight:700}.forecast-details b{font-weight:600}.forecast-pending{font-size:.78rem;color:#7b8d88}
.forecast-edit{display:block;margin:7px 0 0;padding:4px 0;background:transparent;border:0;color:#087a72;font:inherit;font-size:.72rem;text-decoration:underline;cursor:pointer}
.forecast-packing{margin-top:24px}.forecast-packing>h3{font-size:1.1rem;margin:0 0 12px!important}.forecast-packing-note{border-left:3px solid #0aab9c;background:#f5faf8;padding:12px 16px;margin:0 0 10px;border-radius:0 8px 8px 0}.forecast-packing-note h4{margin:0 0 5px;color:#087a72;font-size:.78rem;line-height:1.5}.itinerary-document .forecast-packing-note p{margin:0;font-size:.87rem;line-height:1.6;white-space:pre-line;text-align:left}
.itinerary-document .forecast-source{font-size:.73rem;color:#71857e;line-height:1.5;margin:16px 0 0;text-align:left}
@media screen and (max-width:680px){
 .weather-summary-table,.weather-summary-table tbody{display:block}.weather-summary-table colgroup,.weather-summary-table thead{display:none}.weather-summary-table tbody tr{display:grid;grid-template-columns:1fr 1fr;padding:14px 0;border-bottom:1px solid #dce9e5;gap:10px 16px}.weather-summary-table tbody th,.weather-summary-table tbody td{display:block;border:0;padding:0}.weather-summary-table tbody th,.weather-summary-table .forecast-condition{grid-column:1/-1}.forecast-date{display:inline}.forecast-city{display:inline;margin-left:10px}.forecast-edit{display:inline-block;margin-left:12px}.forecast-temperature:before{content:'Temperatura';display:block;font-size:.7rem;color:#687c77}.forecast-details:before{content:'Lluvia y viento';display:block;font-size:.7rem;color:#687c77}
}
@media print{
 .forecast-section{margin-top:6mm;padding-top:3mm;border-top:1px solid #b9dfd8}
 .forecast-section .weather-section-heading h2{font-size:16pt;margin:0 0 2mm}
 .itinerary-document .forecast-section .weather-section-heading p{font-family:Arial,sans-serif!important;font-size:9pt!important;line-height:1.4!important;text-align:left;margin:0 0 4mm}
 .forecast-month{margin:0 0 5mm;break-inside:auto}.forecast-month>h3{font-size:11pt;padding:2mm 0;break-after:avoid-page}
 .weather-summary-table{display:table!important;table-layout:fixed!important;min-width:0!important}.weather-summary-table tbody{display:table-row-group}.weather-summary-table thead{display:table-header-group!important}
 .weather-summary-table tr{display:table-row;break-inside:avoid-page;page-break-inside:avoid}
 .weather-summary-table thead th{font-size:7.5pt!important;padding:2mm!important;background:#f1f8f6!important}
 .weather-summary-table tbody th,.weather-summary-table tbody td{display:table-cell!important;font-family:Arial,sans-serif;font-size:9pt!important;line-height:1.4!important;padding:1.5mm 2mm!important;border-bottom:1px solid #cbded7}
 .forecast-date{font-size:9pt}.forecast-date small,.forecast-city,.forecast-pending,.forecast-temperature small{font-size:8pt}.forecast-temperature b{font-size:9pt}.forecast-symbol{font-size:14pt;margin-right:2mm}
 .forecast-packing{margin-top:4mm}.forecast-packing>h3{font-size:12pt;break-after:avoid-page}.forecast-packing-note{padding:2.5mm 3mm;margin:0 0 3mm;border-left:2px solid #0aab9c;break-inside:auto}.forecast-packing-note h4{font-size:9pt;break-after:avoid-page}
 .itinerary-document .forecast-packing-note p{font-size:10pt!important;line-height:1.45!important;text-align:left}
 .itinerary-document .forecast-source{font-family:Arial,sans-serif!important;font-size:8pt!important;line-height:1.4!important;text-align:left;break-inside:avoid-page}
}

/* Reusable descriptive media: screen and printed itinerary */
.description-media-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0;clear:both}
.description-media-item{margin:0;min-width:0;break-inside:avoid;border:1px solid #dce8e6;border-radius:12px;overflow:hidden;background:#fff}
.description-media-item img,.description-media-item video{display:block;width:100%;height:auto;max-height:320px;object-fit:contain;background:#f3f7f6}
.description-media-item figcaption{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;font-size:12px;overflow-wrap:anywhere}
.description-media-item figcaption button{flex-shrink:0}
.media-print-video{display:none}
@media(max-width:600px){.description-media-gallery{grid-template-columns:1fr}}
@media print{.description-media-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3mm;margin:3mm 0;break-inside:auto}.description-media-item{break-inside:avoid-page;border-radius:2mm}.description-media-item img{max-height:55mm;object-fit:contain}.description-media-item video{display:none}.description-media-item .media-print-video{display:block;padding:3mm;font-size:9pt}.description-media-item figcaption{font-size:8pt;padding:2mm}.description-media-item a::after{content:none!important}}

.document-heading .description-media-item img{width:100%;max-width:100%;margin:0}
