:root{
  --cream:#FBF9F4;
  --sand:#F3EEE3;
  --sand-2:#E8DFCC;
  --pine:#033331;
  --pine-2:#0D4944;
  --gold:#D9B27C;
  --gold-deep:#B38A55;
  --bronze:#8A6B45;
  --text:#14302E;
  --muted:#5F7270;
  --line:rgba(3,51,49,.12);
  --line-strong:rgba(3,51,49,.22);
  --coral:#C8553D;
  --wa:#25D366;
  --radius:22px;
  --shadow:0 18px 40px -18px rgba(3,51,49,.45);
  --ease:cubic-bezier(.22,.8,.2,1);
  color-scheme:light;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--sand-2);
  color:var(--text);
  font-family:'Montserrat',system-ui,-apple-system,sans-serif;
  font-size:15px;
  -webkit-font-smoothing:antialiased;
  display:flex;justify-content:center;
  min-height:100dvh;
}
h1,h2,h3,.serif{font-family:'Marcellus',Georgia,serif;font-weight:400;margin:0;letter-spacing:.2px;}
button{font-family:inherit;}
img{display:block;max-width:100%;}
.hidden{display:none !important;}
:focus-visible{outline:2px solid var(--gold-deep);outline-offset:2px;}

/* ---------- app frame (mobile first) ---------- */
.app{
  position:relative;width:100%;max-width:440px;height:100dvh;
  background:var(--cream);display:flex;flex-direction:column;overflow:hidden;
}
/* La app es un contenedor: sus estilos de tableta y computador (al final de este archivo) dependen de su ancho,
   no del de la pantalla. Así la vista previa del panel (440 px) se ve como celular y la de computador, como computador. */
.app{container-type:inline-size;container-name:app;}
/* Desde 640 px (tableta y computador): la app usa todo el ancho de la pantalla */
@media (min-width:640px){
  .app{max-width:none;}
}

/* ---------- topbar ---------- */
.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 10px;flex-shrink:0;background:var(--cream);z-index:5;}
.topbar-logo{height:30px;width:auto;cursor:pointer;}
.ag-sin-esperar{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--cream,#FBF9F4);opacity:.9}
.proto-tag{font-size:9.5px;font-weight:700;letter-spacing:1.4px;color:var(--bronze);border:1px solid var(--gold);border-radius:20px;padding:3px 8px;margin-left:8px;}
.top-left{display:flex;align-items:center;}
.lang{display:flex;border:1px solid var(--line-strong);border-radius:20px;overflow:hidden;}
.lang button{border:none;background:transparent;color:var(--muted);padding:6px 11px;font-size:11.5px;font-weight:700;cursor:pointer;}
.lang button.on{background:var(--pine);color:var(--cream);}

/* ---------- views ---------- */
.view{flex:1;overflow-y:auto;overflow-x:hidden;padding:4px 18px 96px;display:flex;flex-direction:column;gap:30px;scrollbar-width:none;}
.view::-webkit-scrollbar{display:none;}
.view > *{flex-shrink:0;}
.view.enter{animation:viewIn .45s var(--ease);}
@keyframes viewIn{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:40px;padding:14px 22px;font-weight:700;font-size:14px;letter-spacing:.2px;cursor:pointer;transition:transform .15s ease,background .2s ease;}
.btn:active{transform:scale(.97);}
.btn-pine{background:var(--pine);color:var(--cream);}
.btn-pine:hover{background:var(--pine-2);}
.btn-cream{background:var(--cream);color:var(--pine);}
.btn-gold{background:var(--gold);color:var(--pine);}
.btn-line{background:transparent;color:var(--pine);border:1.5px solid var(--pine);}
.btn-wa{background:var(--wa);color:#fff;}
.btn-block{width:100%;}
.btn:disabled{opacity:.35;cursor:not-allowed;}
.link{background:none;border:none;color:var(--bronze);font-weight:700;font-size:13px;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:3px;}

.eyebrow{font-size:10.5px;font-weight:700;letter-spacing:3px;color:var(--gold);text-transform:uppercase;}
.section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px;}
.section-head h2{font-size:26px;color:var(--pine);}

/* ---------- media backgrounds ---------- */
.media{background-size:cover;background-position:center;background-color:var(--pine-2);}

/* ---------- INTRO ---------- */
.intro{position:absolute;inset:0;z-index:60;background:var(--pine);overflow:hidden;cursor:pointer;}
.intro-slide{position:absolute;inset:-4%;opacity:0;transition:opacity 1.1s ease;}
.intro-slide.on{opacity:1;animation:kenburns 3.6s ease-out forwards;}
@keyframes kenburns{from{transform:scale(1.14) translateY(1.5%);}to{transform:scale(1) translateY(0);}}
.intro-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,51,49,.15) 0%,rgba(3,51,49,.05) 40%,rgba(3,51,49,.75) 100%);}
.intro-word{position:absolute;left:0;right:0;bottom:22%;text-align:center;color:#fff;padding:0 20px;}
.intro-word .w{font-family:'Marcellus',serif;font-size:54px;line-height:1.05;display:block;}
.intro-word .w.long{font-size:44px;}
.intro-word .wd{display:inline-block;white-space:nowrap;}
.intro-word .w span{display:inline-block;opacity:0;transform:translateY(40%);animation:letterUp .7s var(--ease) forwards;}
.intro-word .sub{display:block;margin-top:14px;font-size:11px;letter-spacing:4px;text-transform:uppercase;color:var(--gold);opacity:0;animation:fadeIn .8s ease .6s forwards;}
@keyframes letterUp{to{opacity:1;transform:none;}}
@keyframes fadeIn{to{opacity:1;}}
.intro-fog{position:absolute;inset:-20%;pointer-events:none;opacity:0;
  background:
    radial-gradient(40% 30% at 20% 60%,rgba(251,249,244,.95),transparent 70%),
    radial-gradient(45% 35% at 75% 45%,rgba(251,249,244,.9),transparent 70%),
    radial-gradient(60% 40% at 50% 80%,rgba(251,249,244,.95),transparent 70%),
    radial-gradient(50% 30% at 40% 25%,rgba(251,249,244,.85),transparent 70%);
  filter:blur(8px);}
.intro-fog.drift{animation:fogDrift 1.4s ease-in-out;}
@keyframes fogDrift{0%{opacity:0;transform:translateX(-6%) scale(1);}45%{opacity:.85;}100%{opacity:0;transform:translateX(6%) scale(1.1);}}
.intro-fog.fill{animation:fogFill 1.3s ease forwards;}
@keyframes fogFill{0%{opacity:0;transform:scale(1.2);}100%{opacity:1;transform:scale(1);background-color:var(--cream);}}
.intro-final{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;opacity:0;pointer-events:none;transition:opacity .9s ease .4s;}
.intro-final.on{opacity:1;pointer-events:auto;}
.intro-final img{width:74%;max-width:300px;transform:scale(.94);transition:transform 1.4s var(--ease) .4s;}
.intro-final.on img{transform:scale(1);}
.intro.final .intro-skip,.intro.final .intro-logo-top{opacity:0;pointer-events:none;}
.intro-skip{transition:opacity .4s;position:absolute;top:18px;right:18px;z-index:3;background:rgba(251,249,244,.18);backdrop-filter:blur(6px);color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:20px;padding:7px 14px;font-size:11.5px;font-weight:700;cursor:pointer;}
.intro-logo-top{position:absolute;top:20px;left:20px;height:26px;z-index:3;opacity:.95;}
.intro-dots{position:absolute;bottom:9%;left:0;right:0;display:flex;justify-content:center;gap:6px;z-index:3;}
.intro-dots i{width:22px;height:2px;background:rgba(255,255,255,.35);border-radius:2px;overflow:hidden;position:relative;}
.intro-dots i.on::after{content:"";position:absolute;inset:0;background:var(--gold);animation:bar 2.6s linear forwards;transform-origin:left;}
@keyframes bar{from{transform:scaleX(0);}to{transform:scaleX(1);}}

/* ---------- HOME hero ---------- */
.hero{position:relative;border-radius:28px;min-height:470px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;padding:26px 22px 24px;color:#fff;box-shadow:var(--shadow);}
.hero .media{position:absolute;inset:0;animation:heroZoom 14s ease-in-out infinite alternate;}
@keyframes heroZoom{from{transform:scale(1.02);}to{transform:scale(1.1);}}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,51,49,0) 25%,rgba(3,51,49,.35) 55%,rgba(3,51,49,.9) 100%);}
.hero-inner{position:relative;z-index:1;display:flex;flex-direction:column;gap:12px;}
.hero h1{font-size:40px;line-height:1.02;color:#fff;}
.hero h1 em{font-style:normal;color:var(--gold);}
.hero p{margin:0;font-size:14px;line-height:1.55;color:rgba(255,255,255,.9);max-width:32ch;}
.hero-actions{display:flex;align-items:center;gap:16px;margin-top:6px;flex-wrap:wrap;}
.hero .link{color:#fff;}

/* ---------- destinations slider ---------- */
.dest-row{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -18px;padding:0 18px 4px;scrollbar-width:none;}
.dest-row::-webkit-scrollbar{display:none;}
.dest-card{flex:0 0 150px;height:215px;border-radius:20px;position:relative;overflow:hidden;scroll-snap-align:start;cursor:pointer;border:none;padding:0;text-align:left;}
.dest-card .media{position:absolute;inset:0;transition:transform .6s var(--ease);}
.dest-card:hover .media{transform:scale(1.06);}
.dest-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(3,51,49,.85));}
.dest-card .dc-body{position:absolute;left:14px;right:14px;bottom:14px;z-index:1;color:#fff;}
.dest-card .dc-name{font-family:'Marcellus',serif;font-size:19px;line-height:1.1;}
.dest-card .dc-meta{font-size:11px;color:var(--gold);margin-top:4px;font-weight:600;}

/* ---------- coverflow ---------- */
.cf{position:relative;height:400px;perspective:1100px;touch-action:pan-y;user-select:none;margin:0 -18px;overflow:hidden;}
.cf-item{position:absolute;top:10px;left:50%;width:66%;height:360px;margin-left:-33%;border-radius:24px;overflow:hidden;cursor:pointer;
  transition:transform .75s var(--ease),opacity .75s var(--ease),filter .75s var(--ease);box-shadow:0 24px 40px -22px rgba(3,51,49,.7);transform-style:preserve-3d;}
.cf-item .media{position:absolute;inset:0;}
.cf-item::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,51,49,.05) 30%,rgba(3,51,49,.88));transition:opacity .5s;}
.cf-body{position:absolute;left:18px;right:18px;bottom:18px;z-index:1;color:#fff;opacity:0;transform:translateY(12px);transition:all .5s var(--ease) .15s;}
.cf-item.center .cf-body{opacity:1;transform:none;}
.cf-title{font-family:'Marcellus',serif;font-size:23px;line-height:1.08;text-transform:uppercase;letter-spacing:1.5px;}
.cf-rule{width:34px;height:2px;background:var(--gold);margin:10px 0 8px;}
.cf-tag{font-size:12.5px;color:rgba(255,255,255,.88);}
.cf-price{display:inline-block;margin-top:12px;font-size:11.5px;font-weight:700;background:rgba(251,249,244,.18);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.3);padding:6px 11px;border-radius:20px;}
.cf-fog{position:absolute;inset:-10%;pointer-events:none;opacity:0;z-index:8;
  background:radial-gradient(35% 30% at 30% 55%,rgba(251,249,244,.9),transparent 70%),radial-gradient(40% 35% at 70% 45%,rgba(251,249,244,.85),transparent 70%);filter:blur(10px);}
