* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {

    --lime: #b8ff32;
    --lime-soft: #d6ff83;

    --black: #070b07;
    --black-2: #0b110b;

    --white: #ffffff;

    --text: #f3f7f0;
    --muted: #8c978a;

    --border: rgba(184,255,50,.14);

}


html,
body {

    width: 100%;
    min-height: 100%;

}


body {

    min-height: 100vh;

    background:
        radial-gradient(
            circle at 50% 40%,
            rgba(184,255,50,.045),
            transparent 35%
        ),
        #070b07;

    color: var(--text);

    font-family:
        Arial,
        Helvetica,
        sans-serif;

}


body::before {

    content: "";

    position: fixed;

    inset: 0;

    pointer-events: none;

    background:
        linear-gradient(
            rgba(184,255,50,.025) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(184,255,50,.025) 1px,
            transparent 1px
        );

    background-size: 55px 55px;

    mask-image:
        linear-gradient(
            to bottom,
            black,
            transparent 90%
        );

}


/* =========================
   GRID
========================= */

.admin-grid {

    position: fixed;

    inset: 0;

    pointer-events: none;

    background-image:

        linear-gradient(
            90deg,
            rgba(184,255,50,.025) 1px,
            transparent 1px
        ),

        linear-gradient(
            rgba(184,255,50,.025) 1px,
            transparent 1px
        );

    background-size: 60px 60px;

    opacity: .4;

}


/* =========================
   GLOW
========================= */

.admin-glow {

    position: fixed;

    width: 420px;
    height: 420px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(184,255,50,.07),
            transparent 70%
        );

    pointer-events: none;

}


.admin-glow-1 {

    top: -180px;
    right: -120px;

}


.admin-glow-2 {

    bottom: -200px;
    left: -150px;

}


/* =========================
   LOGIN
========================= */

.login-wrapper {

    position: relative;

    z-index: 2;

    width: min(460px, calc(100% - 40px));

    min-height: 100vh;

    margin: auto;

    display: flex;

    flex-direction: column;

    justify-content: center;

}


.login-header {

    margin-bottom: 35px;

}


.login-brand {

    font-size: 27px;

    font-weight: 800;

    letter-spacing: 5px;

    color: white;

}


.login-brand span {

    color: var(--lime);

}


.login-sub {

    margin-top: 7px;

    font-size: 7px;

    letter-spacing: 4px;

    color: var(--muted);

}


.login-status {

    display: flex;

    align-items: center;

    gap: 8px;

    margin-bottom: 14px;

    color: var(--muted);

    font-size: 8px;

    letter-spacing: 2px;

}


.status-dot {

    width: 6px;
    height: 6px;

    border-radius: 50%;

    background: var(--lime);

    box-shadow:
        0 0 8px var(--lime),
        0 0 16px rgba(184,255,50,.45);

}


/* =========================
   LOGIN CARD
========================= */

.login-card {

    position: relative;

    padding: 38px;

    border: 1px solid var(--border);

    background:
        rgba(11,17,11,.78);

    backdrop-filter: blur(18px);

    box-shadow:
        0 30px 80px rgba(0,0,0,.35);

}


.login-kicker {

    color: var(--lime);

    font-size: 9px;

    font-weight: 700;

    letter-spacing: 3px;

}


.login-card h1 {

    margin-top: 20px;

    font-size: clamp(38px, 8vw, 58px);

    line-height: .95;

    letter-spacing: -3px;

}


.login-card h1 span {

    color: transparent;

    -webkit-text-stroke:
        1px rgba(255,255,255,.65);

}


.login-intro {

    margin-top: 20px;

    color: var(--muted);

    font-size: 12px;

    line-height: 1.7;

    max-width: 340px;

}


/* =========================
   FORM
========================= */

.form-group {

    margin-top: 24px;

}


.form-group label {

    display: block;

    margin-bottom: 9px;

    color: var(--muted);

    font-size: 8px;

    letter-spacing: 2px;

}


.form-group input {

    width: 100%;

    height: 48px;

    padding: 0 14px;

    color: white;

    background:
        rgba(7,11,7,.85);

    border:
        1px solid rgba(184,255,50,.12);

    outline: none;

    font-size: 13px;

    transition: .25s ease;

}


.form-group input:focus {

    border-color:
        rgba(184,255,50,.55);

    box-shadow:
        0 0 20px rgba(184,255,50,.05);

}


/* =========================
   ERROR
========================= */

