:root{
    --bg:#f4f6f8;
    --bg-soft:#eef2f5;
    --panel:#ffffff;
    --panel-2:#f7f9fb;
    --text:#18212b;
    --muted:#667085;
    --line:#dde3ea;
    --line-strong:#cfd8e3;
    --primary:#18324a;
    --primary-2:#224764;
    --primary-3:#315f82;
    --accent:#3b5f7d;
    --success:#2f7d5c;
    --warning:#a56a1f;
    --danger:#a04444;
    --info:#2f6f8e;
    --purple:#67548f;
    --shadow-sm:0 10px 24px rgba(16,24,40,0.05);
    --shadow-md:0 18px 40px rgba(16,24,40,0.07);
    --shadow-lg:0 26px 60px rgba(16,24,40,0.09);
    --radius-sm:10px;
    --radius-md:16px;
    --radius-lg:22px;
}

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:"Inter","Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
}

html,
body{
    width:100%;
    min-height:100%;
    margin:0;
    padding:0;
    overflow-x:hidden;
}

body{
    background:linear-gradient(180deg, var(--bg) 0%, var(--bg-soft) 100%);
    color:var(--text);
    font-weight:400;
    letter-spacing:0.01em;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    text-rendering:optimizeLegibility;
}

body,
input,
select,
textarea,
button,
table,
th,
td,
a,
span,
div,
p,
label{
    font-family:"Inter","Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
}

h1,h2,h3,h4,h5,h6{
    font-weight:700;
    letter-spacing:-0.02em;
}

small,
.small,
.text-muted,
.muted{
    color:var(--muted);
    font-weight:400;
}

/* =========================
   LOGIN
========================= */
body.login-body{
    min-height:100vh;
    background:
        radial-gradient(circle at top left, rgba(255,255,255,0.20), transparent 18%),
        radial-gradient(circle at bottom right, rgba(117,143,170,0.16), transparent 24%),
        linear-gradient(135deg, #08192c 0%, #102843 46%, #16385f 100%);
}

.login-wrapper{
    position:relative;
    width:100%;
    min-height:100vh;
    padding:32px;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
}

.login-overlay{
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
        linear-gradient(120deg, rgba(255,255,255,0.04), transparent 30%),
        linear-gradient(300deg, rgba(255,255,255,0.03), transparent 35%);
}

.login-container{
    position:relative;
    z-index:2;
    width:min(1180px,100%);
    margin:0 auto;
    display:grid;
    grid-template-columns:minmax(0,1.05fr) minmax(420px,0.95fr);
    background:rgba(255,255,255,0.09);
    border:1px solid rgba(255,255,255,0.16);
    border-radius:24px;
    overflow:hidden;
    box-shadow:0 18px 50px rgba(0,0,0,0.22);
    backdrop-filter:blur(10px);
}

.login-left{
    min-width:0;
    padding:56px 54px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    background:linear-gradient(145deg, rgba(8,25,44,0.96), rgba(16,40,67,0.94) 55%, rgba(20,56,95,0.88));
}

.login-brand-card{
    width:100%;
    max-width:520px;
}

.login-logo-box{
    background:linear-gradient(180deg, rgba(255,255,255,0.985), rgba(244,247,251,0.985));
    padding:22px 28px;
    border-radius:18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 8px 24px rgba(0,0,0,0.16);
    margin-bottom:18px;
}

.login-logo{
    display:block;
    width:auto;
    max-width:420px;
    max-height:126px;
}

.login-subtitle{
    color:rgba(255,255,255,0.80);
    font-size:14px;
    letter-spacing:0.2px;
    margin-bottom:12px;
}

.login-title{
    font-size:42px;
    line-height:1.1;
    font-weight:700;
    margin:0 0 16px 0;
    color:#ffffff;
}

.login-text{
    font-size:15px;
    line-height:1.7;
    color:rgba(255,255,255,0.88);
    margin:0 0 24px 0;
    max-width:480px;
}

.login-badges{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}

.login-badge{
    display:inline-flex;
    align-items:center;
    padding:9px 14px;
    border-radius:999px;
    font-size:13px;
    font-weight:600;
    color:#eef5ff;
    background:rgba(255,255,255,0.12);
    border:1px solid rgba(255,255,255,0.14);
    backdrop-filter:blur(4px);
}

.login-right{
    min-width:0;
    background:#f8fafc;
    padding:56px 42px;
    display:flex;
    align-items:center;
    justify-content:center;
}

.login-form-card{
    width:100%;
    max-width:420px;
    background:#ffffff;
    border-radius:22px;
    padding:34px 30px;
    box-shadow:0 14px 36px rgba(15,23,42,0.10);
    border:1px solid #e7edf5;
}

.login-form-header{
    margin-bottom:24px;
}

.login-form-header h2{
    margin:0 0 8px 0;
    font-size:28px;
    font-weight:700;
    color:#16365f;
}

.login-form-header p{
    margin:0;
    color:#6b7b8f;
    font-size:14px;
}

.login-form .form-group{
    margin-bottom:18px;
}

.login-form label{
    display:block;
    margin-bottom:8px;
    font-size:14px;
    font-weight:600;
    color:#28476d;
}

.login-form .form-control{
    width:100%;
    height:48px;
    border:1px solid #d7e1ec !important;
    border-radius:12px;
    padding:0 14px;
    font-size:15px;
    color:#1f2d3d;
    background:#fbfdff !important;
    transition:all 0.2s ease;
}

.login-form .form-control:focus{
    outline:none;
    border-color:#2e6fb7 !important;
    box-shadow:0 0 0 4px rgba(46,111,183,0.12) !important;
    background:#fff !important;
}

.btn-login,
.login-btn{
    width:100%;
    min-height:50px;
    border:none;
    border-radius:12px;
    background:linear-gradient(135deg, #1b4f8a, #2563a6);
    color:#fff;
    font-size:15px;
    font-weight:700;
    cursor:pointer;
    transition:all 0.2s ease;
    box-shadow:0 10px 22px rgba(37,99,166,0.22);
    margin-top:8px;
}

.btn-login:hover,
.login-btn:hover{
    transform:translateY(-1px);
    box-shadow:0 14px 28px rgba(37,99,166,0.28);
}

.alert-login,
.flash{
    border-radius:12px;
    padding:12px 14px;
    margin-bottom:18px;
    font-size:14px;
    font-weight:600;
    border:1px solid transparent;
}

.alert-danger,
.alert-error,
.flash.danger,
.flash.error{
    background:#fbf1f1;
    color:#8a3f3f;
    border-color:#efd7d7;
}

.alert-success,
.flash.success{
    background:#edf7f2;
    color:#275c46;
    border-color:#d6e9df;
}

.alert-warning,
.flash.warning{
    background:#f8f3e8;
    color:#8b632d;
    border-color:#eadfc6;
}

.alert-info,
.flash.info{
    background:#eff8ff;
    color:#175cd3;
    border-color:#b2ddff;
}

/* =========================
   LAYOUT GENERAL
========================= */
.layout{
    display:block;
    min-height:100vh;
    width:100%;
}

.sidebar{
    width:290px;
    min-width:290px;
    height:100vh;
    background:linear-gradient(180deg, #0b1e34 0%, #102b49 54%, #18385e 100%);
    color:#fff;
    padding:16px 14px;
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
    border-right:1px solid rgba(255,255,255,0.05);
    box-shadow:16px 0 34px rgba(15,23,42,0.10);
    position:fixed;
    top:0;
    left:0;
    bottom:0;
    overflow-y:auto;
    overflow-x:hidden;
    z-index:1000;
}

.sidebar::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.025), rgba(255,255,255,0.01)),
        radial-gradient(circle at top left, rgba(255,255,255,0.04), transparent 24%);
    pointer-events:none;
}