.cf-fog.go{animation:cfFog .8s ease;}
@keyframes cfFog{0%{opacity:0;transform:translateX(-8%);}40%{opacity:.75;}100%{opacity:0;transform:translateX(8%);}}
.cf-nav{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:4px;}
.cf-arrow{width:42px;height:42px;border-radius:50%;border:1.5px solid var(--line-strong);background:var(--cream);color:var(--pine);display:flex;align-items:center;justify-content:center;cursor:pointer;}
.cf-dots{display:flex;gap:6px;}
.cf-dots i{width:6px;height:6px;border-radius:6px;background:var(--line-strong);transition:all .3s;}
.cf-dots i.on{width:22px;background:var(--gold-deep);}

/* ---------- builder + props ---------- */
.builder-cta{background:var(--pine);color:var(--cream);border-radius:24px;padding:24px 22px;position:relative;overflow:hidden;cursor:pointer;border:none;text-align:left;width:100%;}
.builder-cta::before{content:"";position:absolute;right:-50px;top:-50px;width:170px;height:170px;border-radius:50%;border:1px solid rgba(217,178,124,.35);}
.builder-cta::after{content:"";position:absolute;right:-20px;top:-20px;width:110px;height:110px;border-radius:50%;border:1px solid rgba(217,178,124,.25);}
.builder-cta h3{font-size:24px;color:var(--cream);margin:8px 0 6px;}
.builder-cta p{margin:0;font-size:13px;color:rgba(251,249,244,.75);line-height:1.5;max-width:28ch;}
.builder-cta .go{margin-top:16px;display:inline-flex;align-items:center;gap:6px;color:var(--gold);font-weight:700;font-size:13px;}
.props{display:flex;flex-direction:column;gap:18px;}
.prop{display:flex;gap:14px;align-items:flex-start;}
.prop-ic{flex-shrink:0;width:44px;height:44px;border-radius:50%;background:var(--sand);border:1px solid var(--gold);display:flex;align-items:center;justify-content:center;color:var(--pine);}
.prop b{display:block;font-size:14px;color:var(--pine);margin-bottom:3px;}
.prop span{font-size:12.5px;color:var(--muted);line-height:1.5;}
.footer{display:flex;flex-direction:column;align-items:center;gap:10px;padding:10px 0 0;border-top:1px solid var(--line);}
.footer img{width:170px;margin-top:22px;}
.footer small{font-size:11px;color:var(--muted);}

/* ---------- tours list ---------- */
.chips{display:flex;flex-wrap:wrap;gap:8px;}
.chips.scroll{flex-wrap:nowrap;overflow-x:auto;margin:0 -18px;padding:0 18px 2px;scrollbar-width:none;}
.chips.scroll::-webkit-scrollbar{display:none;}
.chips.scroll .chip{flex-shrink:0;}
.chip{border:1.5px solid var(--line-strong);background:transparent;color:var(--pine);border-radius:30px;padding:9px 15px;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .15s;}
.chip:active{transform:scale(.96);}
.chip.on{background:var(--pine);border-color:var(--pine);color:var(--cream);}
.tour-list{display:flex;flex-direction:column;gap:18px;}
.tour-card{border-radius:24px;overflow:hidden;background:#fff;border:1px solid var(--line);cursor:pointer;box-shadow:0 14px 30px -24px rgba(3,51,49,.6);}
.tour-card .media{height:190px;position:relative;}
.tour-badge{position:absolute;top:12px;left:12px;background:rgba(251,249,244,.92);color:var(--pine);font-size:11px;font-weight:700;padding:5px 11px;border-radius:20px;}
.tour-body{padding:16px 18px 18px;}
.tour-body h3{font-size:21px;color:var(--pine);line-height:1.15;}
.tour-body p{font-size:12.8px;color:var(--muted);line-height:1.5;margin:6px 0 12px;}
.tour-foot{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted);font-weight:600;}
.tour-foot b{color:var(--pine);font-size:15px;}
.pill{font-size:10.5px;font-weight:700;background:var(--sand);color:var(--bronze);padding:4px 10px;border-radius:20px;border:1px solid rgba(217,178,124,.5);}
.pill-row{display:flex;flex-wrap:wrap;gap:6px;}

