/* ==============================================
   MOBILE RESPONSIVE IMPROVEMENTS
   Mejoras de responsive para dashboard y pantallas internas
================================================= */

/* Sidebar Mobile Toggle */
@media (max-width: 991px) {
    /* Ocultar sidebar por defecto en móviles */
    #sidebar_left {
        position: fixed !important;
        left: -250px !important;
        z-index: 1050 !important;
        transition: left 0.3s ease !important;
        height: 100vh !important;
        overflow-y: auto !important;
        box-shadow: 2px 0 10px rgba(0, 0, 0, 0.3) !important;
        top: 0 !important;
        width: 250px !important;
    }
    
    /* Mostrar sidebar cuando está abierto */
    body.sidebar-open #sidebar_left {
        left: 0 !important;
    }
    
    /* Asegurar que el content wrapper no tenga margen en móviles */
    #content_wrapper {
        margin-left: 0 !important;
        position: relative !important;
        width: 100% !important;
        left: 0 !important;
        transition: none !important;
    }
    
    body.sidebar-open #content_wrapper {
        margin-left: 0 !important;
        left: 0 !important;
        width: 100% !important;
    }
    
    /* Asegurar que el contenido no se desplace */
    #content {
        position: relative;
        width: 100%;
        margin: 0;
        padding: 15px 8px 40px 11px;
    }
    
    body.sidebar-open #content {
        position: relative;
        left: 0;
        width: 100%;
    }
    
    /* Overlay oscuro */
    .sidebar-overlay {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0, 0, 0, 0.5);
        z-index: 1049;
        display: none;
        opacity: 0;
        transition: opacity 0.3s ease;
    }
    
    body.sidebar-open .sidebar-overlay {
        display: block;
        opacity: 1;
    }
    
    /* Botón hamburguesa */
    .mobile-menu-toggle {
        display: inline-block !important;
        background: transparent !important;
        border: none !important;
        color: #fff !important;
        font-size: 24px !important;
        padding: 12px 15px !important;
        cursor: pointer !important;
        outline: none !important;
        vertical-align: middle;
        line-height: 1;
        margin-left: 5px;
        z-index: 1052;
        position: relative;
    }
    
    .mobile-menu-toggle:hover,
    .mobile-menu-toggle:focus,
    .mobile-menu-toggle:active {
        color: #fff !important;
        background: rgba(255, 255, 255, 0.1) !important;
        outline: none !important;
    }
    
    .mobile-menu-toggle .ad-lines {
        display: inline-block;
        vertical-align: middle;
    }
    
    /* Asegurar que el botón sea visible */
    .visible-xs.visible-sm.mobile-menu-toggle,
    .mobile-menu-toggle.visible-xs.visible-sm {
        display: inline-block !important;
    }
    
    .navbar-branding {
        min-width: 60px;
        display: flex;
        align-items: center;
        flex-wrap: nowrap;
    }
    
    /* Asegurar que el logo sea visible en móviles */
    .navbar-brand {
        display: inline-block !important;
        padding: 8px 15px !important;
        visibility: visible !important;
        opacity: 1 !important;
        height: auto !important;
    }
    
    .navbar-brand .logo,
    .navbar-brand img.logo {
        max-height: 35px !important;
        width: auto !important;
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }
    
    /* Forzar visibilidad del logo en móviles */
    @media (max-width: 991px) {
        /* Override cualquier regla del tema que oculte el logo */
        .navbar-brand,
        .navbar-brand img,
        .navbar-brand .logo,
        a.navbar-brand,
        a.navbar-brand img,
        .navbar-branding .navbar-brand,
        .navbar-branding .navbar-brand img {
            display: inline-block !important;
            visibility: visible !important;
            opacity: 1 !important;
            height: auto !important;
            max-height: 35px !important;
            width: auto !important;
        }
        
        /* Asegurar que el navbar-branding muestre el logo */
        .navbar-branding {
            display: flex !important;
            align-items: center;
            min-width: auto;
        }
        
        .navbar-branding .navbar-brand {
            display: inline-block !important;
            visibility: visible !important;
            padding: 8px 15px !important;
        }
        
        /* Override reglas específicas del tema que ocultan el logo */
        body.sb-l-m .navbar-branding .navbar-brand,
        body.sb-l-c .navbar-branding .navbar-brand,
        body.sb-l-o .navbar-branding .navbar-brand,
        body.sb-l-m .navbar-brand,
        body.sb-l-c .navbar-brand,
        body.sb-l-o .navbar-brand {
            display: inline-block !important;
            visibility: visible !important;
            opacity: 1 !important;
        }
        
        /* Asegurar que el navbar-branding tenga espacio para el logo */
        body.sb-l-m .navbar-branding,
        body.sb-l-c .navbar-branding {
            width: auto !important;
            min-width: 150px;
        }
        
        /* Si hay clases que ocultan, forzar visibilidad */
        .navbar-brand.hidden,
        .navbar-brand.hidden-xs,
        .navbar-brand.hidden-sm {
            display: inline-block !important;
            visibility: visible !important;
        }
    }
    
    /* Asegurar que el sidebar esté por encima de todo en móviles */
    body.sidebar-open #sidebar_left {
        z-index: 1051 !important;
    }
    
    /* Prevenir scroll del body cuando el sidebar está abierto */
    body.sidebar-open {
        overflow: hidden !important;
    }
    
    /* IMPORTANTE: El contenido NO debe moverse cuando el sidebar se abre */
    body.sidebar-open #content_wrapper,
    body.sidebar-open #content,
    body.sidebar-open .tray,
    body.sidebar-open .panel {
        position: relative !important;
        left: 0 !important;
        margin-left: 0 !important;
        transform: none !important;
        width: 100% !important;
    }
}

/* Dashboard Panels */
@media (max-width: 767px) {
    .panel-tile {
        margin-bottom: 15px;
    }
    
    .panel-tile .panel-body h1 {
        font-size: 24px !important;
    }
    
    .panel-tile .panel-body h6 {
        font-size: 12px !important;
    }
}