.sidebar-top,
.sidebar-footer{
    position:relative;
    z-index:2;
}

.sidebar-top{
    flex:1;
    min-height:min-content;
}

.brand-logo-wrap{
    text-align:center;
    margin-bottom:14px;
    padding:16px 12px;
    background:linear-gradient(180deg, #ffffff 0%, #f4f7fb 100%);
    border-radius:22px;
    box-shadow:0 16px 34px rgba(8,25,44,0.22);
    border:1px solid rgba(18,46,78,0.08);
}

.brand-logo{
    max-width:240px;
    max-height:120px;
    width:auto;
    height:auto;
    object-fit:contain;
    display:inline-block;
}

.sidebar-tools{
    display:flex;
    justify-content:flex-end;
    margin-bottom:10px;
}

.compact-toggle{
    width:38px;
    height:38px;
    border:none;
    border-radius:12px;
    background:rgba(255,255,255,0.10);
    color:#fff;
    cursor:pointer;
    transition:all .2s ease;
    border:1px solid rgba(255,255,255,0.08);
}

.compact-toggle:hover{
    background:rgba(255,255,255,0.18);
    transform:translateY(-1px);
}

.menu-link,
.menu-toggle{
    width:100%;
    border:none;
    outline:none;
    text-decoration:none;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:14px 15px;
    border-radius:14px;
    background:linear-gradient(180deg, rgba(255,255,255,0.10), rgba(255,255,255,0.06));
    color:#fff;
    font-size:14px;
    font-weight:600;
    cursor:pointer;
    transition:all .22s ease;
    margin-bottom:8px;
    border:1px solid rgba(255,255,255,0.06);
    position:relative;
}

.menu-link:hover,
.menu-toggle:hover{
    background:rgba(255,255,255,0.085);
    transform:translateX(1px);
}

.menu-link.active,
.menu-toggle.active{
    background:linear-gradient(180deg, rgba(200,169,107,0.24), rgba(255,255,255,0.14));
    border-color:rgba(255,255,255,0.12);
}

.menu-left{
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
}

.menu-right{
    display:flex;
    align-items:center;
    gap:10px;
    flex-shrink:0;
}

.menu-icon{
    width:18px;
    min-width:18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:15px;
    opacity:.95;
}

.menu-text{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    font-weight:600;
}

.active-pill{
    position:absolute;
    right:10px;
    width:8px;
    height:8px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 0 12px rgba(255,255,255,.85);
    opacity:0;
}

.menu-link.active .active-pill{
    opacity:1;
}

.menu-badge{
    min-width:22px;
    height:22px;
    padding:0 7px;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:11px;
    font-weight:700;
    color:#f8fafc;
    background:rgba(255,255,255,0.13);
}

.badge-purple,
.badge-green,
.badge-orange,
.badge-cyan{
    background:rgba(255,255,255,0.13) !important;
    color:#f8fafc !important;
}

.arrow{
    font-size:12px;
    transition:transform .25s ease;
    opacity:.92;
}

.menu-group.open .arrow{
    transform:rotate(180deg);
}

.submenu{
    max-height:0;
    overflow:hidden;
    transition:max-height .30s ease;
    margin:-2px 0 8px 0;
    padding:0 0 0 10px;
}

.menu-group.open .submenu{
    max-height:1000px;
}

.submenu a{
    display:flex;
    align-items:center;
    gap:10px;
    text-decoration:none;
    color:rgba(255,255,255,0.95);
    background:rgba(255,255,255,0.03);
    padding:10px 12px;
    border-radius:10px;
    margin-bottom:7px;
    font-size:13px;
    font-weight:500;
    transition:all .20s ease;
    border:1px solid rgba(255,255,255,0.03);
}

.submenu a:hover{
    background:rgba(255,255,255,0.08);
    transform:translateX(2px);
}

.submenu a.active,
.active-submenu{
    background:rgba(255,255,255,0.10) !important;
    border-left:3px solid rgba(255,255,255,0.82) !important;
    box-shadow:none !important;
}

.sidebar-footer{
    margin-top:auto;
    padding-top:18px;
}

.logout-btn{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    width:100%;
    text-align:center;
    text-decoration:none;
    background:rgba(255,255,255,0.08);
    border:1px solid rgba(255,255,255,0.08);
    color:#fff;
    padding:13px 14px;
    border-radius:14px;
    font-weight:700;
    transition:all .2s ease;
}

.logout-btn:hover{
    background:rgba(255,255,255,0.14);
    transform:translateY(-1px);
}

.sidebar-note{
    margin-top:12px;
    background:rgba(255,255,255,0.055);
    border-radius:15px;
    padding:12px;
    text-align:center;
    font-size:12px;
    color:rgba(255,255,255,0.84);
    border:1px solid rgba(255,255,255,0.05);
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
}

.sidebar::-webkit-scrollbar{
    width:0;
    height:0;
}
.sidebar{
    scrollbar-width:none;
}

/* =========================
   CONTENIDO
========================= */
.content{
    margin-left:290px;
    min-height:100vh;
    width:calc(100% - 290px);
    max-width:calc(100% - 290px);
    padding:26px;
    overflow-x:hidden;
    background:linear-gradient(180deg, var(--bg) 0%, var(--bg-soft) 100%);
}

/* =========================
   TOPBAR
========================= */
.topbar{
    background:rgba(255,255,255,0.97);
    border-radius:18px;
    padding:18px 22px;
    margin-bottom:22px;
    box-shadow:var(--shadow-sm);
    border:1px solid var(--line);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
}

.topbar-left{
    min-width:0;
}

.topbar h1{
    margin:0;
    font-size:28px;
    color:#17324a;
    font-weight:600;
}

.topbar-subtitle{
    margin-top:6px;
    color:var(--muted);
    font-size:14px;
    font-weight:500;
    opacity:.85;
}

.topbar-right{
    display:flex;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
    justify-content:flex-end;
}

.topbar-user{
    font-size:14px;
    color:#3b4b5c;
    font-weight:600;
    background:#f7f9fb;
    border:1px solid var(--line);
    padding:10px 14px;
    border-radius:999px;
    white-space:nowrap;
}

/* =========================
   DASHBOARD
========================= */
.dashboard-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    margin-bottom:20px;
}

