.login-card{width:min(620px,100%);display:block}.login-brand{min-height:0;padding:36px 48px 12px;background:#fff}.login-logo{max-width:280px;width:100%;display:block}.login-copy,.login-form,.demo-credentials{padding-left:48px;padding-right:48px}.login-copy{padding-top:10px;text-align:center}.login-copy h1{font-size:2rem}.login-form{padding-top:12px}.demo-credentials{text-align:center;padding:12px 40px 32px}.sidebar-top{min-height:60px}.brand-word{font-size:2rem;font-weight:900;letter-spacing:-3px}.brand-word span{color:var(--teal)}.hero-brand{background:white;border:1px solid var(--line);border-radius:24px;padding:32px;margin-bottom:20px;text-align:center}.hero-brand img{width:260px;max-width:80%;display:block;margin:0 auto 24px}.hero-brand h1{margin:12px 0;font-size:clamp(1.7rem,3vw,2.6rem)}.hero-brand p{color:var(--muted);max-width:580px;margin:0 auto 24px;line-height:1.6}.hero-actions,.actions,.page-actions,.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.hero-actions{justify-content:center}.page-actions{justify-content:space-between;margin:0 0 20px}.toolbar{margin:12px 0}.sync-state{font-size:.75rem;color:#087a72}.error{color:#b93838;font-size:.9rem;line-height:1.5}.error:empty{display:none}.empty{color:var(--muted);padding:28px;text-align:center;border:1px dashed var(--line);border-radius:16px;line-height:1.6}.card-grid{align-items:start}.entity-card p{white-space:pre-wrap;line-height:1.6}.entity-card footer{display:flex;gap:8px;margin-top:18px;flex-wrap:wrap}.quote-item{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:8px}.quote-item input{min-width:0;width:100%}.quote-head{font-size:.78rem;color:var(--muted);font-weight:700}.form-grid label,.modal-form label{display:grid;gap:8px}.form-grid select,.form-grid textarea,input,textarea,select{max-width:100%;border:1px solid var(--line);border-radius:10px;padding:11px;background:white;color:var(--ink)}textarea{resize:vertical}select[multiple]{min-height:110px}.checks{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr));max-height:240px;overflow:auto;padding:10px;border:1px solid var(--line);border-radius:12px}.checks label{display:flex;align-items:center;gap:8px;font-weight:500}.checks input{width:auto}.full-field{grid-column:1/-1}.modal-card{max-height:90vh;overflow:auto;width:min(760px,95vw)}.modal-form{grid-template-columns:repeat(2,minmax(0,1fr));display:grid;gap:16px}.document{max-width:1000px;margin:auto}.document-heading{border-bottom:1px solid var(--line);padding-bottom:20px}.document-heading img{width:min(360px,80vw);height:auto;display:block;margin-bottom:16px;background:#fff}.document dl{display:grid;grid-template-columns:140px 1fr;gap:10px}.document dt{color:var(--muted)}.document dd{margin:0;white-space:pre-wrap}.day-card{margin:16px 0}.day-title{gap:12px;align-items:center}.itinerary-item{grid-template-columns:65px 1fr auto;align-items:start}.itinerary-item p{margin:6px 0;font-size:.88rem;white-space:pre-wrap;color:var(--muted)}.badge{display:inline-block;border-radius:8px;background:#e6f7f4;color:#087a72;padding:4px 8px;font-size:.75rem}.draft{background:#fff1d8;color:#925c05}.list-row{border-bottom:1px solid var(--line);padding:16px 0;display:flex;gap:12px;justify-content:space-between;align-items:center}.list-row small{display:block;color:var(--muted);margin-top:6px}.calendar-cell{min-width:0;cursor:pointer}.cal-event{width:100%;display:block;text-align:left;white-space:normal;border:none;font-size:.72rem;margin:4px 0;padding:4px;overflow:hidden}.calendar-grid{align-items:stretch}.mobile-only{display:none}.muted-text{color:var(--muted);font-size:.85rem}.danger-btn{background:#ffeded;color:#b32e2e}.section-gap{margin-top:24px}button:disabled{opacity:.5;cursor:wait}.notice{background:#eaf6f5;border-radius:12px;padding:14px;line-height:1.6;margin:12px 0}.settings-grid{align-items:start}.panel h3{margin-top:8px}a{color:#087a72}button:focus-visible,a:focus-visible{outline:3px solid var(--teal);outline-offset:3px}#notificationCount{font-size:.75rem;margin-left:4px}.modal-actions{grid-column:1/-1}.ledger-total{display:flex;flex-wrap:wrap;gap:14px}.ledger-total div{flex:1;min-width:200px}.table-wrap{overflow-x:auto}.subtle{font-size:.8rem;color:var(--muted)}
@media(max-width:900px){.mobile-only{display:block}.sync-state{max-width:95px}.stat-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.quote-layout{grid-template-columns:1fr}.content{padding:18px}.topbar{padding:0 16px}.checks{grid-template-columns:1fr}.quote-item{grid-template-columns:minmax(90px,2fr) repeat(3,minmax(50px,1fr)) 30px;gap:5px}.quote-item input{padding:8px}.calendar-cell{padding:5px;min-height:95px}.calendar-shell{overflow:auto}.calendar-grid,.calendar-weekdays{min-width:600px}}
@media(max-width:550px){.modal-form,.form-grid{grid-template-columns:1fr}.login-copy,.login-form{padding-left:24px;padding-right:24px}.hero-brand{padding:24px 16px}.day-title{flex-wrap:wrap}.itinerary-item{grid-template-columns:50px 1fr}.itinerary-item>.actions{grid-column:2}.modal-card{padding:20px}.topbar h2{font-size:1.2rem}}
@media print{body{background:white}.sidebar,.topbar,.page-actions,.actions,.toolbar,button,.toast,.modal-backdrop{display:none!important}.main-area{margin:0!important}.content{padding:0}.panel,.day-card{box-shadow:none;break-inside:avoid;border:1px solid #ddd}.hero-brand{display:none}.document-heading img{width:160px}.quote-summary{display:none}.document{max-width:none}a{color:black;text-decoration:none}.itinerary-item{break-inside:avoid}}
.hero-brand img{background:#081516;padding:20px;border-radius:18px;width:360px;max-width:90%}.login-brand{background:#081516;padding:32px}.login-logo{max-width:340px}.document-heading img{background:#081516;padding:12px;border-radius:12px;width:240px}.sidebar .icon-btn{color:#bbd2d0}.nav-item svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.topbar svg{vertical-align:middle}.quote-item select{width:100%;padding:8px;margin-top:6px;font-size:.82rem}.itinerary-builder .page-actions{align-items:center}
@media(max-width:1000px){.main-area{transition:none;min-width:0}.sidebar.collapsed~.main-area{margin-left:0}.topbar-left{min-width:0}.content{min-width:0}.page-actions label{max-width:100%}.settings-grid,.card-grid,.dashboard-grid,.quote-layout{min-width:0}.calendar-shell{max-width:100%}.toolbar{max-width:100%}}
@media(max-width:550px){.topbar-left .eyebrow{display:none}.sync-state{font-size:.65rem;max-width:90px}.topbar-actions{gap:3px}.topbar{gap:5px;height:68px}.content{padding:12px}.document dl{grid-template-columns:1fr}.hero-brand img{padding:14px}.quote-item.quote-head{font-size:.62rem}.toolbar .secondary-btn{font-size:.82rem;padding:9px}.topbar-left h2{white-space:nowrap}}
.agenda-month{margin-top:18px}.agenda-view{display:grid;gap:12px}.agenda-day{display:grid;grid-template-columns:minmax(120px,.35fr) 1.65fr;gap:16px}.agenda-date{display:flex;flex-direction:column;gap:4px}.agenda-items{display:grid}.agenda-item{display:grid;grid-template-columns:90px 1fr auto;align-items:start;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.agenda-item time{font-weight:800;color:var(--teal-dark)}.agenda-item small{display:block;color:var(--muted);margin-top:5px}.agenda-item p{color:var(--muted);margin:8px 0}.weather-days{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.weather-day{border:1px solid var(--line);border-radius:13px;padding:14px}.weather-top{display:flex;justify-content:space-between;gap:8px}.weather-temp{font-size:1.7rem;font-weight:800;margin:14px 0}.weather-temp small{font-size:.9rem;color:var(--muted)}.weather-facts{display:flex;flex-wrap:wrap;gap:8px;font-size:.8rem;color:var(--muted)}.clothing-tips{font-size:.9rem;line-height:1.5}.weather-panel{margin:20px 0}.weather-panel>label{margin:10px 0}.weather-panel>label select{width:100%;max-width:400px}.weather-panel a{color:#087a72}
@media(max-width:680px){.agenda-day{grid-template-columns:1fr}.agenda-item{grid-template-columns:70px 1fr;gap:8px}.agenda-item>[data-action]{grid-column:2;justify-self:start}.weather-days{grid-template-columns:1fr}}
.check-tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:8px 0}.check-tools input{width:min(100%,440px)}.checks label[hidden]{display:none}.checks label small{margin-left:auto;color:var(--muted);font-size:.72rem}
.manual-weather-inline{position:relative;margin:14px 0;padding:14px 72px 14px 16px;border:1px solid #cfe8e3;border-radius:14px;background:linear-gradient(120deg,#f1fbf8,#fff);overflow:hidden}.manual-weather-inline p{margin:7px 0}.weather-animation{position:absolute;right:16px;top:20px}.weather-day{position:relative;overflow:hidden}.weather-card-icon{position:absolute;right:16px;top:12px}.weather-card-icon .weather-emoji{font-size:2.4rem}.weather-top{padding-right:54px}.weather-emoji{display:inline-block;font-style:normal;filter:drop-shadow(0 4px 5px #163b4722)}.weather-emoji.sun{animation:weather-spin 16s linear infinite}.weather-emoji.cloudy{animation:weather-float 2.8s ease-in-out infinite alternate}.weather-emoji.rain{animation:weather-rain 1s ease-in-out infinite alternate}.weather-emoji.snow{animation:weather-snow 4s linear infinite}.weather-emoji.storm{animation:weather-flash 1.8s ease-in-out infinite}.weather-emoji.wind{animation:weather-wind 2s ease-in-out infinite alternate}.weather-emoji.fog,.weather-emoji.variable{animation:weather-float 3s ease-in-out infinite alternate}@keyframes weather-spin{to{transform:rotate(360deg)}}@keyframes weather-float{to{transform:translateY(-5px)}}@keyframes weather-rain{to{transform:translateY(4px) scale(1.06)}}@keyframes weather-snow{to{transform:rotate(360deg)}}@keyframes weather-flash{0%,72%,100%{filter:brightness(1)}80%{filter:brightness(1.8)}}@keyframes weather-wind{to{transform:translateX(5px) rotate(-8deg)}}@media(prefers-reduced-motion:reduce){.weather-emoji{animation:none!important}}
@page{size:A4 portrait;margin:12mm}
@media print{html,body{width:auto!important;height:auto!important;margin:0!important;padding:0!important;background:#fff!important}.sidebar,.topbar,.page-actions,.actions,.toolbar,button,.toast,.modal-backdrop,.section-search{display:none!important}.main-area{width:100%!important;margin:0!important;padding:0!important}.content{width:100%!important;min-width:0!important;margin:0!important;padding:0!important}.panel.document{display:block!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;border:0!important;box-shadow:none!important;overflow:visible!important;break-inside:auto!important;page-break-inside:auto!important}.document-heading{break-after:avoid-page;page-break-after:avoid}.document-heading img{width:270px!important;max-width:85vw!important;background:#fff!important}.document .day-card{margin:0 0 8mm!important;border:1px solid #ddd!important;box-shadow:none!important;break-inside:auto!important;page-break-inside:auto!important}.document .itinerary-item{break-inside:avoid-page;page-break-inside:avoid}.document .panel{box-shadow:none!important}a{color:#111!important;text-decoration:none!important}}
.setup-help{display:block;color:var(--muted);line-height:1.5;margin-top:-4px}.internal-note{background:#fff7e9;border:1px solid #f3ddb0;border-radius:10px;padding:10px!important;color:#7b5a19!important}.provider-passengers{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.provider-passengers h3{margin:0 0 10px}.login-card{box-shadow:0 26px 70px rgba(0,0,0,.28)}
.profile-file{padding:0;overflow:hidden}.file-banner{background:#0b1516;color:#fff;padding:24px;display:flex;align-items:center;justify-content:space-between;gap:18px}.file-banner .eyebrow{color:#69d8d0}.file-banner h2{margin:8px 0 6px;font-size:1.8rem}.file-banner p{margin:0;color:#c8d4d4}.portal-access{margin:18px;border:1px solid var(--line);border-radius:18px;padding:18px;background:#fff}.portal-access-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.portal-access-head h3{margin:5px 0}.portal-access-head p{margin:0;color:var(--muted);line-height:1.5}.access-status{border-radius:999px;padding:7px 10px;font-size:.76rem;font-weight:800;white-space:nowrap}.access-status.on{background:#e9f7ef;color:#26713d}.access-status.off{background:#ffeded;color:#a43939}.access-grid{display:grid;grid-template-columns:1fr 1.6fr;gap:12px;margin:16px 0}.access-box{border:1px solid var(--line);border-radius:14px;padding:15px;display:grid;gap:7px;background:#fbfdfd}.access-box small{font-size:.7rem;letter-spacing:.08em;color:var(--muted);font-weight:800}.access-box strong{font-size:1.06rem}.access-box span{font-size:.8rem;color:var(--muted);line-height:1.45}.file-section{margin:18px;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff}.file-section h3{margin-top:0}.file-section p{white-space:pre-wrap;line-height:1.6}.file-grid{display:grid;grid-template-columns:1fr 1fr;gap:0}.internal-file{background:#fff8ec;border-color:#f1dfb6}
@media(max-width:680px){.file-banner,.portal-access-head{flex-direction:column}.access-grid,.file-grid{grid-template-columns:1fr}.portal-access,.file-section{margin:12px}.file-banner{padding:20px}}
.quote-item.no-cost{grid-template-columns:2fr 1fr 1fr auto}.demo-access{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.demo-access>div{border:1px solid var(--line);border-radius:14px;padding:14px;display:grid;gap:5px;background:#fbfdfd}.demo-access small{color:var(--muted);font-weight:800;letter-spacing:.06em}.demo-access b{font-size:1.1rem}.demo-access span{font-size:.82rem;color:var(--muted)}
@media(max-width:680px){.quote-item.no-cost{grid-template-columns:1fr 1fr}.quote-item.no-cost>div:first-child{grid-column:1/-1}.demo-access{grid-template-columns:1fr}}
.portal-share{margin-top:18px;padding:16px;border:1px solid var(--line,#dce6e5);border-radius:16px;background:rgba(8,183,170,.05)}
.portal-share label{display:grid;gap:7px;font-weight:700}.portal-share input{width:100%;font-weight:500}
.service-review{margin-top:12px;padding:12px 14px;border-radius:14px;background:rgba(8,183,170,.07);border:1px solid rgba(8,183,170,.18);display:flex;align-items:center;gap:10px;flex-wrap:wrap}.service-review p{width:100%;margin:0}.review-stars{font-size:1.15rem;letter-spacing:2px}.review-summary{display:flex;align-items:baseline;gap:10px;margin:8px 0 14px}.review-summary strong{font-size:1.7rem}.review-card{padding:12px 0;border-top:1px solid var(--line,#dce6e5)}.review-card:first-of-type{border-top:0}.review-card p{margin-bottom:0}


/* v0.8 · accesos independientes */
.portal-page .portal-login-view{min-height:100vh;padding:0;background:linear-gradient(to bottom,#0b0d0d 0 38%,#f7f6f2 38% 100%);display:grid;place-items:center}
.portal-login-card{width:min(430px,calc(100% - 32px));background:#fff;border-radius:24px;padding:28px 30px 26px;box-shadow:0 28px 70px rgba(0,0,0,.25);text-align:center;margin:42px auto}
.portal-logo-box{width:230px;max-width:78%;margin:-4px auto 18px;background:#0b0d0d;border-radius:18px;padding:14px 18px;box-shadow:0 12px 28px rgba(0,0,0,.14)}
.portal-login-logo{width:100%;height:auto;display:block}
.portal-login-copy .eyebrow{font-size:.68rem;letter-spacing:.24em;color:#687271}.portal-login-copy h1{font-size:2rem;line-height:1.02;margin:12px 0 14px;letter-spacing:-.045em}.portal-login-copy p{color:#66706f;line-height:1.55;margin:0 auto 22px}
.portal-login-form{display:grid;gap:15px;text-align:left}.portal-login-form label{display:grid;gap:7px;font-size:.86rem;font-weight:800}.portal-login-form input{width:100%;border:1px solid #d7dedc;border-radius:12px;padding:13px 14px;font:inherit;background:#fff}.portal-enter-btn{margin-top:0;min-height:46px;font-weight:850}.portal-login-help{font-size:.78rem;color:#89908f;line-height:1.45;margin:18px 0 12px}.portal-staff-link{display:inline-block;font-size:.77rem;color:#65706f;text-decoration:none}.portal-staff-link:hover{text-decoration:underline}.portal-page .password-wrap{background:#fff}
@media(max-width:560px){.portal-page .portal-login-view{background:linear-gradient(to bottom,#0b0d0d 0 31%,#f7f6f2 31% 100%)}.portal-login-card{width:min(430px,calc(100% - 24px));padding:24px 22px;margin:28px auto;border-radius:22px}.portal-logo-box{width:210px}.portal-login-copy h1{font-size:1.78rem}}

.section-search{display:grid;gap:7px;margin:0 0 16px;font-size:.82rem;color:var(--muted);font-weight:800}.section-search input{width:100%;max-width:520px}.preference-card{width:min(450px,100%);line-height:1.55}.preference-check{display:flex;align-items:center;gap:9px;margin:18px 0}.preference-check input{width:auto}.sidebar{height:100dvh;display:flex;flex-direction:column}.nav-menu{overflow:auto;overscroll-behavior:contain;flex:1}.sidebar-footer{flex-shrink:0}
@media(max-width:1000px){.sidebar{width:min(270px,82vw);padding:18px 14px}.sidebar-top{min-height:48px}.nav-item{min-height:48px;padding:10px 12px}.sidebar-footer{padding-top:10px}}
@media(max-width:550px){.sidebar{width:min(248px,82vw)}.nav-item{gap:12px;font-size:.95rem}.sidebar-footer{gap:10px}.user-mini-text{max-width:120px;overflow:hidden}.topbar-actions .sync-state{display:none!important}}
#content [hidden]{display:none!important}
.check-tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:8px 0}.check-tools input{width:min(100%,440px)}.checks label[hidden]{display:none}.checks label small{margin-left:auto;color:var(--muted);font-size:.72rem}
.photo-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;display:inline-grid;place-items:center;flex:0 0 auto;background:#e8f3f2;color:#087a72;font-weight:800}.photo-avatar.small{width:38px;height:38px}.photo-avatar.large{width:72px;height:72px}.photo-fallback{background:#e4f1ef}.photo-name{display:flex;align-items:center;gap:12px}.provider-name h3{margin:6px 0 0}.file-banner-copy{min-width:0;flex:1}.file-banner>.photo-avatar{border:2px solid rgba(255,255,255,.28)}.photo-field{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.photo-preview{width:112px;height:112px;border-radius:16px;object-fit:cover;border:1px solid var(--line)}.photo-remove{display:flex!important;align-items:center;gap:7px;font-weight:500!important;margin-top:8px}.photo-remove input{width:auto}.itinerary-item{grid-template-columns:86px minmax(0,1fr)}.itinerary-item>div{min-width:0;overflow-wrap:anywhere}.itinerary-item>.actions{grid-column:2;min-width:0}.itinerary-item .actions>*{max-width:100%}.cal-event small{display:block;font-weight:600;opacity:.8;white-space:normal}.agenda-owner{display:block;color:var(--teal-dark);font-weight:700;margin-top:4px}
.provider-service-editor{display:grid;gap:10px;margin:10px 0}.provider-service-row{display:grid;grid-template-columns:1.5fr 1fr 1.2fr .7fr 36px;gap:8px;align-items:end;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fbfdfd}.provider-service-row label{display:grid;gap:6px;font-size:.78rem}.provider-service-row input,.provider-service-row select{min-width:0;width:100%;padding:9px}.quote-service-fields{display:grid;grid-template-columns:1fr 1fr;gap:6px;min-width:0}.quote-service-fields input,.quote-service-fields select{width:100%;min-width:0;padding:9px}.quote-item{align-items:start}.quote-item.no-cost{grid-template-columns:minmax(0,2fr) minmax(60px,.7fr) minmax(90px,1fr) 36px}.quote-item.no-cost .quote-service-fields{grid-column:1}.quote-item.no-cost>input[data-field="qty"]{grid-column:2;grid-row:1}.quote-item.no-cost>input[data-field="price"]{grid-column:3;grid-row:1}.quote-item.no-cost>button{grid-column:4;grid-row:1}.quote-item .quote-service-fields input{grid-column:1/-1}@media(max-width:700px){.provider-service-row{grid-template-columns:1fr 1fr}.provider-service-row label:first-of-type{grid-column:1/-1}.provider-service-row button{justify-self:end}.quote-item,.quote-item.no-cost{grid-template-columns:1fr 1fr 36px}.quote-item .quote-service-fields,.quote-item.no-cost .quote-service-fields{grid-column:1/-1}.quote-item>input[data-field="qty"]{grid-column:1;grid-row:auto}.quote-item>input[data-field="cost"],.quote-item.no-cost>input[data-field="price"]{grid-column:2;grid-row:auto}.quote-item>input[data-field="price"]{grid-column:3;grid-row:auto}.quote-item>button{grid-column:3;grid-row:1}}

.calendar-filter-control{display:flex;align-items:center;gap:8px;color:var(--muted);font-weight:700}.calendar-filter-control select{min-height:42px}
/* Ratings, provider service tracking and the administrator's task panel. */
.provider-rating-summary{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:10px 0}.rating-stars{color:#e5a400;letter-spacing:.08em;font-size:1.2rem}.rating-link{font-size:.82rem;padding:7px 11px}.provider-rating-panel{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;margin:18px 0;background:#f1f9f8;border:1px solid var(--line);border-radius:16px}.provider-rating-panel .provider-rating-summary{padding:6px 0}.provider-rating-panel .provider-rating-summary small{color:var(--muted)}.provider-status-control{display:grid;gap:4px;min-width:150px;font-size:.75rem;color:var(--muted)}.provider-status-control select{padding:8px 10px;font-size:.85rem}.provider-task-row{align-items:center}.operations-dashboard{margin-top:20px}.operations-dashboard .panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.operations-dashboard .dashboard-grid{margin-top:22px}.operations-dashboard h4{margin:0 0 12px}.review-list-row .review-stars{margin:5px 0;color:#e5a400}.review-list-row .muted-text{font-size:.9rem}.provider-rating-summary .muted-text{font-size:.9rem}
@media(max-width:680px){.provider-rating-panel{align-items:flex-start;flex-direction:column}.provider-task-row{align-items:flex-start;flex-direction:column}.provider-status-control{width:100%}.operations-dashboard .panel-head{align-items:flex-start;flex-direction:column}}

/* Ventanas emergentes: formulario desplazable y acciones siempre accesibles */
.modal-backdrop{padding:clamp(10px,3vh,24px);padding-bottom:max(clamp(10px,3vh,24px),env(safe-area-inset-bottom));}
.modal-card{display:flex;flex-direction:column;width:min(680px,96vw);max-height:min(90vh,900px);max-height:min(90dvh,900px);overflow:hidden;}
.modal-head{flex:0 0 auto;gap:12px;padding-bottom:10px;}
.modal-head h3{margin:0;min-width:0;overflow-wrap:anywhere;}
.modal-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;flex:0 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:4px 3px 0 0;}
.modal-form:empty,#modalExtra:empty{display:none;}
#modalExtra{flex:0 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;}
#modalError{flex:0 0 auto;margin:6px 0 0;}
.modal-form .modal-actions{position:sticky;bottom:0;z-index:2;grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px;margin:0 -3px 0 0;padding:12px 3px max(8px,env(safe-area-inset-bottom));background:linear-gradient(to bottom,rgba(255,255,255,.92),#fff 22%);border-top:1px solid #e8eeee;}
.modal-actions button{min-height:44px;}
@media(max-width:680px){
 .modal-backdrop{display:flex;align-items:flex-end;justify-content:center;padding:0;background:rgba(0,0,0,.52);}
 .modal-card{width:100%;max-width:none;height:min(88vh,900px);height:min(88dvh,900px);max-height:min(88vh,900px);max-height:min(88dvh,900px);padding:14px 16px max(8px,env(safe-area-inset-bottom));border-radius:18px 18px 0 0;}
 .modal-card.preference-card{align-self:center;width:min(450px,calc(100% - 28px));max-width:450px;height:auto;max-height:min(60dvh,400px);padding:18px 18px max(14px,env(safe-area-inset-bottom));border-radius:18px;overflow-y:auto;}
 .preference-card .preference-check{margin:12px 0;}
 .modal-head{padding-bottom:8px;}
 .modal-form{grid-template-columns:minmax(0,1fr);gap:11px;padding-right:1px;}
 .modal-form>div,.modal-form .full-field,.modal-form .modal-actions{grid-column:1;}
 .modal-form label,.modal-form>div>label,.modal-form .form-field-label{font-size:.92rem;line-height:1.3;}
 .modal-form input:not([type="checkbox"]):not([type="file"]),.modal-form select,.modal-form textarea{width:100%;min-width:0;min-height:44px;padding:10px 12px;font-size:16px;}
 .modal-form textarea{min-height:88px;}
 .modal-form .modal-actions{bottom:-1px;margin:0 -1px 0 0;padding:10px 1px max(8px,env(safe-area-inset-bottom));}
 #modalExtra .panel{padding:14px;}
}

/* Dashboard administrativo: indicadores y resumen financiero */
.admin-analytics{display:grid;gap:18px;margin:18px 0}.admin-analytics>.panel{margin:0}.analytics-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px}.analytics-kpi{display:grid;gap:8px;text-align:left;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff;color:inherit;cursor:pointer;min-width:0}.analytics-kpi:hover{border-color:var(--teal);transform:translateY(-1px)}.analytics-kpi span,.analytics-kpi small{color:var(--muted);font-size:.8rem}.analytics-kpi strong{font-size:1.7rem;color:var(--ink,#142c2c)}.finance-dashboard{display:grid;gap:18px}.finance-dashboard>.panel-head,.finance-dashboard .panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.finance-dashboard .panel-head h3,.finance-dashboard h4{margin:4px 0}.finance-currency-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.finance-currency-card,.finance-subpanel{min-width:0;padding:16px;border:1px solid var(--line);border-radius:15px;background:#fff}.finance-currency-card>.eyebrow{font-weight:850}.finance-summary-row,.finance-net,.finance-pending,.status-count{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:.88rem}.finance-net{margin-top:3px;color:var(--teal-dark);font-weight:800}.finance-net strong{font-size:1.12rem}.finance-pending{align-items:flex-start;flex-wrap:wrap;border:0;color:var(--muted);font-size:.78rem}.finance-insights-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.dashboard-currency-label{display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--muted);font-weight:700}.dashboard-currency-label select{min-width:88px;padding:8px}.finance-chart{display:flex;align-items:stretch;justify-content:space-around;gap:12px;height:150px;margin:18px 4px 8px;border-bottom:1px solid var(--line)}.finance-month{display:grid;grid-template-rows:1fr auto;gap:7px;flex:1;min-width:0;text-align:center}.finance-month small{text-transform:capitalize;color:var(--muted);font-size:.72rem}.finance-bars{height:100%;display:flex;align-items:flex-end;justify-content:center;gap:5px}.finance-bar{width:min(24px,38%);min-height:0;border-radius:5px 5px 0 0}.finance-bar.income,.income-dot{background:#18a895}.finance-bar.expense,.expense-dot{background:#e99b62}.finance-legend{display:flex;gap:16px;font-size:.78rem;color:var(--muted)}.finance-legend span{display:flex;align-items:center;gap:6px}.finance-legend i{width:10px;height:10px;border-radius:50%}.quote-currency-summary{display:grid;grid-template-columns:48px 1fr 1fr;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:.82rem}.rank-list{display:grid;gap:2px}.rank-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:.86rem}.rank-row span{overflow-wrap:anywhere}.finance-recent{grid-column:1/-1}.finance-footnote{margin:0;color:var(--muted);font-size:.78rem;line-height:1.5}.dashboard-ledger-amount{text-align:right;white-space:nowrap}.dashboard-ledger-amount small{display:block;color:var(--muted)}.admin-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.admin-summary-grid .finance-subpanel h4{margin:0 0 10px}.review-dashboard-score{display:flex;align-items:center;gap:12px;padding:10px 0}.review-dashboard-score strong{font-size:2rem;color:var(--teal-dark)}.review-dashboard-score span{color:var(--muted);font-size:.84rem}.status-count:last-of-type{border-bottom:0}
@media(max-width:900px){.analytics-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-currency-grid{grid-template-columns:1fr}.admin-summary-grid{grid-template-columns:1fr}}
@media(max-width:560px){.analytics-kpi{padding:12px}.analytics-kpi strong{font-size:1.45rem}.finance-insights-grid{grid-template-columns:1fr}.finance-dashboard>.panel-head,.finance-dashboard .panel-head{align-items:flex-start;flex-direction:column}.finance-chart{height:125px}.quote-currency-summary{grid-template-columns:42px 1fr}.quote-currency-summary span:last-child{grid-column:2}.finance-recent{grid-column:auto}.finance-pending{display:grid}.dashboard-ledger-amount{font-size:.84rem}}

/* Finanzas extendidas: vencimientos, márgenes y reportes */
.finance-page{display:grid;gap:16px}.finance-page>.panel{margin:0}.finance-page .finance-subpanel h3{margin:2px 0 8px}.commission-total{display:flex;flex-wrap:wrap;gap:12px;color:var(--teal-dark)}.finance-report-filter{min-width:170px}.finance-report-filter input{max-width:170px;min-height:40px;padding:8px 10px}.table-subtext{display:block;color:var(--muted);font-size:.75rem;margin-top:4px}.finance-page .table-wrap{max-width:100%}.finance-page .panel-head{align-items:center;gap:12px;flex-wrap:wrap}.finance-page .table-wrap table{min-width:860px}.finance-page .finance-insights-grid{align-items:start}
@media(max-width:680px){.finance-page .finance-currency-grid{grid-template-columns:1fr}.finance-report-filter{width:100%;align-items:flex-start;flex-direction:column}.finance-report-filter input{max-width:none;width:100%}.commission-total{display:grid;gap:6px}}

.provider-service-row{grid-template-columns:minmax(140px,1.35fr) repeat(5,minmax(90px,.8fr)) 36px}.provider-service-row input,.provider-service-row select{min-width:0}.finance-page .table-wrap table{min-width:980px}
@media(max-width:700px){.provider-service-row{grid-template-columns:repeat(2,minmax(0,1fr))}.provider-service-row label:first-of-type{grid-column:1/-1}}

.trip-readiness{margin:16px 0;border-color:#cde5e1;background:linear-gradient(135deg,#fff 0%,#f7fcfb 100%)}.trip-readiness .panel-head{align-items:flex-start}.trip-readiness .panel-head p{margin:5px 0 0;max-width:720px}.readiness-progress{display:flex;align-items:center;gap:14px;margin:14px 0;color:var(--teal-dark);font-size:.85rem}.readiness-progress .progress{flex:1}.readiness-items{display:grid}.readiness-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid #eaf0ef}.readiness-row>label{display:flex;align-items:flex-start;gap:10px;cursor:pointer}.readiness-row input{width:19px;height:19px;accent-color:var(--teal);flex:0 0 auto}.readiness-row input:checked+span{color:var(--muted);text-decoration:line-through}.readiness-actions{display:flex;gap:6px}.readiness-actions .secondary-btn{padding:7px 9px;font-size:.78rem}
@media(max-width:640px){.trip-readiness .panel-head{flex-direction:column}.readiness-progress{align-items:flex-start;flex-direction:column}.readiness-progress .progress{width:100%;flex:auto}.readiness-row{align-items:flex-start;flex-direction:column}.readiness-actions{padding-left:28px}}
.trip-incidents,.trip-closeout{margin:16px 0}.incident-summary{display:flex;justify-content:space-between;gap:12px;padding:10px 0;color:var(--muted)}.incident-list{display:grid;gap:10px}.incident-card{border:1px solid var(--line);border-left:4px solid #9cb7b5;border-radius:12px;padding:14px}.incident-alta{border-left-color:#e99b62}.incident-urgente{border-left-color:#df6464}.incident-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.incident-card h4{margin:8px 0 5px}.incident-card p{margin:8px 0}.incident-resolution{background:#f1f8f7;border-radius:8px;padding:10px}.closeout-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:10px 0}.closeout-stat{display:grid;gap:6px;background:#f8fbfa;border:1px solid #e6eeee;border-radius:12px;padding:14px}.closeout-finance-row{display:grid;gap:4px;padding:10px 0;border-top:1px solid var(--line)}.closeout-finance-row small,.closeout-stat small{color:var(--muted)}.closeout-notes{padding:12px;background:#f8fbfa;border-radius:10px;white-space:pre-wrap}.trip-closeout>.actions{margin:12px 0}.notification-row .primary-btn{white-space:nowrap}
@media(max-width:640px){.trip-incidents .panel-head,.trip-closeout .panel-head{align-items:flex-start;flex-direction:column}.incident-card-head{flex-direction:column}.incident-summary{align-items:flex-start;flex-direction:column}.closeout-grid{grid-template-columns:1fr}}

@media print{.finance-page{gap:8px}.finance-page .finance-currency-grid,.finance-page .finance-insights-grid,.finance-page>.finance-subpanel:not(:last-child){break-inside:avoid}.finance-page .table-wrap{overflow:visible}.finance-page .table-wrap table{min-width:0;width:100%;font-size:8pt}.finance-page th,.finance-page td{padding:4px}.finance-page .table-subtext{font-size:7pt}.finance-page .panel-head{margin-bottom:8px}.finance-page .secondary-btn{display:none!important}}

/* Filtros combinables por módulo */
.collection-filters{display:grid;grid-template-columns:minmax(180px,2fr) repeat(5,minmax(120px,1fr)) auto;gap:10px;align-items:end;margin:0 0 18px;padding:16px;background:#fff;border:1px solid var(--line);border-radius:16px}.collection-filters label{display:grid;gap:6px;font-size:.78rem;font-weight:750;color:var(--muted)}.collection-filters input,.collection-filters select{width:100%;min-width:0;min-height:40px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font:inherit;font-size:.84rem}.filter-actions{display:flex;gap:7px;white-space:nowrap}.filter-actions button{min-height:40px;padding:8px 12px}.collection-filter-note{margin:-8px 0 16px;font-size:.74rem;color:var(--muted)}
@media(max-width:1050px){.collection-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.collection-filters label:first-child{grid-column:span 2}.filter-actions{grid-column:1/-1}}
@media(max-width:600px){.collection-filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}.collection-filters label:first-child{grid-column:1/-1}.filter-actions{grid-column:1/-1}.filter-actions button{flex:1}}

/* Flexible content rows: names use available space, totals remain readable. */
.rank-list>.rank-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start}
.rank-list>.rank-row>span{min-width:0;white-space:normal;overflow-wrap:anywhere;line-height:1.5}
.rank-list>.rank-row>b{white-space:nowrap;text-align:right;line-height:1.5}
.panel,.entity-card,.finance-subpanel,.finance-currency-card,.agenda-items,.agenda-item>div,.list-row>div,.panel-head>div,.page-actions>div,.form-grid>label,.modal-form>label{min-width:0}
.entity-card h3,.panel h3,.panel h4,.list-row,.agenda-item,.chip,.badge,.notice,.empty,.document dd,.status-count>span,.finance-summary-row>span{overflow-wrap:anywhere}
.panel-head,.entity-card-head{flex-wrap:wrap;gap:12px}
.actions>button,.toolbar>button,.page-actions>button,.entity-card footer>button,.modal-actions>button{max-width:100%;white-space:normal;height:auto;min-height:40px;line-height:1.4}
.filter-actions{flex-wrap:wrap;white-space:normal}
.finance-summary-row,.finance-net,.status-count{align-items:start}
.finance-summary-row>strong,.finance-net>strong,.status-count>b{flex-shrink:0;text-align:right}
.weather-day{min-width:0;overflow:visible;overflow-wrap:anywhere}
.weather-card-icon{position:static;margin-bottom:8px}
.weather-top{display:grid;padding-right:0;gap:6px;line-height:1.5}
.weather-top>*{min-width:0;white-space:normal;overflow-wrap:anywhere}
.weather-days{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));align-items:start}
.weather-facts>*{min-width:0;overflow-wrap:anywhere}
.weather-day .clothing-tips{white-space:pre-line;line-height:1.55}
@media(max-width:550px){
 .topbar-left h2{white-space:normal;overflow-wrap:anywhere;font-size:1.1rem;line-height:1.2}
 .list-row{flex-wrap:wrap;align-items:start}
 .agenda-item{grid-template-columns:60px minmax(0,1fr)}
 .finance-summary-row,.finance-net{flex-wrap:wrap}
 .rank-list>.rank-row{gap:10px}
}

/* Empty summaries are paragraphs, never ranked data rows. */
.rank-list{display:block}
.rank-list>.empty{display:block;width:auto;min-width:0;margin:0;padding:20px;line-height:1.6;text-align:center;white-space:normal;overflow-wrap:break-word;border-bottom:1px dashed var(--line)}

/* Varios documentos de identidad por pasajero */
.identity-document-editor{display:grid;gap:12px;margin:10px 0}
.identity-document-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;background:#f7fbfa;padding:14px;border:1px solid var(--line);border-radius:14px;min-width:0}
.identity-document-row label{display:grid;gap:6px;font-size:.83rem;min-width:0}
.identity-document-row input,.identity-document-row select{width:100%;min-width:0}
.identity-document-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;grid-column:1/-1;flex-wrap:wrap}
.identity-document-actions .identity-primary-label{display:flex;flex-direction:row;align-items:center;gap:6px;font-weight:600}
.identity-document-actions input[type=radio]{width:auto;min-width:18px;accent-color:#008f82}
@media(max-width:540px){.identity-document-row{grid-template-columns:minmax(0,1fr)}}

/* Nacionalidades múltiples del pasajero (v0.15.40) */
.nationality-editor{display:grid;gap:10px;margin:10px 0}
.nationality-row{display:flex;gap:10px;align-items:end;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#f7fbfa}
.nationality-row label{flex:1;display:grid;gap:6px;min-width:0}
.nationality-row input{width:100%;min-width:0}
@media(max-width:540px){.nationality-row{flex-direction:column;align-items:stretch}.nationality-row button{align-self:flex-start}}
