
/* ============================================================
   D2REVENGE CMS ADMIN PANEL - ENTERPRISE EDITION
   Archivo: /admin/assets/admin.css
   ============================================================ */

/* ==========================
   🎨 VARIABLES
   ========================== */
:root{
    --bg:#071018;
    --bg2:#0b0f16;
    --panel:#0e1824;
    --panel2:#111f2d;
    --panel3:#172638;
    --line:#26384a;

    --text:#e8eef7;
    --text-soft:#c8d5e5;
    --muted:#8ea0b5;

    --accent:#e23b3b;
    --accent2:#ff7a3d;
    --accent3:#ffd18a;

    --success:#2bb673;
    --warning:#ffb020;
    --danger:#ff5757;
    --info:#4db3ff;

    --radius-sm:10px;
    --radius:16px;
    --radius-lg:24px;

    --shadow:0 20px 60px rgba(0,0,0,.35);
    --shadow-soft:0 12px 34px rgba(0,0,0,.22);

    --sidebar-width:280px;
    --transition:.22s ease;
}

/* ==========================
   🌐 GLOBAL
   ========================== */
*{
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    margin:0;
    min-height:100vh;
    background:
        radial-gradient(circle at top left, rgba(255,80,0,.08), transparent 30%),
        radial-gradient(circle at bottom right, rgba(100,0,0,.12), transparent 35%),
        linear-gradient(135deg,var(--bg),var(--bg2));
    color:var(--text);
    font-family:"Segoe UI", Arial, sans-serif;
    font-size:15px;
    overflow-x:hidden;
}

a{
    color:#dce8ff;
    text-decoration:none;
}

a:hover{
    color:#fff;
}

hr{
    border:0;
    border-top:1px solid var(--line);
    margin:24px 0;
}

::-webkit-scrollbar{
    width:10px;
    height:10px;
}

::-webkit-scrollbar-track{
    background:#071018;
}

::-webkit-scrollbar-thumb{
    background:#26384a;
    border-radius:20px;
}

::-webkit-scrollbar-thumb:hover{
    background:#3c536c;
}

/* ==========================
   🔐 LOGIN PREMIUM
   ========================== */
.login-page{
    min-height:100vh;
    width:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:28px;
    position:relative;
    overflow:hidden;
    background:
        radial-gradient(circle at 20% 20%, rgba(255,70,0,.18), transparent 32%),
        radial-gradient(circle at 80% 80%, rgba(170,0,0,.22), transparent 38%),
        linear-gradient(135deg,#05070b 0%,#130000 45%,#05070b 100%);
}

.login-page::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
    background-size:44px 44px;
    mask-image:radial-gradient(circle at center, black, transparent 75%);
    pointer-events:none;
}

.login-page::after{
    content:"";
    position:absolute;
    inset:0;
    background:
        radial-gradient(ellipse at bottom, rgba(255,80,0,.18), transparent 62%),
        radial-gradient(circle at center, transparent 0%, rgba(0,0,0,.62) 78%);
    pointer-events:none;
}

.login-orb,
.login-bg-orb{
    position:absolute;
    border-radius:999px;
    filter:blur(90px);
    opacity:.42;
    animation:floatOrb 8s ease-in-out infinite alternate;
}

.orb-red,
.orb-one{
    width:360px;
    height:360px;
    background:#a00000;
    left:8%;
    top:12%;
}

.orb-gold,
.orb-two{
    width:260px;
    height:260px;
    background:#ff6a00;
    right:12%;
    bottom:14%;
    animation-delay:1.4s;
}

.orb-three{
    width:170px;
    height:170px;
    background:#ffd18a;
    right:24%;
    top:17%;
    opacity:.18;
    animation-delay:.7s;
}

@keyframes floatOrb{
    from{transform:translate3d(0,0,0) scale(1)}
    to{transform:translate3d(18px,-24px,0) scale(1.08)}
}

.login-card{
    width:min(450px,94vw);
    background:
        linear-gradient(180deg, rgba(18,25,35,.94), rgba(10,12,18,.96)),
        radial-gradient(circle at top, rgba(255,80,0,.12), transparent 45%);
    border:1px solid rgba(255,115,40,.28);
    border-radius:28px;
    padding:38px 34px 30px;
    position:relative;
    z-index:2;
    box-shadow:
        0 34px 90px rgba(0,0,0,.58),
        0 0 0 1px rgba(255,255,255,.04) inset,
        0 0 42px rgba(190,0,0,.18);
    backdrop-filter:blur(12px);
    overflow:hidden;
}

