/*
 * OMNES App Mode — PORTAL DE CLIENTES (themes/omnes). Pareja de js/app_mode.js.
 * Sobre la capa global assets/css/omnes_app.css (tokens --oam-*, hojas, tarjetas,
 * FAB). Todo vive bajo html.oam.oam-portal: el escritorio y la tablet no cambian.
 * !important solo para vencer los !important de style/premium.css, login.php y
 * los estilos en linea del tema.
 *
 * Indice: 1 base · 2 barra superior · 3 pestanas · 4 hoja "Mas" · 5 contenido y
 * titulos · 6 inicio · 7 listados · 8 proyecto · 9 tickets · 10 documentos
 * (factura/cotizacion) · 11 perfil y formularios · 12 login · 13 pie y avisos
 */

/* Piezas propias: invisibles fuera del modo app */
.oamp-bar, .oamp-tabbar { display: none; }

/* ===================================================================== 1. BASE */
html.oam.oam-portal body.customers {
    background: var(--oam-bg) !important;
    -webkit-tap-highlight-color: transparent;
    overscroll-behavior-y: none;
}
html.oam.oam-portal.oamp-tabs body.customers { padding-bottom: calc(var(--oam-bottom) + 12px); }
html.oam.oam-portal #wrapper { min-height: 0; }
html.oam.oam-portal #content { padding-top: 0; }

