/* ═══════════════════════════════════════════════════════════════════
   INFOPUERTOS · Observatorio de tráfico portuario
   Datos oficiales de Puertos del Estado · diseño premium náutico
   (frontend del diario: look claro, deliberado y único)
═══════════════════════════════════════════════════════════════════ */
.et-obs, .et-pcard {
    --obs-blue:  #114F6E;
    --obs-blue2: #14618C;
    --obs-blue2:  #114F6E;
    --obs-ink:   #16202B;
    --obs-ink2:  #5A6B78;
    --obs-line:  #E4E9EE;
    --obs-hair:  #EFF3F6;
    --obs-wash:  #F5F9FC;
    --obs-up:    #0E8F63;
    --obs-down:  #D8382B;
    --obs-paper: #FFFFFF;
    font-family: var(--et-pc-sans, 'Inter', system-ui, sans-serif);
    color: var(--obs-ink);
    -webkit-font-smoothing: antialiased;
}

/* ─── HUB ──────────────────────────────────────────────────────────── */
.et-obs {
    max-width: 1080px;
    margin: 0 auto;
    padding: 8px 0 40px;
}
.et-obs__hero {
    position: relative;
    padding: 34px 34px 30px;
    border-radius: 20px;
    background:
        radial-gradient(120% 140% at 88% -10%, rgba(17, 79, 110,.22), transparent 60%),
        linear-gradient(135deg, var(--obs-blue) 0%, #0A2E48 100%);
    color: #fff;
    overflow: hidden;
    isolation: isolate;
}
.et-obs__hero::after { /* horizonte / oleaje sutil */
    content: "";
    position: absolute; inset: auto -10% -40px -10%; height: 120px; z-index: -1;
    background: radial-gradient(60% 100% at 50% 0, rgba(255,255,255,.10), transparent 70%);
}
.et-obs__kicker {
    display: inline-block;
    font-size: 11px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase;
    color: #7FE3EF; margin-bottom: 12px;
}
.et-obs__title {
    margin: 0 0 10px;
    font-size: clamp(26px, 4vw, 38px); line-height: 1.06; font-weight: 800; letter-spacing: -.02em;
    text-wrap: balance; color: #fff;
}
.et-obs__sub {
    margin: 0; max-width: 60ch;
    font-size: 14.5px; line-height: 1.6; color: rgba(255,255,255,.82);
}
.et-obs__sub strong { color: #fff; font-weight: 700; }

/* Pestañas de categoría */
.et-obs__tabs {
    display: flex; gap: 7px; flex-wrap: wrap;
    margin: 20px 0 4px; padding-bottom: 4px;
}
.et-obs__tab {
    appearance: none; cursor: pointer;
    border: 1.5px solid var(--obs-line); background: var(--obs-paper);
    color: var(--obs-ink2); font: inherit; font-size: 13px; font-weight: 700;
    padding: 8px 15px; border-radius: 999px;
    transition: all .16s ease;
}
.et-obs__tab:hover { border-color: var(--obs-blue2); color: var(--obs-blue); }
.et-obs__tab.is-active {
    background: var(--obs-blue); border-color: var(--obs-blue); color: #fff;
    box-shadow: 0 8px 18px -10px rgba(17,79,110,.6);
}

/* Panel + ranking */
.et-obs__panel { margin-top: 18px; }
.et-obs__panel-head h3 {
    margin: 0 0 14px; font-size: 15px; font-weight: 800; color: var(--obs-blue);
    letter-spacing: -.01em;
}
.et-obs__panel-head h3 span { color: var(--obs-ink2); font-weight: 600; }

.et-obs__rank { list-style: none; margin: 0; padding: 0; }
.et-obs__row {
    display: grid;
    grid-template-columns: 30px minmax(120px, 1.3fr) minmax(90px, 2fr) auto auto;
    align-items: center; gap: 14px;
    padding: 11px 12px; border-radius: 12px;
    border-bottom: 1px solid var(--obs-hair);
    transition: background .14s;
    font-variant-numeric: tabular-nums;
}
.et-obs__row:hover { background: var(--obs-wash); }
.et-obs__pos {
    font-size: 13px; font-weight: 800; color: var(--obs-ink2);
    text-align: center;
}
.et-obs__row:nth-child(1) .et-obs__pos,
.et-obs__row:nth-child(2) .et-obs__pos,
.et-obs__row:nth-child(3) .et-obs__pos {
    color: #fff; background: var(--obs-blue); border-radius: 7px; padding: 3px 0;
}
.et-obs__name { font-size: 14.5px; font-weight: 700; color: var(--obs-ink); }
.et-obs__bar {
    height: 9px; border-radius: 5px; background: var(--obs-hair); overflow: hidden;
}
.et-obs__bar-fill {
    display: block; height: 100%;
    background: linear-gradient(90deg, var(--obs-blue), var(--obs-blue2));
    border-radius: 5px;
}
.et-obs__val {
    font-size: 14px; font-weight: 800; color: var(--obs-ink); text-align: right;
    min-width: 74px;
}
.et-obs__delta { text-align: right; min-width: 78px; }

.et-obs__foot {
    margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--obs-line);
    font-size: 12px; color: var(--obs-ink2);
}

/* Chip variación interanual */
.et-ps-yoy {
    display: inline-flex; align-items: center; gap: 3px;
    font-size: 12px; font-weight: 800; font-variant-numeric: tabular-nums;
    padding: 3px 8px; border-radius: 6px; line-height: 1;
}
.et-ps-yoy--up   { color: var(--obs-up);   background: rgba(14,143,99,.10); }
.et-ps-yoy--down { color: var(--obs-down); background: rgba(216,56,43,.10); }
.et-ps-yoy--flat { color: var(--obs-ink2); background: var(--obs-hair); }
.et-ps-yoy--na   { color: #A7B2BC; background: transparent; }

/* ─── FICHA DE PUERTO (reutilizable) ───────────────────────────────── */
.et-pcard {
    background: var(--obs-paper);
    border: 1px solid var(--obs-line);
    border-radius: 18px;
    padding: 24px 24px 18px;
    box-shadow: 0 18px 44px -30px rgba(16,32,45,.45);
    margin: 22px 0;
}
.et-pcard__head {
    display: flex; justify-content: space-between; align-items: flex-start; gap: 16px;
    padding-bottom: 16px; margin-bottom: 18px; border-bottom: 2px solid var(--obs-blue);
}
.et-pcard__kicker {
    display: block; font-size: 10.5px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase;
    color: var(--obs-blue2); margin-bottom: 5px;
}
.et-pcard__title { margin: 0; font-size: 21px; font-weight: 800; letter-spacing: -.02em; color: var(--obs-blue); }
.et-pcard__period {
    flex-shrink: 0; font-size: 11.5px; font-weight: 700; color: var(--obs-ink2);
    background: var(--obs-wash); border: 1px solid var(--obs-line); border-radius: 999px; padding: 6px 12px;
    white-space: nowrap;
}

.et-pcard__kpis {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px;
    margin-bottom: 18px;
}
.et-pcard__kpi {
    background: var(--obs-wash); border: 1px solid var(--obs-line); border-radius: 13px;
    padding: 14px 15px; display: flex; flex-direction: column; gap: 7px;
}
.et-pcard__kpi-label { font-size: 11.5px; font-weight: 700; color: var(--obs-ink2); text-transform: uppercase; letter-spacing: .04em; }
.et-pcard__kpi-val {
    font-size: 22px; font-weight: 800; letter-spacing: -.02em; color: var(--obs-ink);
    font-variant-numeric: tabular-nums;
}
.et-pcard__kpi-val em { font-size: 12px; font-weight: 700; color: var(--obs-ink2); font-style: normal; }
.et-pcard__kpi .et-ps-yoy { align-self: flex-start; }

.et-pcard__trend {
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    padding: 14px 16px; margin-bottom: 18px;
    background: linear-gradient(180deg, #fff, var(--obs-wash));
    border: 1px solid var(--obs-line); border-radius: 13px;
}
.et-pcard__trend-label { font-size: 12px; font-weight: 700; color: var(--obs-ink2); }
.et-ps-spark { flex-shrink: 0; width: 240px; height: 54px; }

.et-pcard__table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.et-pcard__table thead th {
    text-align: right; font-size: 10.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase;
    color: var(--obs-ink2); padding: 0 8px 9px; border-bottom: 1px solid var(--obs-line);
}
.et-pcard__table thead th:first-child { text-align: left; }
.et-pcard__table td { padding: 10px 8px; border-bottom: 1px solid var(--obs-hair); font-size: 13.5px; }
.et-pcard__cat { font-weight: 700; color: var(--obs-ink); }
.et-pcard__cat span { font-weight: 600; color: #A7B2BC; font-size: 11px; }
.et-pcard__num { text-align: right; font-weight: 700; color: var(--obs-ink2); }
.et-pcard__num--strong { color: var(--obs-ink); font-weight: 800; }
.et-pcard__foot { margin-top: 14px; font-size: 11.5px; color: var(--obs-ink2); line-height: 1.5; }
.et-pcard__foot strong { color: var(--obs-ink); }

/* ─── Móvil ────────────────────────────────────────────────────────── */
@media (max-width: 720px) {
    .et-obs__hero { padding: 26px 20px 24px; border-radius: 16px; }
    .et-obs__row {
        grid-template-columns: 26px 1fr auto;
        grid-template-areas: "pos name val" "pos bar delta";
        gap: 6px 12px; row-gap: 8px;
    }
    .et-obs__pos { grid-area: pos; align-self: center; }
    .et-obs__name { grid-area: name; }
    .et-obs__val  { grid-area: val; }
    .et-obs__bar  { grid-area: bar; }
    .et-obs__delta { grid-area: delta; }
    .et-pcard { padding: 20px 16px 16px; border-radius: 15px; }
    .et-pcard__head { flex-direction: column; gap: 10px; }
    .et-pcard__trend { flex-direction: column; align-items: flex-start; gap: 10px; }
    .et-ps-spark { width: 100%; }
    .et-pcard__table thead { display: none; }
    .et-pcard__table td { display: flex; justify-content: space-between; padding: 8px 4px; }
    .et-pcard__table td::before {
        content: attr(data-l); font-weight: 700; color: var(--obs-ink2); font-size: 11.5px; text-transform: uppercase;
    }
    .et-pcard__cat span { display: none; }
}

/* ═══════════════════════════════════════════════════════════════════
   ASISTENTE DE PUERTOS · widget flotante IA (rankings + estadísticas)
═══════════════════════════════════════════════════════════════════ */
.et-pai {
    --pai-blue:#114F6E; --pai-blue2:#14618C; --pai-blue2:#114F6E;
    --pai-ink:#16202B; --pai-ink2:#5A6B78; --pai-line:#E4E9EE; --pai-wash:#F5F9FC;
    position:fixed; right:20px; bottom:20px; z-index:9990;
    font-family:var(--et-pc-sans,'Inter',system-ui,sans-serif);
}
.et-pai__fab{
    display:inline-flex; align-items:center; gap:10px; cursor:pointer;
    border:1px solid var(--pai-line); border-radius:999px; padding:10px 20px 10px 16px;
    background:#fff; color:var(--pai-blue);
    font:inherit; font-size:13px; font-weight:800; letter-spacing:.005em;
    box-shadow:0 12px 28px -12px rgba(17,79,110,.45); transition:transform .16s, box-shadow .16s;
    max-width:340px;
}
.et-pai__fab:hover{ transform:translateY(-2px); box-shadow:0 18px 36px -12px rgba(17,79,110,.55); }
.et-pai__fab-logo{ height:21px; width:auto; display:block; flex-shrink:0; }
.et-pai__fab span{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.et-pai.is-open .et-pai__fab{ display:none; }

.et-pai__panel{
    width:min(380px,calc(100vw - 40px)); height:min(560px,calc(100vh - 40px));
    display:flex; flex-direction:column; overflow:hidden;
    background:#fff; border:1px solid var(--pai-line); border-radius:20px;
    box-shadow:0 30px 70px -24px rgba(16,32,45,.5); animation:paiIn .22s ease;
}
.et-pai__panel[hidden]{ display:none; } /* el autor gana al display:flex → la X cierra */
@keyframes paiIn{ from{opacity:0; transform:translateY(14px) scale(.98);} to{opacity:1; transform:none;} }
.et-pai__head{
    display:flex; align-items:flex-start; justify-content:space-between; gap:12px;
    padding:16px 18px; color:var(--pai-ink);
    background:#fff; border-bottom:2px solid var(--pai-blue);
}
.et-pai__brand{ display:flex; flex-direction:column; align-items:flex-start; min-width:0; }
.et-pai__logo{ height:22px !important; width:auto !important; max-width:100%; display:block; margin:2px 0 13px; align-self:flex-start; object-fit:contain; }
.et-pai__head strong{ display:block; font-size:14.5px; font-weight:800; letter-spacing:-.01em; color:var(--pai-blue); line-height:1.2; }
.et-pai__head span{ display:block; font-size:11px; color:var(--pai-ink2); margin-top:3px; font-weight:600; letter-spacing:.01em; }
.et-pai__close{ background:var(--pai-wash); border:1px solid var(--pai-line); color:var(--pai-ink2); width:30px; height:30px; border-radius:9px; font-size:19px; line-height:1; cursor:pointer; flex-shrink:0; transition:all .15s; }
.et-pai__close:hover{ background:#EAF0F5; color:var(--pai-blue); }

.et-pai__log{ flex:1; overflow-y:auto; padding:16px; display:flex; flex-direction:column; gap:10px; background:var(--pai-wash); }
.et-pai__msg{ max-width:88%; padding:11px 14px; border-radius:14px; font-size:13.5px; line-height:1.55; }
.et-pai__msg strong{ font-weight:800; color:var(--pai-blue); }
.et-pai__msg--bot{ align-self:flex-start; background:#fff; border:1px solid var(--pai-line); color:var(--pai-ink); border-bottom-left-radius:5px; font-variant-numeric:tabular-nums; }
.et-pai__msg--user{ align-self:flex-end; background:var(--pai-blue); color:#fff; border-bottom-right-radius:5px; }
.et-pai__msg--typing{ display:inline-flex; gap:4px; }
.et-pai__msg--typing span{ width:7px; height:7px; border-radius:50%; background:var(--pai-blue2); animation:paiBlink 1.2s infinite both; }
.et-pai__msg--typing span:nth-child(2){ animation-delay:.2s; } .et-pai__msg--typing span:nth-child(3){ animation-delay:.4s; }
@keyframes paiBlink{ 0%,80%,100%{opacity:.25;} 40%{opacity:1;} }

.et-pai__sugs{ display:flex; flex-direction:column; gap:6px; align-items:flex-start; }
.et-pai__sug{
    cursor:pointer; border:1px solid var(--pai-line); background:#fff; color:var(--pai-blue2);
    font:inherit; font-size:12.5px; font-weight:700; padding:8px 12px; border-radius:11px; text-align:left;
    transition:all .14s;
}
.et-pai__sug:hover{ border-color:var(--pai-blue2); background:#EFF7F9; }

.et-pai__form{ display:flex; gap:8px; padding:12px; border-top:1px solid var(--pai-line); background:#fff; }
.et-pai__input{
    flex:1; border:1.5px solid var(--pai-line); border-radius:12px; padding:10px 14px;
    font:inherit; font-size:13.5px; color:var(--pai-ink); outline:none; transition:border-color .15s;
}
.et-pai__input:focus{ border-color:var(--pai-blue2); }
.et-pai__send{
    flex-shrink:0; border:1px solid var(--pai-line); cursor:pointer; width:44px; border-radius:12px;
    background:#fff; display:inline-flex; align-items:center; justify-content:center;
    transition:background .15s, border-color .15s;
}
.et-pai__send:hover{ background:var(--pai-wash); border-color:var(--pai-blue2); }
.et-pai__send-icon{ width:22px; height:22px; display:block; object-fit:contain; }

@media (max-width:520px){
    /* v2.174.0 · EL CHAT, A LA DERECHA. Con `left:12px` el contenedor se
       estiraba de lado a lado y la burbuja quedaba anclada al borde
       IZQUIERDO. Sin `left`, el bloque se ajusta a su contenido y se queda
       pegado a la derecha, como en PC. El panel abierto sigue ocupando el
       ancho útil gracias al `width` de .et-pai__panel, de ahí el `max-width`
       —que es lo que antes hacía el `left`—. */
    .et-pai{ right:12px; bottom:12px; left:auto; max-width:calc(100vw - 24px); }
    .et-pai__panel{ margin-left:auto; }
    /* v2.95.3 · En móvil el chat ocupaba demasiado: dejamos SOLO el logo
       (fuera el texto «Tu asistente marítimo y portuario») y el botón compacto. */
    .et-pai__fab{ width:auto; justify-content:center; padding:10px 16px; }
    .et-pai__fab span{ display:none; }
    .et-pai__panel{ width:100%; height:min(70vh,540px); }
}

/* ═══════════════════════════════════════════════════════════════════
   RANKING DE PUERTOS · minimalista · profesional · estilo asistente CAMAL AI
   (sin esquinas gordas: hairlines finas, radios mínimos, un solo acento)
═══════════════════════════════════════════════════════════════════ */
.et-rank-main{ background:#fff; }
.rkp,
.clima{
    --ink:#141C24; --ink2:#59677A; --ink3:#95A0AB; --line:#E7EBEF; --line2:#F1F4F7;
    --blue:#114F6E; --blue2:#114F6E; --up:#0E8F63; --down:#D8382B; --gold:#B8891F;
    --rd:8px; --rd-s:6px;
    max-width:var(--et-pc-max,1280px); margin:0 auto; padding:0 var(--et-pc-gut,24px) 64px;
    font-family:var(--et-pc-sans,'Inter',system-ui,sans-serif); color:var(--ink);
    -webkit-font-smoothing:antialiased;
}
.rkp__head{ padding:36px 0 22px; border-bottom:1px solid var(--line); margin-bottom:24px; text-align:center; }
.rkp__logo{ height:28px; width:auto; display:block; margin:0 auto 16px; }
.rkp__title{ margin:0 0 7px; font-size:clamp(24px,3.4vw,33px); line-height:1.08; font-weight:800; letter-spacing:-.03em; color:var(--ink); }
.rkp__sub{ margin:0; font-size:14px; color:var(--ink2); font-weight:500; }

.rkp__ctl{ margin-bottom:22px; }
.rkp__ctl-lb{ display:block; font-size:11px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; color:var(--ink3); margin-bottom:13px; }
.rkp__tabs{ display:flex; gap:24px; overflow-x:auto; border-bottom:1px solid var(--line); scrollbar-width:none; }
.rkp__tabs::-webkit-scrollbar{ display:none; }
.rkp__tab{ flex:0 0 auto; background:none; border:none; cursor:pointer; font:inherit; font-size:14px; font-weight:600; color:var(--ink2); padding:0 0 12px; position:relative; white-space:nowrap; transition:color .15s; }
.rkp__tab:hover{ color:var(--ink); }
.rkp__tab.on{ color:var(--blue); font-weight:700; }
.rkp__tab.on::after{ content:""; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:var(--blue); }

.rkp__cta{ display:inline-flex; align-items:center; gap:10px; cursor:pointer; border:1px solid var(--blue); border-radius:var(--rd-s); padding:12px 22px;
    background:var(--blue); color:#fff; font:inherit; font-size:14px; font-weight:700; letter-spacing:-.01em; transition:background .15s, opacity .15s, border-color .15s; }
.rkp__cta:hover{ background:#0A324D; color:#fff; border-color:#0A324D; }
.rkp__cta img{ display:block; filter:brightness(0) invert(1); }
.rkp__cta.loading{ opacity:.65; cursor:default; }
.rkp__cta.done{ background:#fff; color:var(--ink2); border-color:var(--line); }
.rkp__cta.done:hover{ background:#F3F6F8; color:var(--ink); border-color:#CBD5DD; }
.rkp__cta.done img{ filter:none; }

.rkp__resp{ margin-top:28px; animation:rkpIn .28s both; }
@keyframes rkpIn{ from{opacity:0;transform:translateY(8px);} to{opacity:1;transform:none;} }
.rkp__msg{ display:flex; gap:12px; align-items:flex-start; }
.rkp__ic{ flex-shrink:0; width:30px; height:30px; border:1px solid var(--line); border-radius:var(--rd-s); padding:4px; box-sizing:border-box; }
.rkp__bubble{ flex:1; min-width:0; border:1px solid var(--line); border-radius:var(--rd); padding:18px 20px; }
.rkp__by{ display:block; font-size:12px; font-weight:800; color:var(--blue); letter-spacing:-.01em; margin-bottom:6px; }
.rkp__intro{ margin:0 0 16px; font-size:14.5px; line-height:1.55; color:var(--ink); }

.rkp__lh, .rkp__row{ display:grid; grid-template-columns:24px minmax(90px,1fr) minmax(48px,1.1fr) auto auto; align-items:center; gap:14px; }
.rkp__lh{ font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--ink3); padding:0 0 9px; border-bottom:1px solid var(--line); }
.rkp__lh-v, .rkp__lh-d{ text-align:right; }
.rkp__row{ padding:11px 0; border-bottom:1px solid var(--line2); font-variant-numeric:tabular-nums; }
.rkp__row:last-child{ border-bottom:none; }
.rkp__rk{ font-size:12.5px; font-weight:700; color:var(--ink3); text-align:center; }
.rkp__row.top .rkp__rk{ color:#fff; background:var(--ink); border-radius:4px; padding:3px 0; font-size:11.5px; }
.rkp__row.t1 .rkp__rk{ background:var(--gold); }
.rkp__nm{ font-size:14px; font-weight:600; color:var(--ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rkp__row.top .rkp__nm{ font-weight:700; }
.rkp__bar{ height:3px; background:var(--line2); border-radius:2px; overflow:hidden; }
.rkp__bar i{ display:block; height:100%; width:0; background:var(--blue); border-radius:2px; transition:width .7s cubic-bezier(.4,0,.2,1); }
.rkp__vl{ font-size:13.5px; font-weight:700; color:var(--ink); text-align:right; min-width:62px; }
.rkp__dl{ font-size:12px; font-weight:700; text-align:right; min-width:54px; font-variant-numeric:tabular-nums; }
.rkp__dl--up{ color:var(--up); } .rkp__dl--down{ color:var(--down); } .rkp__dl--flat, .rkp__dl--na{ color:var(--ink3); }

.rkp__more{ margin-top:16px; padding-top:14px; border-top:1px solid var(--line); }
.rkp__mbtn{ background:none; border:none; cursor:pointer; font:inherit; font-size:13px; font-weight:700; color:var(--blue); padding:0; letter-spacing:-.01em; transition:opacity .15s; }
.rkp__mbtn:hover{ opacity:.65; }
.rkp__mbtn:disabled{ color:var(--ink3); cursor:default; }
.rkp__analysis{ margin-top:12px; font-size:14px; line-height:1.6; color:var(--ink); }
.rkp__analysis strong{ color:var(--blue); font-weight:700; }
.rkp__analysis a{ color:var(--blue); font-weight:700; }
.rkp__partner{ display:flex; align-items:center; gap:13px; margin-top:16px; padding-top:16px; border-top:1px solid var(--line); }
.rkp__partner-logo{ height:30px; width:auto; display:block; flex:0 0 auto; }
.rkp__src{ display:block; margin:0; font-size:11.5px; line-height:1.5; color:var(--ink3); }

.rkp__typing{ display:inline-flex; gap:5px; padding:2px 0; }
.rkp__typing i{ width:7px; height:7px; border-radius:50%; background:var(--blue2); animation:rkpBl 1.2s infinite both; }
.rkp__typing i:nth-child(2){ animation-delay:.2s; } .rkp__typing i:nth-child(3){ animation-delay:.4s; }
@keyframes rkpBl{ 0%,80%,100%{opacity:.25;} 40%{opacity:1;} }

@media (max-width:640px){
    .rkp{ padding:0 16px 56px; }
    .rkp__bubble{ padding:16px; }
    .rkp__lh, .rkp__row{ grid-template-columns:24px 1fr auto auto; gap:12px; }
    .rkp__bar{ display:none; }
}

/* ═══════════════════════════════════════════════════════════════════
   PCP · Pronóstico de Crecimiento de los Puertos (extras sobre .rkp)
═══════════════════════════════════════════════════════════════════ */
.pcp__title{ display:inline-flex; align-items:center; justify-content:center; gap:10px; }
.pcp__acr{ letter-spacing:.005em; }

/* La "i" de información junto a PCP */
.pcp-i{ position:relative; display:inline-flex; align-items:center; justify-content:center;
    width:23px; height:23px; border-radius:50%; border:1px solid var(--line); background:#fff;
    color:var(--ink3); cursor:pointer; padding:0; flex:0 0 auto; transition:color .15s, border-color .15s; }
.pcp-i:hover, .pcp-i:focus-visible{ color:var(--blue); border-color:var(--blue); outline:none; }
.pcp-i__tip{ position:absolute; left:50%; top:calc(100% + 11px); transform:translateX(-50%) translateY(4px);
    white-space:nowrap; background:var(--ink); color:#fff; font-size:12.5px; font-weight:600; letter-spacing:-.01em;
    padding:9px 13px; border-radius:var(--rd-s); box-shadow:0 10px 30px rgba(20,28,36,.20);
    opacity:0; visibility:hidden; transition:opacity .16s, transform .16s; z-index:20; pointer-events:none; }
.pcp-i__tip::before{ content:""; position:absolute; left:50%; top:-5px; transform:translateX(-50%) rotate(45deg);
    width:10px; height:10px; background:var(--ink); }
.pcp-i:hover .pcp-i__tip, .pcp-i:focus-visible .pcp-i__tip, .pcp-i-open .pcp-i__tip{
    opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }

/* Chips de categoría (centrados) */
.pcp-cats{ display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin-bottom:20px; }
.pcp-chip{ background:#fff; border:1px solid var(--line); border-radius:100px; cursor:pointer; font:inherit;
    font-size:13px; font-weight:600; color:var(--ink2); padding:7px 15px; transition:background .15s, border-color .15s, color .15s; }
.pcp-chip:hover{ border-color:var(--ink3); color:var(--ink); }
.pcp-chip.on{ background:var(--blue); border-color:var(--blue); color:#fff; font-weight:700; }

/* Tarjeta "pronóstico del sistema" */
.pcp-fc{ display:flex; flex-wrap:wrap; align-items:center; gap:14px 28px; padding:18px 20px; margin-bottom:20px;
    border:1px solid var(--line); border-radius:var(--rd); background:linear-gradient(180deg,#F7FAFC,#fff); }
.pcp-fc__l{ display:flex; flex-direction:column; gap:5px; }
.pcp-fc__eyebrow{ font-size:10.5px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--ink3); }
.pcp-fc__big{ font-size:clamp(30px,4.6vw,42px); line-height:1; font-weight:800; letter-spacing:-.03em; font-variant-numeric:tabular-nums; }
.pcp-fc__big--up{ color:var(--up); } .pcp-fc__big--down{ color:var(--down); } .pcp-fc__big--flat{ color:var(--ink2); }
.pcp-fc__r{ flex:1; min-width:210px; display:flex; flex-direction:column; gap:10px; align-items:flex-start; }
.pcp-fc__txt{ margin:0; font-size:14px; line-height:1.5; color:var(--ink2); }
.pcp-fc__txt strong{ color:var(--ink); font-weight:800; }
.pcp-fc__conf{ display:inline-flex; align-items:center; gap:7px; font-size:11.5px; font-weight:700; color:var(--ink2);
    background:#fff; border:1px solid var(--line); border-radius:100px; padding:4px 11px; }
.pcp-fc__conf i{ width:7px; height:7px; border-radius:50%; background:var(--ink3); flex:0 0 auto; }
.pcp-fc__conf--high i{ background:var(--up); }
.pcp-fc__conf--mid i{ background:var(--gold); }
.pcp-fc__conf--low i{ background:var(--ink3); }

/* Barra en modo bajista / plano (las custom props heredan de .rkp) */
.rkp__bar--down i{ background:var(--down); }
.rkp__bar--flat i{ background:var(--ink3); }

.pcp-method{ margin:16px 0 0; padding-top:14px; border-top:1px solid var(--line2);
    font-size:11.5px; line-height:1.55; color:var(--ink3); }

@media (max-width:640px){
    .pcp-fc{ padding:16px; }
    .pcp-i__tip{ white-space:normal; width:210px; text-align:center; }
}

/* ── PCP · situación actual + pronóstico CAMAL AI en vivo ── */
.pcp-now{ margin-bottom:22px; }
.pcp-now__hd{ margin-bottom:12px; }
.pcp-now__eyebrow{ font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--ink3); }

/* El pronóstico de CAMAL a ancho completo (sin sangría de avatar) para que
   cuadre con la cabecera, los selectores y el botón de arriba. */
.pcp .rkp__msg{ gap:0; }
.pcp .rkp__ic{ display:none; }

.pcp-out{ font-size:14.5px; line-height:1.62; color:var(--ink); }
.pcp-out > *:first-child{ margin-top:0; }
.pcp-out p{ margin:0 0 12px; }
.pcp-out strong{ color:var(--blue); font-weight:700; }
.pcp-out a{ color:var(--blue); font-weight:600; }
.pcp-out em{ font-style:italic; }
.pcp-h{ font-size:15px; font-weight:800; letter-spacing:-.01em; color:var(--ink); margin:20px 0 10px; }
.pcp-ul, .pcp-ol{ margin:0 0 14px; padding-left:20px; }
.pcp-ul li, .pcp-ol li{ margin:0 0 6px; }
.pcp-hr{ border:none; border-top:1px solid var(--line); margin:18px 0; }
.pcp-cite{ font-size:9px; font-weight:700; color:var(--blue2); vertical-align:super; margin-left:1px; }

.pcp-tblwrap{ overflow-x:auto; margin:6px 0 18px; border:1px solid var(--line); border-radius:var(--rd); }
.pcp-tbl{ width:100%; border-collapse:collapse; font-size:13.5px; }
.pcp-tbl th{ text-align:left; font-size:10.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--ink3); padding:11px 13px; border-bottom:1px solid var(--line); background:#F7FAFC; white-space:nowrap; }
.pcp-tbl td{ padding:11px 13px; border-bottom:1px solid var(--line2); vertical-align:top; color:var(--ink2); line-height:1.5; }
.pcp-tbl tbody tr:last-child td{ border-bottom:none; }
.pcp-tbl td:first-child{ font-weight:700; color:var(--ink3); text-align:center; width:34px; }
.pcp-tbl td:nth-child(2){ font-weight:700; color:var(--ink); white-space:nowrap; }
.pcp-tbl tbody tr:hover{ background:#FBFDFE; }

.pcp-load{ display:flex; align-items:center; gap:10px; font-size:14px; color:var(--ink2); padding:6px 0; }
.pcp-note{ font-size:14px; color:var(--ink2); margin:0; }

@media (max-width:640px){
    .pcp-tbl{ font-size:12.5px; }
    .pcp-tbl th, .pcp-tbl td{ padding:9px 10px; }
}

/* ═══════════════════════════════════════════════════════════════════
   MURO DE REGISTRO · elegante · plano · radios mínimos (estilo CAMAL AI)
═══════════════════════════════════════════════════════════════════ */
.et-ipgate{ max-width:var(--et-pc-max,1280px); margin:0 auto; padding:44px var(--et-pc-gut,24px) 60px;
    font-family:var(--et-pc-sans,'Inter',system-ui,sans-serif); color:#141C24; -webkit-font-smoothing:antialiased; }
.et-ipgate__card{ box-sizing:border-box; border:1px solid #E4E9EE; border-radius:8px; overflow:hidden;
    background:#fff; text-align:center; padding:42px 34px; }
.et-ipgate__logo{ display:block; width:auto; height:26px; margin:0 auto 18px; }
.et-ipgate__badge{ display:inline-flex; align-items:center; gap:7px; font-size:10.5px; font-weight:700;
    letter-spacing:.14em; text-transform:uppercase; color:#114F6E; margin-bottom:14px; }
.et-ipgate__badge svg{ opacity:.92; }
.et-ipgate__title{ margin:0 0 12px; font-size:clamp(22px,3vw,30px); line-height:1.1; font-weight:800; letter-spacing:-.03em; color:#141C24; }
.et-ipgate__lede{ margin:0 auto; max-width:600px; font-size:15px; line-height:1.6; color:#59677A; }
.et-ipgate__actions{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin:22px 0 14px; }
.et-ipgate__cta{ display:inline-flex; align-items:center; justify-content:center; background:#114F6E; color:#fff !important; text-decoration:none;
    font-size:14px; font-weight:700; letter-spacing:-.01em; padding:12px 24px; border-radius:6px; border:1px solid #114F6E; transition:background .15s ease; }
.et-ipgate__cta:hover{ background:#082C43; }
.et-ipgate__login{ display:inline-flex; align-items:center; justify-content:center; background:#fff; color:#114F6E !important; text-decoration:none;
    font-size:14px; font-weight:700; padding:12px 20px; border-radius:6px; border:1px solid #DCE3E9; transition:border-color .15s ease; }
.et-ipgate__login:hover{ border-color:#114F6E; }
.et-ipgate__note{ margin:0 auto; max-width:520px; font-size:12px; line-height:1.5; color:#95A0AB; }

/* PC ancho: dos columnas con hairline central (el logo NO se estira: align-items flex-start) */
@media (min-width:860px){
    .et-ipgate:not(.et-ipgate--bare) .et-ipgate__card{ display:grid; grid-template-columns:1.7fr 1fr; text-align:left; padding:0; align-items:stretch; }
    .et-ipgate:not(.et-ipgate--bare) .et-ipgate__main{ display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:46px 48px; }
    .et-ipgate:not(.et-ipgate--bare) .et-ipgate__logo{ margin:0 0 18px; }
    .et-ipgate:not(.et-ipgate--bare) .et-ipgate__title,
    .et-ipgate:not(.et-ipgate--bare) .et-ipgate__lede{ width:100%; }
    .et-ipgate:not(.et-ipgate--bare) .et-ipgate__lede{ margin:0; max-width:none; }
    .et-ipgate:not(.et-ipgate--bare) .et-ipgate__aside{ display:flex; flex-direction:column; justify-content:center;
        padding:46px 40px; border-left:1px solid #EDF1F4; background:#FAFBFC; }
    .et-ipgate:not(.et-ipgate--bare) .et-ipgate__actions{ flex-direction:column; align-items:stretch; margin:0 0 14px; }
    .et-ipgate:not(.et-ipgate--bare) .et-ipgate__note{ margin:0; max-width:none; }
}

/* Variante compacta (dentro del panel del chat) */
.et-ipgate--bare{ padding:0; }
.et-ipgate--bare .et-ipgate__card{ border:none; background:none; padding:20px; text-align:left; }
.et-ipgate--bare .et-ipgate__logo{ display:none; }
.et-ipgate--bare .et-ipgate__badge{ margin-bottom:12px; }
.et-ipgate--bare .et-ipgate__title{ font-size:19px; }
.et-ipgate--bare .et-ipgate__lede{ font-size:14px; margin:0; }
.et-ipgate--bare .et-ipgate__actions{ justify-content:flex-start; margin:18px 0 12px; }
.et-pai__gatebody{ overflow-y:auto; }

@media (max-width:640px){
    .et-ipgate{ padding:28px 16px 48px; }
    .et-ipgate__card{ padding:30px 22px; }
    .et-ipgate__actions{ flex-direction:column; }
    .et-ipgate__cta, .et-ipgate__login{ width:100%; }
}

/* ═══════════════════════════════════════════════════════════════════
   CLIMATOLOGÍA PORTUARIA · parte marítimo (clima·mar·olas·mareas)
   Plano · hairlines · radios mínimos · un solo acento (estilo CAMAL AI)
═══════════════════════════════════════════════════════════════════ */
.clima{ max-width:var(--et-pc-max,1280px); margin:0 auto; padding:8px var(--et-pc-gut,24px) 0;
    font-family:var(--et-pc-sans,'Inter',system-ui,sans-serif); color:#141C24; -webkit-font-smoothing:antialiased; }

/* Selector de puerto + botón */
.clima__ctl{ max-width:680px; margin:6px auto 0; text-align:center; }
.clima__lb{ display:block; font-size:11px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:#114F6E; margin-bottom:10px; }
.clima__pick{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }
.clima__selwrap{ position:relative; flex:1 1 300px; min-width:240px; }
.clima__sel{ -webkit-appearance:none; -moz-appearance:none; appearance:none; width:100%; box-sizing:border-box;
    font-family:inherit; font-size:15px; font-weight:600; color:#114F6E; background:#fff;
    border:1px solid #DCE3E9; border-radius:6px; padding:13px 40px 13px 15px; cursor:pointer; line-height:1.2;
    transition:border-color .15s ease; }
.clima__sel:hover{ border-color:#9FB4C2; }
.clima__sel:focus{ outline:none; border-color:#114F6E; box-shadow:0 0 0 3px rgba(17,79,110,.10); }
.clima__chev{ position:absolute; right:13px; top:50%; transform:translateY(-50%); color:#114F6E; pointer-events:none; }
.clima .rkp__cta{ flex:0 0 auto; margin:0; }

.clima__resp{ margin-top:22px; }
.clima__out{ min-height:20px; }

/* Estado del parte (loading / error) */
.cwx__loading{ display:flex; align-items:center; gap:12px; justify-content:center; padding:34px 16px; }
.cwx__loading-tx{ font-size:14px; color:#59677A; }
.cwx__err{ text-align:center; color:#59677A; font-size:14.5px; padding:28px 16px; }
.cwx__err a{ color:#114F6E; font-weight:600; }

/* Tarjeta del parte */
.cwx{ box-sizing:border-box; border:1px solid #E4E9EE; border-radius:8px; overflow:hidden; background:#fff; }

.cwx__top{ display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap;
    padding:22px 24px; border-bottom:1px solid #EDF1F4; background:#FAFBFC; }
.cwx__zone{ display:block; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#114F6E; }
.cwx__port{ margin:3px 0 2px; font-size:clamp(20px,2.6vw,26px); font-weight:800; letter-spacing:-.02em; line-height:1.1; color:#141C24; }
.cwx__when{ font-size:12px; color:#95A0AB; }
.cwx__now{ display:flex; align-items:center; gap:14px; }
.cwx__sky{ color:#114F6E; display:flex; }
.cwx__now-t{ display:flex; flex-direction:column; text-align:right; }
.cwx__temp{ font-size:34px; font-weight:800; letter-spacing:-.03em; color:#141C24; line-height:1; font-variant-numeric:tabular-nums; }
.cwx__temp i{ font-style:normal; font-size:20px; font-weight:700; color:#59677A; vertical-align:top; }
.cwx__cond{ font-size:12.5px; color:#59677A; margin-top:3px; }

/* Rejilla de métricas */
.cwx__grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:1px; background:#EDF1F4; }
.cwx__tile{ display:flex; flex-direction:column; gap:2px; padding:15px 16px; background:#fff; }
.cwx__tile-ic{ color:#114F6E; margin-bottom:4px; display:flex; }
.cwx__tile-lb{ font-size:10.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#95A0AB; }
.cwx__tile-v{ font-size:21px; font-weight:800; letter-spacing:-.02em; color:#114F6E; font-variant-numeric:tabular-nums; line-height:1.1; }
.cwx__tile-v i{ font-style:normal; font-size:12px; font-weight:600; color:#8A97A3; margin-left:3px; }
.cwx__tile-sub{ font-size:11.5px; color:#7A8794; margin-top:1px; }

/* Mareas */
.cwx__tide{ padding:20px 24px; border-top:1px solid #EDF1F4; }
.cwx__tide-h{ display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.cwx__tide-h h3{ margin:0; font-size:15px; font-weight:800; letter-spacing:-.01em; color:#141C24; }
.cwx__tag{ font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#114F6E; }
.cwx__tide-row{ display:flex; gap:10px; flex-wrap:wrap; }
.cwx__tx{ flex:1 1 120px; min-width:110px; display:grid; grid-template-columns:auto 1fr; grid-template-rows:auto auto; column-gap:8px;
    align-items:center; padding:11px 14px; border:1px solid #E7EBEF; border-radius:6px; background:#fff; }
.cwx__tx-ar{ grid-row:1 / span 2; width:26px; height:26px; display:flex; align-items:center; justify-content:center; border-radius:50%; }
.cwx__tx--hi .cwx__tx-ar{ color:#114F6E; background:#EAF2F7; }
.cwx__tx--lo .cwx__tx-ar{ color:#114F6E; background:#E7F4F6; }
.cwx__tx-k{ font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:#8A97A3; }
.cwx__tx-t{ font-size:17px; font-weight:800; color:#141C24; font-variant-numeric:tabular-nums; }
.cwx__tx-m{ grid-column:2; font-size:12px; color:#7A8794; font-variant-numeric:tabular-nums; }
.cwx__tide-ft{ margin:12px 0 0; font-size:12.5px; color:#7A8794; }
.cwx__tide-ft strong{ color:#114F6E; font-variant-numeric:tabular-nums; }

/* Gráfica de ola 24 h */
.cwx__chart{ padding:18px 24px 20px; border-top:1px solid #EDF1F4; }
.cwx__chart-h{ display:flex; align-items:baseline; gap:8px; margin-bottom:8px; }
.cwx__chart-h span:first-child{ font-size:13px; font-weight:700; color:#141C24; }
.cwx__chart-sub{ font-size:11.5px; color:#95A0AB; }
.cwx__wave{ display:block; width:100%; height:96px; }
.cwx__wave-x{ font-size:11px; fill:#95A0AB; font-family:inherit; font-variant-numeric:tabular-nums; }

/* Previsión 3-4 días */
.cwx__fc{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:#EDF1F4; border-top:1px solid #EDF1F4; }
.cwx__fc-d{ display:flex; flex-direction:column; align-items:center; gap:4px; padding:14px 8px; background:#fff; }
.cwx__fc-dow{ font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:#8A97A3; }
.cwx__fc-sk{ color:#114F6E; display:flex; }
.cwx__fc-t{ font-size:14px; font-weight:800; color:#141C24; font-variant-numeric:tabular-nums; }
.cwx__fc-t i{ font-style:normal; font-weight:600; color:#95A0AB; margin-left:2px; }
.cwx__fc-w{ font-size:11.5px; color:#7A8794; font-variant-numeric:tabular-nums; }

/* Lectura de CAMAL AI */
.cwx__ai{ padding:20px 24px 22px; border-top:1px solid #EDF1F4; background:#F7FAFB; }
.cwx__ai-h{ display:flex; align-items:center; gap:9px; margin-bottom:9px; }
.cwx__ai-h img{ border-radius:5px; display:block; }
.cwx__ai-by{ font-size:12px; font-weight:800; letter-spacing:.02em; color:#114F6E; }
.cwx__ai-body{ font-size:14.5px; line-height:1.65; color:#33414F; }
.cwx__ai-body p{ margin:0 0 .7em; }
.cwx__ai-body p:last-child{ margin-bottom:0; }
.cwx__ai-body strong{ color:#141C24; font-weight:700; }

@media (max-width:560px){
    .clima__pick{ flex-direction:column; }
    .clima .rkp__cta{ width:100%; justify-content:center; }
    .cwx__top{ padding:18px 16px; }
    .cwx__grid{ grid-template-columns:repeat(2,1fr); }
    .cwx__tide, .cwx__chart, .cwx__ai{ padding-left:16px; padding-right:16px; }
    .cwx__fc{ grid-template-columns:repeat(4,1fr); }
}

/* ─── Ficha de Autoridad Portuaria (reutiliza .cwx__ai para el bloque IA) ── */
.apx{ box-sizing:border-box; border:1px solid #E4E9EE; border-radius:8px; overflow:hidden; background:#fff;
    font-family:var(--et-pc-sans,'Inter',system-ui,sans-serif); color:#141C24; }
.apx__top{ padding:24px 26px; border-bottom:1px solid #EDF1F4; background:#FAFBFC; }
.apx__badge{ display:inline-block; font-size:10.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#114F6E; margin-bottom:6px; }
.apx__name{ margin:0 0 4px; font-size:clamp(20px,2.6vw,26px); font-weight:800; letter-spacing:-.02em; line-height:1.15; color:#141C24; }
.apx__region{ font-size:13px; color:#7A8794; }
.apx__facts{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:1px; background:#EDF1F4; }
.apx__fact{ display:flex; flex-direction:column; gap:4px; padding:16px 18px; background:#fff; }
.apx__fact-lb{ font-size:10.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#95A0AB; }
.apx__fact-v{ font-size:14px; font-weight:600; color:#141C24; line-height:1.45; }
.apx__ai{ border-top:1px solid #EDF1F4; }
.apx__ai .cwx__ai-body a{ color:#114F6E; font-weight:600; text-decoration:none; border-bottom:1px solid #CBD9E4; }
.apx__ai .cwx__ai-body a:hover{ border-bottom-color:#114F6E; }
.apx__ai .cwx__ai-body ul{ margin:.4em 0 .2em; padding-left:1.15em; }
.apx__ai .cwx__ai-body li{ margin:.28em 0; }

@media (max-width:560px){
    .apx__top{ padding:18px 16px; }
    .apx__facts{ grid-template-columns:1fr; }
}

/* ═══════════════════════════════════════════════════════════════════
   CAMAL AI DENTRO DE LA NOTICIA · plano · transparente · ancho del artículo
   (sin tarjeta ni esquinas redondeadas: hairlines + radio 6px máximo)
═══════════════════════════════════════════════════════════════════ */
/* v2.95.0 · Toda la sección va dentro de un recuadro fino y elegante tipo CAMAL. */
.nai{ margin:36px 0 12px; padding:24px 24px 20px; border:1px solid #D3E1E7; border-radius:14px; background:#FBFDFE;
    font-family:var(--et-pc-sans,'Inter',system-ui,sans-serif); color:#141C24; -webkit-font-smoothing:antialiased; }

/* Bloque IA — dentro del recuadro CAMAL, alineado al texto del artículo */
.nai__ai{ background:none; border:none; }
.nai__head{ display:flex !important; align-items:center; justify-content:flex-start; gap:10px; margin-bottom:14px; text-align:left; }
.nai__head img{ border-radius:5px; display:inline-block !important; width:26px !important; height:26px !important; margin:0 !important; max-width:none !important; float:none !important; }
/* Logo CAMAL AI enlazado a camalai.com */
.nai__brand{ flex:0 0 auto; display:inline-flex; line-height:0; text-decoration:none; }
.nai__brand img{ transition:transform .15s ease; }
.nai__brand:hover img{ transform:scale(1.06); }
.nai__title-lnk{ color:inherit; text-decoration:none; }
.nai__title-lnk:hover{ text-decoration:underline; text-underline-offset:2px; }
/* Guard: las plantillas del plugin CAMAL AI centran/estiran los <img> del
   cuerpo; el asistente no debe heredar ese estilo (imagen gigante/centrada). */
.nai img{ max-width:none; float:none; }
.nai__head-t{ display:flex; flex-direction:column; line-height:1.25; }
.nai__kick{ font-size:10.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#114F6E; }
.nai__title{ font-size:16.5px; font-weight:800; letter-spacing:-.015em; color:#141C24; }
/* v2.95.0 · «Amplía la noticia con:» + logo CAMAL enlazado (en vez del texto). */
.nai__title-logo{ display:inline-flex; align-items:center; vertical-align:middle; line-height:0; text-decoration:none; margin-left:4px; }
.nai__title-logo img{ height:15px; width:auto !important; display:inline-block !important; margin:0 !important; max-width:none !important; float:none !important; vertical-align:middle; }
.nai__title-logo:hover img{ opacity:.85; }
.nai__chips{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px; }
.nai__chip{ font:inherit; font-size:13px; font-weight:600; color:#114F6E; background:#fff; border:1px solid #DCE3E9;
    border-radius:6px; padding:8px 14px; cursor:pointer; transition:border-color .15s ease, background .15s ease; }
.nai__chip:hover{ border-color:#114F6E; background:#F4F8FB; }
.nai__chip:disabled{ opacity:.5; cursor:default; }
.nai__ask{ display:flex; gap:8px; }
.nai__input{ flex:1; font:inherit; font-size:14px; color:#141C24; background:#fff; border:1px solid #DCE3E9; border-radius:6px;
    padding:11px 14px; transition:border-color .15s ease, box-shadow .15s ease; }
.nai__input::placeholder{ color:#9AA6B1; }
.nai__input:focus{ outline:none; border-color:#114F6E; box-shadow:0 0 0 3px rgba(17,79,110,.10); }
/* Botón enviar en MODO CLARO: el favicon de CAMAL AI es oscuro, así que va
   sobre fondo blanco para que se vea (regla general de todo lo de CAMAL AI). */
/* v2.95.1 · Botón iguala la altura del input (align-self:stretch) y el icono se
   centra SÍ o SÍ con margin:auto (centra el flex-item en ambos ejes, sin depender
   de align-items). Antes quedaba pegado abajo. */
.nai__send{ flex:0 0 auto; align-self:stretch; display:flex; align-items:center; justify-content:center; width:46px; border:1px solid #DCE3E9;
    background:#fff; border-radius:6px; cursor:pointer; transition:border-color .15s ease, background .15s ease; }
.nai__send:hover{ border-color:#114F6E; background:#F4F8FB; }
.nai__send img{ display:block; border-radius:4px; width:20px !important; height:20px !important; margin:auto !important; max-width:none !important; float:none !important; }
.nai__out{ margin-top:14px; padding:15px 17px; background:#fff; border:1px solid #E7EBEF; border-radius:6px;
    font-size:14.5px; line-height:1.62; color:#33414F; }
.nai__out p{ margin:0 0 .6em; } .nai__out p:last-child{ margin-bottom:0; }
.nai__out strong{ color:#141C24; font-weight:700; }
.nai__out ul{ margin:.3em 0; padding-left:1.15em; } .nai__out li{ margin:.28em 0; }
.nai__out a{ color:#114F6E; font-weight:600; }
.nai__loading{ display:flex; align-items:center; gap:11px; }
.nai__loading-tx{ font-size:13.5px; color:#59677A; }
.nai__err{ margin:0; font-size:14px; color:#59677A; }
.nai__err a{ color:#114F6E; font-weight:600; }

/* Muro compacto (no registrados) — plano, sin píldoras ni notas de relleno */
.nai__gate-tx{ margin:0 0 15px; font-size:14px; line-height:1.55; color:#59677A; max-width:62ch; }
.nai__gate-btns{ display:flex; flex-wrap:wrap; gap:10px; }
.nai__gate-cta{ display:inline-flex; align-items:center; background:#114F6E; color:#fff !important; text-decoration:none;
    font-size:13.5px; font-weight:700; padding:10px 20px; border-radius:6px; border:1px solid #114F6E; transition:background .15s ease; }
.nai__gate-cta:hover{ background:#082C43; }
.nai__gate-alt{ display:inline-flex; align-items:center; background:none; color:#114F6E !important; text-decoration:none;
    font-size:13.5px; font-weight:700; padding:10px 16px; border-radius:6px; border:1px solid #DCE3E9; transition:border-color .15s ease; }
.nai__gate-alt:hover{ border-color:#114F6E; }

/* ═══ v2.166.0 · NOTICIAS RELACIONADAS · sección propia ═══
   Ya no vive dentro del recuadro de CAMAL AI, así que se plantea como lo
   que es: una pieza editorial al cierre de la noticia.

   El rótulo, más fino que el anterior: se cambia el subrayado grueso de
   2px —que era corto y pesaba mucho— por un filete de 1px a todo el ancho,
   con el título a la izquierda y la marca CAMAL AI al otro extremo. Es el
   mismo reparto que usan los rótulos del home, y de paso el bloque queda
   firmado sin gritar. */
.nairel{ margin:30px 0 12px; }
.nairel__head{ display:flex; align-items:baseline; justify-content:space-between; gap:16px;
    margin:0 0 16px; padding-bottom:9px; border-bottom:1px solid #D3E1E7; }
/* v2.167.0 · Más apretado, más negro y más pequeño: 11px, peso 900 y las
   letras casi juntas (.03em, era .14em). */
.nairel__h{ margin:0; font-size:11px; font-weight:900; letter-spacing:.03em; text-transform:uppercase; color:#114F6E; }
/* La marca: el favicon de CAMAL AI es OSCURO, así que va sobre el fondo
   claro del artículo y no al revés. */
.nairel__mark{ display:inline-flex; align-items:center; gap:6px; flex:0 0 auto; text-decoration:none; line-height:1; }
.nairel__mark img{ display:block !important; width:14px !important; height:14px !important;
    border-radius:3px; margin:0 !important; max-width:none !important; float:none !important; }
.nairel__mark span{ font-size:9.5px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:#7D8A96; }
.nairel__mark:hover span{ color:#114F6E; }

.nai__rel-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:16px; }
.nai__card{ display:flex; flex-direction:column; text-decoration:none; border:1px solid #E7EBEF; border-radius:6px; overflow:hidden;
    background:#fff; transition:border-color .15s ease; }
.nai__card:hover{ border-color:#114F6E; }
.nai__card-img{ display:block; aspect-ratio:16/10; background-size:cover; background-position:center; background-color:#EAF0F4; }
.nai__card-body{ display:flex; flex-direction:column; gap:5px; padding:12px 13px 14px; }
.nai__card-kick{ font-size:10.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:#114F6E; }
.nai__card-tt{ font-size:14.5px; font-weight:700; line-height:1.3; color:#141C24; letter-spacing:-.01em;
    display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.nai__card:hover .nai__card-tt{ color:#114F6E; }
.nai__card-dt{ font-size:11.5px; color:#95A0AB; margin-top:auto; }

@media (max-width:560px){
    .nai__rel-grid{ grid-template-columns:repeat(2,1fr); gap:12px; }
}

/* ═══════════════════════════════════════════════════════════════════
   v2.100.0 · VENTANA OPERATIVA 24 h (climatología)
   Zarpe · Amarre · Fondeo · Pesca <12 m con veredicto por colores.
   Claro, hairlines, navy #114F6E · azul CAMAL AI #114F6E.
   ═══════════════════════════════════════════════════════════════════ */
.cwx-ops {
    margin: 20px 0 0;
    background: #fff;
    border: 1px solid #E3EAF0;
    border-radius: 10px;
    padding: 18px 20px 16px;
}
.cwx-ops__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 0 0 13px;
    border-bottom: 1px solid #EEF2F5;
}
.cwx-ops__ttl { display: flex; flex-direction: column; gap: 2px; }
.cwx-ops__eyebrow {
    font-family: 'Inter', system-ui, sans-serif;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #114F6E;
}
.cwx-ops__ttl strong {
    font-family: 'Inter', system-ui, sans-serif;
    font-size: 17px;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #114F6E;
}
.cwx-ops__by img { display: block; height: 18px; width: auto; max-width: 84px; opacity: 0.9; }

.cwx-ops__list { list-style: none; margin: 0; padding: 0; }
.cwx-ops__row {
    display: grid;
    grid-template-columns: 118px auto 1fr;
    align-items: center;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid #F2F5F8;
}
.cwx-ops__row:last-child { border-bottom: 0; }
.cwx-ops__op {
    font-family: 'Inter', system-ui, sans-serif;
    font-size: 13.5px;
    font-weight: 700;
    color: #14181C;
}
.cwx-ops__badge {
    font-family: 'Inter', system-ui, sans-serif;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.09em;
    padding: 4px 9px;
    border-radius: 5px;
    white-space: nowrap;
}
.cwx-ops__row--ok   .cwx-ops__badge { background: #E9F6EE; color: #15803D; border: 1px solid #CDE9D8; }
.cwx-ops__row--warn .cwx-ops__badge { background: #FDF4E5; color: #B45309; border: 1px solid #F2E0BE; }
.cwx-ops__row--bad  .cwx-ops__badge { background: #FCECEC; color: #C8102E; border: 1px solid #F3D2D2; }
.cwx-ops__row--na   .cwx-ops__badge { background: #F3F5F7; color: #7A8794; border: 1px solid #E3EAF0; }
.cwx-ops__txt {
    font-family: 'Inter', system-ui, sans-serif;
    font-size: 13px;
    line-height: 1.5;
    color: #5A6B7A;
    min-width: 0;
}
.cwx-ops__note {
    margin: 13px 0 0;
    padding-top: 11px;
    border-top: 1px solid #EEF2F5;
    font-family: 'Inter', system-ui, sans-serif;
    font-size: 11px;
    line-height: 1.5;
    color: #98A4AF;
}

@media (max-width: 700px) {
    .cwx-ops { padding: 15px 15px 13px; }
    .cwx-ops__row { grid-template-columns: 1fr auto; row-gap: 5px; }
    .cwx-ops__txt { grid-column: 1 / -1; }
}

/* ═══ v2.166.0 · Los tres huecos de publicidad de la noticia ═══
   Centrados y al ancho del cuerpo del artículo. La creatividad no se
   estira: si es más estrecha que la columna se queda a su tamaño. */
.et-ad--arttop{ margin:0 auto 22px; text-align:center; }
.et-ad--artmid{ margin:26px auto; text-align:center; }
.et-ad--artrel{ margin:26px auto 30px; text-align:center; }
.et-ad--arttop img, .et-ad--artmid img, .et-ad--artrel img{ margin:0 auto; max-width:100%; height:auto; }

/* ═══ v2.167.0 · El sello «Publicidad» dentro de la NOTICIA ═══
   CAUSA del desalineado: la plantilla del plugin declara
     .dunes-template-noticia .dai-tpl__body img { margin: 28px auto 0 }
   y esa regla también alcanzaba al icono de CAMAL AI del sello. Con 28px
   de margen superior y centrado automático, el icono se iba abajo y a la
   izquierda del texto en los tres banners.

   Se blinda con `!important` porque el orden de carga entre la hoja del
   theme y la del plugin no está garantizado, y es el mismo recurso que ya
   usa la regla base del sello para el tamaño. */
.et-ad--arttop .et-ad__tag img,
.et-ad--artmid .et-ad__tag img,
.et-ad--artrel .et-ad__tag img{
    margin:0 !important;
    display:block !important;
    width:12px !important; height:12px !important;
    max-width:none !important; float:none !important;
}
/* Y la línea del sello se centra de verdad: sin line-height propio el texto
   arrastraba el hueco del renglón y quedaba medio punto más abajo. */
.et-ad--arttop .et-ad__tag,
.et-ad--artmid .et-ad__tag,
.et-ad--artrel .et-ad__tag{ align-items:center; line-height:1; }
.et-ad--arttop .et-ad__tag-txt,
.et-ad--artmid .et-ad__tag-txt,
.et-ad--artrel .et-ad__tag-txt{ line-height:1; }
/* Los banners tampoco heredan el margen de las fotos del cuerpo. */
.et-ad--arttop img, .et-ad--artmid img, .et-ad--artrel img{ margin:0 auto !important; }