.login-card::before{
    content:"";
    position:absolute;
    left:15%;
    right:15%;
    top:0;
    height:2px;
    background:linear-gradient(90deg, transparent, #ff3b1f, #ffd18a, #ff3b1f, transparent);
    box-shadow:0 0 24px rgba(255,80,0,.9);
}

.login-card::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(145deg, rgba(255,255,255,.06), transparent 35%);
    pointer-events:none;
}

.login-logo{
    width:82px;
    height:82px;
    margin:0 auto 18px;
    display:flex;
    justify-content:center;
    align-items:center;
    font-size:42px;
    border-radius:50%;
    background:
        radial-gradient(circle,rgba(255,90,30,.25),rgba(50,0,0,.2)),
        linear-gradient(135deg, rgba(255,255,255,.08), transparent);
    border:1px solid rgba(255,140,70,.35);
    box-shadow:
        0 0 28px rgba(255,70,0,.25),
        inset 0 0 24px rgba(255,100,0,.12);
}

.login-card h1{
    margin:0;
    text-align:center;
    color:#fff;
    font-size:32px;
    font-weight:900;
    letter-spacing:.2px;
}

.login-card p{
    text-align:center;
    color:#9daabc;
    margin:10px 0 26px;
    line-height:1.5;
}

.login-card label{
    color:#dbe7f5;
    font-size:13px;
    font-weight:800;
    display:block;
    margin:14px 0 8px;
}

.input-box,
.input-wrap{
    display:flex;
    align-items:center;
    gap:10px;
    background:rgba(7,11,18,.92);
    border:1px solid #2d3c50;
    border-radius:15px;
    padding:0 14px;
    transition:var(--transition);
}

.input-box:focus-within,
.input-wrap:focus-within{
    border-color:#ff7a3d;
    box-shadow:0 0 0 4px rgba(255,122,61,.12);
}

.input-box span,
.input-wrap span{
    opacity:.9;
    font-size:17px;
}

.input-box input,
.input-wrap input{
    flex:1;
    border:0;
    outline:0;
    background:transparent;
    color:#fff;
    padding:15px 0;
    font-size:15px;
    margin:0;
}

.input-box input::placeholder,
.input-wrap input::placeholder{
    color:#718096;
}

.login-btn,
.login-submit{
    width:100%;
    margin-top:24px;
    padding:15px;
    border:0;
    border-radius:15px;
    background:linear-gradient(90deg,#7b0000,#d71919,#ff6a00);
    color:white;
    font-weight:900;
    font-size:15px;
    cursor:pointer;
    transition:var(--transition);
    box-shadow:0 18px 36px rgba(220,30,20,.25);
}

.login-btn:hover,
.login-submit:hover{
    transform:translateY(-2px);
    filter:brightness(1.12);
    box-shadow:0 24px 46px rgba(255,90,25,.35);
}

.login-error,
.login-alert{
    background:rgba(255,60,60,.12);
    border:1px solid rgba(255,90,90,.35);
    color:#ffc4c4;
    padding:11px;
    border-radius:12px;
    margin-bottom:18px;
    text-align:center;
}

.login-foot,
.login-footer-note{
    text-align:center;
    margin-top:20px;
    color:#718096;
    font-size:12px;
}

/* ==========================
   🧩 LAYOUT DASHBOARD
   ========================== */
.layout{
    display:grid;
    grid-template-columns:var(--sidebar-width) 1fr;
    min-height:100vh;
}

.sidebar{
    background:
        linear-gradient(180deg, rgba(14,24,36,.98), rgba(8,13,20,.98)),
        radial-gradient(circle at top, rgba(255,80,0,.08), transparent 45%);
    border-right:1px solid var(--line);
    padding:20px;
    position:sticky;
    top:0;
    height:100vh;
    overflow:auto;
    box-shadow:10px 0 40px rgba(0,0,0,.22);
}

.brand{
    font-size:26px;
    font-weight:900;
    color:#fff;
    margin-bottom:20px;
    letter-spacing:.3px;
}

.brand span{
    color:var(--accent2);
}

.sidebar a{
    display:flex;
    gap:10px;
    align-items:center;
    color:#dce8ff;
    text-decoration:none;
    padding:12px 13px;
    border-radius:13px;
    margin:5px 0;
    transition:var(--transition);
    font-weight:650;
}

.sidebar a:hover,
.sidebar a.active{
    background:linear-gradient(90deg, rgba(226,59,59,.18), rgba(255,122,61,.08));
    color:#fff;
    transform:translateX(3px);
}

.content{
    padding:24px;
    min-width:0;
}

.topbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    background:
        linear-gradient(180deg, rgba(14,24,36,.96), rgba(10,16,24,.96));
    border:1px solid var(--line);
    border-radius:20px;
    padding:18px 20px;
    margin-bottom:20px;
    box-shadow:var(--shadow-soft);
}