/* Tables Responsive */
@media (max-width: 767px) {
    .table-responsive {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    
    .table {
        font-size: 12px;
        min-width: 600px;
    }
    
    .table th,
    .table td {
        padding: 8px 5px;
        white-space: nowrap;
    }
    
    .table thead th {
        font-size: 11px;
    }
    
    /* Panel tabs en móvil */
    .panel-tabs {
        flex-wrap: wrap;
    }
    
    .panel-tabs li {
        flex: 1 1 auto;
        min-width: 100px;
    }
    
    .panel-tabs li a {
        padding: 10px 8px;
        font-size: 12px;
        text-align: center;
    }
}

/* Navbar Mobile */
@media (max-width: 767px) {
    .navbar {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        z-index: 1030 !important;
        width: 100% !important;
        margin: 0 !important;
        min-height: 50px;
        height: auto;
    }
    
    .navbar.navbar-fixed-top {
        position: fixed !important;
        top: 0 !important;
    }
    
    .navbar-nav {
        margin: 0;
    }
    
    .navbar-nav > li > a {
        padding: 10px 15px;
    }
    
    .navbar-right {
        float: right !important;
    }
    
    .navbar-brand {
        padding: 8px 15px !important;
        display: inline-block !important;
        height: auto;
        line-height: 1;
        max-width: 150px;
    }
    
    .navbar-brand img.logo {
        max-height: 35px !important;
        width: auto !important;
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }
    
    /* Asegurar que el navbar-branding muestre el logo */
    .navbar-branding {
        display: flex !important;
        align-items: center;
        flex: 0 0 auto;
        min-width: auto;
        max-width: 200px;
    }
    
    .dropdown-menu {
        position: absolute;
        right: 0;
        left: auto;
    }
    
    /* Ajustar el body y main para compensar el navbar fijo */
    body {
        padding-top: 50px !important;
    }
    
    #main {
        padding-top: 0;
        margin-top: 0;
    }
    
    #content_wrapper {
        padding-top: 0 !important;
        margin-top: 0 !important;
        margin-left: 0 !important;
        width: 100% !important;
        position: relative !important;
    }
    
    /* Asegurar que el topbar esté debajo del navbar */
    #topbar {
        margin-top: 50px !important;
        position: relative;
        width: 100%;
    }
    
    /* Cuando el topbar está fijo (affix) */
    #topbar.affix {
        position: fixed !important;
        top: 50px !important;
        left: 0 !important;
        right: 0 !important;
        z-index: 1020 !important;
        margin-left: 0 !important;
        width: 100% !important;
        margin-top: 0 !important;
    }
    
    /* Override reglas del tema para móviles - sidebar no afecta al topbar */
    body.sb-l-o #topbar.affix,
    body.sb-l-m #topbar.affix,
    body.sb-l-c #topbar.affix {
        margin-left: 0 !important;
        width: 100% !important;
        left: 0 !important;
        right: 0 !important;
    }
    
    /* Ajustar contenido cuando topbar está fijo - IMPORTANTE */
    /* El contenido necesita padding para no quedar oculto bajo el topbar fijo */
    #topbar.affix + #content,
    #topbar.affix ~ #content {
        margin-top: 0 !important;
        padding-top: 15px !important;
    }
    
    /* Si el topbar es alt (más alto), más padding */
    #topbar.affix.alt + #content,
    #topbar.affix.alt ~ #content {
        margin-top: 0 !important;
        padding-top: 20px !important;
    }
    
    /* Asegurar que el contenido no quede oculto - regla general */
    #content {
        padding-top: 15px !important;
        margin-top: 0 !important;
    }
    
    /* Si hay topbar fijo, el contenido necesita más espacio */
    body #topbar.affix ~ #content_wrapper #content {
        padding-top: 15px !important;
    }
    
    /* Asegurar que content_wrapper no tenga margin que oculte contenido */
    #content_wrapper {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }
}

/* Modals Mobile */
@media (max-width: 767px) {
    .modal-dialog {
        margin: 10px;
        width: calc(100% - 20px);
    }
    
    .modal-content {
        border-radius: 4px;
    }
    
    .modal-header {
        padding: 15px;
    }
    
    .modal-body {
        padding: 15px;
        font-size: 14px;
    }
    
    .modal-footer {
        padding: 10px 15px;
    }
    
    .modal-footer .btn {
        margin-bottom: 5px;
        width: 100%;
    }
    
    .modal-footer .btn.pull-left {
        float: none !important;
    }
}

/* Content Padding Mobile */
@media (max-width: 767px) {
    /* Padding base del contenido */
    #content {
        padding: 15px 5px 30px 5px !important;
        margin-top: 0 !important;
    }
    
    /* Si hay topbar, el padding superior ya está ajustado arriba */
    /* Asegurar que el contenido tenga suficiente espacio */
    #topbar + #content,
    #topbar ~ #content {
        padding-top: 15px !important;
    }
    
    #topbar.affix + #content,
    #topbar.affix ~ #content {
        padding-top: 15px !important;
    }
    
    .tray {
        padding: 10px;
    }
    
    .panel {
        margin-bottom: 15px;
    }
    
    .panel-heading {
        padding: 10px 15px;
    }
    
    .panel-body {
        padding: 15px;
    }
}

/* Forms Mobile */
@media (max-width: 767px) {
    .form-group {
        margin-bottom: 15px;
    }
    
    .form-control {
        font-size: 16px; /* Evita zoom en iOS */
    }
    
    .btn {
        padding: 8px 12px;
        font-size: 14px;
    }
    
    .btn-group {
        display: flex;
        flex-wrap: wrap;
    }
    
    .btn-group .btn {
        flex: 1 1 auto;
        margin-bottom: 5px;
    }
}

/* Breadcrumb Mobile */
@media (max-width: 767px) {
    #topbar {
        padding: 10px 15px;
    }
    
    #topbar .btn {
        padding: 6px 12px;
        font-size: 12px;
        margin-bottom: 5px;
    }
    
    .topbar-right {
        text-align: left;
        margin-top: 10px;
    }
    
    .topbar-right .btn {
        display: inline-block;
        margin-right: 5px;
        margin-bottom: 5px;
    }
}