/* ---------- detail ---------- */
.view.detail{padding:0 0 96px;gap:0;}
.detail-media{height:48vh;min-height:320px;max-height:430px;position:relative;flex-shrink:0;}
.detail-media .media{position:absolute;inset:0;}
.detail-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,51,49,.35) 0%,transparent 30%);}
.circle-btn{position:absolute;top:16px;z-index:2;width:42px;height:42px;border-radius:50%;background:rgba(251,249,244,.92);border:none;color:var(--pine);display:flex;align-items:center;justify-content:center;cursor:pointer;}
.detail-sheet{position:relative;margin-top:-30px;background:var(--cream);border-radius:30px 30px 0 0;padding:26px 20px 0;display:flex;flex-direction:column;gap:24px;z-index:1;}
.detail-sheet::before{content:"";position:absolute;top:10px;left:50%;width:40px;height:4px;margin-left:-20px;border-radius:4px;background:var(--line-strong);}
.detail-title h2{font-size:30px;color:var(--pine);line-height:1.08;}
.detail-title .cf-rule{margin:12px 0 0;}
.meta-row{display:flex;gap:8px;flex-wrap:wrap;}
.meta{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--pine);background:var(--sand);border-radius:20px;padding:7px 12px;}
.meta svg{color:var(--gold-deep);}
.detail-desc{font-size:14px;line-height:1.65;color:var(--muted);margin:0;}
.block-title{font-size:11px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--bronze);margin-bottom:14px;}
.incl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px 8px;}
.incl{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;}
.incl-ic{width:54px;height:54px;border-radius:50%;border:1.5px solid var(--gold);display:flex;align-items:center;justify-content:center;color:var(--pine);background:#fff;}
.incl span{font-size:11.5px;line-height:1.3;color:var(--text);font-weight:500;}
.timeline{list-style:none;margin:0;padding:0 0 0 18px;border-left:1.5px solid var(--sand-2);display:flex;flex-direction:column;gap:14px;}
.timeline li{position:relative;font-size:13.5px;line-height:1.4;}
.timeline li::before{content:"";position:absolute;left:-24.5px;top:4px;width:10px;height:10px;border-radius:50%;background:var(--cream);border:2px solid var(--gold-deep);}
.timeline b{color:var(--pine);}
.addon{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);}
.addon:first-child{border-top:1px solid var(--line);}
.addon-l{font-size:13.5px;font-weight:600;color:var(--pine);}
.addon-p{font-size:12px;color:var(--bronze);font-weight:600;margin-top:2px;}
.toggle{width:44px;height:26px;border-radius:26px;background:var(--sand-2);position:relative;cursor:pointer;flex-shrink:0;border:none;transition:background .2s;}
.toggle.on{background:var(--pine);}
.toggle::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .2s var(--ease);}
.toggle.on::after{transform:translateX(18px);}
.sticky{position:sticky;bottom:-96px;margin-top:auto;padding:12px 0 14px;background:var(--cream);box-shadow:0 -22px 18px -6px var(--cream);display:flex;flex-direction:column;gap:10px;z-index:3;}
.total-row{display:flex;justify-content:space-between;align-items:center;padding:0 4px;}
.total-row span{font-size:12px;color:var(--muted);font-weight:600;}
.total-row b{font-family:'Marcellus',serif;font-size:24px;color:var(--pine);font-weight:400;}
.total-row small{display:block;font-size:10.5px;color:var(--muted);text-align:right;}