.dashboard-header h1{
    font-size:28px;
    color:#17324a;
    margin-bottom:4px;
    font-weight:600;
}

.dashboard-header p{
    color:var(--muted);
    font-size:14px;
}

.dashboard-badge{
    background:#eef3f7;
    color:#38516a;
    padding:8px 14px;
    border-radius:999px;
    font-size:12px;
    font-weight:600;
    white-space:nowrap;
    border:1px solid #dbe4ec;
}

.dashboard-hero{
    background:linear-gradient(135deg, #18324a 0%, #224764 100%);
    color:#fff;
    border-radius:22px;
    padding:28px 30px;
    margin-bottom:22px;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    box-shadow:var(--shadow-md);
    border:1px solid rgba(255,255,255,0.06);
}

.dashboard-hero h1{
    font-size:32px;
    line-height:1.12;
    margin-bottom:10px;
    font-weight:700;
}

.dashboard-hero p{
    max-width:780px;
    color:rgba(255,255,255,0.88);
    font-size:14px;
    line-height:1.65;
}

.hero-kicker{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:7px 12px;
    border-radius:999px;
    background:rgba(255,255,255,0.10);
    border:1px solid rgba(255,255,255,0.12);
    font-size:11px;
    font-weight:700;
    letter-spacing:0.14em;
    margin-bottom:14px;
}

.hero-tags{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:16px;
}

.hero-tag{
    display:inline-flex;
    align-items:center;
    gap:8px;
    background:rgba(255,255,255,0.10);
    border:1px solid rgba(255,255,255,0.10);
    color:#fff;
    padding:9px 13px;
    border-radius:999px;
    font-size:12px;
    font-weight:600;
}

.hero-actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    justify-content:flex-end;
    align-self:center;
}

.stats-grid{
    display:grid;
    grid-template-columns:repeat(4, minmax(0,1fr));
    gap:20px;
    margin-bottom:24px;
    width:100%;
}

.stat-card{
    background:#fff;
    border-radius:18px;
    padding:20px;
    border:1px solid var(--line);
    box-shadow:var(--shadow-sm);
    transition:transform 0.18s ease, box-shadow 0.18s ease;
    min-width:0;
}

.stat-card:hover{
    transform:translateY(-1px);
    box-shadow:var(--shadow-md);
}

.stat-top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    color:#64748b;
    font-size:13px;
    font-weight:700;
}

.stat-number{
    font-size:36px;
    font-weight:600;
    color:#17324a;
    margin-top:10px;
    line-height:1.1;
}

.stat-footer{
    margin-top:10px;
    color:#64748b;
    font-size:12px;
}

.stat-card-primary{ border-left:3px solid #3b5f7d; }
.stat-card-warning{ border-left:3px solid #a56a1f; }
.stat-card-success{ border-left:3px solid #2f7d5c; }
.stat-card-danger{ border-left:3px solid #a04444; }

.dashboard-panels{
    display:grid;
    grid-template-columns:minmax(0,1fr) 420px;
    gap:24px;
    width:100%;
    align-items:start;
}

.dashboard-main,
.dashboard-side{
    min-width:0;
    width:100%;
}

.panel-box{
    width:100%;
    min-width:0;
    background:#fff;
    border-radius:18px;
    padding:20px;
    border:1px solid var(--line);
    box-shadow:var(--shadow-sm);
}

.panel-box h2{
    color:#17324a;
    font-weight:600;
}

.panel-box-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:14px;
    margin-bottom:16px;
}

.panel-box-header p{
    color:var(--muted);
    font-size:13px;
    margin-top:4px;
}

.summary-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(230px, 1fr));
    gap:14px;
    margin-bottom:16px;
}

.summary-card{
    background:#fff;
    border-radius:18px;
    padding:16px;
    border:1px solid var(--line);
    box-shadow:var(--shadow-sm);
}

.summary-card h3{
    margin:0 0 6px 0;
    font-size:14px;
    color:#4b5563;
}

.summary-card .amount{
    font-size:28px;
    font-weight:600;
    color:#17324a;
}

.summary-list{
    margin-top:10px;
}

.summary-item{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:11px 0;
    border-bottom:1px solid #eef2f7;
    color:#475569;
    font-size:14px;
    gap:12px;
}

.summary-item strong{
    color:#17324a;
}

.quick-actions{
    margin-top:18px;
}

.quick-action-btn{
    display:block;
    background:linear-gradient(135deg, var(--primary) 0%, var(--primary-2) 100%);
    color:#fff;
    padding:12px 14px;
    text-align:center;
    text-decoration:none;
    border-radius:10px;
    font-weight:600;
    margin-bottom:10px;
    border:1px solid rgba(24,50,74,0.08);
    transition:all 0.18s ease;
}

.quick-action-btn:hover{
    transform:translateY(-1px);
    box-shadow:0 10px 18px rgba(24,50,74,0.14);
}

.quick-action-btn.secondary{
    background:#f4f7fa;
    color:#38516a;
    border-color:#dbe4ec;
}

/* =========================
   BOTONES
========================= */
.btn-link,
.btn-primary,
.btn-secondary,
.btn-danger,
.btn-light,
.btn-submit{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:11px 15px;
    border-radius:10px;
    text-decoration:none;
    border:1px solid transparent;
    font-weight:600;
    font-size:13px;
    cursor:pointer;
    transition:all 0.20s ease;
    min-height:42px;
}

.btn-link,
.btn-light{
    background:#f6f8fa;
    color:#33475b;
    border-color:var(--line);
}

.btn-primary,
.btn-submit{
    background:linear-gradient(135deg, var(--primary) 0%, var(--primary-2) 70%, var(--accent) 140%);
    color:#fff;
    border:1px solid rgba(24,50,74,0.08);
}

.btn-secondary{
    background:#eef3f7;
    color:#38516a;
    border-color:#dbe4ec;
}

.btn-danger{
    background:#faf1f1;
    color:#934040;
    border-color:#ecd4d4;
}

.btn-link:hover,
.btn-primary:hover,
.btn-secondary:hover,
.btn-danger:hover,
.btn-light:hover,
.btn-submit:hover{
    transform:translateY(-1px);
}

.row-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    align-items:center;
}

