:root{
    --bg:#f5f7fb;
    --panel:#ffffffcc;
    --text:#1f2937;
    --muted:#6b7280;
    --primary:#7c9cff;
    --primary-dark:#5579e8;
    --soft:#eef3ff;
    --border:#e7ebf3;
    --shadow:0 18px 50px rgba(31,41,55,.08);
}
*{box-sizing:border-box}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--text);background:var(--bg)}
.login-body{min-height:100vh;background:radial-gradient(circle at top left,#dfe9ff,transparent 36%),radial-gradient(circle at bottom right,#ffe7ef,transparent 34%),var(--bg)}
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.login-card{width:100%;max-width:430px;background:rgba(255,255,255,.82);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.7);border-radius:32px;padding:34px;box-shadow:var(--shadow)}
.login-card h1{font-weight:800;letter-spacing:-.04em;margin-bottom:6px}
.login-foot{text-align:center;margin-top:24px;color:var(--muted)}
.brand{display:flex;align-items:center;gap:12px}
.brand-icon{width:44px;height:44px;border-radius:16px;background:linear-gradient(135deg,#7c9cff,#aac1ff);color:#fff;display:grid;place-items:center;font-weight:800;box-shadow:0 10px 24px rgba(124,156,255,.35)}
.brand strong{display:block;line-height:1.1}.brand span{display:block;font-size:.8rem;color:var(--muted)}
.form-control{border-radius:18px;border-color:var(--border);background:#fff}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 .25rem rgba(124,156,255,.18)}
.btn-primary{background:var(--primary);border-color:var(--primary)}.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}
.app-shell{display:flex;min-height:100vh}.sidebar{width:280px;padding:26px;background:rgba(255,255,255,.72);border-right:1px solid var(--border);backdrop-filter:blur(18px);position:sticky;top:0;height:100vh}.main-panel{flex:1;padding:28px;min-width:0}.topbar{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:28px}.topbar h1{font-size:1.7rem;font-weight:800;letter-spacing:-.04em;margin:0}.topbar p{color:var(--muted);margin:2px 0 0}.nav-link{border-radius:18px;color:#374151;padding:12px 14px}.nav-link.active{background:var(--soft);color:#315edb;font-weight:700}.nav-link.disabled{opacity:.55}.user-pill{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.82);border:1px solid var(--border);border-radius:999px;padding:8px 10px 8px 8px;box-shadow:0 10px 30px rgba(31,41,55,.05)}.user-pill strong{display:block;font-size:.9rem}.user-pill span{display:block;font-size:.78rem;color:var(--muted)}.avatar{width:38px;height:38px;border-radius:50%;background:#eef3ff;color:#315edb;display:grid;place-items:center;font-weight:800}.welcome-card,.panel-card,.stat-card{background:rgba(255,255,255,.82);border:1px solid var(--border);border-radius:28px;box-shadow:var(--shadow)}.welcome-card{padding:30px;background:linear-gradient(135deg,rgba(255,255,255,.9),rgba(238,243,255,.92))}.welcome-card h2{font-weight:800;letter-spacing:-.04em}.welcome-card p{max-width:680px;color:var(--muted);margin-bottom:0}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:#5579e8;font-size:.75rem;font-weight:800}.stat-card{padding:22px}.stat-card span{color:var(--muted);display:block}.stat-card strong{font-size:2rem;letter-spacing:-.05em}.panel-card{padding:26px}.panel-card h3{font-size:1.15rem;font-weight:800;margin-bottom:14px}.panel-card.tinted{background:#f8fbff}.soft-list{padding-left:18px;color:#4b5563}.soft-list li{margin-bottom:10px}
@media(max-width:900px){.app-shell{display:block}.sidebar{height:auto;width:auto;position:static}.main-panel{padding:18px}.topbar{align-items:flex-start;flex-direction:column}.user-pill{width:100%;justify-content:space-between}}
.nav-link{display:flex;align-items:center;gap:10px}.brand{color:inherit}.sidebar{display:flex;flex-direction:column}.sidebar-footer{margin-top:auto;background:#f8fbff;border:1px solid var(--border);border-radius:22px;padding:14px;color:var(--muted);font-size:.82rem}.sidebar-footer strong{display:block;color:#315edb}.content-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px}.content-toolbar h2{font-size:1.55rem;font-weight:800;letter-spacing:-.04em;margin:0}.content-toolbar p{color:var(--muted);margin:4px 0 0}.toolbar-actions{display:flex;gap:10px;flex-wrap:wrap}.breadcrumb{--bs-breadcrumb-divider:'›'}.breadcrumb a{color:#5579e8;text-decoration:none;font-weight:650}.explorer-card{background:rgba(255,255,255,.82);border:1px solid var(--border);border-radius:28px;box-shadow:var(--shadow);overflow:visible;position:relative}
.explorer-header{border-radius:28px 28px 0 0}
.explorer-actions{position:relative;z-index:auto}
.explorer-actions .dropdown-toggle{position:relative;z-index:1}.explorer-actions .dropdown-menu{z-index:4000;min-width:190px;padding:8px;border:1px solid rgba(231,235,243,.95)!important;box-shadow:0 22px 55px rgba(31,41,55,.16)!important}.explorer-row{position:relative;z-index:1}.explorer-row:has(.dropdown-menu.show){z-index:3500}
.dropdown-menu{z-index:4000}.explorer-header,.explorer-row{display:grid;grid-template-columns:minmax(260px,1.8fr) 160px 160px 92px;align-items:center;gap:12px}.explorer-header{padding:14px 18px;background:#f8fbff;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.explorer-row{padding:14px 18px;border-top:1px solid var(--border)}.explorer-row:hover{background:#fbfdff}.explorer-name{display:flex;align-items:center;gap:12px;color:var(--text);text-decoration:none;min-width:0}.explorer-name strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.explorer-name small{display:block;color:var(--muted)}.explorer-meta{color:var(--muted);font-size:.9rem}.file-icon{width:42px;height:42px;border-radius:15px;background:#f4f7fb;color:#64748b;display:grid;place-items:center;font-size:1.2rem;flex:0 0 auto}.file-icon.folder{background:#eef3ff;color:#5579e8}.empty-state{text-align:center;padding:70px 22px}.empty-icon{width:74px;height:74px;margin:0 auto 18px;border-radius:26px;background:#eef3ff;color:#5579e8;display:grid;place-items:center;font-size:2rem}.empty-state h3{font-weight:800;letter-spacing:-.03em}.empty-state p{color:var(--muted)}.dropdown-item{border-radius:12px;margin:2px 6px;width:auto}.modal-content{background:rgba(255,255,255,.96);backdrop-filter:blur(18px)}
@media(max-width:900px){.content-toolbar{align-items:flex-start;flex-direction:column}.explorer-row{grid-template-columns:1fr auto}.explorer-meta{display:none}.explorer-actions{align-self:center}.toolbar-actions{width:100%}.toolbar-actions .btn{flex:1}}
.upload-zone{border:1.5px dashed #cfd8ee;background:#f8fbff;border-radius:26px;padding:28px;text-align:center}.upload-zone i{font-size:2.5rem;color:#5579e8}.upload-zone h6{font-weight:800;margin:10px 0 4px}.upload-zone p{color:var(--muted);margin-bottom:18px}.selected-files{display:grid;gap:8px}.selected-file{display:flex;align-items:center;gap:8px;background:#f8fbff;border:1px solid var(--border);border-radius:16px;padding:10px 12px;color:#4b5563}.selected-file span{margin-left:auto;color:var(--muted);font-variant-numeric:tabular-nums}.file-icon.pdf{background:#fff1f2;color:#e11d48}.file-icon.image{background:#ecfeff;color:#0891b2}.file-icon.spreadsheet{background:#ecfdf5;color:#059669}.file-icon.document{background:#eff6ff;color:#2563eb}.file-icon.archive{background:#fff7ed;color:#ea580c}

/* v5 - Proveedores */
.providers-header,.providers-row{grid-template-columns:minmax(260px,1.6fr) minmax(180px,1fr) 120px minmax(170px,.8fr) 92px}
.provider-card .badge{font-weight:700;letter-spacing:.01em}.detail-list{display:grid;gap:14px;margin-top:18px}.detail-list>div{display:flex;justify-content:space-between;gap:18px;border-bottom:1px solid var(--border);padding-bottom:12px}.detail-list>div:last-child{border-bottom:0;padding-bottom:0}.detail-list span{color:var(--muted);font-size:.9rem}.detail-list strong{text-align:right;font-size:.95rem}.soft-table thead th{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border-bottom:1px solid var(--border)}.soft-table td{border-color:var(--border);padding-top:14px;padding-bottom:14px}.activity-list{display:grid;gap:14px;margin-top:12px}.activity-item{display:flex;gap:12px;align-items:flex-start}.activity-dot{width:12px;height:12px;border-radius:999px;background:var(--primary);box-shadow:0 0 0 6px rgba(124,156,255,.14);margin-top:6px;flex:0 0 auto}.activity-item strong{display:block}.activity-item small{display:block;color:var(--muted)}.form-switch .form-check-input{width:3em;height:1.5em}
@media(max-width:900px){.providers-header,.providers-row{grid-template-columns:1fr auto}.providers-header div:nth-child(n+2),.providers-row>div:nth-child(2),.providers-row>div:nth-child(3),.providers-row>div:nth-child(4){display:none}.detail-list>div{display:block}.detail-list strong{text-align:left;display:block;margin-top:4px}}

/* v5.1 - Upload múltiple con drag & drop y progreso */
.upload-drop-zone{
    position:relative;
    cursor:pointer;
    transition:transform .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease;
    user-select:none;
}
.upload-drop-zone:hover,
.upload-drop-zone.is-dragover{
    border-color:#5579e8;
    background:#f2f6ff;
    box-shadow:0 18px 45px rgba(85,121,232,.12);
    transform:translateY(-1px);
}
.upload-drop-zone.is-dragover::after{
    content:'Suelta los archivos para cargarlos';
    position:absolute;
    inset:14px;
    border-radius:22px;
    display:grid;
    place-items:center;
    background:rgba(255,255,255,.82);
    color:#315edb;
    font-weight:800;
    letter-spacing:-.02em;
    backdrop-filter:blur(8px);
}
.upload-drop-zone.is-disabled{
    pointer-events:none;
    opacity:.75;
}
.upload-icon{
    width:74px;
    height:74px;
    margin:0 auto 12px;
    border-radius:26px;
    display:grid;
    place-items:center;
    background:#eef3ff;
    color:#5579e8;
}
.upload-zone .upload-icon i{font-size:2.2rem;color:inherit}.upload-hint{display:block;margin-top:10px;color:#64748b;font-size:.88rem}.upload-summary{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#ffffff;border:1px solid var(--border);border-radius:20px;padding:14px 16px;box-shadow:0 10px 25px rgba(31,41,55,.05)}.upload-summary strong{display:block}.upload-summary small{display:block;color:var(--muted)}.upload-file-row{gap:12px}.selected-file-icon{width:36px;height:36px;border-radius:14px;display:grid;place-items:center;background:#eef3ff;color:#5579e8;flex:0 0 auto}.selected-file-info{min-width:0;flex:1}.selected-file-info strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#374151}.selected-file-info span{display:block;margin:0;color:var(--muted);font-size:.82rem}.selected-file-number{width:28px;height:28px;border-radius:999px;display:grid;place-items:center;background:#f1f5f9;color:#64748b;font-size:.78rem;font-weight:800;margin-left:0!important}.upload-progress-box{background:#ffffff;border:1px solid var(--border);border-radius:22px;padding:16px;box-shadow:0 12px 30px rgba(31,41,55,.06)}.upload-progress{height:12px;border-radius:999px;background:#eef2f7;overflow:hidden}.upload-progress .progress-bar{border-radius:999px;background:linear-gradient(90deg,#8ea7ff,#5579e8);transition:width .18s ease}.upload-progress-box strong{font-size:.95rem}.upload-progress-box span{font-variant-numeric:tabular-nums;color:#315edb;font-weight:800}

/* v6 - Compartir contenidos con proveedores */
.provider-check-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: .75rem;
    max-height: 380px;
    overflow: auto;
    padding: .25rem;
}

.provider-check-item {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 18px;
    padding: .85rem .95rem;
    background: rgba(248, 250, 252, .85);
    cursor: pointer;
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.provider-check-item:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(15, 23, 42, .08);
    border-color: rgba(13, 110, 253, .22);
}

.provider-check-item .form-check-input {
    margin-top: .25rem;
    flex: 0 0 auto;
}

.provider-check-item span {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.provider-check-item strong {
    font-size: .92rem;
    color: #111827;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.provider-check-item small {
    color: #64748b;
}

/* v6.1 - Explorer radius hover fix
   Evita que el hover de la última fila tape las esquinas redondeadas inferiores
   del contenedor de carpetas/archivos. Aplica globalmente al explorer. */
.explorer-card {
    overflow: visible;
    border-radius: 28px;
}

.explorer-row {
    overflow: visible;
}

.explorer-row:hover {
    background: #fbfdff;
}

.explorer-card .explorer-row:last-child,
.explorer-card .explorer-row:last-child:hover {
    border-bottom-left-radius: 28px;
    border-bottom-right-radius: 28px;
}

.explorer-card .explorer-row:last-child:hover::after {
    border-bottom-left-radius: 28px;
    border-bottom-right-radius: 28px;
}

/* Si Bootstrap o algún contenedor interno agrega fondo en hover, también respeta el radio. */
.explorer-card > .explorer-row:last-child,
.explorer-card > form:last-child .explorer-row,
.explorer-card > form:last-child .explorer-row:hover {
    border-bottom-left-radius: 28px;
    border-bottom-right-radius: 28px;
}

/* Mantiene consistencia en filas con dropdown abierto. */
.explorer-card .explorer-row:has(.dropdown-menu.show) {
    border-radius: inherit;
}