.login-error {

    margin-top: 20px;

    padding: 11px 13px;

    border:
        1px solid rgba(255,80,80,.25);

    background:
        rgba(255,50,50,.05);

    color: #ff9a9a;

    font-size: 10px;

    line-height: 1.5;

}


/* =========================
   BUTTON
========================= */

.login-button {

    width: 100%;

    margin-top: 28px;

    height: 52px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    padding: 0 18px;

    border:
        1px solid rgba(184,255,50,.45);

    background:
        rgba(184,255,50,.06);

    color: var(--lime);

    cursor: pointer;

    font-size: 9px;

    font-weight: 700;

    letter-spacing: 2px;

    transition: .3s ease;

}


.login-button b {

    font-size: 15px;

}


.login-button:hover {

    background:
        rgba(184,255,50,.12);

    border-color:
        var(--lime);

    box-shadow:
        0 0 25px rgba(184,255,50,.08);

}


/* =========================
   LOGIN FOOTER
========================= */

.login-footer {

    display: flex;

    justify-content: space-between;

    margin-top: 18px;

    color: #687267;

    font-size: 7px;

    letter-spacing: 1.5px;

}


.login-footer a {

    color: var(--muted);

    text-decoration: none;

}


.login-footer a:hover {

    color: var(--lime);

}


/* =========================
   DASHBOARD
========================= */

.dashboard-wrapper {

    position: relative;

    z-index: 2;

    width: min(1200px, calc(100% - 60px));

    margin: auto;

    padding: 30px 0 40px;

}


.dashboard-header {

    display: flex;

    align-items: center;

    justify-content: space-between;

    padding-bottom: 25px;

    border-bottom:
        1px solid var(--border);

}


.dashboard-brand {

    color: white;

    text-decoration: none;

    font-size: 20px;

    font-weight: 800;

    letter-spacing: 3px;

}


.dashboard-brand span {

    color: var(--lime);

}


.dashboard-brand small {

    display: block;

    margin-top: 5px;

    color: var(--muted);

    font-size: 6px;

    letter-spacing: 3px;

}


.dashboard-user {

    display: flex;

    align-items: center;

    gap: 12px;

    color: var(--muted);

    font-size: 8px;

    letter-spacing: 1px;

}


.dashboard-user a {

    color: var(--lime);

    text-decoration: none;

}


.dashboard-hero {

    padding: 80px 0 60px;

}


.dashboard-kicker {

    color: var(--lime);

    font-size: 9px;

    letter-spacing: 3px;

    font-weight: 700;

}


.dashboard-hero h1 {

    margin-top: 20px;

    font-size: clamp(42px, 6vw, 76px);

    line-height: .95;

    letter-spacing: -4px;

}


.dashboard-hero h1 span {

    color: transparent;

    -webkit-text-stroke:
        1px rgba(255,255,255,.7);

}


.dashboard-hero p {

    margin-top: 22px;

    max-width: 470px;

    color: var(--muted);

    font-size: 13px;

    line-height: 1.7;

}


/* =========================
   DASHBOARD CARDS
========================= */

.dashboard-grid {

    display: grid;

    grid-template-columns:
        repeat(4, 1fr);

    gap: 12px;

}


.dashboard-card {

    min-height: 180px;

    padding: 25px;

    display: flex;

    flex-direction: column;

    justify-content: space-between;

    border:
        1px solid var(--border);

    background:
        rgba(11,17,11,.55);

    color: white;

    text-decoration: none;

    transition: .3s ease;

}


.dashboard-card:hover {

    border-color:
        rgba(184,255,50,.55);

    transform:
        translateY(-4px);

    background:
        rgba(184,255,50,.04);

}


.card-number {

    color: var(--lime);

    font-size: 9px;

    letter-spacing: 2px;

}


.dashboard-card strong {

    font-size: 13px;

    letter-spacing: 2px;

}


.dashboard-card small {

    color: var(--muted);

    font-size: 9px;

}


/* =========================
   FOOTER
========================= */

.dashboard-footer {

    display: flex;

    justify-content: space-between;

    margin-top: 80px;

    padding-top: 18px;

    border-top:
        1px solid var(--border);

    color: #687267;

    font-size: 7px;

    letter-spacing: 1.5px;

}


/* =========================
   MOBILE
========================= */