/* Labels and Badges Mobile */
@media (max-width: 767px) {
    .label,
    .badge {
        font-size: 10px;
        padding: 2px 6px;
    }
    
    .btn-xs {
        padding: 2px 6px;
        font-size: 10px;
    }
}

/* Pagination Mobile */
@media (max-width: 767px) {
    .pagination {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
    }
    
    .pagination > li {
        margin: 2px;
    }
    
    .pagination > li > a,
    .pagination > li > span {
        padding: 6px 10px;
        font-size: 12px;
    }
}

/* Tabs Mobile */
@media (max-width: 767px) {
    .nav-tabs {
        display: flex;
        flex-wrap: wrap;
        border-bottom: 1px solid #ddd;
    }
    
    .nav-tabs > li {
        flex: 1 1 auto;
        text-align: center;
    }
    
    .nav-tabs > li > a {
        padding: 10px 8px;
        font-size: 12px;
        white-space: nowrap;
    }
    
    .tab-content {
        padding: 15px 0;
    }
}

/* Utilities */
@media (max-width: 767px) {
    .text-right {
        text-align: left !important;
    }
    
    .pull-right {
        float: none !important;
    }
    
    .pull-left {
        float: none !important;
    }
    
    .hidden-mobile {
        display: none !important;
    }
}

/* Sidebar Menu Mobile */
@media (max-width: 991px) {
    .sidebar-menu {
        padding: 0;
    }
    
    .sidebar-menu > li > a {
        padding: 12px 15px;
    }
    
    .sidebar-menu .sidebar-title {
        font-size: 14px;
    }
    
    .sidebar-menu .nav.sub-nav {
        padding-left: 0;
    }
    
    .sidebar-menu .nav.sub-nav > li > a {
        padding: 10px 15px 10px 40px;
    }
}

/* Panel Tabs Mobile */
@media (max-width: 767px) {
    .panel-tabs-left {
        display: flex;
        flex-direction: row;
        border-bottom: 1px solid #ddd;
    }
    
    .panel-tabs-left > li {
        flex: 1;
    }
    
    .panel-tabs-left > li > a {
        border-right: 1px solid #ddd;
        border-bottom: none;
        text-align: center;
    }
    
    .panel-tabs-left > li:last-child > a {
        border-right: none;
    }
}

/* Fix para contenido que se sale en móvil */
@media (max-width: 767px) {
    * {
        max-width: 100%;
    }
    
    img {
        height: auto;
        max-width: 100%;
    }
    
    table {
        max-width: 100%;
    }
}

/* Panel Menu Mobile */
@media (max-width: 767px) {
    .panel-menu {
        padding: 10px 15px;
    }
    
    .panel-menu input {
        width: 100%;
        font-size: 16px; /* Evita zoom en iOS */
    }
}

/* Panel Title Mobile */
@media (max-width: 767px) {
    .panel-title.hidden-xs {
        display: block !important;
        font-size: 16px;
        padding: 10px 15px;
    }
    
    .panel-title img {
        max-width: 20px;
        margin-right: 8px;
    }
}

/* Footable Tables Mobile */
@media (max-width: 767px) {
    .footable {
        font-size: 12px;
    }
    
    .footable thead th {
        font-size: 11px;
        padding: 8px 5px;
    }
    
    .footable tbody td {
        padding: 8px 5px;
        word-break: break-word;
    }
    
    /* Ocultar algunas columnas menos importantes en móvil */
    .footable.breakpoint > tbody > tr > td > span.footable-toggle {
        display: inline-block;
        margin-right: 5px;
    }
}

/* Forms and Inputs Mobile */
@media (max-width: 767px) {
    .form-horizontal .control-label {
        text-align: left;
        margin-bottom: 5px;
    }
    
    .form-horizontal .form-group {
        margin-left: 0;
        margin-right: 0;
    }
    
    .input-group {
        width: 100%;
        display: flex;
        flex-direction: column;
    }
    
    .input-group-addon {
        width: 100%;
        text-align: left;
        border-radius: 4px 4px 0 0;
    }
    
    .input-group .form-control {
        border-radius: 0 0 4px 4px;
    }
}

/* Buttons Mobile */
@media (max-width: 767px) {
    .btn-group-vertical {
        width: 100%;
    }
    
    .btn-group-vertical > .btn {
        width: 100%;
        margin-bottom: 5px;
    }
    
    .btn-toolbar {
        display: flex;
        flex-direction: column;
    }
    
    .btn-toolbar > .btn-group {
        width: 100%;
        margin-bottom: 5px;
    }
}

/* Alerts Mobile */
@media (max-width: 767px) {
    .alert {
        padding: 10px 15px;
        font-size: 14px;
    }
    
    .alert .close {
        font-size: 20px;
        padding: 10px 15px;
    }
}

/* Dropdowns Mobile */
@media (max-width: 767px) {
    .dropdown-menu {
        max-width: calc(100vw - 20px);
        left: auto !important;
        right: 10px !important;
    }
    
    .dropdown-menu > li > a {
        padding: 10px 15px;
        white-space: normal;
        word-wrap: break-word;
    }
}

/* Cards and Panels Mobile */
@media (max-width: 767px) {
    .card,
    .panel {
        border-radius: 4px;
        margin-bottom: 15px;
    }
    
    .panel-heading {
        border-radius: 4px 4px 0 0;
    }
    
    .panel-footer {
        border-radius: 0 0 4px 4px;
    }
}

/* Grid System Mobile */
@media (max-width: 767px) {
    [class*="col-"] {
        margin-bottom: 15px;
    }
    
    .row {
        margin-left: -5px;
        margin-right: -5px;
    }
    
    .row > [class*="col-"] {
        padding-left: 5px;
        padding-right: 5px;
    }
    
    /* Forzar columnas a apilarse en móviles */
    .col-md-6,
    .col-md-4,
    .col-md-3,
    .col-md-8,
    .col-md-9,
    .col-md-12 {
        width: 100% !important;
        float: none !important;
    }
    
    .col-sm-6,
    .col-sm-4,
    .col-sm-3 {
        width: 100% !important;
        float: none !important;
    }
    
    /* Columnas que deben mantenerse en móvil */
    .col-xs-6 {
        width: 50% !important;
    }
    
    .col-xs-4 {
        width: 33.333333% !important;
    }
    
    .col-xs-3 {
        width: 25% !important;
    }
    
    .col-xs-12 {
        width: 100% !important;
    }
}

