*{font-family:'DM Sans',sans-serif;box-sizing:border-box}
html{overflow-x:hidden}
body{background:#f4f6f9;min-height:100vh;margin:0;overflow-x:hidden}

.sidebar{width:240px;min-height:100vh;background:#1a1d23;color:#a0a4b0;position:fixed;top:0;left:0;z-index:100;overflow-y:auto}
.sidebar-brand{display:flex;align-items:center;gap:10px;color:#fff;font-size:1.1rem;font-weight:700;padding:8px 12px}
.sidebar-brand i{font-size:1.4rem;color:#4f8cff}
.sidebar .nav-link{color:#a0a4b0;border-radius:8px;padding:10px 14px;font-size:.9rem;font-weight:500;transition:all .15s;display:flex;align-items:center;gap:10px}
.sidebar .nav-link:hover{color:#fff;background:rgba(79,140,255,.1)}
.sidebar .nav-link.active{color:#fff;background:#4f8cff}
.sidebar .nav-link i{font-size:1.1rem}
.main-content{min-height:100vh;margin-left:240px}

.top-bar{display:none}
.mobile-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:1000}
.mobile-overlay.show{display:block}

.stat-card{background:#fff;border-radius:12px;padding:20px;display:flex;align-items:center;gap:16px;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;flex-shrink:0}
.stat-info{display:flex;flex-direction:column}
.stat-label{font-size:.8rem;color:#6b7280;font-weight:500;text-transform:uppercase;letter-spacing:.3px}
.stat-value{font-size:1.5rem;font-weight:700;color:#1a1d23}
.card{border:none;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.card-header{background:#fff;border-bottom:1px solid #eee;padding:16px 20px;border-radius:12px 12px 0 0!important}
.card-body{padding:20px}
.table{margin-bottom:0}
.table th{font-size:.78rem;text-transform:uppercase;letter-spacing:.5px;color:#6b7280;font-weight:600;border-bottom:2px solid #eee;padding:12px 16px}
.table td{padding:12px 16px;vertical-align:middle;border-bottom:1px solid #f3f4f6}
.table-hover tbody tr:hover{background:#f8fafc}
.badge{font-weight:500;padding:5px 10px;font-size:.75rem;border-radius:6px}
.btn-primary{background:#4f8cff;border-color:#4f8cff}
.btn-primary:hover{background:#3a7be8;border-color:#3a7be8}
.form-control,.form-select{border-radius:8px;border:1px solid #ddd;padding:8px 12px}
.form-control:focus,.form-select:focus{border-color:#4f8cff;box-shadow:0 0 0 3px rgba(79,140,255,.15)}
.form-label{font-size:.85rem;margin-bottom:4px}

@media(max-width:767.98px){
    .sidebar{transform:translateX(-100%);transition:transform .25s ease;width:260px;z-index:1001;top:0;padding-top:0!important}
    .sidebar.open{transform:translateX(0)}
    .main-content{margin-left:0!important;padding-top:56px}
    .top-bar{display:flex!important;position:fixed;top:0;left:0;right:0;height:56px;background:#1a1d23;color:#fff;align-items:center;padding:0 16px;z-index:999;gap:14px;box-shadow:0 2px 8px rgba(0,0,0,.2)}
    .top-bar-btn{background:none;border:none;color:#fff;font-size:1.5rem;padding:0;cursor:pointer;display:flex;align-items:center}
    .top-bar-title{font-weight:700;font-size:1rem;display:flex;align-items:center;gap:8px}
    .top-bar-title i{color:#4f8cff;font-size:1.2rem}
    .sidebar-mobile-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid #333}
    .sidebar-mobile-header span{color:#fff;font-weight:700;font-size:1.1rem}
    .sidebar-mobile-header button{background:none;border:none;color:#888;font-size:1.3rem;cursor:pointer}

    .container-fluid{padding:10px!important;max-width:100vw!important;overflow-x:hidden}
    h2{font-size:1.2rem!important}
    .d-flex.justify-content-between{flex-wrap:wrap;gap:6px}

    /* Tablas responsive */
    .table th,.table td{padding:6px 4px;font-size:.7rem;white-space:nowrap}
    .table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}

    /* Badges más pequeños */
    .badge{font-size:.65rem;padding:3px 6px}

    /* Botones */
    .btn{font-size:.85rem!important}
    .btn-lg{padding:10px 14px!important;font-size:.85rem!important}

    /* Cards */
    .stat-card{padding:10px;gap:8px}
    .stat-value{font-size:1.1rem}
    .stat-label{font-size:.65rem}
    .stat-icon{width:36px;height:36px;font-size:1rem}
    .card-header{padding:10px 14px}
    .card-body{padding:10px 14px}

    /* Formularios */
    .form-control,.form-select{font-size:.85rem;padding:6px 10px}
    .form-label{font-size:.8rem}
    .row.g-3>*{padding-left:4px;padding-right:4px}

    .modal-dialog{margin:8px}
}