.btn-action{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:8px 10px;
    border-radius:10px;
    border:none;
    cursor:pointer;
    font-size:12px;
    font-weight:700;
    text-decoration:none;
    transition:all 0.20s ease;
}

.btn-edit{
    background:#e0f2fe;
    color:#075985;
    border:1px solid #bae6fd;
}

.btn-delete{
    background:#fee2e2;
    color:#991b1b;
    border:1px solid #fecaca;
}

/* =========================
   FILTROS
========================= */
.filters{
    background:#fff;
    border-radius:18px;
    padding:16px;
    margin-bottom:16px;
    border:1px solid var(--line);
    box-shadow:var(--shadow-sm);
}

.filter-form{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
    gap:10px;
    align-items:end;
}

.filter-form input,
.filter-form select{
    width:100%;
}

.inline-form{
    display:inline;
}

/* =========================
   TABLAS
========================= */
.table-responsive{
    overflow:auto;
    width:100%;
}

.premium-table{
    width:100%;
    border-collapse:separate;
    border-spacing:0;
    overflow:hidden;
    border-radius:16px;
    background:#fff;
    border:1px solid var(--line);
}

.premium-table thead th{
    text-align:left;
    padding:14px 14px;
    background:#f6f8fa;
    color:#415466;
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:0.04em;
    font-weight:600;
    border-bottom:1px solid #e9eef5;
    position:sticky;
    top:0;
    z-index:1;
}

.premium-table td{
    padding:14px 14px;
    border-bottom:1px solid #eef2f7;
    font-size:13px;
    color:#324152;
    vertical-align:middle;
    background:#fff;
}

.premium-table tbody tr:hover td{
    background:#f9fbfc;
}

.premium-table a{
    color:var(--primary-2);
    text-decoration:none;
    font-weight:700;
}

.premium-table a:hover{
    text-decoration:underline;
}

.premium-table .action-link-pill,
.premium-table .action-link-pill:visited,
.premium-table .action-link-pill:hover,
.premium-table .action-link-pill:focus{
    color:#ffffff !important;
    text-decoration:none !important;
}

/* =========================
   FORMULARIOS
========================= */
.form-shell{
    display:flex;
    flex-direction:column;
    gap:18px;
}

.form-hero{
    background:linear-gradient(135deg, #f7fafc 0%, #eef4fb 100%);
    color:var(--text);
    border-radius:22px;
    padding:24px;
    box-shadow:var(--shadow-sm);
    position:relative;
    overflow:hidden;
    border:1px solid var(--line);
}

.form-hero::after{
    content:"";
    position:absolute;
    right:-60px;
    top:-60px;
    width:200px;
    height:200px;
    border-radius:50%;
    background:rgba(255,255,255,0.35);
}

.form-hero h2{
    position:relative;
    z-index:1;
    font-size:24px;
    margin-bottom:8px;
    color:#17324a;
    font-weight:600;
}

.form-hero p{
    position:relative;
    z-index:1;
    color:var(--muted);
    max-width:760px;
    line-height:1.55;
    font-size:14px;
}

.form-hero-badges{
    position:relative;
    z-index:1;
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:14px;
}

.form-hero-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:8px 12px;
    border-radius:999px;
    background:#fff;
    border:1px solid var(--line);
    color:var(--primary);
    font-size:12px;
    font-weight:600;
}

.form-section{
    background:#fff;
    border-radius:18px;
    padding:22px;
    border:1px solid var(--line);
    box-shadow:var(--shadow-sm);
}

.form-section-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:18px;
    padding-bottom:14px;
    border-bottom:1px solid #edf1f5;
}

.form-section-title h3{
    font-size:18px;
    color:#17324a;
    margin-bottom:4px;
    font-weight:600;
}

.form-section-title p{
    font-size:13px;
    color:var(--muted);
    line-height:1.5;
}

.section-pill{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:7px 11px;
    background:#eef3f7;
    color:#38516a;
    border:1px solid #dbe4ec;
    border-radius:999px;
    font-size:11px;
    font-weight:600;
    white-space:nowrap;
}

.grid-form,
.section-grid{
    display:grid;
    grid-template-columns:repeat(12, minmax(0, 1fr));
    gap:16px;
}

.grid-form > div,
.section-grid > div{
    grid-column:span 4;
}

.grid-form > .full,
.section-grid > .full,
.section-grid > .span-12{
    grid-column:1 / -1;
}

.grid-form > .span-2,
.section-grid > .span-2{
    grid-column:span 2;
}

.grid-form > .span-3,
.section-grid > .span-3{
    grid-column:span 3;
}

.grid-form > .span-6,
.section-grid > .span-6{
    grid-column:span 6;
}

.section-grid > .span-8{
    grid-column:span 8;
}

.grid-form > div > label,
.form-group label,
.section-grid label,
label{
    display:block;
    margin-bottom:7px;
    font-size:12px;
    color:#495a6b;
    font-weight:600;
    letter-spacing:0.01em;
}