@media (max-width: 700px) {

    .login-card {

        padding: 28px 22px;

    }


    .login-brand {

        font-size: 22px;

    }


    .dashboard-wrapper {

        width:
            calc(100% - 30px);

    }


    .dashboard-header {

        align-items: flex-start;

    }


    .dashboard-user {

        flex-direction: column;

        align-items: flex-end;

        gap: 7px;

    }


    .dashboard-hero {

        padding: 55px 0 40px;

    }


    .dashboard-grid {

        grid-template-columns:
            repeat(2, 1fr);

    }


    .dashboard-card {

        min-height: 150px;

        padding: 18px;

    }


    .dashboard-footer {

        flex-direction: column;

        gap: 8px;

    }

}


/* =========================================================
   ARTICLES CMS
========================================================= */

.articles-wrapper {
    position: relative;
    z-index: 2;
    width: min(1400px, calc(100% - 80px));
    margin: 0 auto;
    padding-bottom: 50px;
}


/* =========================================================
   HERO
========================================================= */

.articles-hero {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 40px;
    padding: 70px 0 45px;
}

.articles-hero h1 {
    margin-top: 18px;
    font-size: clamp(42px, 5vw, 70px);
    line-height: .92;
    letter-spacing: -3px;
    color: #ffffff;
}

.articles-hero h1 span {
    color: transparent;
    -webkit-text-stroke: 1px rgba(255,255,255,.75);
}

.articles-hero p {
    max-width: 500px;
    margin-top: 24px;
    color: #8c978a;
    font-size: 14px;
    line-height: 1.7;
}


/* =========================================================
   PRIMARY BUTTON
========================================================= */

.admin-primary-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 18px;

    padding: 14px 20px;

    color: #b8ff32;
    background: rgba(184,255,50,.06);

    border: 1px solid rgba(184,255,50,.35);

    text-decoration: none;

    font-size: 9px;
    font-weight: 700;
    letter-spacing: 2px;

    transition: .3s ease;
}

.admin-primary-button b {
    font-size: 15px;
    font-weight: 400;
}

.admin-primary-button:hover {
    color: #071007;
    background: #b8ff32;
    border-color: #b8ff32;
    box-shadow: 0 0 30px rgba(184,255,50,.18);
    transform: translateY(-2px);
}


/* =========================================================
   STATISTICS
========================================================= */

.article-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;

    margin-bottom: 35px;

    background: rgba(184,255,50,.08);
    border: 1px solid rgba(184,255,50,.08);
}

.article-stat {
    min-height: 120px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    padding: 25px 30px;

    background: rgba(7,11,7,.72);
}

.stat-number {
    color: #b8ff32;
    font-size: 36px;
    font-weight: 700;
    letter-spacing: -1px;
}

.stat-label {
    margin-top: 7px;

    color: #788276;

    font-size: 8px;
    letter-spacing: 2px;
}


/* =========================================================
   PANEL
========================================================= */

.articles-panel {
    background: rgba(7,11,7,.70);
    border: 1px solid rgba(184,255,50,.10);

    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.articles-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;

    padding: 28px 30px;

    border-bottom: 1px solid rgba(184,255,50,.08);
}

.panel-kicker {
    margin-bottom: 8px;

    color: #b8ff32;

    font-size: 8px;
    font-weight: 700;
    letter-spacing: 2px;
}

.articles-panel-header h2 {
    color: #ffffff;

    font-size: 22px;
    font-weight: 600;
}

.panel-count {
    color: #697367;

    font-size: 8px;
    letter-spacing: 1.5px;
}


/* =========================================================
   TABLE
========================================================= */

.articles-table-wrap {
    width: 100%;
    overflow-x: auto;
}

.articles-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 900px;
}

.articles-table th {
    padding: 17px 22px;

    color: #697367;

    font-size: 8px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-align: left;

    border-bottom: 1px solid rgba(184,255,50,.07);
}

.articles-table td {
    padding: 20px 22px;

    border-bottom: 1px solid rgba(255,255,255,.035);

    vertical-align: middle;
}

.articles-table tbody tr {
    transition: .25s ease;
}

.articles-table tbody tr:hover {
    background: rgba(184,255,50,.025);
}


/* =========================================================
   ARTICLE INFO
========================================================= */

.article-table-main {
    display: flex;
    align-items: center;
    gap: 15px;

    min-width: 310px;
}

.article-thumb {
    width: 70px;
    height: 52px;

    flex-shrink: 0;

    overflow: hidden;

    border: 1px solid rgba(184,255,50,.16);

    background: #0b110b;
}

