/*==============================================================================
 * CONSTRUINMUNIZA ERP - Neumorphism 2.0 Responsive Overrides
 * Complemento de neumorphism.css para diseño adaptativo
 *============================================================================*/

/* ==========================================================================
   DESKTOP LARGE (1400px+)
   ========================================================================== */
@media (min-width: 1400px) {
    .wrapper {
        padding: 10px 20px !important;
    }

    .kpi-value {
        font-size: 28px !important;
    }
}

/* ==========================================================================
   TABLET LANDSCAPE (992px - 1199px)
   ========================================================================== */
@media (max-width: 1199px) {
    :root {
        --nm-sidebar-width: 220px;
    }

    .wrapper {
        padding: 8px 14px !important;
    }

    .kpi-value {
        font-size: 24px !important;
    }

    .kpi-icon {
        font-size: 30px !important;
    }
}

/* ==========================================================================
   TABLET PORTRAIT (768px - 991px)
   ========================================================================== */
@media (max-width: 991px) {
    :root {
        --nm-sidebar-width: 240px;
    }

    /* Sidebar as overlay */
    aside {
        transform: translateX(-100%);
        transition: transform 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
        z-index: 1060 !important;
        box-shadow: none !important;
    }

    aside.nm-sidebar-open {
        transform: translateX(0) !important;
        box-shadow: 10px 0 30px rgba(0, 0, 0, 0.3) !important;
    }

    /* Forzar visibilidad del menú - scripts.js lo oculta con .hide() */
    aside.nm-sidebar-open #sidebar > ul {
        display: block !important;
    }

    #main-content {
        margin-left: 0 !important;
    }

    /* Sidebar overlay backdrop */
    .nm-sidebar-overlay {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0, 0, 0, 0.4);
        z-index: 1055;
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.3s ease;
        backdrop-filter: blur(2px);
    }

    .nm-sidebar-overlay.active {
        opacity: 1;
        pointer-events: auto;
    }

    /* Compact header */
    .header {
        height: 56px !important;
    }

    a.logo {
        width: 180px !important;
        height: 56px !important;
        background-size: 150px !important;
    }

    .top-nav {
        height: 56px;
    }

    .top-menu {
        height: 56px;
    }

    aside {
        top: 56px;
    }

    #main-content {
        margin-top: 56px !important;
    }

    .page-header {
        font-size: 16px !important;
    }

    .page-header i,
    .page-header .fa {
        width: 28px;
        height: 28px;
        font-size: 14px !important;
    }

    /* Tables scrollable */
    .divScrollList {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .table {
        min-width: 600px;
    }
}

/* ==========================================================================
   MOBILE LANDSCAPE / SMALL TABLET (576px - 767px)
   ========================================================================== */
@media (max-width: 767px) {
    .wrapper {
        padding: 8px 10px !important;
    }

    /* Header adjustments */
    .header {
        height: 52px !important;
    }

    a.logo {
        width: 150px !important;
        height: 52px !important;
        background-size: 130px !important;
    }

    .top-nav {
        height: 52px;
    }

    .top-menu {
        height: 52px;
    }

    .top-menu > li > a {
        padding: 8px 10px !important;
    }

    .username {
        display: none !important;
    }

    .profile-ava img {
        width: 28px !important;
        height: 28px !important;
    }

    aside {
        top: 52px;
        width: 260px !important;
    }

    #sidebar {
        width: 260px !important;
    }

    #main-content {
        margin-top: 52px !important;
        margin-left: 0 !important;
    }

    /* Sede switcher - mobile */
    .sede-switcher {
        margin-right: 4px !important;
    }

    .sede-switcher > a {
        padding: 4px 8px !important;
        gap: 5px !important;
    }

    .sede-switcher .sede-nombre {
        font-size: 9px !important;
        max-width: 80px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .sede-switcher > a > i {
        font-size: 12px;
    }

    /* Page header */
    .page-header {
        font-size: 15px !important;
        flex-wrap: wrap;
    }

    .page-header i,
    .page-header .fa {
        width: 26px;
        height: 26px;
        font-size: 13px !important;
    }

    .breadcrumb {
        padding: 4px 12px !important;
        font-size: 10px;
    }

    /* KPI cards */
    .kpi-header {
        padding: 12px !important;
    }

    .kpi-value {
        font-size: 22px !important;
    }

    .kpi-icon {
        font-size: 28px !important;
    }

    .kpi-label {
        font-size: 10px !important;
    }

    /* Panels */
    .panel {
        border-radius: var(--nm-radius-sm) !important;
        margin-bottom: 8px !important;
    }

    .panel-body {
        padding: 10px !important;
    }

    .panel-heading {
        padding: 8px 10px !important;
    }

    /* Modals */
    .modal-dialog {
        left: 0 !important;
        right: 0 !important;
        margin: 10px auto !important;
        max-width: calc(100% - 20px) !important;
    }

    .modal-content {
        border-radius: var(--nm-radius-md) !important;
    }

    .modal-header {
        padding: 10px 14px !important;
    }

    .modal-body {
        padding: 10px !important;
    }

    /* Login */
    .login-wrap {
        padding: 32px 24px !important;
        margin: 16px;
        border-radius: 16px !important;
    }

    .nm-login-title {
        font-size: 22px !important;
    }

    .nm-login-btn {
        font-size: 15px !important;
    }

    .nm-particle-1, .nm-particle-5 {
        display: none;
    }

    /* Buttons */
    .btn {
        padding: 5px 12px !important;
        font-size: 11px !important;
    }

    .btn-lg {
        padding: 7px 16px !important;
        font-size: 12px !important;
    }

    /* Forms */
    .form-control {
        min-height: 28px;
        font-size: 11px !important;
    }

    label {
        font-size: 10px;
    }

    .form-group {
        margin-bottom: 6px;
    }

    /* Tables */
    .divScrollList {
        border-radius: var(--nm-radius-sm) !important;
    }

    .table > thead > tr > th {
        padding: 6px 8px !important;
        font-size: 11.5px !important;
    }

    .table > tbody > tr > td {
        padding: 5px 8px !important;
        font-size: 12px;
    }

    /* Alerts */
    .alert {
        padding: 8px 12px !important;
        font-size: 11px;
        border-radius: var(--nm-radius-xs) !important;
    }
}