.grid-form input,
.grid-form select,
.grid-form textarea,
.form-group input,
.form-group select,
.form-group textarea,
.section-grid input,
.section-grid select,
.section-grid textarea,
input,
select,
textarea{
    width:100%;
    padding:12px 14px;
    border-radius:10px;
    border:1px solid #d8e0e8 !important;
    background:#fcfdfe !important;
    color:#1f2d3a;
    outline:none;
    transition:all 0.18s ease;
    font-size:14px;
    box-shadow:none;
}

.grid-form input:focus,
.grid-form select:focus,
.grid-form textarea:focus,
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus,
.section-grid input:focus,
.section-grid select:focus,
.section-grid textarea:focus,
input:focus,
select:focus,
textarea:focus{
    border-color:#5e7b96 !important;
    box-shadow:0 0 0 3px rgba(59,95,125,0.10) !important;
    background:#ffffff !important;
}

.grid-form textarea,
.section-grid textarea{
    resize:vertical;
    min-height:120px;
}

.input-readonly{
    background:#f5f7f9 !important;
    color:#516170 !important;
}

.field-hint{
    margin-top:6px;
    color:var(--muted);
    font-size:12px;
    line-height:1.45;
}

.form-inline-search{
    display:grid;
    grid-template-columns:minmax(0, 1fr) auto auto;
    gap:10px;
    align-items:end;
}

.form-actions{
    display:flex;
    gap:12px;
    justify-content:flex-end;
    flex-wrap:wrap;
    margin-top:4px;
}

.badge-soft{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:7px 10px;
    border-radius:999px;
    font-size:11px;
    font-weight:600;
    border:1px solid transparent;
}