/* ---------- chat ---------- */
.view.chat{gap:14px;padding-top:6px;}
.chat-head{display:flex;align-items:center;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-shrink:0;}
.avatar{width:44px;height:44px;border-radius:50%;background:var(--pine);display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;}
.avatar img{width:78%;}
.chat-name{font-weight:700;font-size:14px;color:var(--pine);}
.chat-status{font-size:11.5px;color:var(--muted);display:flex;align-items:center;gap:6px;}
.dot{width:7px;height:7px;border-radius:50%;background:#3FAE6A;}
.msgs{display:flex;flex-direction:column;gap:10px;flex:1;}
.msg{max-width:84%;padding:12px 15px;border-radius:20px;font-size:13.8px;line-height:1.5;animation:msgIn .35s var(--ease);}
@keyframes msgIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
.msg.bot{background:var(--sand);color:var(--text);align-self:flex-start;border-bottom-left-radius:6px;}
.msg.me{background:var(--pine);color:var(--cream);align-self:flex-end;border-bottom-right-radius:6px;}
.note{align-self:flex-start;max-width:90%;font-size:12px;line-height:1.5;color:var(--bronze);background:#fff;border:1px dashed var(--gold);border-radius:14px;padding:10px 13px;animation:msgIn .35s var(--ease);}
.typing{align-self:flex-start;background:var(--sand);border-radius:20px;border-bottom-left-radius:6px;padding:14px 16px;display:flex;gap:5px;}
.typing i{width:6px;height:6px;border-radius:50%;background:var(--bronze);animation:bounce 1.1s infinite ease-in-out;}
.typing i:nth-child(2){animation-delay:.15s;}
.typing i:nth-child(3){animation-delay:.3s;}
@keyframes bounce{0%,60%,100%{transform:translateY(0);opacity:.45;}30%{transform:translateY(-4px);opacity:1;}}
.replies{display:flex;flex-wrap:wrap;gap:8px;flex-shrink:0;}
.inline-form{display:flex;gap:8px;width:100%;}
.inline-form input{flex:1;min-width:0;}
.rec-list{display:flex;flex-direction:column;gap:10px;align-self:stretch;}
.rec{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:18px;padding:10px;cursor:pointer;animation:msgIn .4s var(--ease);}
.rec .media{width:64px;height:64px;border-radius:14px;flex-shrink:0;}
.rec b{display:block;font-size:13.5px;color:var(--pine);line-height:1.25;}
.rec small{font-size:11.5px;color:var(--muted);}

/* ---------- forms ---------- */
.field{display:flex;flex-direction:column;gap:6px;}
.field label{font-size:12px;font-weight:700;color:var(--pine);}
input[type=text],input[type=tel],input[type=email],input[type=number],input[type=date]{
  border:1.5px solid var(--line-strong);background:#fff;color:var(--text);border-radius:14px;padding:13px 14px;font-family:inherit;font-size:14.5px;width:100%;}
input:focus{outline:none;border-color:var(--pine);}
.page-title{font-size:30px;color:var(--pine);line-height:1.1;}
.back{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:var(--pine);font-weight:700;font-size:13px;cursor:pointer;padding:6px 0 0;align-self:flex-start;}
.summary{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--sand);border-radius:18px;padding:14px 16px;}
.summary b{font-size:14px;color:var(--pine);}
.pay-opt{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1.5px solid var(--line-strong);border-radius:18px;padding:15px 16px;cursor:pointer;background:#fff;transition:all .15s;}
.pay-opt.on{border-color:var(--pine);box-shadow:inset 0 0 0 1px var(--pine);}
.pay-opt b{display:block;font-size:13.8px;color:var(--pine);}
.pay-opt small{font-size:11.5px;color:var(--muted);}
.pay-amt{font-family:'Marcellus',serif;font-size:20px;color:var(--pine);flex-shrink:0;}
.check{display:flex;gap:10px;align-items:flex-start;font-size:12px;color:var(--muted);line-height:1.5;}
.check input{margin-top:3px;accent-color:var(--pine);width:16px;height:16px;flex-shrink:0;}
.err{color:var(--coral);font-size:12.5px;font-weight:600;}
.bold-note{display:flex;align-items:center;justify-content:center;gap:6px;font-size:11px;color:var(--muted);}

/* ---------- builder ---------- */
.day-tabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;}
.day-tab{flex-shrink:0;border:1.5px solid var(--line-strong);background:transparent;color:var(--muted);border-radius:14px;padding:10px 14px;font-size:12.5px;font-weight:700;cursor:pointer;}
.day-tab.on{background:var(--pine);border-color:var(--pine);color:var(--cream);}
.day-tab.done:not(.on){border-color:var(--gold);color:var(--bronze);}
.act{display:flex;align-items:center;gap:12px;border:1.5px solid var(--line);background:#fff;border-radius:18px;padding:10px;cursor:pointer;transition:all .15s;}
.act.on{border-color:var(--pine);box-shadow:inset 0 0 0 1px var(--pine);}
.act .media{width:56px;height:56px;border-radius:12px;flex-shrink:0;}
.act-t{flex:1;}
.act-t b{display:block;font-size:13.5px;color:var(--pine);}
.act-t small{font-size:11px;color:var(--muted);}
.act-p{font-size:12.5px;font-weight:700;color:var(--bronze);flex-shrink:0;}
.num-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;}
.num-grid button{aspect-ratio:1;border-radius:18px;border:1.5px solid var(--line-strong);background:#fff;font-family:'Marcellus',serif;font-size:24px;color:var(--pine);cursor:pointer;}

/* ---------- confirm ---------- */
.view.confirm{align-items:stretch;text-align:center;padding-top:20px;}
.ok-ring{width:78px;height:78px;border-radius:50%;background:var(--pine);display:flex;align-items:center;justify-content:center;margin:0 auto;animation:pop .6s var(--ease);}
@keyframes pop{from{transform:scale(.4);opacity:0;}to{transform:scale(1);opacity:1;}}
.code{display:inline-block;margin:6px auto 0;font-weight:700;letter-spacing:2px;color:var(--bronze);border:1px solid var(--gold);padding:7px 16px;border-radius:20px;font-size:13px;}
.receipt{text-align:left;background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px 18px;display:flex;flex-direction:column;gap:10px;}
.receipt-logo{width:150px;margin:0 auto 6px;}
.r-row{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:var(--muted);}
.r-row b{color:var(--pine);text-align:right;}
.r-div{border-top:1px dashed var(--line-strong);margin:4px 0;}
.r-item{font-size:13px;color:var(--text);}

/* ---------- admin ---------- */
.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.stat{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px;}
.stat b{display:block;font-family:'Marcellus',serif;font-size:30px;color:var(--pine);font-weight:400;}
.stat span{font-size:11.5px;color:var(--muted);}
.lead{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:8px;}
.lead-top{display:flex;justify-content:space-between;align-items:center;gap:10px;}
.lead-top b{font-size:14px;color:var(--pine);}
.lead small{font-size:12px;color:var(--muted);}
.stage{font-size:10px;font-weight:700;padding:4px 10px;border-radius:20px;flex-shrink:0;}
.st-inicio{background:#EEF1F0;color:var(--muted);}
.st-medio{background:#F6ECDC;color:var(--bronze);}
.st-avanzado{background:#F7E1DA;color:var(--coral);}
.st-pagado{background:#DCEDE7;color:#1C6B55;}
.log{font-size:12.5px;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:14px;padding:11px 13px;line-height:1.45;}
.log b{color:var(--pine);}
.list{display:flex;flex-direction:column;gap:10px;}
.suggest{font-size:12.5px;line-height:1.5;color:var(--pine);background:#F6ECDC;border-radius:14px;padding:12px 14px;}

/* ---------- bottom nav + wa ---------- */
.nav{display:flex;border-top:1px solid var(--line);background:rgba(251,249,244,.95);backdrop-filter:blur(10px);flex-shrink:0;padding:6px 8px calc(8px + env(safe-area-inset-bottom));z-index:6;}
.nav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:none;cursor:pointer;padding:8px 4px 4px;color:var(--muted);font-size:10.5px;font-weight:600;position:relative;}
.nav button.on{color:var(--pine);}
.nav button.on::before{content:"";position:absolute;top:-7px;width:22px;height:2px;border-radius:2px;background:var(--gold-deep);}
.wa{position:absolute;right:16px;bottom:86px;transition:bottom .35s var(--ease);width:54px;height:54px;border-radius:50%;background:var(--wa);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 24px -8px rgba(0,0,0,.45);cursor:pointer;z-index:7;border:none;}

.app.cta .wa{bottom:196px;width:48px;height:48px;}
/* view transition for tour image */
::view-transition-old(tour-media),::view-transition-new(tour-media){animation-duration:.55s;animation-timing-function:cubic-bezier(.22,.8,.2,1);}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;}
}
@media print{
  body{background:#fff;padding:0;}
  .app{height:auto;max-width:100%;box-shadow:none;border:none;overflow:visible;}
  .topbar,.nav,.wa,.no-print,#intro{display:none !important;}
  .view{overflow:visible;padding-bottom:0;}
}

/* =====================================================================
   COMPONENTES DE LA APP CONECTADA (datos reales)
   ===================================================================== */
.ref{position:absolute;right:10px;bottom:10px;z-index:2;font-size:9.5px;font-weight:600;letter-spacing:.3px;color:rgba(255,255,255,.9);background:rgba(3,51,49,.45);backdrop-filter:blur(4px);padding:3px 8px;border-radius:12px;}
.tbc{color:var(--coral);font-weight:600;}
.loading{display:flex;align-items:center;justify-content:center;flex:1;color:var(--muted);font-size:13px;gap:10px;}
.spin{width:18px;height:18px;border-radius:50%;border:2px solid var(--sand-2);border-top-color:var(--pine);animation:sp .8s linear infinite;}
@keyframes sp{to{transform:rotate(360deg);}}

/* info rows */
.info{display:flex;flex-direction:column;}
.info-row{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line);}
.info-row:first-child{border-top:1px solid var(--line);}
.info-ic{width:36px;height:36px;border-radius:50%;background:var(--sand);display:flex;align-items:center;justify-content:center;color:var(--pine);flex-shrink:0;}
.info-row b{display:block;font-size:13px;color:var(--pine);margin-bottom:2px;}
.info-row span,.info-row a{font-size:13px;color:var(--muted);line-height:1.45;}
.info-row a{color:var(--bronze);font-weight:600;}

/* rates */
.rates{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.rate{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px;}
.rate small{display:block;font-size:11px;color:var(--muted);font-weight:600;}
.rate b{font-family:'Marcellus',serif;font-weight:400;font-size:22px;color:var(--pine);}
.rate.wide{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;}
.price-table{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;}
.pt-row{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);font-size:13px;}
.pt-row:last-child{border-bottom:none;}
.pt-row span{color:var(--muted);}
.pt-row b{color:var(--pine);font-size:14px;}
.pt-row small{display:block;font-size:10.5px;color:var(--muted);text-align:right;font-weight:500;}
.pt-row.tbc-row b{color:var(--coral);font-size:12px;}

/* booking widget */
.book{background:var(--sand);border-radius:24px;padding:18px;display:flex;flex-direction:column;gap:14px;}
.book h3{font-size:22px;color:var(--pine);}
.step-row{display:flex;justify-content:space-between;align-items:center;gap:10px;}
.step-row b{display:block;font-size:13.5px;color:var(--pine);}
.step-row small{font-size:11px;color:var(--muted);}
.stepper{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line-strong);border-radius:30px;padding:4px;}
.stepper button{width:32px;height:32px;border-radius:50%;border:none;background:var(--sand);color:var(--pine);font-size:18px;font-weight:600;cursor:pointer;line-height:1;}
.stepper button:disabled{opacity:.3;}
.stepper output{min-width:22px;text-align:center;font-weight:700;color:var(--pine);}
select{border:1.5px solid var(--line-strong);background:#fff;color:var(--text);border-radius:14px;padding:13px 14px;font-family:inherit;font-size:14.5px;width:100%;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--pine) 50%),linear-gradient(135deg,var(--pine) 50%,transparent 50%);background-position:calc(100% - 20px) 55%,calc(100% - 15px) 55%;background-size:5px 5px;background-repeat:no-repeat;}
.seg{display:flex;background:#fff;border:1.5px solid var(--line-strong);border-radius:14px;padding:3px;gap:3px;}
.seg button{flex:1;border:none;background:transparent;border-radius:11px;padding:10px;font-weight:600;font-size:13px;color:var(--muted);cursor:pointer;}
.seg button.on{background:var(--pine);color:var(--cream);}

/* quote */
.quote{background:#fff;border-radius:18px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);}
.q-line{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:var(--muted);}
.q-line b{color:var(--text);font-weight:600;}
.q-total{display:flex;justify-content:space-between;align-items:baseline;border-top:1px dashed var(--line-strong);padding-top:10px;margin-top:2px;}
.q-total span{font-size:12px;font-weight:700;color:var(--pine);}
.q-total b{font-family:'Marcellus',serif;font-weight:400;font-size:26px;color:var(--pine);}
.q-dep{display:flex;justify-content:space-between;font-size:12.5px;color:var(--bronze);font-weight:600;}
.q-note{font-size:11.5px;color:var(--muted);line-height:1.45;}
.blocks{background:#FBEDE8;border:1px solid #F0CDBF;border-radius:16px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;}
.blocks p{margin:0;font-size:12.5px;line-height:1.45;color:#8E3A27;}
.blocks .btn{margin-top:4px;}

/* package parts */
.pk-acts{display:flex;flex-direction:column;gap:10px;}
.pk-act{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px 14px;font-size:13.5px;color:var(--pine);font-weight:600;}
.pk-act .info-ic{width:34px;height:34px;}
.hotel-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.hotel-item{display:flex;gap:8px;align-items:center;font-size:12.5px;color:var(--text);background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 12px;}
.hotel-item svg{color:var(--gold-deep);flex-shrink:0;}
.nolist{margin:0;padding-left:18px;font-size:13px;color:var(--muted);line-height:1.6;}
.pkg-card-price{font-size:12px;color:rgba(255,255,255,.85);margin-top:10px;}
.pkg-card-price b{font-family:'Marcellus',serif;font-weight:400;font-size:19px;color:#fff;}

/* hoja inferior (botón de Bold) */
.sheet-bg{position:absolute;inset:0;z-index:70;background:rgba(3,51,49,.45);display:flex;align-items:flex-end;animation:fadeIn .25s ease forwards;opacity:0;}
.sheet{width:100%;background:var(--cream);border-radius:28px 28px 0 0;padding:22px 20px 26px;display:flex;flex-direction:column;gap:14px;animation:sheetUp .4s var(--ease);}
@keyframes sheetUp{from{transform:translateY(100%);}to{transform:none;}}
.bold-head{display:flex;align-items:center;justify-content:space-between;}
.bold-logo{font-weight:800;font-size:20px;letter-spacing:-.5px;color:#121E6C;}
.bold-logo i{font-style:normal;color:#EE424E;}
.sim-tag{font-size:10px;font-weight:700;letter-spacing:1px;color:var(--coral);border:1px solid var(--coral);border-radius:12px;padding:3px 8px;}

/* chat extra */
.ask-form{display:flex;gap:8px;width:100%;}
.ask-form input{flex:1;min-width:0;}
.handoff{align-self:stretch;}

/* =====================================================================
   PANEL ADMINISTRADOR
   ===================================================================== */
body.admin{padding:0;background:var(--sand);display:block;}
.adm{max-width:1180px;margin:0 auto;padding:18px 18px 60px;}
.adm-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0 18px;border-bottom:1px solid var(--line);margin-bottom:22px;flex-wrap:wrap;}
.adm-top img{height:34px;}
.adm-top .who{font-size:12px;color:var(--muted);}
.adm-tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:22px;scrollbar-width:none;}
.adm-tabs .chip{flex-shrink:0;}
.adm-tabs .chip .n{display:inline-block;margin-left:6px;background:var(--coral);color:#fff;border-radius:10px;padding:0 7px;font-size:11px;}
.adm h1{font-size:30px;color:var(--pine);margin-bottom:6px;}
.adm .sub{font-size:13px;color:var(--muted);margin:0 0 20px;line-height:1.5;max-width:70ch;}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:26px;}
.kpi{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;}
.kpi b{display:block;font-family:'Marcellus',serif;font-weight:400;font-size:30px;color:var(--pine);line-height:1.1;}
.kpi span{font-size:12px;color:var(--muted);}
.kpi.alert b{color:var(--coral);}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;}
.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;display:flex;flex-direction:column;gap:8px;}
.card h3{font-size:19px;color:var(--pine);line-height:1.2;}
.card .row{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--muted);}
.card .row b{color:var(--text);font-weight:600;text-align:right;}
.card small{font-size:12px;color:var(--muted);line-height:1.45;}
.card .acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px;}
.card .acts .btn{padding:9px 14px;font-size:12px;}
.sev{font-size:10px;font-weight:700;letter-spacing:.5px;padding:4px 10px;border-radius:20px;text-transform:uppercase;flex-shrink:0;}
.sev-bloquea{background:#F7E1DA;color:var(--coral);}
.sev-importante{background:#F6ECDC;color:var(--bronze);}
.sev-menor{background:#EEF1F0;color:var(--muted);}
.est{font-size:10.5px;font-weight:700;padding:4px 10px;border-radius:20px;flex-shrink:0;}
.est-por_enviar{background:#F6ECDC;color:var(--bronze);}
.est-enviada,.est-confirmada{background:#DCEDE7;color:#1C6B55;}
.est-sin_contacto,.est-sin_asignar,.est-verificar_actividad{background:#F7E1DA;color:var(--coral);}
.est-pendiente_pago{background:#EEF1F0;color:var(--muted);}
.est-abonada{background:#F6ECDC;color:var(--bronze);}
.est-pagada{background:#DCEDE7;color:#1C6B55;}
.est-cancelada{background:#EEF1F0;color:var(--muted);text-decoration:line-through;}
.orden{border:1px solid var(--line);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:6px;background:var(--cream);}
.orden pre{white-space:pre-wrap;font-family:inherit;font-size:12px;color:var(--text);margin:0;background:#fff;border-radius:10px;padding:10px;border:1px solid var(--line);}
.tbl-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:18px;}
table.tbl{border-collapse:collapse;width:100%;font-size:12.5px;min-width:760px;}
.tbl th{text-align:left;font-size:11px;font-weight:700;color:var(--bronze);letter-spacing:.4px;padding:12px;border-bottom:1px solid var(--line);background:var(--cream);position:sticky;top:0;}
.tbl td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:top;color:var(--text);}
.tbl tr:last-child td{border-bottom:none;}
.tbl .muted{color:var(--muted);}
.miss{color:var(--coral);font-weight:600;}
.login{max-width:380px;margin:12vh auto 0;background:#fff;border:1px solid var(--line);border-radius:26px;padding:30px 24px;display:flex;flex-direction:column;gap:16px;text-align:center;}
.login img{width:200px;margin:0 auto 6px;}
.empty{background:#fff;border:1px dashed var(--line-strong);border-radius:18px;padding:26px;text-align:center;color:var(--muted);font-size:13px;}
.groups{display:flex;flex-direction:column;gap:28px;}
.ul-afecta{margin:6px 0 0;padding-left:18px;font-size:12px;color:var(--muted);line-height:1.55;}
@media print{body.admin .adm-tabs,body.admin .adm-top .btn{display:none;}}

.detail-media .ref{bottom:42px;}
a.btn{text-decoration:none;}
.card .cards > div{display:flex;flex-direction:column;gap:6px;}

/* =====================================================================
   PÁGINAS DE ENLACE (aprobación del gerente y orden del proveedor)
   ===================================================================== */
body.enlace{display:block;background:var(--sand);padding:0;}
.btn-coral{background:var(--coral);color:#fff;}
.enlace-wrap{max-width:480px;margin:0 auto;padding:22px 18px 48px;display:flex;flex-direction:column;gap:16px;}
.enlace-cargando{display:flex;justify-content:center;padding:30vh 0;}
.enlace-top{display:flex;justify-content:center;padding:4px 0 6px;}
.enlace-top img{height:46px;width:auto;}
.enlace-eyebrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.enlace-titulo{font-size:28px;color:var(--pine);line-height:1.15;}
.enlace-texto{margin:0;font-size:14.5px;line-height:1.6;color:var(--text);}
.enlace-nota{margin:0;font-size:12.5px;color:var(--muted);line-height:1.5;}
.enlace-pie{margin:8px 0 0;font-size:11.5px;color:var(--muted);text-align:center;}
.enlace-puntos{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.enlace-puntos li{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.5;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;}
.enlace-puntos i{flex-shrink:0;width:26px;height:26px;border-radius:50%;background:#DCEDE7;color:#1C6B55;display:flex;align-items:center;justify-content:center;}
.enlace-reco{background:var(--pine);color:var(--cream);border-radius:18px;padding:16px;border:1px solid var(--gold);}
.enlace-reco span{font-size:10.5px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--gold);}
.enlace-reco p{margin:6px 0 0;font-size:14.5px;line-height:1.55;}
.enlace-decision{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px;}
.enlace-confirmar{display:flex;flex-direction:column;gap:10px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px;}
.enlace-label{font-size:12px;font-weight:700;color:var(--pine);}
.enlace-confirmar textarea{width:100%;border:1.5px solid var(--line-strong);border-radius:14px;padding:11px 12px;font:inherit;font-size:14px;color:var(--text);background:var(--cream);resize:vertical;}
.enlace-ficha{background:#fff;border:1px solid var(--line);border-radius:20px;padding:6px 16px;}
.enlace-ficha > div{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--line);font-size:13.5px;}
.enlace-ficha > div:last-child{border-bottom:none;}
.enlace-ficha > div.sep{padding:0;border-bottom:2px solid var(--sand-2);}
.enlace-ficha span{color:var(--muted);}
.enlace-ficha b{color:var(--text);text-align:right;font-weight:600;}
.enlace-hecho{display:flex;flex-direction:column;gap:12px;padding:10px 0;}
.enlace-hecho.rechazada .ok-ring{background:var(--coral);}
.enlace-hecho .ok-ring{color:var(--cream);}

/* =====================================================================
   CENTRO DE AGENTES (panel → Agentes)
   ===================================================================== */
.btn-line-cream{background:transparent;color:var(--cream);border:1.5px solid rgba(251,249,244,.55);}
.btn-line-cream:hover{border-color:var(--cream);}
.ag-hero{position:relative;overflow:hidden;background:var(--pine);color:var(--cream);border-radius:26px;padding:26px 24px;display:grid;grid-template-columns:1fr auto;gap:18px 24px;align-items:end;margin-bottom:16px;}
.ag-hero::after{content:'';position:absolute;right:-80px;top:-120px;width:340px;height:340px;border-radius:50%;border:1px solid rgba(217,178,124,.25);box-shadow:0 0 0 40px rgba(217,178,124,.05),0 0 0 90px rgba(217,178,124,.035);pointer-events:none;}
.ag-hero h1{color:var(--cream) !important;font-size:34px !important;margin:6px 0 8px !important;}
.ag-hero p{margin:0;max-width:62ch;font-size:13.5px;line-height:1.6;color:rgba(251,249,244,.78);}
.ag-hero-acts{display:flex;gap:10px;flex-wrap:wrap;position:relative;z-index:1;}
.ag-aviso{background:#F6ECDC;border:1px solid var(--gold);color:var(--bronze);border-radius:14px;padding:10px 14px;font-size:12.5px;line-height:1.55;margin-bottom:16px;}
/* distintivo de origen: Ejemplo / Recorrido (las pruebas en vivo no llevan) */
/* ventana de «Revisar ahora» */
.modal-bg{position:fixed;inset:0;z-index:80;background:rgba(3,51,49,.45);display:flex;align-items:center;justify-content:center;padding:18px;}
.modal{background:var(--cream);border-radius:22px;max-width:640px;width:100%;max-height:86vh;overflow:auto;padding:22px 22px 26px;box-shadow:0 24px 60px rgba(3,51,49,.3);display:flex;flex-direction:column;gap:12px;}
.modal-top{display:flex;justify-content:space-between;align-items:center;gap:12px;}
.modal-top h2{font-family:'Marcellus',serif;font-weight:400;color:var(--pine);font-size:24px;margin:0;}
.modal-ag{border-left:4px solid var(--ag);background:#fff;border-radius:14px;padding:12px 14px;}
.modal-ag h3{margin:0 0 6px;font-size:15px;color:var(--pine);}
.modal-ag ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px;font-size:13px;}
.ag-aprob small.muted,.modal small.muted{color:var(--muted);}
.ag-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;margin-bottom:20px;}
.ag-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:16px;display:flex;flex-direction:column;gap:12px;border-top:4px solid var(--ag);}
.ag-card-top{display:flex;gap:12px;align-items:center;}
.ag-card-top h3{font-size:20px;color:var(--pine);}
.ag-card-top small{font-size:11.5px;color:var(--muted);line-height:1.35;display:block;}
.ag-ico{width:42px;height:42px;border-radius:14px;background:var(--ag);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.ag-vivo{margin-left:auto;width:9px;height:9px;border-radius:50%;background:#2BB673;box-shadow:0 0 0 0 rgba(43,182,115,.5);animation:vivo 2s infinite;flex-shrink:0;align-self:flex-start;}
@keyframes vivo{70%{box-shadow:0 0 0 8px rgba(43,182,115,0);}100%{box-shadow:0 0 0 0 rgba(43,182,115,0);}}
.ag-nums{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
.ag-nums div{background:var(--cream);border-radius:12px;padding:8px;text-align:center;}
.ag-nums b{display:block;font-family:'Marcellus',serif;font-weight:400;font-size:22px;color:var(--pine);}
.ag-nums .alerta b{color:var(--coral);}
.ag-nums span{font-size:10px;color:var(--muted);line-height:1.2;display:block;}
.ag-ultima{font-size:12px;color:var(--text);line-height:1.45;border-top:1px dashed var(--line-strong);padding-top:10px;}
.ag-ultima span{display:block;font-size:10.5px;font-weight:700;color:var(--muted);letter-spacing:.3px;margin-bottom:2px;}
.ag-subtabs{margin-bottom:18px;}
.ag-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:22px;align-items:start;}
@media (max-width:900px){.ag-grid{grid-template-columns:1fr;}.ag-hero{grid-template-columns:1fr;}.ag-hero h1{font-size:28px !important;}}
.ag-col{display:flex;flex-direction:column;gap:10px;min-width:0;}
.ag-h{font-size:21px;color:var(--pine);margin:0 0 4px;display:flex;align-items:center;gap:8px;}
.ag-dot{width:10px;height:10px;border-radius:50%;background:var(--ag);display:inline-block;}
.tipo{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;letter-spacing:.3px;padding:3px 9px;border-radius:20px;white-space:nowrap;}
.t-auto{background:#DCEDE7;color:#1C6B55;}
.t-pregunta{background:#F6ECDC;color:var(--bronze);}
.t-alerta{background:#F7E1DA;color:var(--coral);}
.t-aprendio{background:#DDEEF0;color:#1F6E73;}
.t-tarea{background:var(--sand-2);color:var(--pine);}
.t-info{background:#EEF1F0;color:var(--muted);}
.ag-aprob{border-left:4px solid var(--gold);}
.ag-aprob-top{display:flex;justify-content:space-between;gap:8px;align-items:center;}
.ag-reco{background:var(--cream);border-radius:12px;padding:10px 12px;font-size:12.5px;line-height:1.5;color:var(--text);}
.ag-det{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 14px;font-size:12.5px;}
.ag-det summary{cursor:pointer;font-weight:700;color:var(--bronze);}
.ag-mini{padding:8px 0;border-bottom:1px solid var(--line);}
.ag-mini:last-child{border-bottom:none;}
.ag-msg{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;}
.ag-msg.descartado{opacity:.55;}
.ag-msg-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12.5px;color:var(--pine);}
.ag-msg-top small{color:var(--muted);font-size:11px;}
.ag-msg-top .est{margin-left:auto;}
.ag-msg details summary{font-size:12px;color:var(--bronze);cursor:pointer;font-weight:600;}
.ag-msg pre{white-space:pre-wrap;font-family:inherit;font-size:12px;margin:6px 0 0;background:var(--cream);border-radius:10px;padding:10px;}
.ag-msg .acts{display:flex;gap:8px;flex-wrap:wrap;}
.ag-msg .acts .btn{padding:8px 13px;font-size:12px;}
.tl{list-style:none;margin:0;padding:0 0 0 14px;border-left:2px solid var(--line);display:flex;flex-direction:column;gap:12px;}
.tl li{position:relative;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 12px;}
.tl li::before{content:'';position:absolute;left:-21px;top:14px;width:10px;height:10px;border-radius:50%;background:var(--ag);border:2px solid var(--sand);}
.tl-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--ag);}
.tl-top small{margin-left:auto;color:var(--muted);font-size:10.5px;}
.tl-t{font-size:13px;font-weight:600;color:var(--text);margin-top:4px;line-height:1.4;}
.tl-d{font-size:12px;color:var(--muted);margin-top:3px;line-height:1.45;}
.reglas{display:flex;flex-direction:column;gap:8px;}
.regla{display:flex;justify-content:space-between;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px 14px;flex-wrap:wrap;}
.regla > div:first-child{flex:1;min-width:220px;}
.regla b{display:block;font-size:13.5px;color:var(--pine);}
.regla small{font-size:12px;color:var(--muted);}
.regla.fija{background:var(--cream);}
.nivel{display:inline-flex;background:var(--cream);border:1px solid var(--line-strong);border-radius:30px;padding:3px;flex-shrink:0;}
.nivel button{border:none;background:transparent;font:inherit;font-size:11.5px;font-weight:700;color:var(--muted);padding:7px 11px;border-radius:30px;cursor:pointer;}
.nivel button.on.n-auto{background:#1C6B55;color:#fff;}
.nivel button.on.n-pregunta{background:var(--gold);color:var(--pine);}
.nivel button.on.n-nunca{background:var(--coral);color:#fff;}
.ag-ta{width:100%;border:1.5px solid var(--line-strong);border-radius:14px;padding:11px 12px;font:inherit;font-size:13.5px;color:var(--text);background:var(--cream);resize:vertical;}
.card .row b.miss{color:var(--coral);}
.ag-col .tl{max-height:1200px;overflow-y:auto;padding-right:4px;}

/* aviso breve de la app */
.aviso{position:fixed;left:50%;bottom:96px;transform:translateX(-50%);z-index:90;max-width:min(340px,calc(100vw - 32px));background:var(--pine);color:var(--cream);font-size:13px;line-height:1.5;padding:12px 16px;border-radius:14px;box-shadow:0 12px 30px rgba(3,51,49,.3);text-align:center;}

/* =====================================================================
   PANEL → CATÁLOGO (lista, editor por secciones y vista previa)
   ===================================================================== */
.cat-barra{margin-bottom:18px;}
.cat-barra label.btn{cursor:pointer;}
.cat-h{font-family:'Marcellus',serif;font-size:22px;color:var(--pine);margin:22px 0 10px;font-weight:400;}
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;}
.cat-item{display:flex;gap:12px;align-items:stretch;text-align:left;background:#fff;border:1px solid var(--line);border-radius:18px;padding:10px;cursor:pointer;font:inherit;color:inherit;}
.cat-item:hover{border-color:var(--gold);}
.cat-foto{width:92px;min-height:78px;border-radius:12px;background-size:cover;background-position:center;flex-shrink:0;position:relative;}
.cat-foto span{position:absolute;left:6px;bottom:6px;font-size:9px;font-weight:700;color:#fff;background:rgba(3,51,49,.6);padding:2px 6px;border-radius:10px;}
.cat-item-txt{display:flex;flex-direction:column;gap:4px;min-width:0;}
.cat-item-txt b{color:var(--pine);font-size:14px;line-height:1.25;}
.cat-item-txt small{font-size:12px;color:var(--muted);}
.cat-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;}
.cat-borradores{margin-bottom:6px;}
.cat-aviso{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:var(--pine);color:var(--cream);padding:12px 18px;border-radius:14px;font-size:13px;z-index:50;max-width:min(560px,92vw);box-shadow:var(--shadow);}
.cat-aviso.error{background:var(--coral);}
.cat-ed-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px;}
.cat-ed-top h1{margin:0;}
.cat-ed-cuerpo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,460px);gap:22px;align-items:start;}
.cat-ed-form{display:flex;flex-direction:column;gap:16px;min-width:0;}
.cat-ed-vista{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow-y:auto;display:flex;flex-direction:column;gap:12px;}
.cat-nav{display:flex;gap:6px;flex-wrap:wrap;position:sticky;top:0;background:var(--sand);padding:6px 0;z-index:2;}
.cat-sec{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;display:flex;flex-direction:column;gap:12px;}
.cat-sec h3{font-size:19px;color:var(--pine);}
.cat-sec.interno{background:#FBF6EC;border-color:rgba(217,178,124,.6);}
.cat-solo{font-family:'Montserrat',sans-serif;font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--bronze);background:#F6ECDC;border-radius:10px;padding:2px 8px;vertical-align:middle;}
.cat-campo{display:flex;flex-direction:column;gap:5px;}
.cat-campo label{font-size:12px;font-weight:600;color:var(--pine);}
.cat-campo input[type=text],.cat-campo input[type=time],.cat-campo input[type=date],.cat-campo select,.cat-campo textarea{font:inherit;font-size:13.5px;padding:9px 11px;border:1px solid var(--line-strong);border-radius:10px;background:var(--cream);color:var(--text);width:100%;}
.cat-campo input:disabled,.cat-campo select:disabled,.cat-campo textarea:disabled{opacity:.55;}
.cat-campo small{font-size:11.5px;color:var(--muted);}
.cat-campo.foco{outline:2px solid var(--gold-deep);outline-offset:4px;border-radius:8px;}
label.cat-pc{font-size:11px;font-weight:500;color:var(--muted);display:flex;gap:5px;align-items:center;}
.cat-tabla{border-top:1px solid var(--line);padding-top:10px;display:flex;flex-direction:column;gap:10px;}
.cat-tabla h4{margin:0;font-size:13px;color:var(--bronze);}
.cat-fila{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;align-items:end;background:var(--cream);border-radius:12px;padding:10px;}
.cat-fotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;}
.cat-fotito{display:flex;flex-direction:column;gap:6px;}
.cat-fotito img,.cat-sinrecorte{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:10px;background:var(--sand-2);}
.cat-sinrecorte{display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--coral);font-weight:600;}
.cat-fotito .acts{display:flex;gap:8px;flex-wrap:wrap;font-size:11.5px;}
.cat-ppal{font-size:11px;color:var(--bronze);}
.cat-ed-pie{position:sticky;bottom:0;display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:var(--sand);padding:12px 0;margin-top:16px;border-top:1px solid var(--line);z-index:3;}
.cat-rev h3{font-size:18px;}
ul.cat-check{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:12.5px;}
ul.cat-check li b{display:inline-block;width:18px;}
ul.cat-check li small{display:block;margin-left:22px;font-size:11.5px;color:var(--muted);}
ul.cat-check li.ok b{color:#1C6B55;} ul.cat-check li.falta b{color:var(--bronze);} ul.cat-check li.error{color:var(--coral);}
.vp-cab{display:flex;justify-content:space-between;align-items:center;gap:10px;}
.vp-cab h3{font-size:20px;color:var(--pine);}
.vp-tarjeta{pointer-events:none;}
.app.vp-app{height:auto;max-width:440px;width:100%;border-radius:26px;border:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden;pointer-events:none;}
.app.vp-app .view{overflow:visible;padding-bottom:20px;}
.app.vp-app .detail-media{height:330px;min-height:0;}
.vp-pdf{gap:10px;} .vp-pdf div{display:flex;flex-direction:column;gap:3px;} .vp-pdf small.saldo{color:var(--coral);font-weight:600;}
pre.vp-wa{white-space:pre-wrap;font-family:inherit;font-size:12.5px;background:#E7F7EC;border-radius:14px;padding:12px;margin:0;color:var(--text);}
.cat-movil-tabs{display:none;gap:8px;margin-bottom:12px;}
.cat-modal{position:fixed;inset:0;background:rgba(3,51,49,.55);z-index:60;display:flex;align-items:center;justify-content:center;padding:16px;}
.cat-modal-caja{background:var(--cream);border-radius:22px;padding:18px;max-width:900px;width:100%;max-height:94vh;overflow:auto;display:flex;flex-direction:column;gap:12px;}
.cat-recortes{display:grid;grid-template-columns:3fr 2fr;gap:14px;}
.cat-recortes > div{display:flex;flex-direction:column;gap:6px;}
.cat-recortes canvas{width:100%;height:auto;border-radius:12px;cursor:grab;touch-action:none;background:var(--pine-2);}
@media (max-width:1000px){
  .cat-ed-cuerpo{grid-template-columns:1fr;}
  .cat-movil-tabs{display:flex;}
  .cat-editor:not(.movil-vista) .cat-ed-vista{display:none;}
  .cat-editor.movil-vista .cat-ed-form{display:none;}
  .cat-ed-vista{position:static;max-height:none;}
  .cat-recortes{grid-template-columns:1fr;}
}
/* Panel técnico */
.tec-barra{height:6px;background:var(--line);border-radius:4px;margin-top:8px;overflow:hidden;}
.tec-barra div{height:6px;background:var(--pine);border-radius:4px;}
.tec-barra div.alto{background:var(--coral);}

/* =====================================================================
   TABLETA (640–1023 px) Y COMPUTADOR (desde 1024 px)
   Solo cambia la forma: la lógica (precios, reservas, chat, pagos) es la misma.
   ===================================================================== */
/* En el celular, lo del computador no se ve y la columna del detalle no existe (sus hijos quedan donde estaban) */
.top-menu,.top-wa,.chat-fab,.chat-cerrar,.hotel-sec{display:none;}
.top-right{display:flex;align-items:center;gap:10px;}
.detail-side{display:contents;}

@container app (min-width:640px){
  .topbar{padding:16px 32px 12px;}
  .view{padding:12px 32px 110px;gap:36px;}
  .view.detail{padding:0 0 110px;}
  .hero{min-height:520px;padding:40px 36px 36px;}
  .hero h1{font-size:48px;max-width:14ch;}
  .hero p{font-size:15px;max-width:44ch;}
  .tour-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;}
  .tour-list > .card{grid-column:1/-1;}
  .dest-row{margin:0 -32px;padding:0 32px 4px;}
  .chips.scroll{margin:0 -32px;padding:0 32px 2px;}
  .props{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}
  .cf-item{width:52%;margin-left:-26%;}
  .detail-media{height:52vh;max-height:520px;}
  .detail-sheet{padding:30px 40px 0;}
  #v-reserve > *,#v-confirm > *,#v-builder > *{width:100%;max-width:640px;margin-left:auto;margin-right:auto;}
  .nav{justify-content:center;}
  .nav button{max-width:170px;}
}

@container app (min-width:1024px){
  /* Barra superior: logo, menú, idioma y WhatsApp */
  .topbar{padding:14px max(40px,calc((100% - 1240px) / 2));border-bottom:1px solid var(--line);gap:24px;}
  .topbar-logo{height:36px;}
  .top-menu{display:flex;gap:4px;margin:0 auto;}
  .top-menu button{border:none;background:none;color:var(--pine);font-weight:600;font-size:14px;padding:10px 16px;border-radius:30px;cursor:pointer;}
  .top-menu button:hover{background:var(--sand);}
  .top-menu button.on{background:var(--pine);color:var(--cream);}
  .top-wa{display:inline-flex;padding:10px 18px;font-size:13px;}
  .nav,.wa{display:none !important;}

  /* Vistas: contenido centrado y ancho cómodo */
  .view{padding:32px max(40px,calc((100% - 1240px) / 2)) 72px;gap:56px;}
  .section-head h2{font-size:32px;}
  .page-title{font-size:40px;}

  /* Portada ancha */
  .hero{min-height:min(620px,calc(100dvh - 200px));padding:64px 64px 56px;border-radius:32px;}
  .hero h1{font-size:64px;max-width:13ch;}
  .hero p{font-size:16px;max-width:46ch;}
  .hero .ref{top:16px !important;}

  /* Paquetes (carrusel), destinos y experiencias */
  .cf{max-width:980px;margin:0 auto;height:460px;}
  .cf-item{width:42%;margin-left:-21%;height:420px;}
  .dest-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px;overflow:visible;margin:0;padding:0;}
  .dest-card{height:270px;}
  .builder-cta{padding:44px 48px;border-radius:28px;}
  .builder-cta h3{font-size:34px;}
  .builder-cta p{font-size:15px;max-width:52ch;}

  /* Hotel (menú "Hotel") */
  .hotel-sec{display:flex;flex-direction:column;gap:18px;scroll-margin-top:24px;}
  .hotel-sec .hotel-grid{grid-template-columns:repeat(4,minmax(0,1fr));}

  /* Catálogo en cuadrícula */
  .chips.scroll{flex-wrap:wrap;overflow:visible;margin:0;padding:0;}
  .tour-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}
  .tour-card{display:flex;flex-direction:column;transition:transform .25s var(--ease),box-shadow .25s;}
  .tour-card:hover{transform:translateY(-3px);box-shadow:0 22px 40px -26px rgba(3,51,49,.7);}
  .tour-card .media{height:220px;}
  .tour-body{flex:1;display:flex;flex-direction:column;}
  .tour-foot{margin-top:auto;}

  /* Detalle en dos columnas: fotos y descripción a la izquierda; precio, cotización y reservar a la derecha (fijos al bajar) */
  .view.detail{display:grid;grid-template-columns:minmax(0,1fr) 400px;column-gap:56px;row-gap:0;align-content:start;padding:32px max(40px,calc((100% - 1240px) / 2)) 72px;}
  .view.detail > .detail-media{grid-column:1;grid-row:1;height:min(520px,36cqw);min-height:0;max-height:none;border-radius:28px;overflow:hidden;}
  .detail-sheet{display:contents;}
  .detail-sheet::before{display:none;}
  .detail-sheet > *{grid-column:1;margin-top:28px;}
  .detail-sheet > .detail-side{grid-column:2;grid-row:1 / span 40;align-self:start;position:sticky;top:0;margin-top:0;display:flex;flex-direction:column;gap:14px;}
  .detail-side .sticky{position:static;box-shadow:none;margin:0;padding:0;background:none;}
  .detail-title h2{font-size:40px;}
  .incl-grid{grid-template-columns:repeat(4,1fr);}

  /* Reserva, pago, confirmación y "arma tu plan": una columna centrada */
  #v-reserve > *,#v-confirm > *{max-width:620px;}
  #v-builder > *{max-width:820px;}

  /* El asesor: ventana de chat flotante abajo a la derecha */
  .chat-fab{display:inline-flex;align-items:center;gap:10px;position:absolute;right:28px;bottom:28px;z-index:18;border:none;border-radius:40px;padding:14px 20px;background:var(--pine);color:var(--cream);font-weight:700;font-size:14px;cursor:pointer;box-shadow:0 16px 34px -12px rgba(3,51,49,.6);}
  .chat-fab:hover{background:var(--pine-2);}
  .app.chat-abierto .chat-fab{display:none;}
  .view.chat{position:absolute;right:28px;bottom:28px;z-index:20;width:400px;height:min(640px,calc(100% - 120px));padding:16px 16px 14px;border-radius:26px;background:var(--cream);border:1px solid var(--line);box-shadow:0 30px 70px -24px rgba(3,51,49,.6);gap:12px;}
  .view.chat.enter{animation:chatIn .35s var(--ease);}
  .chat-cerrar{display:flex;margin-left:auto;width:36px;height:36px;border-radius:50%;border:none;background:var(--sand);color:var(--pine);align-items:center;justify-content:center;cursor:pointer;font-size:20px;line-height:1;}
  .chat-head{position:sticky;top:-16px;background:var(--cream);z-index:2;padding-top:4px;}

  /* Pie de página ancho */
  .footer{display:grid;grid-template-columns:auto 1fr auto;column-gap:40px;row-gap:6px;align-items:center;padding:28px 0 0;text-align:left;}
  .footer img{grid-row:1 / span 3;width:190px;margin:0;}
  .footer > small{grid-column:2;}
  .footer > small:nth-of-type(3){grid-column:3;grid-row:1;justify-self:end;}
  .footer > button{grid-column:3;grid-row:2;justify-self:end;}
}
@keyframes chatIn{from{opacity:0;transform:translateY(16px) scale(.98);}to{opacity:1;transform:none;}}
@container app (min-width:1440px){
  .tour-list{grid-template-columns:repeat(4,minmax(0,1fr));}
}

/* Vista previa del panel en modo "Computador": la web a 1280 px, reducida para que quepa */
.vp-disp{display:flex;gap:6px;}
.vp-escala{width:100%;overflow:hidden;border-radius:18px;border:1px solid var(--line);box-shadow:var(--shadow);background:var(--cream);}
.app.vp-app.vp-escritorio{width:1280px;max-width:none;border:none;border-radius:0;box-shadow:none;}
.app.vp-app.vp-escritorio .detail-media{height:min(520px,36cqw);}

/* Panel → Chats (bandeja compartida, como WhatsApp Web) */
.ch{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:14px;height:calc(100vh - 230px);min-height:460px;}
.ch-lista{overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding-right:4px;}
.ch-avisos{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px;}
.ch-item{text-align:left;border:1px solid var(--line);background:#fff;border-radius:14px;padding:10px 12px;cursor:pointer;display:flex;flex-direction:column;gap:4px;font:inherit;}
.ch-item.on{border-color:var(--pine);box-shadow:inset 0 0 0 1px var(--pine);}
.ch-item-top{display:flex;justify-content:space-between;gap:8px;}
.ch-item-top b{color:var(--pine);font-size:13.5px;}
.ch-item-top small{color:var(--muted);font-size:11px;white-space:nowrap;}
.ch-item-vista{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ch-item-pie{display:flex;gap:6px;flex-wrap:wrap;align-items:center;}
.ch-web{font-size:10px;font-weight:700;color:var(--bronze);background:#F6ECDC;border-radius:8px;padding:1px 6px;}
.ch-quien{font-size:10.5px;font-weight:700;border-radius:10px;padding:2px 8px;background:#EEF1F0;color:var(--muted);}
.ch-quien.persona{background:#DCEDE7;color:#1C6B55;}
.ch-quien.fuera{background:#F6ECDC;color:var(--bronze);}
.ch-badge{font-size:10.5px;font-weight:700;border-radius:10px;padding:2px 8px;background:var(--pine);color:var(--cream);}
.ch-badge.alerta{background:#F7E1DA;color:var(--coral);}
.ch-chat{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;min-width:0;}
.ch-cab{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:12px 14px;border-bottom:1px solid var(--line);}
.ch-cab .acts{display:flex;gap:8px;flex-wrap:wrap;}
.ch-cab .btn{padding:8px 14px;font-size:12px;}
.ch-volver{display:none;}
.ch-mensajes{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:8px;background:var(--cream);}
.ch-msg{max-width:78%;padding:9px 12px;border-radius:14px;font-size:13px;line-height:1.45;background:var(--sand);align-self:flex-start;}
.ch-msg.asistente{align-self:flex-end;background:#E7F0EE;}
.ch-msg.persona{align-self:flex-end;background:#F6ECDC;}
.ch-de{font-size:10.5px;font-weight:700;color:var(--bronze);margin-bottom:2px;}
.ch-hora{font-size:10.5px;color:var(--muted);margin-top:4px;}
.ch-hora .link{font-size:10.5px;}
.ch-sis{align-self:center;font-size:11px;color:var(--muted);background:#fff;border:1px dashed var(--line-strong);border-radius:10px;padding:4px 10px;}
.ch-nota{font-size:12px;color:var(--muted);padding:8px 14px;border-top:1px solid var(--line);}
.ch-escribir{display:flex;gap:8px;padding:10px 14px 14px;align-items:flex-end;}
.ch-escribir.col{flex-direction:column;align-items:stretch;}
.ch-escribir textarea{flex:1;font:inherit;font-size:13.5px;border:1px solid var(--line-strong);border-radius:12px;padding:9px 11px;resize:vertical;}
.ch-escribir input,.ch-escribir select{font:inherit;font-size:13px;border:1px solid var(--line-strong);border-radius:10px;padding:8px 10px;}
.ch-vacio{margin:auto;}
@media (max-width:760px){
  .ch{grid-template-columns:1fr;height:auto;min-height:0;}
  .ch .ch-chat{display:none;}
  .ch.ch-abierto .ch-lista{display:none;}
  .ch.ch-abierto .ch-chat{display:flex;height:calc(100dvh - 200px);}
  .ch-volver{display:inline-block;}
}