/* ===================================================================== 2. BARRA SUPERIOR (.navbar-premium) */
html.oam.oam-portal .navbar-premium {
    position: fixed !important;
    top: 0; left: 0; right: 0;
    min-height: 0;
    margin: 0;
    height: var(--oam-top);
    padding: var(--oam-safe-t) 0 0 !important;
    background: var(--oam-bar-bg);
    -webkit-backdrop-filter: saturate(180%) blur(16px);
    backdrop-filter: saturate(180%) blur(16px);
    border-bottom: 1px solid var(--oam-line);
    z-index: 1030;
}
html.oam.oam-portal .navbar-premium > .container {
    height: var(--oam-topbar-h);
    padding: 0 calc(6px + var(--oam-safe-r)) 0 calc(6px + var(--oam-safe-l)) !important;
    flex-wrap: nowrap;
}
html.oam.oam-portal .navbar-premium > .container > :not(.oamp-bar) { display: none !important; }
html.oam.oam-portal .oamp-bar {
    display: flex;
    align-items: center;
    gap: 4px;
    width: 100%;
    height: 100%;
}
html.oam.oam-portal .oamp-bar-title {
    flex: 1 1 auto;
    min-width: 0;
    padding: 0 8px;
    font-size: 17px;
    font-weight: 700;
    letter-spacing: -.01em;
    color: var(--oam-ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
html.oam.oam-portal.oamp-has-back .oamp-bar-title { padding-left: 0; }
html.oam.oam-portal.oamp-large-title:not(.oam-title-in-bar) .oamp-bar:not(.oamp-bar-solo) .oamp-bar-title { opacity: 0; }
html.oam.oam-portal .oamp-bar-title { transition: opacity .18s ease; }
html.oam.oam-portal.oam-ios.oamp-has-back .oamp-bar-title { text-align: center; padding-right: 0; }
html.oam.oam-portal .oamp-logo { display: inline-flex !important; align-items: center; padding: 0 !important; margin: 0 !important; }
html.oam.oam-portal .oamp-logo img { max-height: 34px; width: auto; max-width: 62vw; display: block; }
html.oam.oam-portal .oamp-bar-end { flex: 0 0 auto; display: flex; align-items: center; gap: 4px; }
html.oam.oam-portal .oamp-bar-btn {
    flex: 0 0 auto;
    width: var(--oam-touch);
    height: var(--oam-touch);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--oam-primary);
    font-size: 20px;
    text-decoration: none !important;
}
html.oam.oam-portal .oamp-bar-btn:active { background: var(--oam-line-soft); }
html.oam.oam-portal .oamp-avatar img { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 2px var(--oam-surface), 0 0 0 3px var(--oam-line); }
html.oam.oam-portal .oamp-avatar i { color: var(--oam-ink-2); font-size: 26px; }
html.oam.oam-portal .oamp-login-btn { min-height: 36px !important; padding: 6px 16px !important; font-size: 14px; border-radius: 999px !important; margin: 0 !important; }
/* Barra propia de los documentos sin menu */
html.oam.oam-portal .oamp-bar-solo {
    position: fixed; top: 0; left: 0; right: 0; z-index: 1030;
    height: var(--oam-top); padding: var(--oam-safe-t) calc(6px + var(--oam-safe-r)) 0 calc(6px + var(--oam-safe-l));
    background: var(--oam-bar-bg); border-bottom: 1px solid var(--oam-line);
    -webkit-backdrop-filter: saturate(180%) blur(16px); backdrop-filter: saturate(180%) blur(16px);
}
html.oam.oam-portal.oamp-solo body.customers { padding-top: calc(var(--oam-top) + 8px) !important; }
html.oam.oam-portal.oamp-solo .oamp-moved { display: none !important; }
html.oam.oam-portal.oamp-solo .preview-top-wrapper > .row:first-child,
html.oam.oam-portal.oamp-solo :is(.estimate-html-logo, .contract-html-logo, .subscription-html-logo) { display: none; }
html.oam.oam-portal.oamp-solo .preview-top-wrapper { margin-top: 4px !important; }
html.oam.oam-portal.oamp-solo .preview-top-wrapper .top .tw-flex { flex-wrap: wrap; gap: 8px; }
html.oam.oam-portal.oamp-solo .preview-top-wrapper .top .tw-flex > * { margin: 0 !important; }
html.oam.oam-portal.oamp-solo #content .panel_s > .panel-body { padding: 16px 14px !important; }
html.oam.oam-portal.oamp-solo #content .panel_s .panel_s { border: 0 !important; box-shadow: none !important; margin: 0 !important; }
html.oam.oam-portal.oamp-solo #content .panel_s .panel_s > .panel-body { padding: 0 !important; }
html.oam.oam-portal.oamp-solo #content table.items { font-size: 14px; }
/* El hueco del navbar fijo (80 px en linea) pasa a medir lo que mide la barra */
html.oam.oam-portal .oamp-nav-spacer { height: calc(var(--oam-top) + 14px) !important; }

/* ===================================================================== 3. BARRA DE PESTANAS */
html.oam.oam-portal .oamp-tabbar {
    display: flex;
    position: fixed;
    left: 0; right: 0; bottom: 0;
    z-index: 1035;
    height: var(--oam-bottom);
    padding: 0 var(--oam-safe-r) var(--oam-safe-b) var(--oam-safe-l);
    background: var(--oam-bar-bg);
    border-top: 1px solid var(--oam-line);
    -webkit-backdrop-filter: saturate(180%) blur(16px);
    backdrop-filter: saturate(180%) blur(16px);
}
html.oam.oam-portal .oamp-tab {
    flex: 1 1 0;
    min-width: 0;
    height: var(--oam-tabbar-h);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    padding: 0 2px;
    border: 0;
    background: transparent;
    color: var(--oam-muted);
    font-size: 11.5px;
    font-weight: 600;
    line-height: 1.1;
    text-decoration: none !important;
}
html.oam.oam-portal .oamp-tab i { font-size: 20px; line-height: 1; }
html.oam.oam-portal .oamp-tab span { max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
html.oam.oam-portal .oamp-tab.is-active { color: var(--oam-primary); }
html.oam.oam-portal .oamp-tab.is-active i { transform: translateY(-1px); }
html.oam.oam-portal.oam-android .oamp-tab.is-active i { background: color-mix(in srgb, var(--oam-primary) 14%, transparent); border-radius: 16px; padding: 4px 18px; margin: -4px 0; }
html.oam.oam-portal.oam-kb-open .oamp-tabbar { transform: translateY(100%); }
html.oam.oam-portal .oamp-tabbar { transition: transform var(--oam-dur) var(--oam-ease); }
/* Sin pestanas (no ha iniciado sesion): el FAB baja */
html.oam.oam-portal:not(.oamp-tabs) .oam-fab { bottom: calc(16px + var(--oam-safe-b)); }

/* ===================================================================== 4. HOJA "MAS" */
html.oam.oam-portal #oamp-more .oam-sheet-body { padding: 4px 16px 16px; overflow-y: auto; }
html.oam.oam-portal .oamp-me { display: flex; align-items: center; gap: 12px; padding: 6px 4px 14px; border-bottom: 1px solid var(--oam-line-soft); margin-bottom: 4px; }
html.oam.oam-portal .oamp-me img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
html.oam.oam-portal .oamp-me strong { display: block; font-size: 17px; color: var(--oam-ink); }
html.oam.oam-portal .oamp-me span { display: block; font-size: 13px; color: var(--oam-muted); }
html.oam.oam-portal .oamp-sheet-sub { height: 8px; margin: 10px -16px 6px; background: var(--oam-bg); }
html.oam.oam-portal #oamp-more .oam-row-ico { background: var(--oam-line-soft); color: var(--oam-primary); }
html.oam.oam-portal #oamp-more .oamp-current { color: var(--oam-primary) !important; }
html.oam.oam-portal #oamp-more .oamp-danger, html.oam.oam-portal #oamp-more .oamp-danger .oam-row-ico { color: #dc2626 !important; }
html.oam.oam-portal #oamp-more .oamp-pwa { width: 100%; margin-top: 14px; }

/* ===================================================================== 5. CONTENIDO Y TITULOS */
html.oam.oam-portal #content > .container { padding-left: calc(15px + var(--oam-safe-l)); padding-right: calc(15px + var(--oam-safe-r)); }
html.oam.oam-portal #content { padding-left: 0; padding-right: 0; }
/* Las vistas anidan .row dentro de .row (BS3) y BS5 las vuelve hijos flex de ancho 100 %:
   el margen negativo solo corria a la izquierda y dejaba un hueco a la derecha. */
html.oam.oam-portal #content > .container > .row { padding-left: 15px; padding-right: 15px; }
html.oam.oam-portal #content > .container > .row > [class*="col-"] { padding-left: 0; padding-right: 0; }
html.oam.oam-portal #content > .container > .row > .row { width: calc(100% + 30px); max-width: none; margin-left: -15px; margin-right: -15px; padding-left: 0; padding-right: 0; }
html.oam.oam-portal #content > .container > .row > .row .row > .row { width: auto; margin-left: 0; margin-right: 0; }
/* Archivos / Calendario viven en la hoja "Mas" */
html.oam.oam-portal .customer-top-submenu { display: none !important; }
html.oam.oam-portal #content :is(:is(h1, h2, h3, h4, h5).section-heading, h4.section-text) {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 2px 10px;
    margin: 4px 0 12px !important;
    font-size: 26px !important;
    line-height: 1.15;
    font-weight: 800 !important;
    letter-spacing: -.02em;
    color: var(--oam-ink) !important;
}
html.oam.oam-portal #content :is(h1, h2, h3, h4, h5).section-heading a { display: inline-flex; align-items: center; min-height: 36px; }
html.oam.oam-portal #content :is(h1, h2, h3, h4, h5).section-heading :is(.tw-text-sm, a) { font-size: 14px; font-weight: 600; letter-spacing: 0; }
html.oam.oam-portal .module-header-block { padding: 6px 4px 14px !important; margin-bottom: 10px !important; background: transparent !important; border: 0 !important; box-shadow: none !important; overflow: visible; }
html.oam.oam-portal .module-header-block .header-ghost-icon { display: none; }
html.oam.oam-portal .module-header-block .header-left { gap: 12px; }
html.oam.oam-portal .module-header-block .header-icon-container { width: 44px; height: 44px; min-width: 44px; border-radius: 12px; background: var(--oam-surface); box-shadow: var(--oam-shadow-1); font-size: 20px; color: var(--oam-primary); }
html.oam.oam-portal .module-header-block .header-text-group h4, html.oam.oam-portal #greeting-title { font-size: 24px !important; line-height: 1.15; letter-spacing: -.02em !important; margin: 0 !important; }
html.oam.oam-portal .module-header-block .header-text-group p { font-size: 14px; }
html.oam.oam-portal .panel_s { border-radius: var(--oam-radius) !important; margin-bottom: 14px !important; box-shadow: var(--oam-shadow-1) !important; }
html.oam.oam-portal .panel_s > .panel-body { padding: 14px !important; }
html.oam.oam-portal .panel_s > .panel-heading { padding: 12px 14px !important; }
html.oam.oam-portal .panel_s .panel-body:has(> table.oam-cards), html.oam.oam-portal .panel_s:has(table.oam-cards) { background: transparent; border: 0 !important; box-shadow: none !important; }
html.oam.oam-portal .panel_s > .panel-body:has(table.oam-cards) { padding: 0 !important; }
html.oam.oam-portal .panel_s > .panel-body:has(table.oam-cards) > hr { display: none; }
html.oam.oam-portal hr { margin: 14px 0; }
html.oam.oam-portal :is(img, video, iframe, canvas) { max-width: 100%; }

/* ===================================================================== 6. INICIO */
/* Resumen de proyectos: rejilla de 3 fichas en lugar de 6 tarjetas apiladas */
html.oam.oam-portal .projects-summary-heading { font-size: 17px !important; margin: 18px 4px 10px !important; }
html.oam.oam-portal .projects-summary-heading + .row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0 0 6px; }
html.oam.oam-portal :is(.projects-summary-heading + .row, .invoices-stats, .estimates-stats, .estimates-quick-info)::before,
html.oam.oam-portal :is(.projects-summary-heading + .row, .invoices-stats, .estimates-stats, .estimates-quick-info)::after { content: none; display: none; }
html.oam.oam-portal .invoices-stats .row::before, html.oam.oam-portal .invoices-stats .row::after { content: none; display: none; }
html.oam.oam-portal .projects-summary-heading + .row > [class*="col-"] { width: auto; max-width: none; padding: 0; margin: 0; }
html.oam.oam-portal .projects-summary-heading + .row .top_stats_wrapper { padding: 10px 6px !important; min-height: 76px; display: flex !important; align-items: center; justify-content: center; border-radius: var(--oam-radius-sm) !important; margin: 0 !important; }
html.oam.oam-portal .projects-summary-heading + .row .top_stats_wrapper:hover { transform: none !important; }
html.oam.oam-portal .projects-summary-heading + .row .top_stats_wrapper span { font-size: 12px; letter-spacing: .02em; line-height: 1.15; }
html.oam.oam-portal .projects-summary-heading + .row .top_stats_wrapper .tw-text-3xl { font-size: 24px; margin-top: 2px; }
html.oam.oam-portal .invoices-quick-info-heading { font-size: 17px !important; margin-top: 16px !important; }
html.oam.oam-portal .invoices-quick-info-heading + a { display: inline-flex; align-items: center; min-height: 32px; }
html.oam.oam-portal .tw-mb-3:has(> .invoices-quick-info-heading) { display: flex; flex-direction: column; gap: 0; margin: 0 4px 8px !important; }
/* Estadisticas de facturas: rejilla 2x2 compacta */
html.oam.oam-portal .invoices-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; margin: 0; }
html.oam.oam-portal .panel-body:has(table.oam-cards) > .invoices-stats { background: var(--oam-surface); border-radius: var(--oam-radius); box-shadow: var(--oam-shadow-1); padding: 14px; margin-bottom: 12px; }
html.oam.oam-portal .invoices-stats > [class*="col-"] { width: auto; max-width: none; padding: 0; }
html.oam.oam-portal .invoices-stats .row { display: flex; flex-wrap: wrap; align-items: baseline; margin: 0; }
html.oam.oam-portal .invoices-stats .row > .stats-status { flex: 1 1 auto; width: auto; padding: 0; font-size: 14px; min-width: 0; }
html.oam.oam-portal .invoices-stats .row > .stats-numbers { flex: 0 0 auto; width: auto; padding: 0; font-size: 14px; }
html.oam.oam-portal .invoices-stats .row > .col-md-12 { flex: 1 0 100%; padding: 0; }
html.oam.oam-portal .invoices-stats .stats-status a { display: inline-flex; align-items: center; min-height: 32px; }
html.oam.oam-portal .invoices-stats .progress { height: 8px; margin: 2px 0 0; border-radius: 999px; }
html.oam.oam-portal .invoices-stats .progress-bar { color: transparent; overflow: hidden; }
html.oam.oam-portal #client-home-chart { height: 260px !important; }
html.oam.oam-portal .relative:has(> #client-home-chart) { max-height: 260px !important; }
/* Estadisticas de cotizaciones (mismo patron) */
html.oam.oam-portal .estimates-stats, html.oam.oam-portal .estimates-quick-info { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; margin: 0; }
html.oam.oam-portal :is(.estimates-stats, .estimates-quick-info) > [class*="col-"] { width: auto; max-width: none; padding: 0; }

/* ===================================================================== 7. LISTADOS (DataTables del portal) */
html.oam.oam-portal .dataTables_wrapper .dataTables_length, html.oam.oam-portal .dataTables_wrapper .dt-buttons { display: none; }
html.oam.oam-portal .dataTables_wrapper .dataTables_filter { float: none; width: 100%; margin: 0 0 10px; text-align: left; }
html.oam.oam-portal .dataTables_wrapper .dataTables_filter label { display: block; width: 100%; margin: 0; font-size: 0; }
html.oam.oam-portal .dataTables_wrapper .dataTables_filter .input-group { display: block; width: 100%; position: relative; }
html.oam.oam-portal .dataTables_wrapper .dataTables_filter .input-group-addon { position: absolute; left: 0; top: 0; z-index: 3; width: 42px; height: var(--oam-touch); display: flex; align-items: center; justify-content: center; padding: 0; border: 0; background: transparent; color: var(--oam-muted); font-size: 15px; }
html.oam.oam-portal .dataTables_wrapper .dataTables_filter .input-group-addon + input { padding-left: 40px !important; }
html.oam.oam-portal .dataTables_wrapper .dataTables_filter input { width: 100% !important; margin: 0 !important; min-height: var(--oam-touch); border-radius: 12px; background: var(--oam-surface); }
html.oam.oam-portal .dataTables_wrapper .dataTables_info { float: none; text-align: center; font-size: 13px; color: var(--oam-muted); padding: 8px 0 0; }
html.oam.oam-portal .dataTables_wrapper .dataTables_paginate { float: none; display: flex; justify-content: center; padding: 6px 0 4px; }
html.oam.oam-portal .dataTables_wrapper .dataTables_paginate .paginate_button > a { min-width: var(--oam-touch); min-height: var(--oam-touch); display: inline-flex; align-items: center; justify-content: center; }
html.oam.oam-portal .dataTables_wrapper .dataTables_paginate .paginate_button { min-width: var(--oam-touch); min-height: var(--oam-touch); display: inline-flex; align-items: center; justify-content: center; }
html.oam.oam-portal table.oam-cards > tbody > tr { background: var(--oam-surface); }
html.oam.oam-portal table.oam-cards > tbody > tr > td.dataTables_empty { display: block; text-align: center; padding: 28px 12px !important; color: var(--oam-muted); }

/* ===================================================================== 8. PROYECTO */
html.oam.oam-portal .project-heading, html.oam.oam-portal #content h2.project-heading { font-size: 22px !important; line-height: 1.2; }
html.oam.oam-portal .project-tabs, html.oam.oam-portal #content .nav-tabs { margin-left: -14px; margin-right: -14px; padding: 0 10px; }
html.oam.oam-portal #content .nav-tabs .nav-link, html.oam.oam-portal #content .nav-tabs > li > a { white-space: nowrap; }
html.oam.oam-portal .gantt-container, html.oam.oam-portal #gantt { overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; }
html.oam.oam-portal .project-overview-progress canvas, html.oam.oam-portal .project-progress canvas { max-width: 100%; height: auto; }

/* Calendario del portal: sin alto fijo (el panel recorta con overflow:hidden) */
html.oam.oam-portal #calendar .fc-scroller, html.oam.oam-portal .fc .fc-scroller { height: auto !important; overflow: visible !important; }
html.oam.oam-portal .fc .fc-day-grid-container, html.oam.oam-portal .fc .fc-view-harness { height: auto !important; }
html.oam.oam-portal .fc .fc-toolbar { flex-wrap: wrap; gap: 8px; }

/* ===================================================================== 9. TICKETS */
html.oam.oam-portal .single-ticket-project-area, html.oam.oam-portal .ticket-info { margin-bottom: 12px; }
html.oam.oam-portal #content .ticket-reply, html.oam.oam-portal #content .ticket-thread .panel-body { word-break: break-word; }
html.oam.oam-portal #content .ticket-reply img { max-width: 100%; height: auto; }

/* ===================================================================== 10. DOCUMENTOS (factura / cotizacion / propuesta en linea) */
html.oam.oam-portal #content :is(.invoice-html-wrapper, .estimate-html-wrapper, .proposal-wrapper, .preview-sticky-header) { max-width: 100%; }
html.oam.oam-portal #content .table-responsive:has(> table.items) { margin: 0 -14px; padding: 0 14px; }
html.oam.oam-portal #content :is(.invoice-html-status, .estimate-html-status) { margin-top: 6px; }
html.oam.oam-portal #content :is(.preview-sticky-header, .invoice-html-actions) { position: static !important; }

/* ===================================================================== 11. PERFIL Y FORMULARIOS */
html.oam.oam-portal #content form .row > [class*="col-md-"], html.oam.oam-portal #content form .row > [class*="col-sm-"] { width: 100%; flex: 0 0 100%; max-width: 100%; }
html.oam.oam-portal #content .form-group, html.oam.oam-portal #content .mb-3 { margin-bottom: 14px; }
html.oam.oam-portal #content label.control-label, html.oam.oam-portal #content .form-label { font-weight: 600; font-size: 14px; color: var(--oam-ink-2); margin-bottom: 6px; }
html.oam.oam-portal #content .form-control { height: auto !important; min-height: var(--oam-touch); border-radius: 12px !important; }
html.oam.oam-portal #content textarea.form-control { min-height: 110px; }
html.oam.oam-portal #content :is(button[type=submit], input[type=submit]).btn:not(.btn-xs):not(.btn-sm) { width: 100%; min-height: 48px; }
html.oam.oam-portal .bootstrap-select.form-control { border: 0 !important; padding: 0 !important; height: auto !important; background: transparent !important; box-shadow: none !important; }
html.oam.oam-portal .bootstrap-select > .dropdown-toggle { min-height: var(--oam-touch); border-radius: 12px !important; font-size: var(--oam-font-input); }
html.oam.oam-portal img.client-profile-image-thumb { max-width: 96px; border-radius: 50%; }
html.oam.oam-portal #content .checkbox label, html.oam.oam-portal #content .radio label { min-height: 32px; display: inline-flex; align-items: center; }

/* ===================================================================== 12. LOGIN / REGISTRO / CONTRASENA (login.php fija margenes con !important) */
html.oam.oam-portal body:has(.authentication-form-wrapper) { margin-top: 0 !important; padding-top: calc(var(--oam-safe-t) + 28px) !important; padding-bottom: calc(var(--oam-safe-b) + 24px) !important; min-height: 100dvh; height: auto !important; background: var(--oam-bg) !important; }
html.oam.oam-portal:has(.authentication-form-wrapper) { margin-top: 0 !important; height: auto !important; }
html.oam.oam-portal body:has(.authentication-form-wrapper) .authentication-form-wrapper { padding: 0 calc(16px + var(--oam-safe-r)) 0 calc(16px + var(--oam-safe-l)) !important; }
html.oam.oam-portal body:has(.authentication-form-wrapper) .company-logo { margin-bottom: 22px !important; }
html.oam.oam-portal body:has(.authentication-form-wrapper) .company-logo img { max-width: 200px !important; }
html.oam.oam-portal body:has(.authentication-form-wrapper) .login-box-container { padding: 24px 20px !important; border-radius: var(--oam-radius-lg) !important; border: 0 !important; box-shadow: var(--oam-shadow-2) !important; }
html.oam.oam-portal body:has(.authentication-form-wrapper) .form-control { height: 50px !important; border-radius: 12px !important; }
html.oam.oam-portal body:has(.authentication-form-wrapper) .btn-primary { height: 52px !important; font-size: 17px !important; margin-top: 8px !important; background-color: var(--oam-primary) !important; border-radius: 14px !important; }
html.oam.oam-portal body:has(.authentication-form-wrapper) .tw-mt-8 { margin-top: 18px; }
html.oam.oam-portal .authentication-form-wrapper .login-form a.text-muted { display: inline-flex; align-items: center; justify-content: center; min-height: var(--oam-touch); padding: 0 12px; }

/* ===================================================================== 13. PIE Y AVISOS */
/* Con sesion iniciada el portal es una app: el pie de sitio web (redes, formulario, contacto) sobra; la cuenta, ayuda y legales viven en "Mas". */
html.oam.oam-portal:is(.oamp-tabs, .oamp-solo) body.customers > footer,
html.oam.oam-portal:is(.oamp-tabs, .oamp-solo) body.customers footer.footer,
html.oam.oam-portal:is(.oamp-tabs, .oamp-solo) .footer-premium,
html.oam.oam-portal:is(.oamp-tabs, .oamp-solo) #footer-back-to-top { display: none !important; }
/* Aviso de cookies: tarjeta sobre la barra de pestanas, no encima del contenido a media pantalla */
html.oam.oam-portal :is(#cookie-consent-banner, #cookie-consent, .cookie-consent, .cookies-banner, #cookie-banner, .cookie-banner, #gdpr-cookie-message, .gdpr-cookie-notice) {
    left: 10px !important; right: 10px !important; width: auto !important; max-width: none !important;
    bottom: calc(var(--oam-bottom) + 10px) !important; top: auto !important;
    border-radius: var(--oam-radius) !important; box-shadow: var(--oam-shadow-2) !important;
    padding: 14px 16px !important; font-size: 14px !important;
}
html.oam.oam-portal:not(.oamp-tabs) :is(#cookie-consent-banner, #cookie-consent, .cookie-consent, .cookies-banner, #cookie-banner, .cookie-banner, #gdpr-cookie-message, .gdpr-cookie-notice) { bottom: calc(var(--oam-safe-b) + 10px) !important; }
html.oam.oam-portal #cookie-consent-banner { flex-direction: column !important; align-items: stretch !important; gap: 10px !important; z-index: 1040 !important; }
html.oam.oam-portal #cookie-consent-banner :is(.cookie-text, .cookie-content, p) { font-size: 14px !important; line-height: 1.4 !important; text-align: left !important; margin: 0 !important; }
html.oam.oam-portal #cookie-consent-banner .cookie-btn { min-height: var(--oam-touch) !important; padding: 10px 16px !important; font-size: 15px !important; border-radius: 12px !important; margin: 0 !important; }
html.oam.oam-portal.oam-locked #cookie-consent-banner { display: none !important; }
/* Alertas del portal bajo la barra superior */
html.oam.oam-portal #content > .container:first-child .alert { margin: 8px 0; border-radius: var(--oam-radius-sm); }