/* Text Utilities Mobile */
@media (max-width: 767px) {
    .text-center-mobile {
        text-align: center !important;
    }
    
    .text-left-mobile {
        text-align: left !important;
    }
    
    .hidden-mobile {
        display: none !important;
    }
    
    .visible-mobile {
        display: block !important;
    }
    
    .visible-mobile-inline {
        display: inline !important;
    }
    
    .visible-mobile-inline-block {
        display: inline-block !important;
    }
}

/* Spacing Mobile */
@media (max-width: 767px) {
    .mt-mobile-0 {
        margin-top: 0 !important;
    }
    
    .mb-mobile-15 {
        margin-bottom: 15px !important;
    }
    
    .p-mobile-10 {
        padding: 10px !important;
    }
}

/* Wizard Forms Mobile */
@media (max-width: 767px) {
    .wizard-container {
        padding: 10px;
    }
    
    .wizard-card {
        margin: 0;
        padding: 15px;
    }
    
    .wizard-navigation ul {
        flex-wrap: wrap;
        justify-content: center;
    }
    
    .wizard-navigation ul li {
        flex: 1 1 auto;
        min-width: 80px;
    }
    
    .wizard-navigation ul li a {
        padding: 8px 5px;
        font-size: 11px;
    }
    
    .col-sm-10.col-sm-offset-1 {
        margin-left: 0 !important;
        width: 100% !important;
        padding: 0 10px;
    }
}

/* Charts and Graphs Mobile */
@media (max-width: 767px) {
    #piechartIndex,
    .chart-container,
    [id*="chart"],
    [id*="Chart"] {
        width: 100% !important;
        min-height: 250px !important;
        overflow: hidden;
    }
    
    /* Google Charts responsive */
    .google-visualization-chart {
        width: 100% !important;
    }
}

/* Task Cards Mobile */
@media (max-width: 767px) {
    .task-card {
        width: 100% !important;
        margin-bottom: 15px;
    }
    
    .task-card .btn-group {
        width: 100%;
        display: flex;
        flex-direction: column;
    }
    
    .task-card .btn-group .btn {
        width: 100%;
        margin-bottom: 5px;
    }
}

/* SEO Audit Mobile */
@media (max-width: 767px) {
    .container-fluid {
        padding-left: 10px;
        padding-right: 10px;
    }
    
    .container-fluid .row {
        margin-left: -5px;
        margin-right: -5px;
    }
    
    .container-fluid .row > [class*="col-"] {
        padding-left: 5px;
        padding-right: 5px;
    }
}

/* Stats Grid Mobile */
@media (max-width: 767px) {
    .stats-grid,
    [class*="stats-"] {
        grid-template-columns: 1fr !important;
        gap: 10px;
    }
    
    .stat-card,
    [class*="stat-"] {
        width: 100% !important;
        margin-bottom: 10px;
    }
}

/* Filters Mobile */
@media (max-width: 767px) {
    .filters-form,
    [class*="filter"] {
        flex-direction: column;
    }
    
    .filter-group,
    [class*="filter-group"] {
        width: 100% !important;
        margin-bottom: 10px;
    }
    
    .filter-group select,
    .filter-group input {
        width: 100% !important;
    }
}

/* Action Buttons Mobile */
@media (max-width: 767px) {
    .action-buttons,
    [class*="action-"] {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }
    
    .action-buttons .btn,
    [class*="action-"] .btn {
        width: 100%;
        margin: 0;
    }
}

/* Header Sections Mobile */
@media (max-width: 767px) {
    .page-header,
    [class*="page-header"] {
        padding: 15px 10px;
    }
    
    .page-header h1,
    .page-header h2 {
        font-size: 20px;
        margin-bottom: 10px;
    }
    
    .page-header .btn {
        width: 100%;
        margin-top: 10px;
    }
}

/* Progress Bars Mobile */
@media (max-width: 767px) {
    .progress {
        height: 20px;
        margin-bottom: 10px;
    }
    
    .progress-bar {
        font-size: 11px;
        line-height: 20px;
    }
}

/* Badges and Labels Mobile */
@media (max-width: 767px) {
    .badge,
    .label {
        font-size: 10px;
        padding: 3px 6px;
        display: inline-block;
    }
}

/* Tooltips Mobile */
@media (max-width: 767px) {
    .tooltip {
        font-size: 12px;
        max-width: 200px;
    }
}

/* Images Mobile */
@media (max-width: 767px) {
    img {
        max-width: 100% !important;
        height: auto !important;
    }
    
    .logo,
    .logo-img {
        max-height: 40px;
    }
}

/* Fix overflow issues */
@media (max-width: 767px) {
    body {
        overflow-x: hidden;
    }
    
    .container,
    .container-fluid {
        overflow-x: hidden;
    }
    
    * {
        max-width: 100%;
        box-sizing: border-box;
    }
}

/* Print styles for mobile (optional) */
@media (max-width: 767px) {
    .no-print,
    .hidden-print {
        display: none !important;
    }
}