.article-thumb img {
    width: 100%;
    height: 100%;

    object-fit: cover;

    display: block;
}

.article-thumb-empty {
    display: flex;
    align-items: center;
    justify-content: center;

    color: #b8ff32;

    font-size: 18px;
    font-weight: 800;
}

.article-info {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.article-info strong {
    max-width: 360px;

    color: #e8eee5;

    font-size: 13px;
    line-height: 1.35;
    font-weight: 600;
}

.article-info small {
    color: #586256;

    font-size: 8px;
    letter-spacing: 1px;
}


/* =========================================================
   CATEGORY
========================================================= */

.article-category {
    color: #aeb8aa;

    font-size: 9px;
    letter-spacing: .5px;
}


/* =========================================================
   STATUS
========================================================= */

.article-status {
    display: inline-flex;
    align-items: center;
    gap: 7px;

    font-size: 8px;
    font-weight: 700;
    letter-spacing: 1px;
}

.article-status i {
    width: 6px;
    height: 6px;

    border-radius: 50%;

    display: block;
}

.status-published {
    color: #b8ff32;
}

.status-published i {
    background: #b8ff32;
    box-shadow: 0 0 8px rgba(184,255,50,.7);
}

.status-draft {
    color: #777f74;
}

.status-draft i {
    background: #5e655c;
}


/* =========================================================
   DATE
========================================================= */

.article-date {
    color: #7e887b;

    font-size: 9px;
    letter-spacing: 1px;
}


/* =========================================================
   ACTIONS
========================================================= */

.article-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.article-actions a,
.article-actions button {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 8px 10px;

    font-size: 7px;
    font-weight: 700;
    letter-spacing: 1px;

    text-decoration: none;

    transition: .25s ease;
}

.action-edit {
    color: #b8ff32;
    border: 1px solid rgba(184,255,50,.18);
    background: rgba(184,255,50,.035);
}

.action-edit:hover {
    color: #071007;
    background: #b8ff32;
    border-color: #b8ff32;
}

.action-delete {
    color: #a47d7d;
    border: 1px solid rgba(180,90,90,.14);
    background: rgba(180,90,90,.025);
    cursor: pointer;
}

.action-delete:hover {
    color: #ffffff;
    background: rgba(150,55,55,.35);
    border-color: rgba(200,100,100,.4);
}


/* =========================================================
   EMPTY STATE
========================================================= */

.articles-empty {
    min-height: 350px;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    text-align: center;

    padding: 50px;
}

.empty-icon {
    width: 58px;
    height: 58px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin-bottom: 20px;

    border: 1px solid rgba(184,255,50,.22);

    color: #b8ff32;

    font-size: 28px;
}

.articles-empty h3 {
    color: #ffffff;

    font-size: 20px;
}

.articles-empty p {
    margin: 10px 0 25px;

    color: #707a6e;

    font-size: 12px;
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 800px) {

    .articles-wrapper {
        width: min(100% - 30px, 700px);
    }

    .articles-hero {
        flex-direction: column;
        align-items: flex-start;

        padding: 45px 0 30px;
    }

    .articles-hero h1 {
        font-size: 48px;
    }

    .article-stats {
        grid-template-columns: 1fr;
    }

    .article-stat {
        min-height: 95px;
    }

    .articles-panel-header {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }

    .articles-table {
        min-width: 850px;
    }

}

/* =========================================================
   ARTICLE FORM
========================================================= */

.article-form-wrapper {
    position: relative;
    z-index: 2;

    width: min(1100px, calc(100% - 80px));

    margin: 0 auto;

    padding-bottom: 50px;
}


/* =========================================================
   HERO
========================================================= */

.article-form-hero {
    padding: 65px 0 40px;
}

.article-form-hero h1 {
    margin-top: 18px;

    font-size: clamp(44px, 5vw, 70px);

    line-height: .92;

    letter-spacing: -3px;

    color: #ffffff;
}

.article-form-hero h1 span {
    color: transparent;

    -webkit-text-stroke: 1px rgba(255,255,255,.75);
}

.article-form-hero p {
    margin-top: 22px;

    max-width: 500px;

    color: #8c978a;

    font-size: 14px;

    line-height: 1.7;
}


/* =========================================================
   ALERT
========================================================= */

.form-alert {
    margin-bottom: 25px;

    padding: 15px 18px;

    color: #e4b5b5;

    background: rgba(150,55,55,.08);

    border: 1px solid rgba(180,90,90,.25);

    font-size: 10px;

    line-height: 1.6;
}


/* =========================================================
   FORM PANEL
========================================================= */

.form-panel {
    margin-bottom: 25px;

    padding: 0 30px 30px;

    background: rgba(7,11,7,.72);

    border: 1px solid rgba(184,255,50,.10);

    backdrop-filter: blur(12px);

    -webkit-backdrop-filter: blur(12px);
}

.form-panel-header {
    display: flex;

    align-items: center;

    justify-content: space-between;

    min-height: 70px;

    margin: 0 -30px 30px;

    padding: 0 30px;

    border-bottom: 1px solid rgba(184,255,50,.08);
}

.form-panel-header > div {
    display: flex;

    align-items: center;

    gap: 12px;
}

.form-panel-header span {
    color: #b8ff32;

    font-size: 9px;

    letter-spacing: 2px;
}

.form-panel-header strong {
    color: #e9eee7;

    font-size: 10px;

    letter-spacing: 2px;
}

.form-panel-header small {
    color: #596257;

    font-size: 7px;

    letter-spacing: 1.5px;
}


/* =========================================================
   FORM GRID
========================================================= */

.form-grid {
    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 25px;
}

.form-field-full {
    grid-column: 1 / -1;
}

.form-field {
    display: flex;

    flex-direction: column;

    gap: 9px;
}

.form-field label {
    color: #7f897b;

    font-size: 8px;

    font-weight: 700;

    letter-spacing: 1.8px;
}

.form-field input,
.form-field select,
.form-field textarea {
    width: 100%;

    padding: 14px 15px;

    color: #e9eee7;

    background: rgba(0,0,0,.24);

    border: 1px solid rgba(184,255,50,.12);

    outline: none;

    font-family: inherit;

    font-size: 12px;

    transition: .25s ease;
}

.form-field textarea {
    resize: vertical;

    min-height: 120px;

    line-height: 1.7;
}

.form-field input::placeholder,
.form-field textarea::placeholder {
    color: #4f584e;
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
    border-color: rgba(184,255,50,.55);

    box-shadow:
        0 0 0 1px rgba(184,255,50,.05),
        0 0 25px rgba(184,255,50,.04);
}

.form-field select {
    cursor: pointer;
}

.form-field select option {
    background: #0b110b;

    color: #e9eee7;
}

.form-field small {
    color: #586256;

    font-size: 8px;

    line-height: 1.5;
}


/* =========================================================
   FILE INPUT
========================================================= */

.form-field input[type="file"] {
    padding: 11px;

    cursor: pointer;
}

.form-field input[type="file"]::file-selector-button {
    margin-right: 12px;

    padding: 8px 12px;

    color: #b8ff32;

    background: rgba(184,255,50,.05);

    border: 1px solid rgba(184,255,50,.20);

    cursor: pointer;

    font-family: inherit;

    font-size: 8px;

    letter-spacing: 1px;
}


/* =========================================================
   ACTIONS
========================================================= */

.article-form-actions {
    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 15px;

    margin-top: 10px;

    margin-bottom: 35px;
}

.admin-secondary-button {
    display: inline-flex;

    align-items: center;

    justify-content: center;

    padding: 14px 20px;

    color: #7d877a;

    background: rgba(255,255,255,.015);

    border: 1px solid rgba(255,255,255,.08);

    text-decoration: none;

    font-size: 9px;

    font-weight: 700;

    letter-spacing: 1.5px;

    transition: .25s ease;
}

.admin-secondary-button:hover {
    color: #ffffff;

    border-color: rgba(255,255,255,.20);

    transform: translateY(-2px);
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 700px) {

    .article-form-wrapper {
        width: min(100% - 30px, 700px);
    }

    .article-form-hero {
        padding: 45px 0 30px;
    }

    .article-form-hero h1 {
        font-size: 48px;
    }

    .form-grid {
        grid-template-columns: 1fr;
    }

    .form-field-full {
        grid-column: auto;
    }

    .form-panel {
        padding: 0 18px 22px;
    }

    .form-panel-header {
        margin-left: -18px;
        margin-right: -18px;

        padding: 0 18px;
    }

    .form-panel-header small {
        display: none;
    }

    .article-form-actions {
        flex-direction: column-reverse;

        align-items: stretch;
    }

    .article-form-actions a,
    .article-form-actions button {
        width: 100%;
    }

}