.badge-primary{ background:#eef3f7; color:#375068; border-color:#dbe4ec; }
.badge-success{ background:#edf7f2; color:#2c6a50; border-color:#d6e9df; }
.badge-warning{ background:#f8f3e8; color:#8b632d; border-color:#eadfc6; }
.badge-danger{ background:#fbf1f1; color:#8a3f3f; border-color:#efd7d7; }

/* =========================
   BLOQUES / CAJAS
========================= */
.page-block,
.popup-box,
.card,
.widget,
.table-wrapper{
    background:#fff;
    border-radius:18px;
    padding:20px;
    border:1px solid var(--line);
    box-shadow:var(--shadow-sm);
}

.empty-state{
    padding:26px;
    border:1px dashed #d7e1ee;
    background:#f8fbff;
    border-radius:18px;
    text-align:center;
    color:#64748b;
}

.popup-box{
    max-width:980px;
    margin:0 auto;
}

.popup-head{
    margin-bottom:18px;
    padding-bottom:14px;
    border-bottom:1px solid #edf1f7;
}

.popup-head h1{
    color:var(--primary-2);
    margin-bottom:6px;
}

.popup-head p{
    color:var(--muted);
    font-size:13px;
}

.interviniente-card{
    background:linear-gradient(180deg,#fbfdff 0%, #f7faff 100%);
    border:1px solid var(--line);
    border-radius:20px;
    padding:18px;
}

.interviniente-card-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:14px;
}

.interviniente-card-head h4{
    font-size:16px;
    color:var(--primary);
}

.nested-grid{
    padding-top:4px;
}

.intervinientes-detalle{
    margin-bottom:24px;
}

/* =========================
   MODO COMPACTO
========================= */
.sidebar.compact{
    width:92px;
    min-width:92px;
}

.sidebar.compact .brand-logo-wrap{
    padding:10px;
}

.sidebar.compact .brand-logo{
    max-width:48px;
    max-height:48px;
}

.sidebar.compact .menu-text,
.sidebar.compact .sidebar-note,
.sidebar.compact .menu-badge{
    display:none;
}

.sidebar.compact .menu-link,
.sidebar.compact .menu-toggle,
.sidebar.compact .logout-btn{
    justify-content:center;
    padding:14px 10px;
}

.sidebar.compact .menu-left,
.sidebar.compact .menu-right{
    gap:0;
}

.sidebar.compact .submenu{
    padding-left:0;
}

.sidebar.compact .submenu a{
    justify-content:center;
    padding:10px 8px;
}

.sidebar.compact .submenu a span{
    display:none;
}

.sidebar.compact .arrow{
    display:none;
}

.sidebar.compact + .content{
    margin-left:92px;
    width:calc(100% - 92px);
    max-width:calc(100% - 92px);
}

/* =========================
   RESPONSIVE
========================= */
@media (max-width: 1200px){
    .grid-form > div,
    .section-grid > div{
        grid-column:span 6;
    }

    .dashboard-panels{
        grid-template-columns:1fr;
    }

    .stats-grid{
        grid-template-columns:repeat(2, minmax(0,1fr));
    }
}

@media (max-width: 992px){
    .login-wrapper{
        padding:20px;
    }

    .login-container{
        grid-template-columns:1fr;
    }

    .login-left{
        padding:42px 30px 28px 30px;
    }

    .login-right{
        padding:24px 24px 34px 24px;
    }

    .login-title{
        font-size:30px;
    }

    .sidebar{
        width:245px;
        min-width:245px;
    }

    .content{
        margin-left:245px;
        width:calc(100% - 245px);
        max-width:calc(100% - 245px);
    }

    .sidebar.compact + .content{
        margin-left:92px;
        width:calc(100% - 92px);
        max-width:calc(100% - 92px);
    }

    .brand-logo{
        max-width:180px;
        max-height:86px;
    }

    .form-inline-search{
        grid-template-columns:1fr;
    }

    .form-actions{
        justify-content:flex-start;
    }

    .dashboard-hero{
        flex-direction:column;
        padding:24px 22px;
    }

    .hero-actions{
        width:100%;
        justify-content:flex-start;
    }
}

@media (max-width: 768px){
    .sidebar{
        width:100%;
        min-width:100%;
        height:auto;
        position:relative;
        top:auto;
        left:auto;
        bottom:auto;
        overflow:visible;
        border-radius:0 0 20px 20px;
    }

    .content,
    .sidebar.compact + .content{
        margin-left:0;
        width:100%;
        max-width:100%;
        padding:16px;
    }

    .topbar{
        flex-direction:column;
        align-items:flex-start;
        padding:18px;
    }

    .topbar-right{
        width:100%;
        justify-content:flex-start;
    }

    .dashboard-header{
        flex-direction:column;
        align-items:flex-start;
    }

    .grid-form > div,
    .section-grid > div{
        grid-column:1 / -1;
    }

    .form-hero{
        padding:20px;
    }

    .form-section,
    .panel-box,
    .page-block,
    .filters{
        padding:16px;
    }

    .stats-grid{
        grid-template-columns:1fr;
    }
}

@media (max-width: 576px){
    .login-wrapper{
        padding:16px;
    }

    .login-left,
    .login-right{
        padding-left:18px;
        padding-right:18px;
    }

    .login-form-card{
        padding:24px 18px;
        border-radius:18px;
    }

    .login-logo{
        max-height:64px;
    }

    .login-title{
        font-size:26px;
    }
}

.alert-block{border:1px solid rgba(15,23,42,.08);border-left:4px solid #f59e0b;background:#fff7ed;color:#7c2d12}
.alert-block.danger-block{background:#fef2f2;border-left-color:#dc2626;color:#7f1d1d}
.alert-block.warning-block{background:#fffbeb;border-left-color:#f59e0b;color:#78350f}
.ai-assistant-box h3{font-size:15px;margin-bottom:10px;color:#0f172a}
.ai-assistant-box .summary-item{align-items:flex-start}
.filter-form,.form-shell,.grid-form,.form-box{background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 10px 30px rgba(15,23,42,.04)}
.filter-form{padding:14px;gap:12px}
.form-box,.form-shell{padding:18px}
.grid-form{padding:18px}


.brand-logo-insurecore{
    max-width:238px;
    width:100%;
    border-radius:14px;
    box-shadow:0 10px 24px rgba(15,23,42,0.14);
}

.brand-meta{
    margin-top:12px;
    text-align:center;
}

.brand-title{
    font-size:14px;
    font-weight:700;
    color:#17324a;
    letter-spacing:0.02em;
}

.brand-subtitle{
    margin-top:4px;
    font-size:11px;
    color:#5d7287;
    letter-spacing:0.08em;
    text-transform:uppercase;
}

.brand-mini{
    margin-top:6px;
    font-size:10px;
    color:#7f92a6;
    letter-spacing:0.12em;
    text-transform:uppercase;
    font-weight:700;
}

.app-footer{
    margin-left:290px;
    width:calc(100% - 290px);
    border-top:1px solid #e5ebf2;
    background:#ffffff;
    padding:16px 26px 26px;
    text-align:center;
}

.app-footer-brand{
    font-size:14px;
    font-weight:700;
    color:#17324a;
}

.app-footer-tagline{
    margin-top:4px;
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:0.08em;
    color:#5d7287;
}

.app-footer-copy,
.app-footer-legal{
    margin-top:6px;
    font-size:12px;
    color:#6b7c8f;
}

.login-logo-insurecore{
    width:100%;
    max-width:440px;
    border-radius:18px;
    filter:drop-shadow(0 10px 20px rgba(7,19,35,0.10));
}

.login-powered{
    margin-top:14px;
    text-align:center;
    font-size:11px;
    font-weight:600;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:#8fa3b8;
}

@media (max-width: 980px){
    .app-footer{
        margin-left:0;
        width:100%;
        padding:16px 18px 24px;
    }
}


/* Premium branding refresh */
.login-brand-card{position:relative;}
.login-brand-card::after{content:"";position:absolute;left:0;bottom:-18px;width:110px;height:2px;background:linear-gradient(90deg, rgba(255,255,255,0.75), rgba(255,255,255,0));}
.login-form-card{background:linear-gradient(180deg, rgba(255,255,255,0.98), rgba(247,250,252,0.98));border:1px solid rgba(18,46,78,0.08);box-shadow:0 22px 48px rgba(7,19,35,0.14);}
.btn-login{background:linear-gradient(180deg, #112b48 0%, #18385e 100%);box-shadow:0 14px 28px rgba(17,43,72,0.22);}
.btn-login:hover{filter:brightness(1.03);transform:translateY(-1px);}
.hero-kicker{letter-spacing:0.16em;}
.app-footer{background:linear-gradient(180deg, #ffffff 0%, #f6f9fc 100%);}
.sidebar-note{background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.08);}

/* Ajustes premium UX marzo 2026 */
.required-dot{color:#d64545;font-weight:700}
.field-hint{font-size:.86rem;opacity:.82;margin-top:6px;line-height:1.35}
.form-shell input:focus,.form-shell select:focus,.form-shell textarea:focus{outline:none;box-shadow:0 0 0 3px rgba(59,130,246,.15);border-color:#4f7cff}
.form-hero{background:linear-gradient(135deg,rgba(79,124,255,.08),rgba(15,23,42,.03));border:1px solid rgba(79,124,255,.14);border-radius:20px}
.form-hero-badge{backdrop-filter:blur(3px)}
.form-section{border-radius:20px;box-shadow:0 10px 28px rgba(15,23,42,.05)}
.btn-submit,.btn-primary{box-shadow:0 10px 20px rgba(79,124,255,.16)}
.panel-box{border-radius:20px;box-shadow:0 10px 28px rgba(15,23,42,.05)}


.flash-stack{display:flex;flex-direction:column;gap:12px;margin:0 0 18px 0}
.flash-alert{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-radius:14px;border:1px solid #d8e2ee;background:#ffffff;box-shadow:0 10px 26px rgba(15,23,42,.06)}
.flash-alert-icon{font-size:1rem;line-height:1.2;margin-top:2px}
.flash-alert-body{font-weight:600;line-height:1.5}
.flash-success{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}
.flash-danger{background:#fef2f2;border-color:#fecaca;color:#991b1b}
.flash-warning{background:#fffbeb;border-color:#fcd34d;color:#92400e}
.flash-info{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}
.required-dot{color:#ef4444;font-weight:700}
/* =========================================
   AJUSTES VISUALES PERITIA
   (Botones + quitar badges + logout rojo)
========================================= */

/* COLOR PRINCIPAL BOTONES */

.btn-link,
.btn-primary,
.btn-secondary,
.btn-light,
.btn-submit{
    background:#0ea5a4 !important;
    color:#ffffff !important;
    border:none !important;
}

.btn-link:hover,
.btn-primary:hover,
.btn-secondary:hover,
.btn-light:hover,
.btn-submit:hover{
    background:#0f766e !important;
}

/* BOTON PELIGRO */

.btn-danger{
    background:#dc2626 !important;
    color:#fff !important;
}

.btn-danger:hover{
    background:#b91c1c !important;
}

/* CERRAR SESION */

.logout-btn{
    background:#dc2626 !important;
    color:#ffffff !important;
}

.logout-btn:hover{
    background:#b91c1c !important;
}

/* ELIMINAR NUMERITOS DEL MENU */

.menu-badge{
    display:none !important;
}
/* =========================
   FIX MENSAJES ALERTA
========================= */

.alert,
.flash,
.flash-message{

    background:#fdeaea !important;
    border:1px solid #e3a5a5 !important;
    color:#7a1f1f !important;
    padding:14px 18px;
    border-radius:12px;
    font-weight:600;
}

/* éxito */

.alert-success{
    background:#e9f7ef !important;
    border:1px solid #a8d8b9 !important;
    color:#1f6b3b !important;
}

/* warning */

.alert-warning{
    background:#fff7e0 !important;
    border:1px solid #e8d18c !important;
    color:#7c5a00 !important;
}

/* info */

.alert-info{
    background:#eaf3ff !important;
    border:1px solid #b7cdf1 !important;
    color:#1c4c8a !important;
}

/* =========================
   ACCIONES SOBRIAS USUARIOS / SAAS
========================= */
.action-stack{
    display:flex;
    flex-direction:column;
    gap:.55rem;
    min-width:190px;
}

.action-btn,
.action-btn-danger,
.action-link-pill{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:40px;
    padding:.72rem .95rem;
    border-radius:12px;
    font-size:13px;
    font-weight:700;
    text-decoration:none;
    transition:all .18s ease;
    cursor:pointer;
}

.action-btn{
    border:1px solid #d5dde8;
    background:linear-gradient(180deg,#ffffff 0%,#f8fafc 100%);
    color:#16324b;
    box-shadow:0 8px 18px rgba(15,23,42,.06);
}

.action-btn:hover{
    transform:translateY(-1px);
    border-color:#b9c8d8;
    box-shadow:0 12px 24px rgba(15,23,42,.10);
}

.action-link-pill{
    border:1px solid rgba(22,50,75,.08);
    background:linear-gradient(135deg,#18324a 0%,#224764 100%);
    color:#fff;
    box-shadow:0 10px 22px rgba(24,50,74,.18);
}

.action-link-pill:hover{
    transform:translateY(-1px);
    box-shadow:0 14px 28px rgba(24,50,74,.24);
}

.action-btn-danger{
    border:1px solid #e9c9c9;
    background:linear-gradient(180deg,#fff8f8 0%,#fff2f2 100%);
    color:#9b2c2c;
    box-shadow:0 8px 18px rgba(127,29,29,.06);
}

.action-btn-danger:hover{
    transform:translateY(-1px);
    border-color:#dbb1b1;
    box-shadow:0 12px 24px rgba(127,29,29,.10);
}

.action-caption{
    color:#667085;
    font-size:12px;
    line-height:1.45;
}

.confirm-overlay{position:fixed;inset:0;background:rgba(15,23,42,.52);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:9999;backdrop-filter:blur(2px)}
.confirm-overlay[hidden]{display:none !important}
.confirm-card{width:min(100%,480px);background:#fff;border-radius:20px;box-shadow:0 30px 80px rgba(15,23,42,.24);padding:1.5rem;border:1px solid #e8edf3}
.confirm-card h3{margin:0 0 .55rem;color:#14283d}
.confirm-card p{color:#465467;line-height:1.55}
.confirm-help{color:#5b6475;font-size:.95rem}
.confirm-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1rem;flex-wrap:wrap}
.btn-cancel,.btn-confirm-delete{border:none;border-radius:12px;padding:.78rem 1.05rem;font-weight:700;cursor:pointer;transition:all .18s ease}
.btn-cancel{background:#eef2f6;color:#24324a}
.btn-confirm-delete{background:#b42318;color:#fff;box-shadow:0 10px 22px rgba(180,35,24,.2)}
.btn-cancel:hover,.btn-confirm-delete:hover{transform:translateY(-1px)}

.mail-shell{max-width:640px;margin:0 auto;background:#0f2235;border-radius:24px;overflow:hidden;border:1px solid #20384f}
.mail-header{padding:28px 32px;background:linear-gradient(135deg,#12293f 0%,#183754 100%);color:#fff}
.mail-kicker{display:inline-block;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.12);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#ffffff}
.mail-title{margin:16px 0 8px 0;font-size:28px;line-height:1.15;color:#ffffff}
.mail-subtitle{margin:0;color:rgba(255,255,255,.84);font-size:15px;line-height:1.6}
.mail-body{padding:32px;background:#f7fafc;color:#1f2d3d}
.mail-card{background:#ffffff;border:1px solid #e6ecf3;border-radius:18px;padding:22px 22px 18px 22px;box-shadow:0 12px 28px rgba(15,23,42,.06)}
.mail-body p,.mail-body li,.mail-body strong,.mail-body span{color:#1f2d3d}
.mail-data{margin:16px 0 0 0;padding:0;list-style:none}
.mail-data li{padding:10px 0;border-bottom:1px solid #eef2f6}
.mail-data li:last-child{border-bottom:none}
.mail-cta-wrap{padding:22px 0 8px 0;text-align:center}
.mail-cta{display:inline-block;padding:14px 22px;border-radius:14px;background:#18324a;color:#ffffff !important;text-decoration:none;font-weight:700;box-shadow:0 14px 28px rgba(24,50,74,.18)}
.mail-note{margin-top:14px;font-size:13px;color:#5c6b7b;line-height:1.6}
.mail-footer{padding:0 32px 28px 32px;color:#e5eef8;font-size:13px;line-height:1.7}
.mail-footer p{margin:0;color:#dbe7f3}
.login-links{
    margin-top:16px;
    text-align:center;
}

.login-link-recovery{
    color:#16365f;
    font-size:14px;
    font-weight:600;
    text-decoration:none;
    transition:all .2s ease;
}

.login-link-recovery:hover{
    color:#224764;
    text-decoration:underline;
}

/* =========================
   FIX VISUAL LOGIN (MARZO 2026)
========================= */

/* TITULOS DEL FORMULARIO */
.login-form-header h2{
    color:#0f172a !important;
}

.login-form-header p{
    color:#475569 !important;
}

/* TEXTO DEL FORMULARIO */
.login-form label{
    color:#1e293b !important;
}

/* INPUTS */
.login-form .form-control{
    background:#ffffff !important;
    color:#0f172a !important;
}

/* TEXTO DEL LADO IZQUIERDO (IMPORTANTE) */
.login-left{
    color:#ffffff !important;
}

.login-title{
    color:#ffffff !important;
}

.login-text{
    color:rgba(255,255,255,0.90) !important;
}

/* NOMBRE DEL USUARIO EN CREAR PASSWORD */
.login-left h1,
.login-left h2,
.login-left h3,
.login-left p{
    color:#ffffff !important;
}

/* BOTON */
.btn-login{
    background:linear-gradient(135deg, #0ea5a4, #0f766e) !important;
}

/* LINK RECUPERAR */
.login-link-recovery{
    color:#0ea5a4 !important;
}

.login-link-recovery:hover{
    color:#0f766e !important;
}

/* =========================================
   FIX FUERTE LOGIN / CREAR PASSWORD
========================================= */

body.login-body .login-left,
body.login-body .login-left *{
    color:#ffffff !important;
}

body.login-body .login-left .login-subtitle{
    color:rgba(255,255,255,0.82) !important;
}

body.login-body .login-left .login-text{
    color:rgba(255,255,255,0.90) !important;
}

body.login-body .login-left label{
    color:#e5eef8 !important;
}

body.login-body .login-left input,
body.login-body .login-left select,
body.login-body .login-left textarea{
    background:#ffffff !important;
    color:#0f172a !important;
    border:1px solid #d7e1ec !important;
}

body.login-body .login-left input::placeholder,
body.login-body .login-left textarea::placeholder{
    color:#64748b !important;
}

body.login-body .login-left .btn-login,
body.login-body .login-left .login-btn,
body.login-body .login-left button[type="submit"]{
    background:linear-gradient(135deg, #0ea5a4, #0f766e) !important;
    color:#ffffff !important;
    border:none !important;
}

body.login-body .login-right h1,
body.login-body .login-right h2,
body.login-body .login-right h3,
body.login-body .login-right h4,
body.login-body .login-right p,
body.login-body .login-right label,
body.login-body .login-right span,
body.login-body .login-right small{
    color:#0f172a !important;
}

body.login-body .login-right .login-form-header h2{
    color:#0f172a !important;
}

body.login-body .login-right .login-form-header p{
    color:#475569 !important;
}

body.login-body .login-right .login-form label{
    color:#1e293b !important;
}

body.login-body .login-right .form-control,
body.login-body .login-right input,
body.login-body .login-right select,
body.login-body .login-right textarea{
    background:#ffffff !important;
    color:#0f172a !important;
    border:1px solid #d7e1ec !important;
}

body.login-body .login-right input::placeholder,
body.login-body .login-right textarea::placeholder{
    color:#64748b !important;
}

body.login-body .login-right .btn-login,
body.login-body .login-right .login-btn,
body.login-body .login-right button[type="submit"]{
    background:linear-gradient(135deg, #0ea5a4, #0f766e) !important;
    color:#ffffff !important;
    border:none !important;
}

body.login-body .login-link-recovery{
    color:#0ea5a4 !important;
}

body.login-body .login-link-recovery:hover{
    color:#0f766e !important;
}
/* =========================================
   FIX ESPECIFICO CREAR PASSWORD
========================================= */

.login-panel{
    width:100%;
    max-width:520px;
    background:rgba(8, 25, 44, 0.72);
    border:1px solid rgba(255,255,255,0.14);
    border-radius:24px;
    padding:34px 30px;
    box-shadow:0 18px 50px rgba(0,0,0,0.24);
    backdrop-filter:blur(10px);
}

.login-header{
    margin-bottom:22px;
}

.login-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:10px 18px;
    border-radius:999px;
    background:rgba(255,255,255,0.12);
    border:1px solid rgba(255,255,255,0.16);
    color:#ffffff !important;
    font-size:14px;
    font-weight:700;
    margin-bottom:16px;
}

.login-header h1{
    margin:0 0 10px 0;
    font-size:42px;
    line-height:1.1;
    color:#ffffff !important;
}

.login-header p{
    margin:0;
    font-size:20px;
    color:rgba(255,255,255,0.88) !important;
    font-weight:500;
}

.login-panel .form-group{
    margin-bottom:18px;
}

.login-panel .form-group label{
    display:block;
    margin-bottom:8px;
    font-size:16px;
    font-weight:600;
    color:#f1f5f9 !important;
}

.login-panel .form-group input{
    width:100%;
    height:56px;
    padding:0 16px;
    border-radius:14px;
    border:1px solid #d7e1ec !important;
    background:#ffffff !important;
    color:#0f172a !important;
    font-size:16px;
}

.login-panel .form-group input:focus{
    outline:none;
    border-color:#2e6fb7 !important;
    box-shadow:0 0 0 4px rgba(46,111,183,0.14) !important;
}

.login-panel .login-btn{
    width:100%;
    min-height:56px;
    border:none;
    border-radius:14px;
    background:linear-gradient(135deg, #0ea5a4, #0f766e) !important;
    color:#ffffff !important;
    font-size:16px;
    font-weight:700;
    cursor:pointer;
    box-shadow:0 12px 24px rgba(15,118,110,0.24);
    margin-top:10px;
}

.login-panel .login-btn:hover{
    transform:translateY(-1px);
    filter:brightness(1.03);
}

.login-panel .flash{
    background:#fff7e0 !important;
    border:1px solid #e8d18c !important;
    color:#7c5a00 !important;
    padding:14px 16px;
    border-radius:12px;
    margin-bottom:16px;
    font-weight:600;
}

.login-panel .flash.success{
    background:#e9f7ef !important;
    border-color:#a8d8b9 !important;
    color:#1f6b3b !important;
}

.login-panel .flash.danger,
.login-panel .flash.error{
    background:#fdeaea !important;
    border-color:#e3a5a5 !important;
    color:#7a1f1f !important;
}