/* Navigation Bars Mobile */
@media (max-width: 767px) {
    .barra,
    [class*="barra"] {
        display: flex;
        flex-wrap: nowrap;
        gap: 3px;
        padding: 8px 5px;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        white-space: nowrap;
        -ms-overflow-style: -ms-autohiding-scrollbar;
        scrollbar-width: thin;
    }
    
    .barra::-webkit-scrollbar {
        height: 4px;
    }
    
    .barra::-webkit-scrollbar-thumb {
        background: #ccc;
        border-radius: 2px;
    }
    
    .barra .btn,
    .barra a {
        flex: 0 0 auto;
        min-width: auto;
        padding: 8px 10px;
        font-size: 10px;
        text-align: center;
        margin: 0 2px;
        white-space: nowrap;
        display: inline-block;
        border-radius: 4px;
    }
    
    .barra .btn-primary,
    .barra .btn-selected {
        padding: 8px 10px;
        font-size: 10px;
    }
    
    /* Mejorar legibilidad de botones largos */
    .barra a[href*="keywordResearch"],
    .barra a[href*="dashOnPage"],
    .barra a[href*="cannibalization"],
    .barra a[href*="seoAudit"] {
        font-size: 9px;
        padding: 8px 8px;
    }
    
    /* Botones muy largos - texto más pequeño */
    .barra .btn-primary,
    .barra .btn-selected {
        max-width: 120px;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    
    .selector {
        display: flex;
        flex-direction: column;
        gap: 10px;
        padding: 10px 5px;
    }
    
    .selector .col-md-6,
    .selector .col-md-2,
    .selector .col-md-9,
    .selector .col-md-1 {
        width: 100% !important;
        margin-bottom: 10px;
        padding: 0 5px;
    }
    
    .selector .btn,
    .selector .btn-transparent {
        width: 100%;
        padding: 10px;
        text-align: left;
    }
    
    .selector .proyecto {
        width: 100% !important;
        display: block;
        margin-bottom: 10px;
    }
    
    /* Dropdown del selector */
    .selector .dropdown-menu {
        position: absolute !important;
        left: 5px !important;
        right: 5px !important;
        width: calc(100% - 10px) !important;
        max-width: none !important;
        max-height: 60vh;
        overflow-y: auto;
    }
}

/* Button Groups Mobile */
@media (max-width: 767px) {
    .btn-group {
        display: flex;
        flex-direction: column;
        width: 100%;
    }
    
    .btn-group .btn {
        width: 100%;
        margin-bottom: 5px;
        border-radius: 4px !important;
    }
    
    .btn-group .btn:first-child {
        border-radius: 4px !important;
    }
    
    .btn-group .btn:last-child {
        border-radius: 4px !important;
    }
    
    .btn-group-vertical {
        width: 100%;
    }
}

/* Dropdowns Mobile */
@media (max-width: 767px) {
    .dropdown-menu {
        position: absolute !important;
        left: auto !important;
        right: 0 !important;
        max-width: calc(100vw - 20px);
        max-height: 70vh;
        overflow-y: auto;
    }
    
    .dropdown-menu.list-group {
        max-width: 100%;
    }
    
    .dropdown-menu .list-group-item {
        padding: 12px 15px;
        font-size: 14px;
    }
}

/* Miga (Breadcrumb) Mobile */
@media (max-width: 767px) {
    .miga {
        font-size: 12px;
        padding: 10px 5px;
        word-break: break-word;
    }
    
    .miga a {
        font-size: 12px;
    }
}

/* Full Width Buttons Mobile */
@media (max-width: 767px) {
    .btn.full,
    .btn-transparent.full {
        width: 100%;
        margin-bottom: 10px;
    }
}

/* Icons Mobile */
@media (max-width: 767px) {
    .icotask,
    [class*="ico"] {
        max-width: 16px;
        max-height: 16px;
    }
}

/* Col-md-1, col-md-2 adjustments */
@media (max-width: 767px) {
    .col-md-1,
    .col-md-2 {
        width: 100% !important;
        float: none !important;
        margin-bottom: 10px;
    }
}

/* Wizard Steps Mobile */
@media (max-width: 767px) {
    .wizard-navigation {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    
    .wizard-navigation ul {
        white-space: nowrap;
        display: flex;
        flex-wrap: nowrap;
    }
    
    .wizard-navigation ul li {
        flex-shrink: 0;
    }
}

/* Tab Content Mobile */
@media (max-width: 767px) {
    .tab-content {
        padding: 15px 5px;
    }
    
    .tab-pane {
        padding: 10px 0;
    }
}

/* Panel Menu Search Mobile */
@media (max-width: 767px) {
    .panel-menu input[type="text"] {
        width: 100%;
        font-size: 16px; /* Evita zoom en iOS */
        padding: 10px;
    }
}

/* Footer Menu Mobile */
@media (max-width: 767px) {
    .footer-menu {
        padding: 10px 5px;
    }
    
    .footer-menu .pagination {
        justify-content: center;
        flex-wrap: wrap;
    }
}

/* Stats Cards Mobile */
@media (max-width: 767px) {
    .panel-tile,
    [class*="tile"] {
        margin-bottom: 15px;
    }
    
    .panel-tile .panel-body {
        padding: 15px 10px;
    }
    
    .panel-tile h1 {
        font-size: 28px !important;
    }
    
    .panel-tile h6 {
        font-size: 12px !important;
    }
}

/* Responsive Images in Panels */
@media (max-width: 767px) {
    .panel img {
        max-width: 100%;
        height: auto;
    }
}

/* Text Alignment Mobile */
@media (max-width: 767px) {
    .text-right,
    .text-center {
        text-align: left !important;
    }
    
    .text-right-mobile {
        text-align: right !important;
    }
    
    .text-center-mobile {
        text-align: center !important;
    }
}

/* Margin and Padding Utilities Mobile */
@media (max-width: 767px) {
    .mb30,
    .mb20 {
        margin-bottom: 15px !important;
    }
    
    .mt30,
    .mt20 {
        margin-top: 15px !important;
    }
    
    .pn {
        padding: 10px !important;
    }
}

/* Max Height Mobile */
@media (max-width: 767px) {
    .max-hi {
        max-height: 300px;
        overflow-y: auto;
    }
}

/* Animation Performance Mobile */
@media (max-width: 767px) {
    * {
        -webkit-transform: translateZ(0);
        transform: translateZ(0);
    }
    
    .animated {
        animation-duration: 0.3s !important;
    }
}

/* Columnas específicas que necesitan ajustes */
@media (max-width: 767px) {
    .col-md-8,
    .col-md-10 {
        width: 100% !important;
        float: none !important;
    }
    
    .col-sm-10.col-sm-offset-1,
    .col-sm-offset-1 {
        margin-left: 0 !important;
        width: 100% !important;
        padding: 0 10px;
    }
    
    .col-sm-12 {
        width: 100% !important;
    }
}

/* Botones con pull-left/pull-right */
@media (max-width: 767px) {
    .pull-left,
    .pull-right {
        float: none !important;
        display: block;
        width: 100%;
        margin-bottom: 10px;
    }
    
    .pull-left .btn,
    .pull-right .btn {
        width: 100%;
    }
    
    .text-right {
        text-align: left !important;
    }
    
    .text-left {
        text-align: left !important;
    }
}

/* Formularios en modales */
@media (max-width: 767px) {
    .modal .form-group {
        margin-bottom: 15px;
    }
    
    .modal .col-md-6,
    .modal .col-md-12 {
        width: 100% !important;
        padding: 0 5px;
        margin-bottom: 15px;
    }
    
    .modal .col-md-6:last-child {
        margin-bottom: 0;
    }
    
    .modal .btn-block {
        width: 100%;
        margin-top: 10px;
    }
}

/* Textareas y inputs grandes */
@media (max-width: 767px) {
    textarea.form-control,
    textarea.summernote {
        width: 100% !important;
        min-height: 150px;
        font-size: 16px; /* Evita zoom en iOS */
    }
    
    .summernote {
        width: 100% !important;
    }
    
    input[type="text"],
    input[type="email"],
    input[type="password"],
    input[type="number"],
    select.form-control {
        font-size: 16px; /* Evita zoom en iOS */
        width: 100%;
    }
}

/* Paneles con múltiples columnas */
@media (max-width: 767px) {
    .panel-body .row {
        margin-left: -5px;
        margin-right: -5px;
    }
    
    .panel-body .row > [class*="col-"] {
        padding-left: 5px;
        padding-right: 5px;
        margin-bottom: 15px;
    }
}

/* Keywords y Rank Tracker */
@media (max-width: 767px) {
    .col-sm-4.col-xl-3,
    .col-sm-4.col-xl-4 {
        width: 100% !important;
        margin-bottom: 15px;
    }
    
    .col-md-2.pn {
        width: 100% !important;
        margin-bottom: 10px;
    }
    
    .col-md-8.pn {
        width: 100% !important;
        margin-bottom: 15px;
    }
}

/* Tablas anidadas */
@media (max-width: 767px) {
    table table {
        font-size: 11px;
    }
    
    table table td,
    table table th {
        padding: 5px 3px;
    }
}

/* Notas y métricas */
@media (max-width: 767px) {
    .nota2,
    [class*="nota"] {
        font-size: 14px;
        padding: 8px;
    }
    
    .blanco {
        padding: 10px !important;
    }
}

/* Botones transparentes */
@media (max-width: 767px) {
    .btn-transparent {
        width: 100%;
        margin-bottom: 10px;
        padding: 10px;
        text-align: center;
    }
    
    .btn-transparent.full {
        width: 100%;
    }
}

/* Dropdown persist */
@media (max-width: 767px) {
    .dropdown-persist {
        max-width: calc(100vw - 20px);
        max-height: 60vh;
        overflow-y: auto;
    }
    
    .dropdown-persist .col-md-3,
    .dropdown-persist .col-md-4,
    .dropdown-persist .col-md-6,
    .dropdown-persist .col-md-12 {
        width: 100% !important;
        margin-bottom: 15px;
    }
}

/* Wizard container */
@media (max-width: 767px) {
    .wizard-container .card {
        margin: 0;
        padding: 10px;
    }
    
    .wizard-container .wizard-header h2 {
        font-size: 18px;
    }
    
    .wizard-container .tab-content {
        padding: 15px 5px;
    }
    
    .wizard-footer {
        padding: 15px 5px;
    }
    
    .wizard-footer .btn {
        width: 100%;
        margin-bottom: 10px;
    }
    
    .wizard-footer .btn-previous,
    .wizard-footer .btn-next,
    .wizard-footer .btn-finish {
        width: 100%;
    }
}

/* Panel heading con imágenes */
@media (max-width: 767px) {
    .panel-heading img {
        max-width: 20px;
        max-height: 20px;
        margin-right: 5px;
    }
    
    .panel-title.hidden-xs {
        display: block !important;
        font-size: 14px;
    }
}

/* Métricas y estadísticas */
@media (max-width: 767px) {
    .mb30,
    .mb20 {
        margin-bottom: 15px !important;
    }
    
    .mt30,
    .mt20 {
        margin-top: 15px !important;
    }
    
    .spadding {
        padding: 10px !important;
    }
    
    .nop {
        padding: 5px !important;
    }
}

/* Enlaces y autoridad */
@media (max-width: 767px) {
    .panel-body table {
        width: 100%;
        font-size: 12px;
    }
    
    .panel-body table td {
        padding: 8px 5px;
        word-break: break-word;
    }
    
    .panel-body .pull-left {
        width: 100%;
        margin-bottom: 10px;
    }
    
    .panel-body .pull-left .btn {
        width: 100%;
        margin-bottom: 5px;
    }
}

/* Rank Tracker específico */
@media (max-width: 767px) {
    .panel-body h1 {
        font-size: 20px;
        word-break: break-word;
    }
    
    .panel-body h4 {
        font-size: 14px;
        word-break: break-word;
    }
}

/* Fix para elementos que se salen */
@media (max-width: 767px) {
    .pl20,
    .pr50 {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
    
    .paddinglat {
        padding: 15px 10px !important;
    }
}

/* Topbar específico - Mejoras completas */
@media (max-width: 767px) {
    #topbar {
        padding: 10px 5px !important;
        position: relative !important;
        margin-top: 50px !important;
        background: #fff;
        border-bottom: 1px solid #ddd;
        box-shadow: 0 2px 4px rgba(0,0,0,0.1);
        min-height: auto;
        width: 100%;
    }
    
    #topbar.affix {
        position: fixed !important;
        top: 50px !important;
        left: 0 !important;
        right: 0 !important;
        z-index: 1020 !important;
        margin-left: 0 !important;
        width: 100% !important;
        margin-top: 0 !important;
    }
    
    /* Override reglas del tema para móviles */
    body.sb-l-o #topbar.affix,
    body.sb-l-m #topbar.affix,
    body.sb-l-c #topbar.affix {
        margin-left: 0 !important;
        width: 100% !important;
        left: 0 !important;
        right: 0 !important;
    }
    
    /* Breadcrumb (miga) */
    #topbar .miga {
        font-size: 11px;
        padding: 8px 5px;
        margin-bottom: 10px;
        background: #f8f9fa;
        border-radius: 4px;
        word-break: break-word;
        line-height: 1.4;
    }
    
    #topbar .miga a {
        color: #0010ef;
        text-decoration: none;
        font-size: 11px;
    }
    
    #topbar .miga a:hover {
        text-decoration: underline;
    }
    
    /* Selector (dropdown de webs/proyectos) */
    #topbar .selector {
        display: flex;
        flex-direction: column;
        gap: 8px;
        padding: 0;
        margin-bottom: 10px;
    }
    
    #topbar .selector .col-md-6,
    #topbar .selector .col-md-2,
    #topbar .selector .col-md-9 {
        width: 100% !important;
        padding: 0 5px;
        margin-bottom: 8px;
    }
    
    #topbar .selector .proyecto {
        width: 100% !important;
        display: block;
        padding: 10px 12px;
        background: #f8f9fa;
        border: 1px solid #dee2e6;
        border-radius: 4px;
        text-align: left;
        font-size: 13px;
        color: #212529;
        text-decoration: none;
    }
    
    #topbar .selector .proyecto:hover,
    #topbar .selector .proyecto:focus {
        background: #e9ecef;
        border-color: #0010ef;
    }
    
    #topbar .selector .proyecto i {
        float: right;
        margin-top: 2px;
    }
    
    /* Botones Tareas, Notas, Informe */
    #topbar .selector .btn-transparent {
        width: 100% !important;
        padding: 10px 12px;
        margin: 0 0 8px 0;
        text-align: left;
        background: #fff;
        border: 1px solid #dee2e6;
        border-radius: 4px;
        font-size: 13px;
        color: #212529;
        display: flex;
        align-items: center;
        gap: 8px;
    }
    
    #topbar .selector .btn-transparent:hover {
        background: #f8f9fa;
        border-color: #0010ef;
        color: #0010ef;
    }
    
    #topbar .selector .btn-transparent .icotask,
    #topbar .selector .btn-transparent img {
        width: 18px;
        height: 18px;
        flex-shrink: 0;
    }
    
    /* Dropdown del selector */
    #topbar .selector .dropdown-menu {
        position: absolute !important;
        left: 5px !important;
        right: 5px !important;
        width: calc(100% - 10px) !important;
        max-width: none !important;
        max-height: 60vh;
        overflow-y: auto;
        margin-top: 5px;
        border-radius: 4px;
        box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    }
    
    #topbar .selector .dropdown-menu .col-md-3,
    #topbar .selector .dropdown-menu .col-md-4,
    #topbar .selector .dropdown-menu .col-md-6,
    #topbar .selector .dropdown-menu .col-md-12 {
        width: 100% !important;
        margin-bottom: 15px;
        padding: 0 10px;
    }
    
    /* Barra de navegación (botones de secciones) */
    #topbar .barra {
        display: flex;
        flex-wrap: nowrap;
        gap: 3px;
        padding: 8px 0;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        -ms-overflow-style: -ms-autohiding-scrollbar;
        scrollbar-width: thin;
        margin: 0;
    }
    
    #topbar .barra::-webkit-scrollbar {
        height: 4px;
    }
    
    #topbar .barra::-webkit-scrollbar-thumb {
        background: #ccc;
        border-radius: 2px;
    }
    
    #topbar .barra .btn,
    #topbar .barra a {
        flex: 0 0 auto;
        min-width: auto;
        padding: 8px 10px;
        font-size: 10px;
        text-align: center;
        margin: 0;
        white-space: nowrap;
        display: inline-block;
        border-radius: 4px;
        text-decoration: none;
    }
    
    #topbar .barra .btn-primary {
        background: #f8f9fa;
        border: 1px solid #dee2e6;
        color: #212529;
    }
    
    #topbar .barra .btn-selected {
        background: #0010ef;
        border: 1px solid #0010ef;
        color: #fff;
    }
    
    #topbar .barra .btn:hover {
        background: #e9ecef;
        border-color: #0010ef;
        color: #0010ef;
    }
    
    #topbar .barra .btn-selected:hover {
        background: #0010ef;
        color: #fff;
    }
    
    /* Ajustar contenido cuando topbar está fijo - CONSOLIDADO */
    /* El contenido necesita padding para no quedar oculto bajo navbar (50px) + topbar */
    #topbar.affix + #content,
    #topbar.affix ~ #content {
        margin-top: 0 !important;
        padding-top: 15px !important;
    }
    
    /* Si el topbar es alt (más alto), más padding */
    #topbar.affix.alt + #content,
    #topbar.affix.alt ~ #content {
        margin-top: 0 !important;
        padding-top: 20px !important;
    }
    
    /* Asegurar que content_wrapper no tenga margin que oculte contenido */
    body #content_wrapper {
        padding-top: 0 !important;
        margin-top: 0 !important;
    }
    
    /* Cuando el topbar está fijo, el contenido dentro del wrapper necesita espacio */
    #topbar.affix ~ #content_wrapper #content {
        margin-top: 0 !important;
        padding-top: 15px !important;
    }
    
    /* Si el topbar tiene clase alt (más alto), más padding */
    #topbar.affix.alt ~ #content_wrapper #content {
        padding-top: 20px !important;
    }
    
    /* Mejorar espaciado general del topbar */
    #topbar > * {
        margin-bottom: 8px;
    }
    
    #topbar > *:last-child {
        margin-bottom: 0;
    }
    
    /* Fix para elementos con clase pn (padding none) */
    #topbar .pn {
        padding: 0 !important;
    }
    
    #topbar .barra.pn {
        padding: 8px 0 !important;
    }
    
    /* Mejorar visibilidad de iconos en botones */
    #topbar .btn-transparent img,
    #topbar .btn-transparent .icotask {
        opacity: 0.7;
    }
    
    #topbar .btn-transparent:hover img,
    #topbar .btn-transparent:hover .icotask {
        opacity: 1;
    }
    
    /* Topbar left y right si existen */
    #topbar .topbar-left,
    #topbar .topbar-right {
        width: 100%;
        text-align: left;
        margin-bottom: 10px;
    }
    
    #topbar .topbar-right {
        text-align: left;
    }
    
    #topbar .topbar-right .btn {
        width: 100%;
        margin-bottom: 5px;
        display: block;
    }
}

