:root{
  --pp-bg:#f5f7fb;
  --pp-surface:#ffffff;
  --pp-border:#e2e8f0;
  --pp-border-strong:#d4dce8;
  --pp-text:#0f172a;
  --pp-muted:#64748b;
  --pp-soft:#eef2ff;
  --pp-primary:#111827;
  --pp-success-bg:#ecfdf3;
  --pp-success:#166534;
  --pp-warn-bg:#fff7ed;
  --pp-warn:#b45309;
  --pp-danger-bg:#fef2f2;
  --pp-danger:#b91c1c;
}

body.theme-default{background:var(--pp-bg);}
.site-main{padding-bottom:18px;}

.provider-shell{display:grid;grid-template-columns:260px minmax(0,1fr);gap:14px;max-width:1320px;margin:18px auto;padding:0 14px;}
.provider-sidebar{background:var(--pp-surface);border:1px solid var(--pp-border);border-radius:18px;padding:12px;position:sticky;top:14px;height:fit-content;box-shadow:0 8px 28px rgba(15,23,42,.05);}
.provider-brand{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;}
.provider-brand__eyebrow{font-size:11px;color:var(--pp-muted);text-transform:uppercase;letter-spacing:.08em;}
.provider-brand__title{font-size:20px;font-weight:800;line-height:1.1;}
.provider-sidebar__close,.provider-mobile-toggle{display:none;border:1px solid var(--pp-border);background:#fff;border-radius:10px;width:34px;height:34px;align-items:center;justify-content:center;cursor:pointer;}
.provider-provider-card{padding:10px 11px;margin-bottom:10px;}
.provider-provider-card__label{font-size:11px;color:var(--pp-muted);text-transform:uppercase;letter-spacing:.08em;}
.provider-provider-card__name{font-size:15px;font-weight:700;line-height:1.2;margin:3px 0;}
.provider-provider-card__meta{font-size:12px;color:var(--pp-muted);}
.provider-nav{display:grid;gap:5px;}
.provider-nav__link,.provider-subnav__link{display:flex;align-items:center;min-height:36px;padding:0 11px;border-radius:11px;color:var(--pp-text);text-decoration:none;font-size:14px;font-weight:600;border:1px solid transparent;}
.provider-nav__link:hover,.provider-subnav__link:hover{background:#f8fafc;border-color:var(--pp-border);}
.provider-nav__link.is-active,.provider-subnav__link.is-active{background:var(--pp-soft);border-color:#c7d2fe;color:#312e81;}
.provider-workspace{min-width:0;}
.provider-topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;background:var(--pp-surface);border:1px solid var(--pp-border);border-radius:18px;padding:12px 14px;box-shadow:0 8px 28px rgba(15,23,42,.04);}
.provider-topbar__left{display:flex;gap:10px;align-items:flex-start;min-width:0;}
.provider-page-title{margin:0;font-size:22px;line-height:1.05;}
.provider-page-subtitle{margin:4px 0 0;color:var(--pp-muted);font-size:13px;line-height:1.35;}
.provider-subnav{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0 0;background:var(--pp-surface);border:1px solid var(--pp-border);border-radius:16px;padding:8px;}
.provider-main{margin-top:10px;display:grid;gap:10px;}
.compact-grid{display:grid;gap:10px;}
.compact-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
.compact-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.compact-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}
.compact-card{background:var(--pp-surface);border:1px solid var(--pp-border);border-radius:16px;padding:12px;box-shadow:0 8px 24px rgba(15,23,42,.04);}
.compact-card h2,.compact-card h3{margin:0 0 8px;line-height:1.15;}
.compact-card p{margin:0;}
.stats-card{padding:12px;}
.stats-card__label{font-size:12px;color:var(--pp-muted);}
.stats-card__value{font-size:28px;font-weight:800;line-height:1;margin-top:6px;}
.stats-card__hint{font-size:12px;color:var(--pp-muted);margin-top:4px;}
.action-row,.inline-actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center;}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:0 12px;border-radius:10px;text-decoration:none;border:1px solid var(--pp-border-strong);background:#fff;color:var(--pp-text);font-weight:700;font-size:13px;cursor:pointer;}
.btn--primary{background:var(--pp-primary);border-color:var(--pp-primary);color:#fff;}
.btn--ghost{background:#fff;}
.btn--soft{background:#f8fafc;}
.btn--danger{background:#fff5f5;color:#991b1b;border-color:#fecaca;}
.btn--sm{min-height:32px;padding:0 10px;font-size:12px;border-radius:9px;}
.stack-xs{display:grid;gap:6px;}
.stack-sm{display:grid;gap:8px;}
.stack-md{display:grid;gap:10px;}
.muted{color:var(--pp-muted);}
.eyebrow{font-size:11px;color:var(--pp-muted);text-transform:uppercase;letter-spacing:.08em;}
.notice{padding:10px 12px;border-radius:12px;border:1px solid var(--pp-border);font-size:13px;}
.notice--error{background:var(--pp-danger-bg);color:var(--pp-danger);border-color:#fecaca;}
.notice--success{background:var(--pp-success-bg);color:var(--pp-success);border-color:#bbf7d0;}
.notice--warn{background:#fffdf0;color:#854d0e;border-color:#fde68a;}
.kv{display:grid;gap:6px;}
.kv__row{display:flex;justify-content:space-between;gap:12px;font-size:13px;border-bottom:1px dashed #edf2f7;padding-bottom:6px;}
.kv__row:last-child{border-bottom:0;padding-bottom:0;}
.forms-grid{display:grid;gap:10px;}
.forms-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
label.form-label{display:block;font-size:12px;color:var(--pp-muted);margin-bottom:4px;font-weight:600;}
.input,.select,.textarea,input[type="text"],input[type="email"],input[type="number"],input[type="date"],select,textarea{width:100%;padding:10px 11px;border:1px solid var(--pp-border-strong);border-radius:10px;background:#fff;color:var(--pp-text);font-size:14px;}
textarea{min-height:110px;resize:vertical;}
.checkline{display:flex;align-items:center;gap:7px;font-size:13px;}
.toolbar{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;}
.table-wrap{overflow:auto;border:1px solid var(--pp-border);border-radius:14px;background:#fff;}
.data-table{width:100%;border-collapse:collapse;min-width:780px;}
.data-table th,.data-table td{padding:9px 10px;border-bottom:1px solid #edf2f7;text-align:left;font-size:13px;vertical-align:top;}
.data-table th{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--pp-muted);background:#f8fafc;white-space:nowrap;}
.data-table tr:last-child td{border-bottom:0;}
.filters{display:grid;grid-template-columns:1.2fr repeat(3,minmax(150px,1fr));gap:8px;}
.filters.filters--2{grid-template-columns:repeat(2,minmax(180px,1fr));}
.pill{display:inline-flex;align-items:center;padding:2px 7px;border-radius:999px;font-size:10px;font-weight:800;line-height:1.15;white-space:nowrap;border:1px solid transparent;letter-spacing:.01em;}
.pill--ok{background:var(--pp-success-bg);color:var(--pp-success);border-color:#bbf7d0;}
.pill--warn{background:var(--pp-warn-bg);color:var(--pp-warn);border-color:#fed7aa;}
.pill--off{background:#f8fafc;color:#64748b;border-color:#e2e8f0;}
.pill--danger{background:var(--pp-danger-bg);color:var(--pp-danger);border-color:#fecaca;}
.pill-row{display:flex;gap:5px;flex-wrap:wrap;align-items:center;}
.property-card{padding:12px;}
.property-card__header{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;}
.property-card__title{margin:0;font-size:20px;line-height:1.1;}
.property-card__summary{font-size:13px;color:var(--pp-muted);line-height:1.35;}
.two-col{display:grid;grid-template-columns:1.15fr .85fr;gap:10px;align-items:start;}
.list-rows{display:grid;gap:7px;}
.list-row{padding:9px 10px;border:1px solid #edf2f7;border-radius:12px;background:#fff;}
.service-grid{display:grid;gap:7px;}
.service-row{display:grid;grid-template-columns:1.4fr .7fr .8fr;gap:8px;align-items:center;padding:8px 9px;border:1px solid #edf2f7;border-radius:12px;background:#fff;}
.table-note{font-size:12px;color:var(--pp-muted);}
.hidden-mobile{display:block;}

@media (max-width: 1024px){
  .provider-shell{grid-template-columns:1fr;}
  .provider-sidebar{position:fixed;left:10px;top:10px;bottom:10px;width:min(290px,calc(100vw - 20px));z-index:60;transform:translateX(-112%);transition:transform .2s ease;overflow:auto;}
  body.provider-nav-open .provider-sidebar{transform:translateX(0);}
  .provider-sidebar__close,.provider-mobile-toggle{display:inline-flex;}
  .provider-topbar{position:sticky;top:0;z-index:20;}
}
@media (max-width: 900px){
  .compact-grid.cols-4,.compact-grid.cols-3,.compact-grid.cols-2,.two-col,.forms-grid.cols-2,.filters,.filters.filters--2{grid-template-columns:1fr;}
  .service-row{grid-template-columns:1fr;}
}
@media (max-width: 640px){
  .provider-shell{padding:0 10px;margin:10px auto;gap:8px;}
  .provider-topbar,.provider-subnav,.compact-card{border-radius:14px;}
  .provider-page-title{font-size:19px;}
  .provider-page-subtitle{font-size:12px;}
  .stats-card__value{font-size:24px;}
  .btn{min-height:34px;padding:0 10px;font-size:12px;}
}


.pricing-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap;}
.pricing-calendar-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.9fr);gap:12px;align-items:start;}
.pricing-calendar-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.month-card{border:1px solid var(--pp-border);border-radius:14px;padding:10px;background:#fff;}
.month-card__title{font-size:14px;font-weight:800;margin-bottom:8px;}
.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;}
.month-grid + .month-grid{margin-top:5px;}
.month-grid__weekday{font-size:11px;color:var(--pp-muted);text-align:center;padding:4px 0;}
.month-grid__day{position:relative;min-height:42px;border:1px solid var(--pp-border);border-radius:10px;background:#fff;display:flex;align-items:flex-start;justify-content:flex-start;padding:7px 8px;font-size:13px;cursor:pointer;}
.month-grid__day--empty{background:transparent;border-color:transparent;cursor:default;}
.month-grid__day.is-open{background:#eefbf3;border-color:#c6f6d5;}
.month-grid__day.is-closed{background:#fff1f2;border-color:#fecdd3;}
.month-grid__day.is-special::after{content:'';position:absolute;right:6px;top:6px;width:8px;height:8px;border-radius:999px;background:#facc15;box-shadow:0 0 0 2px #fff;}
.month-grid__day.is-selected{outline:2px solid #312e81;outline-offset:1px;}
.month-grid__n{font-weight:700;line-height:1;}
.calendar-legend{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.calendar-legend__item{display:inline-flex;gap:6px;align-items:center;font-size:12px;color:var(--pp-muted);}
.calendar-dot{display:inline-block;width:10px;height:10px;border-radius:999px;}
.calendar-dot--open{background:#86efac;}
.calendar-dot--closed{background:#fda4af;}
.calendar-dot--special{background:#facc15;}
.calendar-actions{border:1px solid var(--pp-border);border-radius:14px;padding:10px;background:#fcfcfd;}
.plan-info{display:grid;gap:4px;padding:9px 10px;border:1px solid var(--pp-border);border-radius:12px;background:#fff;}
.data-table--compact{min-width:0;}
.data-table--compact th,.data-table--compact td{padding:8px 9px;}
@media (max-width: 1100px){
  .pricing-calendar-layout,.pricing-calendar-grid{grid-template-columns:1fr;}
}

.pricing-calendar-layout--fc{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(320px,.9fr);gap:12px;align-items:start;}
.calendar-shell{border:1px solid var(--pp-border);border-radius:14px;padding:10px;background:#fff;}
.calendar-shell__nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;}
.calendar-shell__title{font-weight:700;font-size:14px;color:var(--pp-text);}
.calendar-dot--rate{background:#93c5fd;}
.provider-monthly-calendar .fc-header-toolbar{display:none;}
.provider-monthly-calendar .fc-col-header{display:none;}
.provider-monthly-calendar .fc-scrollgrid,
.provider-monthly-calendar .fc-theme-standard td,
.provider-monthly-calendar .fc-theme-standard th{border-color:#eef2f7;}
.provider-monthly-calendar .fc-daygrid-day-frame{min-height:62px;padding:2px;}
.provider-monthly-calendar .fc-daygrid-day-number{font-size:12px;color:#111827;padding:4px;}
.provider-monthly-calendar .fc-day-today{background:transparent !important;}
.provider-monthly-calendar .fc-bg-event{opacity:1;margin:2px;border-radius:8px;}
.provider-monthly-calendar .fc-status-open{background:#dcfce7;}
.provider-monthly-calendar .fc-status-closed{background:#fee2e2;}
.provider-monthly-calendar .fc-daygrid-event{border:none;background:transparent;box-shadow:none;margin:0 2px;min-height:0;}
.provider-monthly-calendar .fc-special-tag{background:#facc15 !important;border-radius:999px !important;height:6px !important;min-height:6px !important;margin-top:2px;}
.provider-monthly-calendar .fc-rate-tag{background:#60a5fa !important;border-radius:999px !important;height:4px !important;min-height:4px !important;margin-top:2px;}
.provider-monthly-calendar .fc-event-title,
.provider-monthly-calendar .fc-event-time{font-size:0;line-height:0;}
.provider-monthly-calendar .fc-daygrid-day-events{margin-top:14px;min-height:14px;}
.provider-monthly-calendar .fc-day-other .fc-daygrid-day-number{opacity:.45;}
.info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
.info-chip{border:1px solid var(--pp-border);border-radius:12px;padding:8px;background:#f8fafc;display:flex;flex-direction:column;gap:2px;}
.info-chip span{font-size:11px;color:var(--pp-muted);}
.info-chip strong{font-size:13px;color:var(--pp-text);}
.mtop-sm{margin-top:8px;}
@media (max-width: 900px){
  .pricing-calendar-layout--fc{grid-template-columns:1fr;}
}


.calendar-action-form{gap:8px;}
.calendar-action-form > div:first-of-type,
.calendar-action-form > div:nth-of-type(2){display:inline-block;vertical-align:top;width:calc(50% - 6px);}
.calendar-action-form > div:nth-of-type(2){margin-left:8px;}
.calendar-action-form .form-label{margin-bottom:3px;font-size:11px;}
.calendar-action-form__range,
.calendar-action-form__action{height:34px;padding:6px 10px;font-size:12px;border-radius:9px;}
.calendar-action-form__range{max-width:180px;min-width:180px;cursor:pointer;background:#fff;}
.calendar-action-form__action{max-width:220px;}
.calendar-actions{padding:9px 10px;}
.provider-monthly-calendar .fc-daygrid-day-frame{min-height:32px;padding:1px 2px;}
.provider-monthly-calendar .fc-daygrid-day-top{justify-content:flex-start;}
.provider-monthly-calendar .fc-daygrid-day-number{font-size:14px;font-weight:700;color:#0f172a;padding:2px 4px;line-height:1;}
.provider-monthly-calendar .fc-daygrid-day-events{margin-top:4px;min-height:8px;}
.provider-monthly-calendar .fc-bg-event{margin:1px;border-radius:6px;}
.provider-monthly-calendar .fc-daygrid-event-harness{margin-top:1px;}
.provider-monthly-calendar .fc-special-tag{height:5px !important;min-height:5px !important;margin-top:1px;}
.provider-monthly-calendar .fc-rate-tag{height:3px !important;min-height:3px !important;margin-top:1px;}
.provider-monthly-calendar .fc-scrollgrid-section-body table,
.provider-monthly-calendar .fc-scrollgrid-section-header table{height:auto !important;}
.provider-monthly-calendar .fc-daygrid-body-unbalanced .fc-daygrid-day-events{position:relative;min-height:8px;}
.provider-monthly-calendar .fc-daygrid-day.fc-day-other{background:#fbfdff;}
.provider-monthly-calendar .fc-col-header-cell-cushion{padding:2px 4px;font-size:11px;}
.daterangepicker .calendar-table td,
.daterangepicker .calendar-table th{width:28px;height:24px;min-width:28px;font-size:11px;}
.daterangepicker .drp-calendar.left .calendar-table,
.daterangepicker .drp-calendar.right .calendar-table{transform:scale(.95);transform-origin:top left;}
@media (max-width: 900px){
  .calendar-action-form > div:first-of-type,
  .calendar-action-form > div:nth-of-type(2){display:block;width:100%;margin-left:0;}
  .calendar-action-form__range,
  .calendar-action-form__action{max-width:none;min-width:0;width:100%;}
}


.rate-base-range{max-width:240px;cursor:pointer;background:#fff;}
.global-toast{position:fixed;left:50%;bottom:18px;transform:translateX(-50%) translateY(18px);min-width:260px;max-width:min(92vw,560px);padding:12px 16px;border-radius:12px;color:#fff;font-weight:700;font-size:13px;box-shadow:0 14px 34px rgba(15,23,42,.18);opacity:0;transition:opacity .2s ease, transform .2s ease;z-index:9999;text-align:center;pointer-events:none;}
.global-toast.is-visible{opacity:1;transform:translateX(-50%) translateY(0);}
.global-toast.bg-danger{background:#b91c1c;}
.global-toast.bg-warning{background:#b45309;}
.global-toast.bg-success{background:#166534;}
@media (max-width: 900px){.rate-base-range{max-width:none;width:100%;}}


.provider-nav__link--strong{font-weight:800;letter-spacing:.02em;border:1px solid rgba(255,255,255,.08);}
.provider-nav__link--strong span{text-transform:uppercase;}
.btn--strong{font-weight:800;}


.provider-nav__link--strong{font-weight:800;}
.compact-card--inner{padding:10px 12px; box-shadow:none;}
.reservations-controls-grid{align-items:start;}
.provider-monthly-calendar--reservations .fc-daygrid-day-frame{min-height:72px;}
.provider-monthly-calendar--reservations .fc-daygrid-event,
.provider-monthly-calendar--reservations .fc-event,
.provider-monthly-calendar--reservations .fc-h-event.reservation-event-solid{
  border-radius:0 !important;
  padding:0 3px !important;
  font-size:10px !important;
  line-height:1 !important;
  border-width:0 !important;
  min-height:14px !important;
  height:14px !important;
  box-shadow:none !important;
  opacity:1 !important;
}
.provider-monthly-calendar--reservations .fc-h-event .fc-event-main,
.provider-monthly-calendar--reservations .reservation-event-solid .fc-event-main{
  padding:0 2px !important;
  min-height:14px !important;
  height:14px !important;
  display:flex !important;
  align-items:center !important;
  border-radius:0 !important;
}
.provider-monthly-calendar--reservations .fc-event-title{font-weight:800;letter-spacing:.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:14px !important;}
.provider-monthly-calendar--reservations .fc-toolbar{display:none;}
.provider-monthly-calendar--reservations .fc-col-header-cell-cushion{font-size:12px;font-weight:700;padding:4px 0;}
.provider-monthly-calendar--reservations .fc-daygrid-day-number{font-size:14px;font-weight:700;padding:4px 6px;}
.provider-monthly-calendar--reservations .reservation-status--confirmed,
.provider-monthly-calendar--reservations .reservation-status--active{background:#2563eb !important;border-color:#2563eb !important;color:#fff !important;opacity:1 !important;}
.provider-monthly-calendar--reservations .reservation-status--pending{background:#f59e0b !important;border-color:#f59e0b !important;color:#fff !important;opacity:1 !important;}
.provider-monthly-calendar--reservations .reservation-status--cancelled{background:#dc2626 !important;border-color:#dc2626 !important;color:#fff !important;text-decoration:none !important;opacity:1 !important;}
.provider-monthly-calendar--reservations a.reservation-event-solid,
.provider-monthly-calendar--reservations .reservation-event-solid,
.provider-monthly-calendar--reservations .reservation-event-solid .fc-event-main,
.provider-monthly-calendar--reservations .reservation-event-solid .fc-event-title{color:#fff !important;opacity:1 !important;}
.reservation-dot--confirmed,.reservation-dot--active{background:#2563eb;}
.reservation-dot--pending{background:#f59e0b;}
.reservation-dot--cancelled{background:#dc2626;}
.reservation-modal{position:fixed;inset:0;z-index:1200;display:block;}
.reservation-modal[hidden]{display:none;}
.reservation-modal__backdrop{position:absolute;inset:0;background:rgba(15,23,42,.48);}
.reservation-modal__dialog{position:absolute;left:50%;bottom:0;transform:translate(-50%,100%);width:min(760px,calc(100% - 20px));max-height:88vh;overflow:auto;background:#fff;border-radius:18px 18px 0 0;box-shadow:0 -18px 48px rgba(15,23,42,.22);transition:transform .22s ease;}
.reservation-modal.is-visible .reservation-modal__dialog{transform:translate(-50%,0);}
.reservation-modal__header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 16px;border-bottom:1px solid var(--pp-border);position:sticky;top:0;background:#fff;z-index:1;}
.reservation-modal__header h3{margin:2px 0 0;}
.reservation-modal__body{padding:14px 16px 18px;display:grid;gap:12px;}
.reservation-notes{min-height:72px;padding:10px 12px;border:1px solid var(--pp-border);border-radius:12px;background:#f8fafc;color:var(--pp-text);font-size:13px;line-height:1.45;}
@media (max-width: 900px){
  .provider-monthly-calendar--reservations .fc-daygrid-day-frame{min-height:58px;}
  .provider-monthly-calendar--reservations .fc-daygrid-event{font-size:9px;}
}


.provider-monthly-calendar--reservations{overflow:hidden;}
.provider-monthly-calendar--reservations .fc-scrollgrid-section-body table,
.provider-monthly-calendar--reservations .fc-scrollgrid-section-header table{height:auto !important;}
.provider-monthly-calendar--reservations .fc-daygrid-body,
.provider-monthly-calendar--reservations .fc-daygrid-body table{width:100% !important;}
.provider-monthly-calendar--reservations .fc-daygrid-day-events{min-height:0;}
.provider-monthly-calendar--reservations .fc-scrollgrid-sync-table{height:auto !important;}
.provider-monthly-calendar--reservations .fc-scroller,
.provider-monthly-calendar--reservations .fc-scroller-liquid-absolute{overflow:hidden !important;}
.calendar-shell--reservations{padding-bottom:8px;}

/* 17 - Modal de reserva organizado tipo formulario */
.reservation-modal--sheet{font-size:12px;}
.reservation-modal--sheet .reservation-modal__backdrop{background:rgba(15,23,42,.54);backdrop-filter:blur(3px);}
.reservation-modal--sheet .reservation-modal__dialog{width:min(820px,calc(100% - 18px));max-height:90vh;border-radius:18px 18px 0 0;background:linear-gradient(180deg,rgba(255,255,255,.98),#fff);box-shadow:0 -24px 70px rgba(15,23,42,.24);transform:translate(-50%,110%);transition:transform .26s cubic-bezier(.2,.9,.25,1),opacity .2s ease;opacity:.98;}
.reservation-modal--sheet.is-visible .reservation-modal__dialog{transform:translate(-50%,0);opacity:1;}
.reservation-modal__grabber{width:42px;height:4px;border-radius:999px;background:#cbd5e1;margin:8px auto 0;}
.reservation-modal--sheet .reservation-modal__header{padding:10px 14px 9px;border-bottom:1px solid rgba(148,163,184,.22);background:rgba(255,255,255,.92);backdrop-filter:blur(12px);}
.reservation-modal--sheet .reservation-modal__header h3{font-size:15px;line-height:1.15;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.reservation-code-pill{font-size:11px;font-weight:700;color:#0f172a;background:#eef2ff;border:1px solid #dbe3ff;border-radius:999px;padding:3px 8px;}
.reservation-modal__close{width:30px;height:30px;border-radius:999px;border:1px solid rgba(148,163,184,.35);background:rgba(248,250,252,.9);color:#334155;font-size:20px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;}
.reservation-modal__close:hover{background:#f1f5f9;}
.reservation-modal--sheet .reservation-modal__body{padding:12px 14px 16px;gap:10px;}
.reservation-formview{display:grid;gap:10px;}
.reservation-formview__section{border:1px solid rgba(148,163,184,.22);background:rgba(248,250,252,.72);border-radius:14px;padding:10px;box-shadow:0 8px 24px rgba(15,23,42,.04);}
.reservation-formview__section--main{background:linear-gradient(180deg,rgba(239,246,255,.82),rgba(248,250,252,.8));}
.reservation-formview__section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:8px;border-bottom:1px solid rgba(148,163,184,.18);padding-bottom:6px;}
.reservation-formview__section-head span{font-size:12px;font-weight:800;color:#0f172a;letter-spacing:.02em;}
.reservation-formview__section-head em{font-style:normal;font-size:10.5px;color:#64748b;}
.reservation-formview__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;}
.reservation-formview__grid--stay{grid-template-columns:1.3fr 1fr 1fr;}
.reservation-formview__grid--money{grid-template-columns:repeat(3,minmax(0,1fr));}
.reservation-field{min-width:0;border:1px solid rgba(148,163,184,.24);background:rgba(255,255,255,.86);border-radius:10px;padding:6px 8px;display:grid;gap:2px;}
.reservation-field--wide{grid-column:span 2;}
.reservation-formview__grid--stay .reservation-field--wide{grid-column:span 2;}
.reservation-field label{font-size:9.5px;line-height:1;text-transform:uppercase;letter-spacing:.055em;font-weight:800;color:#64748b;margin:0;}
.reservation-field output{font-size:12px;line-height:1.22;font-weight:700;color:#111827;overflow-wrap:anywhere;}
.reservation-field--amount output{font-size:13px;color:#0f172a;}
.reservation-status-pill{display:inline-flex;width:max-content;max-width:100%;align-items:center;border-radius:999px;padding:2px 8px;background:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8;}
.reservation-notes--form{border:1px solid rgba(148,163,184,.24);background:#fff;border-radius:10px;padding:8px 9px;font-size:12px;line-height:1.35;color:#334155;min-height:38px;}
@media (max-width:720px){
  .reservation-modal--sheet .reservation-modal__dialog{width:100%;max-height:92vh;border-radius:16px 16px 0 0;}
  .reservation-formview__grid,.reservation-formview__grid--stay,.reservation-formview__grid--money{grid-template-columns:1fr;}
  .reservation-field--wide,.reservation-formview__grid--stay .reservation-field--wide{grid-column:auto;}
  .reservation-formview__section{padding:9px;}
}

/* 18 - Comprobante de reserva imprimible tipo formulario */
.reservation-modal--receipt .reservation-modal__dialog{
  width:min(900px,calc(100% - 18px));
  max-height:94vh;
  background:#f8fafc;
}
.reservation-modal__actions{display:flex;align-items:center;gap:7px;}
.reservation-print-btn{height:30px;min-height:30px;padding:0 11px;font-size:11px;font-weight:800;}
.reservation-receipt{padding:12px 14px 16px !important;background:#f8fafc;}
.reservation-receipt__paper{
  background:#fff;
  border:1px solid #dbe3ee;
  border-radius:14px;
  padding:16px;
  box-shadow:0 16px 44px rgba(15,23,42,.10);
  color:#0f172a;
}
.reservation-receipt__header{
  display:grid;
  grid-template-columns:1fr auto;
  gap:14px;
  align-items:start;
  padding:0 0 12px;
  border-bottom:2px solid #0f172a;
  margin-bottom:12px;
}
.reservation-receipt__brand{font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:900;color:#64748b;margin-bottom:3px;}
.reservation-receipt__header h2{margin:0;font-size:20px;line-height:1.1;font-weight:900;color:#0f172a;}
.reservation-receipt__header p{margin:4px 0 0;font-size:11.5px;color:#64748b;}
.reservation-receipt__codebox{
  min-width:150px;
  border:1px solid #cbd5e1;
  background:#f8fafc;
  border-radius:10px;
  padding:8px 10px;
  text-align:right;
}
.reservation-receipt__codebox span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.1em;font-weight:900;color:#64748b;margin-bottom:2px;}
.reservation-receipt__codebox strong{display:block;font-size:14px;color:#0f172a;}
.receipt-section{margin-top:10px;border:1px solid #dbe3ee;border-radius:12px;overflow:hidden;background:#fff;break-inside:avoid;}
.receipt-section__title{
  background:#eef2f7;
  border-bottom:1px solid #dbe3ee;
  padding:6px 9px;
  font-size:10px;
  line-height:1;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:900;
  color:#334155;
}
.receipt-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;}
.receipt-grid--stay{grid-template-columns:1.4fr 1fr 1fr;}
.receipt-grid--money{grid-template-columns:repeat(3,minmax(0,1fr));}
.receipt-grid--status{grid-template-columns:repeat(4,minmax(0,1fr));}
.receipt-input{
  min-height:44px;
  padding:6px 8px;
  border-right:1px solid #e2e8f0;
  border-bottom:1px solid #e2e8f0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:3px;
  background:#fff;
}
.receipt-input:nth-child(even){background:#fcfdff;}
.receipt-input--wide{grid-column:span 2;}
.receipt-grid--stay .receipt-input--wide{grid-column:span 2;}
.receipt-input label{font-size:8.8px;line-height:1;text-transform:uppercase;letter-spacing:.075em;font-weight:900;color:#64748b;margin:0;}
.receipt-input output{font-size:12px;line-height:1.2;font-weight:750;color:#0f172a;overflow-wrap:anywhere;}
.receipt-input--amount output{font-size:14px;font-weight:900;}
.receipt-textarea{
  min-height:62px;
  padding:8px 9px;
  font-size:11.5px;
  line-height:1.38;
  color:#334155;
  background:#fff;
  white-space:pre-wrap;
}
.reservation-receipt .reservation-status-pill{
  width:max-content;
  max-width:100%;
  border-radius:6px;
  padding:3px 7px;
  font-size:11px;
  font-weight:900;
  background:#eef2ff;
  border:1px solid #c7d2fe;
  color:#1e40af;
}
.reservation-receipt__footer{
  display:grid;
  grid-template-columns:1fr 190px;
  gap:14px;
  align-items:end;
  margin-top:14px;
  font-size:10.5px;
  color:#475569;
}
.reservation-receipt__signature{height:42px;border-bottom:1px solid #0f172a;display:flex;align-items:flex-end;justify-content:center;color:#64748b;font-size:10px;padding-bottom:3px;}
@media (max-width:760px){
  .reservation-modal--receipt .reservation-modal__dialog{width:100%;max-height:94vh;border-radius:16px 16px 0 0;}
  .reservation-receipt{padding:9px 10px 14px !important;}
  .reservation-receipt__paper{padding:12px;border-radius:12px;}
  .reservation-receipt__header{grid-template-columns:1fr;gap:8px;}
  .reservation-receipt__codebox{text-align:left;min-width:0;}
  .receipt-grid,.receipt-grid--stay,.receipt-grid--money,.receipt-grid--status{grid-template-columns:1fr;}
  .receipt-input--wide,.receipt-grid--stay .receipt-input--wide{grid-column:auto;}
  .reservation-receipt__footer{grid-template-columns:1fr;}
}
@media print{
  @page{size:A4;margin:10mm;}
  body{background:#fff !important;}
  body *{visibility:hidden !important;}
  .reservation-modal--receipt,
  .reservation-modal--receipt *{visibility:visible !important;}
  .no-print,.reservation-modal__backdrop,.reservation-modal__grabber,.reservation-modal__close,.reservation-print-btn{display:none !important;}
  .reservation-modal--receipt{position:static !important;inset:auto !important;display:block !important;background:#fff !important;}
  .reservation-modal--receipt[hidden]{display:block !important;}
  .reservation-modal--receipt .reservation-modal__dialog{position:static !important;transform:none !important;width:100% !important;max-height:none !important;overflow:visible !important;box-shadow:none !important;border-radius:0 !important;background:#fff !important;}
  .reservation-receipt{padding:0 !important;background:#fff !important;display:block !important;}
  .reservation-receipt__paper{box-shadow:none !important;border:1px solid #111827 !important;border-radius:0 !important;padding:10mm !important;}
  .reservation-receipt__header{border-bottom:2px solid #111827 !important;}
  .receipt-section{border-color:#111827 !important;border-radius:0 !important;margin-top:8px !important;}
  .receipt-section__title{background:#e5e7eb !important;color:#111827 !important;border-bottom:1px solid #111827 !important;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .receipt-input{border-color:#cbd5e1 !important;min-height:39px !important;padding:5px 7px !important;}
  .receipt-input label{font-size:8px !important;}
  .receipt-input output{font-size:11px !important;}
  .receipt-input--amount output{font-size:13px !important;}
  .receipt-textarea{min-height:48px !important;font-size:10.5px !important;}
}

/* =========================================================
   Mirumbo - Super Admin Dashboard
   Update 14.admin-super-dashboard
   ========================================================= */
.fo-admin-shell {
    min-height: calc(100vh - 0px);
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    background:
        radial-gradient(circle at top left, rgba(12, 132, 255, .16), transparent 34%),
        linear-gradient(135deg, #f6f8fb 0%, #eef3f8 52%, #f8fafc 100%);
    color: #111827;
}

.fo-admin-sidebar {
    position: sticky;
    top: 0;
    height: 100vh;
    padding: 22px 18px;
    background: rgba(10, 18, 32, .94);
    color: #f8fafc;
    border-right: 1px solid rgba(255, 255, 255, .08);
    display: flex;
    flex-direction: column;
    gap: 22px;
    z-index: 30;
}

.fo-admin-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 10px 18px;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.fo-admin-brand__mark {
    width: 44px;
    height: 44px;
    border-radius: 16px;
    display: grid;
    place-items: center;
    font-weight: 900;
    font-size: 22px;
    background: linear-gradient(135deg, #2dd4bf, #38bdf8);
    color: #06202a;
    box-shadow: 0 14px 34px rgba(45, 212, 191, .2);
}

.fo-admin-brand strong,
.fo-admin-brand span {
    display: block;
}

.fo-admin-brand span {
    margin-top: 3px;
    color: rgba(248, 250, 252, .62);
    font-size: 12px;
}

.fo-admin-nav {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.fo-admin-nav a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 12px;
    color: rgba(248, 250, 252, .76);
    text-decoration: none;
    border-radius: 14px;
    transition: .18s ease;
    font-weight: 700;
    font-size: 14px;
}

.fo-admin-nav a:hover,
.fo-admin-nav a.is-active {
    color: #fff;
    background: rgba(255, 255, 255, .10);
}

.fo-admin-nav span {
    width: 22px;
    text-align: center;
}

.fo-admin-sidebar__foot {
    margin-top: auto;
    padding: 14px;
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: 18px;
    background: rgba(255, 255, 255, .06);
}

.fo-admin-sidebar__foot small,
.fo-admin-sidebar__foot strong,
.fo-admin-sidebar__foot a {
    display: block;
}

.fo-admin-sidebar__foot small {
    color: rgba(248, 250, 252, .58);
}

.fo-admin-sidebar__foot strong {
    margin: 4px 0 10px;
}

.fo-admin-sidebar__foot a {
    color: #67e8f9;
    font-weight: 800;
    text-decoration: none;
}

.fo-admin-main {
    min-width: 0;
    padding: 26px;
}

.fo-admin-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 16px;
}

.fo-admin-kicker {
    margin: 0 0 5px;
    text-transform: uppercase;
    letter-spacing: .12em;
    font-size: 12px;
    color: #0284c7;
    font-weight: 900;
}

.fo-admin-topbar h1 {
    margin: 0;
    font-size: clamp(26px, 3vw, 40px);
    letter-spacing: -.04em;
}

.fo-admin-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.fo-admin-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 15px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .72);
    border: 1px solid rgba(15, 23, 42, .10);
    text-decoration: none;
    color: #0f172a;
    font-weight: 900;
    box-shadow: 0 12px 30px rgba(15, 23, 42, .06);
}

.fo-admin-btn--primary {
    background: #0f172a;
    color: #fff;
}

.fo-admin-sticky-metrics {
    position: sticky;
    top: 0;
    z-index: 20;
    display: grid;
    grid-template-columns: repeat(5, minmax(150px, 1fr));
    gap: 12px;
    padding: 12px;
    margin: 0 -12px 12px;
    border-radius: 24px;
    background: rgba(246, 248, 251, .78);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, .68);
    box-shadow: 0 18px 45px rgba(15, 23, 42, .08);
}

.fo-metric-card {
    padding: 16px;
    border-radius: 20px;
    background: rgba(255, 255, 255, .78);
    border: 1px solid rgba(15, 23, 42, .08);
    box-shadow: 0 10px 24px rgba(15, 23, 42, .05);
}

.fo-metric-card span,
.fo-metric-card small {
    display: block;
    color: #64748b;
    font-weight: 800;
}

.fo-metric-card span {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.fo-metric-card strong {
    display: block;
    margin: 6px 0 4px;
    font-size: clamp(22px, 2.5vw, 34px);
    letter-spacing: -.04em;
}

.fo-metric-card small {
    font-size: 12px;
}

.fo-admin-contextbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 18px;
    padding: 12px 14px;
    border-radius: 20px;
    background: rgba(255, 255, 255, .68);
    border: 1px solid rgba(15, 23, 42, .08);
}

.fo-admin-pending-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.fo-pending-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 32px;
    padding: 0 11px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 900;
    background: #e2e8f0;
    color: #334155;
}

.fo-pending-pill strong {
    display: inline-grid;
    min-width: 22px;
    height: 22px;
    place-items: center;
    padding: 0 6px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .72);
}

.fo-pending-pill--ok { background: #dcfce7; color: #166534; }
.fo-pending-pill--warn { background: #fef3c7; color: #92400e; }
.fo-pending-pill--danger { background: #fee2e2; color: #991b1b; }
.fo-pending-pill--info { background: #dbeafe; color: #1e40af; }

.fo-admin-breadcrumb {
    color: #64748b;
    font-weight: 800;
    white-space: nowrap;
}

.fo-admin-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(300px, .55fr);
    gap: 16px;
}

.fo-admin-panel {
    min-width: 0;
    border-radius: 24px;
    background: rgba(255, 255, 255, .80);
    border: 1px solid rgba(15, 23, 42, .08);
    box-shadow: 0 18px 40px rgba(15, 23, 42, .07);
    padding: 18px;
}

.fo-admin-panel--wide {
    grid-row: span 2;
}

.fo-admin-panel__head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 14px;
}

.fo-admin-panel__head h2,
.fo-admin-panel__head p {
    margin: 0;
}

.fo-admin-panel__head h2 {
    font-size: 20px;
    letter-spacing: -.02em;
}

.fo-admin-panel__head p {
    margin-top: 4px;
    color: #64748b;
    font-size: 13px;
    font-weight: 700;
}

.fo-admin-panel__head a {
    color: #0284c7;
    text-decoration: none;
    font-weight: 900;
    font-size: 13px;
}

.fo-admin-table-wrap {
    overflow: auto;
}

.fo-admin-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 820px;
}

.fo-admin-table th,
.fo-admin-table td {
    padding: 13px 10px;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
    text-align: left;
    vertical-align: top;
}

.fo-admin-table th {
    color: #64748b;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.fo-admin-table td,
.fo-admin-table small {
    font-size: 13px;
}

.fo-admin-table small {
    color: #64748b;
    font-weight: 700;
}

.fo-status-badge {
    display: inline-flex;
    padding: 5px 9px;
    border-radius: 999px;
    background: #e0f2fe;
    color: #075985;
    font-weight: 900;
    font-size: 12px;
}

.fo-empty-row {
    padding: 20px !important;
    color: #64748b;
    font-weight: 800;
}

.fo-money-list {
    display: grid;
    gap: 10px;
}

.fo-money-list div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 13px;
    border-radius: 16px;
    background: rgba(15, 23, 42, .04);
}

.fo-money-list span {
    color: #64748b;
    font-weight: 800;
}

.fo-money-list strong {
    white-space: nowrap;
}

.fo-user-list {
    display: grid;
    gap: 10px;
}

.fo-user-item {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 10px;
    border-radius: 16px;
    background: rgba(15, 23, 42, .04);
}

.fo-avatar {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    background: #0f172a;
    color: #fff;
    font-weight: 900;
}

.fo-user-item strong,
.fo-user-item span {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fo-user-item span,
.fo-user-item small,
.fo-admin-muted {
    color: #64748b;
    font-size: 12px;
    font-weight: 700;
}

.fo-module-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.fo-module-list span {
    padding: 8px 10px;
    border-radius: 999px;
    background: rgba(14, 165, 233, .10);
    color: #075985;
    font-weight: 900;
    font-size: 13px;
}

@media (max-width: 1180px) {
    .fo-admin-shell {
        grid-template-columns: 230px minmax(0, 1fr);
    }
    .fo-admin-sticky-metrics {
        grid-template-columns: repeat(3, minmax(150px, 1fr));
    }
    .fo-admin-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 820px) {
    .fo-admin-shell {
        display: block;
    }
    .fo-admin-sidebar {
        position: relative;
        height: auto;
        border-radius: 0 0 26px 26px;
    }
    .fo-admin-nav {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .fo-admin-main {
        padding: 18px;
    }
    .fo-admin-topbar,
    .fo-admin-contextbar {
        align-items: flex-start;
        flex-direction: column;
    }
    .fo-admin-sticky-metrics {
        position: relative;
        grid-template-columns: 1fr;
        top: auto;
    }
    .fo-admin-breadcrumb {
        white-space: normal;
    }
}

/* v101 - Panel Excursionistas: estilos propios para formularios y listados */
.excursionista-shell .provider-main{
  gap:12px;
}
.excursionista-shell .compact-card{
  overflow:hidden;
}
.excursionista-shell .compact-card > .eyebrow,
.excursionista-shell .toolbar .eyebrow{
  margin-bottom:3px;
}
.excursionista-shell .compact-card h2{
  color:#0f172a;
  font-size:18px;
  font-weight:900;
  letter-spacing:-.02em;
}
.excursionista-shell form label{
  display:grid;
  gap:5px;
  margin:0;
  color:#475569;
  font-size:12px;
  font-weight:850;
  line-height:1.15;
}
.excursionista-shell form input,
.excursionista-shell form select,
.excursionista-shell form textarea{
  width:100%;
  border:1px solid #d4dce8;
  border-radius:12px;
  background:#fff;
  color:#0f172a;
  font-size:13px;
  font-weight:700;
  outline:none;
  box-shadow:0 1px 0 rgba(15,23,42,.02);
}
.excursionista-shell form input,
.excursionista-shell form select{
  min-height:38px;
  padding:0 10px;
}
.excursionista-shell form textarea{
  min-height:92px;
  padding:9px 10px;
  line-height:1.35;
}
.excursionista-shell form input:focus,
.excursionista-shell form select:focus,
.excursionista-shell form textarea:focus{
  border-color:#0f4c5c;
  box-shadow:0 0 0 3px rgba(15,76,92,.12);
}
.excursionista-shell form input::placeholder,
.excursionista-shell form textarea::placeholder{
  color:#94a3b8;
  font-weight:650;
}
.excursionista-shell .compact-grid.cols-3 > .compact-card{
  min-width:0;
}
.excursionista-shell .notice--ok{
  background:#ecfdf3;
  color:#166534;
  border-color:#bbf7d0;
}
.excursionista-shell .admin-table{
  width:100%;
  border-collapse:collapse;
  min-width:780px;
}
.excursionista-shell .admin-table th,
.excursionista-shell .admin-table td{
  padding:9px 10px;
  border-bottom:1px solid #edf2f7;
  text-align:left;
  font-size:12px;
  vertical-align:top;
}
.excursionista-shell .admin-table th{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:#64748b;
  background:#f8fafc;
  white-space:nowrap;
}
.excursionista-shell .admin-table tr:last-child td{
  border-bottom:0;
}
.excursionista-shell .list-row{
  display:grid;
  gap:3px;
}
.excursionista-shell .list-row strong{
  color:#0f172a;
  font-size:13px;
}
.excursionista-shell .list-row span{
  color:#64748b;
  font-size:12px;
  overflow-wrap:anywhere;
}
@media(max-width:900px){
  .excursionista-shell .compact-card h2{font-size:16px;}
  .excursionista-shell form input,
  .excursionista-shell form select{min-height:36px;}
}
@media(max-width:640px){
  .excursionista-shell form label{font-size:11px;}
  .excursionista-shell form input,
  .excursionista-shell form select,
  .excursionista-shell form textarea{font-size:12px;border-radius:10px;}
  .excursionista-shell .toolbar{align-items:stretch;}
  .excursionista-shell .toolbar .btn{width:100%;}
}

/* v102 · Panel Excursionistas: edición de excursiones y fotos */
.exc-upload-box{
  border:1px dashed rgba(15,76,92,.28);
  background:rgba(240,249,251,.54);
  border-radius:16px;
  padding:12px;
}
.exc-upload-box input[type=file]{
  margin-top:6px;
  width:100%;
  border:1px solid rgba(15,76,92,.18);
  background:#fff;
  border-radius:12px;
  padding:8px;
}
.exc-photo-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(132px,1fr));
  gap:10px;
  margin-top:12px;
}
.exc-photo-thumb{
  border:1px solid rgba(15,76,92,.16);
  border-radius:14px;
  background:#fff;
  overflow:hidden;
  padding:7px;
}
.exc-photo-thumb img{
  display:block;
  width:100%;
  height:86px;
  object-fit:cover;
  border-radius:10px;
  margin-bottom:7px;
  background:#eef2f7;
}
.actions-cell{
  white-space:nowrap;
}
.actions-cell .btn{
  margin:2px 2px 2px 0;
}
@media (max-width: 760px){
  .actions-cell{white-space:normal;}
  .actions-cell .btn,
  .actions-cell form{
    width:100%;
    display:block!important;
  }
  .actions-cell .btn{justify-content:center;}
}

/* v104 · Excursionistas: menú simple crear/listado */
.excursionista-shell .toolbar-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.excursionista-shell .toolbar-actions .pill{
  white-space:nowrap;
}
@media(max-width:640px){
  .excursionista-shell .toolbar-actions{
    width:100%;
    justify-content:flex-start;
  }
  .excursionista-shell .toolbar-actions .btn{
    width:auto;
  }
}

/* Excursionista: filtros y paginador compactos */
.exc-list-filterbar{
  display:grid;
  grid-template-columns:minmax(220px,1fr) 150px 150px auto;
  gap:8px;
  align-items:end;
  padding:8px;
  border:1px solid #e5edf6;
  background:#f8fafc;
  border-radius:14px;
}
.exc-list-filterbar label{
  display:grid;
  gap:3px;
  margin:0;
  color:#475569;
  font-size:10.5px;
  font-weight:900;
  letter-spacing:.02em;
  text-transform:uppercase;
}
.exc-list-filterbar input,
.exc-list-filterbar select{
  height:31px;
  min-height:31px;
  border:1px solid #dbe5f0;
  border-radius:10px;
  background:#fff;
  color:#0f172a;
  font-size:12px;
  padding:5px 9px;
  outline:none;
}
.exc-list-filterbar input:focus,
.exc-list-filterbar select:focus{
  border-color:#0f4c5c;
  box-shadow:0 0 0 3px rgba(15,76,92,.10);
}
.exc-list-filterbar__actions{
  display:flex;
  gap:6px;
  align-items:center;
  justify-content:flex-end;
  white-space:nowrap;
}
.exc-status-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:21px;
  padding:2px 8px;
  border-radius:999px;
  background:#eef2f7;
  color:#334155;
  font-size:10.5px;
  font-weight:900;
  text-transform:capitalize;
  line-height:1;
}
.exc-status-pill--activa,
.exc-status-pill--publicada{background:#dcfce7;color:#166534;}
.exc-status-pill--pausada{background:#fef3c7;color:#92400e;}
.exc-status-pill--borrador{background:#e2e8f0;color:#475569;}
.exc-list-pagination{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-top:8px;
  padding:6px 8px;
  border:1px solid #e5edf6;
  background:#fbfdff;
  border-radius:13px;
}
.exc-list-pagination__info{
  color:#64748b;
  font-size:11px;
  font-weight:900;
}
.exc-list-pagination__buttons{
  display:flex;
  gap:4px;
  align-items:center;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.exc-list-pagination__buttons a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:26px;
  height:24px;
  padding:0 7px;
  border-radius:8px;
  background:#fff;
  border:1px solid #d8e2ef;
  color:#334155;
  font-size:10.5px;
  font-weight:950;
  text-decoration:none;
}
.exc-list-pagination__buttons a.is-current{
  background:#0f4c5c;
  color:#fff;
  border-color:#0f4c5c;
}
.exc-list-pagination__buttons a.is-disabled{
  opacity:.42;
  pointer-events:none;
}
@media(max-width:860px){
  .exc-list-filterbar{grid-template-columns:1fr 1fr;}
  .exc-list-filterbar__search{grid-column:1/-1;}
  .exc-list-filterbar__actions{justify-content:flex-start;}
}
@media(max-width:560px){
  .exc-list-filterbar{grid-template-columns:1fr;}
  .exc-list-filterbar__actions{display:grid;grid-template-columns:1fr 1fr;}
  .exc-list-pagination{align-items:stretch;flex-direction:column;gap:6px;}
  .exc-list-pagination__info{text-align:center;}
  .exc-list-pagination__buttons{justify-content:center;}
}