.topbar h1{
    margin:0;
    font-size:24px;
    color:#fff;
}

.muted{
    color:var(--muted);
}

/* ==========================
   🃏 CARDS / WIDGETS
   ========================== */
.card{
    background:
        linear-gradient(180deg, rgba(14,24,36,.96), rgba(10,16,24,.96));
    border:1px solid var(--line);
    border-radius:18px;
    padding:20px;
    margin:16px 0;
    box-shadow:var(--shadow-soft);
}

.card h2,
.card h3{
    margin-top:0;
    color:#fff;
}

.card h2{
    font-size:22px;
}

.card h3{
    font-size:18px;
}

.grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:16px;
}

.stat{
    background:
        linear-gradient(180deg,#111f2d,#0e1824);
    border:1px solid var(--line);
    border-radius:18px;
    padding:20px;
    box-shadow:var(--shadow-soft);
}

.stat span{
    color:var(--muted);
    font-size:13px;
    text-transform:uppercase;
    letter-spacing:.8px;
    font-weight:800;
}

.stat strong{
    display:block;
    font-size:30px;
    color:#fff;
    margin:7px 0;
}

/* ==========================
   🧾 FORMULARIOS
   ========================== */
input,
select,
textarea{
    width:100%;
    padding:11px 12px;
    margin:7px 0 14px;
    background:#071018;
    color:#fff;
    border:1px solid #33485e;
    border-radius:10px;
    outline:none;
    transition:var(--transition);
    font-family:inherit;
}

textarea{
    min-height:120px;
    resize:vertical;
    line-height:1.45;
}

input:focus,
select:focus,
textarea:focus{
    border-color:var(--accent2);
    box-shadow:0 0 0 3px rgba(255,122,61,.12);
}

label{
    color:var(--text-soft);
    font-weight:750;
    font-size:13px;
}

input[type="checkbox"],
input[type="radio"]{
    width:auto;
    margin-right:7px;
    accent-color:var(--accent2);
}

input[type="color"]{
    height:42px;
    padding:4px;
}

/* ==========================
   🔘 BOTONES
   ========================== */
button,
.btn-admin{
    background:linear-gradient(90deg,#a80f0f,#e23b3b);
    color:#fff;
    border:0;
    border-radius:10px;
    padding:11px 18px;
    font-weight:850;
    cursor:pointer;
    text-decoration:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    transition:var(--transition);
}

button:hover,
.btn-admin:hover{
    filter:brightness(1.1);
    transform:translateY(-1px);
}

.btn-secondary{
    background:#172638;
}

.btn-success{
    background:linear-gradient(90deg,#147a45,#2bb673);
}

.btn-warning{
    background:linear-gradient(90deg,#b56b00,#ffb020);
}

.btn-danger{
    background:linear-gradient(90deg,#9d1414,#ff5757);
}

.row-actions{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
}

/* ==========================
   📢 ALERTAS
   ========================== */
.msg{
    background:rgba(43,182,115,.13);
    border:1px solid rgba(43,182,115,.45);
    color:#a5ffb8;
    padding:12px 14px;
    border-radius:12px;
    margin-bottom:15px;
}

.error{
    color:#ff9f9f;
}

.alert-warning{
    background:rgba(255,176,32,.13);
    border:1px solid rgba(255,176,32,.45);
    color:#ffe0a3;
    padding:12px;
    border-radius:12px;
}

.alert-danger{
    background:rgba(255,87,87,.12);
    border:1px solid rgba(255,87,87,.42);
    color:#ffc4c4;
    padding:12px;
    border-radius:12px;
}

/* ==========================
   📊 TABLAS
   ========================== */
.table-wrap{
    overflow:auto;
    border:1px solid var(--line);
    border-radius:14px;
}

table{
    width:100%;
    border-collapse:collapse;
    background:#0e1824;
    border-radius:14px;
    overflow:hidden;
}

td,
th{
    border-bottom:1px solid var(--line);
    padding:11px;
    text-align:left;
    vertical-align:middle;
}

th{
    background:#172638;
    color:#fff;
    font-size:13px;
    text-transform:uppercase;
    letter-spacing:.6px;
}

tr:hover td{
    background:rgba(255,255,255,.025);
}

td .small{
    display:block;
    margin-top:3px;
}

.small{
    font-size:12px;
    color:var(--muted);
}

/* ==========================
   🖼️ GALERÍA / FILES
   ========================== */
.gallery-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
    gap:16px;
}

.gallery-item{
    background:#0b121d;
    border:1px solid var(--line);
    border-radius:16px;
    padding:12px;
    transition:var(--transition);
}

.gallery-item:hover{
    transform:translateY(-3px);
    box-shadow:var(--shadow-soft);
}

.gallery-item img,
.gallery-item video{
    width:100%;
    aspect-ratio:1/1;
    object-fit:cover;
    border-radius:12px;
    background:#05080c;
}

.file-badge{
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:6px 10px;
    border-radius:999px;
    background:#172638;
    color:#dce8ff;
    font-size:12px;
    font-weight:800;
}

/* ==========================
   🧩 BLOQUES / EDITORES
   ========================== */
.code-editor,
textarea[name*="content"],
textarea[name*="custom_css"],
textarea[name*="adsense"]{
    font-family:Consolas, "Courier New", monospace;
    font-size:13px;
    background:#05080c;
    color:#dce8ff;
}

.block-card{
    border:1px dashed #3a5068;
    background:rgba(8,13,20,.78);
}

.editor-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:10px;
}

/* ==========================
   🪟 MODALES
   ========================== */
.modal{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.72);
    z-index:9999;
    display:none;
    align-items:center;
    justify-content:center;
    padding:20px;
}

.modal.is-open{
    display:flex;
}

.modal-content{
    width:min(780px,95%);
    max-height:82vh;
    overflow:auto;
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:22px;
    box-shadow:var(--shadow);
    padding:24px;
}

/* ==========================
   📌 BADGES
   ========================== */
.badge{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:5px 9px;
    border-radius:999px;
    background:#172638;
    color:#dce8ff;
    font-size:12px;
    font-weight:850;
}

.badge-success{
    background:rgba(43,182,115,.16);
    color:#a5ffb8;
}

.badge-warning{
    background:rgba(255,176,32,.16);
    color:#ffe0a3;
}

.badge-danger{
    background:rgba(255,87,87,.16);
    color:#ffc4c4;
}

/* ==========================
   📱 RESPONSIVE
   ========================== */
@media(max-width:1100px){
    :root{
        --sidebar-width:240px;
    }

    .sidebar{
        padding:16px;
    }
}

@media(max-width:940px){
    .layout{
        grid-template-columns:1fr;
    }

    .sidebar{
        position:relative;
        width:100%;
        height:auto;
        display:block;
        border-right:0;
        border-bottom:1px solid var(--line);
    }

    .sidebar a{
        display:inline-flex;
        margin:5px;
    }

    .content{
        padding:16px;
    }

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

@media(max-width:620px){
    body{
        font-size:14px;
    }

    .login-card{
        padding:30px 22px;
        border-radius:22px;
    }

    .login-card h1{
        font-size:27px;
    }

    .content{
        padding:12px;
    }

    .card,
    .stat{
        padding:16px;
        border-radius:16px;
    }

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

    .sidebar{
        padding:12px;
    }

    .sidebar a{
        width:100%;
    }

    button,
    .btn-admin{
        width:100%;
    }

    .row-actions button,
    .row-actions .btn-admin{
        width:auto;
    }
}