/* Fix para overflow horizontal */
@media (max-width: 767px) {
    html, body {
        overflow-x: hidden;
        max-width: 100vw;
    }
    
    .container,
    .container-fluid,
    .tray,
    .tray-center {
        max-width: 100%;
        overflow-x: hidden;
    }
    
    * {
        max-width: 100%;
        box-sizing: border-box;
    }
}

/* Mejoras para gráficos y visualizaciones */
@media (max-width: 767px) {
    [id*="chart"],
    [id*="Chart"],
    .chart-container,
    .google-visualization-chart {
        width: 100% !important;
        min-height: 200px !important;
        overflow: hidden;
    }
    
    /* Asegurar que los gráficos de Google se redimensionen */
    .google-visualization-chart svg {
        max-width: 100% !important;
        height: auto !important;
    }
}

/* Mejoras para listas y menús */
@media (max-width: 767px) {
    .list-group-item {
        padding: 12px 10px;
        font-size: 14px;
    }
    
    .list-group-item a {
        word-break: break-word;
    }
    
    ul.sidebar-title {
        padding-left: 15px;
    }
}

/* Fix para elementos inline-block */
@media (max-width: 767px) {
    .inline,
    .inline-block {
        display: block !important;
        width: 100%;
    }
}

/* Mejoras adicionales para tablet (768px - 991px) */
@media (min-width: 768px) and (max-width: 991px) {
    /* Columnas que se pueden mantener en 2 columnas */
    .col-md-6 {
        width: 50% !important;
    }
    
    .col-md-4 {
        width: 50% !important;
    }
    
    .col-md-3 {
        width: 50% !important;
    }
    
    /* Tablas con scroll horizontal */
    .table-responsive {
        overflow-x: auto;
    }
    
    /* Sidebar ajustado para tablet */
    #sidebar_left {
        width: 200px !important;
    }
    
    body.sidebar-open #sidebar_left {
        left: 0 !important;
    }
}