/* ==========================================================================
   MOBILE PORTRAIT (480px and below)
   ========================================================================== */
@media (max-width: 480px) {
    .wrapper {
        padding: 6px 8px !important;
    }

    .page-header {
        font-size: 14px !important;
        gap: 6px;
    }

    .page-header i,
    .page-header .fa {
        width: 26px;
        height: 26px;
        font-size: 12px !important;
        border-radius: var(--nm-radius-sm);
    }

    .breadcrumb {
        display: none !important;
    }

    /* KPI cards stack */
    .kpi-card {
        margin-bottom: 8px !important;
    }

    .kpi-header {
        padding: 12px 10px !important;
        display: flex;
        align-items: center;
        gap: 10px;
        text-align: left !important;
    }

    .kpi-icon {
        font-size: 24px !important;
        margin-bottom: 0 !important;
    }

    .kpi-value {
        font-size: 20px !important;
    }

    .kpi-label {
        font-size: 9px !important;
    }

    /* Login adjustments */
    .login-wrap {
        padding: 28px 20px !important;
    }

    .imgLogoLogin {
        height: 55px !important;
    }

    .nm-login-title {
        font-size: 20px !important;
    }

    .nm-login-subtitle {
        font-size: 11px;
        margin-bottom: 20px;
    }

    .nm-login-field {
        margin-bottom: 14px;
    }

    .nm-login-icon {
        width: 40px;
        min-width: 40px;
    }

    .nm-login-btn {
        padding: 12px 18px !important;
        font-size: 14px !important;
    }

    .nm-login-footer {
        margin-top: 20px;
        padding-top: 16px;
        font-size: 10px;
    }

    .nm-login-particles {
        display: none;
    }

    /* Tables minimum width */
    .table {
        min-width: 500px;
    }

    /* Header compact */
    a.logo {
        width: 120px !important;
        background-size: 100px !important;
    }

    .toggle-nav {
        margin-left: 4px;
    }

    /* Dropdown fix */
    .header .dropdown-menu {
        min-width: 180px;
        right: 0 !important;
        left: auto !important;
    }

    /* Form groups */
    .form-group {
        margin-bottom: 10px;
    }

    .form-control {
        min-height: 30px;
        font-size: 11.5px !important;
        padding: 4px 10px !important;
    }

    label {
        font-size: 10.5px;
    }

    /* Buttons compact */
    .btn {
        padding: 4px 10px !important;
        font-size: 10.5px !important;
    }

    .btn-lg {
        padding: 6px 14px !important;
        font-size: 11px !important;
    }

    /* Tables */
    .table > thead > tr > th {
        padding: 5px 6px !important;
        font-size: 10.5px !important;
    }

    .table > tbody > tr > td {
        padding: 4px 6px !important;
        font-size: 11.5px;
    }

    /* Panels */
    .panel-heading {
        padding: 6px 10px !important;
        font-size: 12px;
    }

    .panel-body {
        padding: 8px 10px !important;
    }

    /* Modals */
    .modal-dialog {
        left: 0 !important;
        right: 0 !important;
        margin: 6px auto !important;
        max-width: calc(100% - 12px) !important;
    }

    .modal-header {
        padding: 8px 12px !important;
    }

    .modal-body {
        padding: 8px 10px !important;
    }

    /* Alerts */
    .alert {
        padding: 6px 10px !important;
        font-size: 10.5px;
    }
}

/* ==========================================================================
   EXTRA SMALL (320px and below)
   ========================================================================== */
@media (max-width: 320px) {
    a.logo {
        width: 100px !important;
        background-size: 80px !important;
    }

    .wrapper {
        padding: 4px 6px !important;
    }

    .page-header {
        font-size: 13px !important;
    }

    .page-header i,
    .page-header .fa {
        width: 24px;
        height: 24px;
        font-size: 11px !important;
    }

    .kpi-value {
        font-size: 18px !important;
    }

    .kpi-header {
        padding: 10px 8px !important;
    }

    .btn {
        padding: 3px 8px !important;
        font-size: 10px !important;
    }

    .form-control {
        min-height: 28px;
        font-size: 11px !important;
    }
}

/* ==========================================================================
   SIDEBAR TRANSITIONS (Cross-breakpoint)
   ========================================================================== */
/* Smooth sidebar close via JS class */
#container.sidebar-closed aside,
#container.sidebar-close aside {
    transform: translateX(-100%);
}

#container.sidebar-closed #main-content,
#container.sidebar-close #main-content {
    margin-left: 0 !important;
}

/* On large screens, sidebar stays visible */
@media (min-width: 992px) {
    aside {
        transform: translateX(0) !important;
    }

    #container.sidebar-closed aside,
    #container.sidebar-close aside {
        transform: translateX(calc(-1 * var(--nm-sidebar-width))) !important;
    }
}