/* Mejoras para pantallas muy pequeñas (menos de 480px) */
@media (max-width: 480px) {
    /* Fuentes más pequeñas */
    h1 {
        font-size: 20px !important;
    }
    
    h2 {
        font-size: 18px !important;
    }
    
    h3 {
        font-size: 16px !important;
    }
    
    h4 {
        font-size: 14px !important;
    }
    
    /* Botones más compactos */
    .btn {
        padding: 6px 10px;
        font-size: 12px;
    }
    
    .btn-lg {
        padding: 10px 15px;
        font-size: 14px;
    }
    
    /* Paneles más compactos */
    .panel-heading {
        padding: 8px 10px;
    }
    
    .panel-body {
        padding: 10px;
    }
    
    /* Navbar más compacto */
    .navbar {
        min-height: 45px;
    }
    
    .navbar-brand {
        padding: 5px 10px !important;
    }
    
    .navbar-brand img.logo {
        max-height: 30px !important;
    }
    
    /* Sidebar más estrecho */
    #sidebar_left {
        width: 220px !important;
    }
    
    body.sidebar-open #sidebar_left {
        left: 0 !important;
    }
    
    /* Menú barra más compacto */
    .barra .btn {
        padding: 6px 8px;
        font-size: 9px;
    }
}

/* Mejoras para orientación landscape en móviles */
@media (max-width: 767px) and (orientation: landscape) {
    .navbar {
        min-height: 40px;
    }
    
    .navbar-brand img.logo {
        max-height: 30px !important;
    }
    
    #sidebar_left {
        width: 200px !important;
    }
    
    /* Reducir altura de modales en landscape */
    .modal-dialog {
        max-height: 90vh;
        overflow-y: auto;
    }
}

/* Asegurar que los elementos no se superpongan */
@media (max-width: 767px) {
    .row {
        display: flex;
        flex-direction: column;
    }
    
    .row > [class*="col-"] {
        width: 100% !important;
        flex: 0 0 auto;
    }
    
    /* Excepciones para elementos que deben estar en línea */
    .row.inline-row {
        flex-direction: row;
        flex-wrap: wrap;
    }
}

/* Mejoras para accesibilidad táctil */
@media (max-width: 767px) {
    /* Áreas táctiles más grandes */
    a, button, .btn {
        min-height: 44px;
        min-width: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
    
    /* Inputs más grandes para facilitar el toque */
    input[type="text"],
    input[type="email"],
    input[type="password"],
    input[type="number"],
    select,
    textarea {
        min-height: 44px;
        padding: 10px 12px;
    }
    
    /* Links más fáciles de tocar */
    a {
        padding: 8px 0;
    }
}

/* Fix para elementos con position absolute/fixed */
@media (max-width: 767px) {
    [style*="position: absolute"],
    [style*="position:fixed"] {
        max-width: 100vw;
    }
}

/* Mejoras para elementos con width fijo */
@media (max-width: 767px) {
    [style*="width:"],
    [width] {
        max-width: 100% !important;
    }
    
    /* Excepciones para elementos pequeños */
    img[width],
    .icon,
    .ico,
    [class*="icon"] {
        max-width: 100%;
        height: auto;
    }
}

/* Mejoras para elementos con height fijo */
@media (max-width: 767px) {
    [style*="height:"],
    [height] {
        height: auto !important;
        max-height: 100vh;
    }
    
    /* Excepciones para elementos que necesitan altura fija */
    .navbar,
    #topbar {
        height: auto !important;
        min-height: 50px;
    }
}
