/* =============================================================================
   AFLAO NEXUS ENTERPRISE UI FRAMEWORK
   FILE 1
   BASE.CSS

   PART 1
   ------------------------------------------------------------
   1. CSS RESET
   2. ROOT VARIABLES
   3. LIGHT THEME
   4. TYPOGRAPHY
   5. BODY
   6. LINKS
   7. IMAGES
   8. GENERIC LAYOUT
   ============================================================================= */


/* =============================================================================
   1. CSS RESET
============================================================================= */

*,
*::before,
*::after{

    margin:0;

    padding:0;

    box-sizing:border-box;

}

html{

    font-size:16px;

    scroll-behavior:smooth;

    -webkit-text-size-adjust:100%;

}

body{

    margin:0;

    padding:0;

}


/* =============================================================================
   2. ROOT VARIABLES
============================================================================= */

:root{

    /* Brand */

    --primary:#0F5132;

    --primary-dark:#0B3C26;

    --secondary:#D4A017;

    --accent:#0D6EFD;

    --success:#198754;

    --warning:#FFC107;

    --danger:#DC3545;

    --info:#0DCAF0;


    /* Neutral */

    --white:#FFFFFF;

    --black:#000000;

    --surface:#FFFFFF;

    --background:#F5F7FB;

    --background-dark:#EEF2F7;


    /* Text */

    --text:#1F2937;

    --text-light:#6B7280;

    --text-muted:#94A3B8;


    /* Border */

    --border:#E5E7EB;

    --border-light:#F1F5F9;


    /* Radius */

    --radius-xs:4px;

    --radius-sm:8px;

    --radius-md:12px;

    --radius-lg:16px;

    --radius-xl:24px;

    --radius-pill:999px;


    /* Shadows */

    --shadow-xs:0 1px 2px rgba(0,0,0,.05);

    --shadow-sm:0 2px 6px rgba(0,0,0,.08);

    --shadow-md:0 8px 24px rgba(0,0,0,.08);

    --shadow-lg:0 14px 36px rgba(0,0,0,.12);

    --shadow-xl:0 20px 48px rgba(0,0,0,.16);


    /* Layout */

    --sidebar-width:280px;

    --navbar-height:78px;

    --container-width:1400px;


    /* Animation */

    --transition-fast:.20s ease;

    --transition:.30s ease;

    --transition-slow:.45s ease;

}


/* =============================================================================
   3. LIGHT THEME
============================================================================= */

body{

    background:var(--background);

    color:var(--text);

}


/* =============================================================================
   4. TYPOGRAPHY
============================================================================= */

body{

    font-family:

        "Inter",

        "Segoe UI",

        Arial,

        Helvetica,

        sans-serif;

    font-size:.95rem;

    line-height:1.6;

    font-weight:400;

    text-rendering:optimizeLegibility;

    -webkit-font-smoothing:antialiased;

    -moz-osx-font-smoothing:grayscale;

}

h1,
h2,
h3,
h4,
h5,
h6{

    color:var(--text);

    font-weight:700;

    line-height:1.25;

    margin-bottom:.75rem;

}

h1{

    font-size:2.25rem;

}

h2{

    font-size:1.85rem;

}

h3{

    font-size:1.55rem;

}

h4{

    font-size:1.30rem;

}

h5{

    font-size:1.10rem;

}

h6{

    font-size:1rem;

}

p{

    color:var(--text-light);

    margin-bottom:1rem;

}

small{

    color:var(--text-muted);

}


/* =============================================================================
   5. LINKS
============================================================================= */

a{

    color:inherit;

    text-decoration:none;

    transition:color var(--transition);

}

a:hover{

    color:var(--primary);

}


/* =============================================================================
   6. IMAGES
============================================================================= */

img{

    max-width:100%;

    display:block;

}


/* =============================================================================
   7. GENERIC LAYOUT
============================================================================= */

.container{

    width:min(100% - 2rem,var(--container-width));

    margin-inline:auto;

}

.page{

    min-height:100vh;

}

.section{

    padding:2rem 0;

}

.content{

    padding:2rem;

}

.hidden{

    display:none !important;

}

.visible{

    display:block !important;

}


/* =============================================================================
   END OF FILE 1
   PART 1
============================================================================= */

/* =============================================================================
   FILE 1
   BASE.CSS

   PART 2
   ------------------------------------------------------------
   8. BUTTONS
   9. BUTTON GROUPS
   10. FORM LAYOUT
   11. LABELS
   12. INPUTS
   13. SELECT
   14. TEXTAREA
   15. CHECKBOXES
   16. RADIOS
   17. VALIDATION
============================================================================= */


/* =============================================================================
   8. BUTTONS
============================================================================= */

.btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:.60rem;

    min-height:46px;

    padding:.70rem 1.35rem;

    border:none;

    border-radius:var(--radius-md);

    cursor:pointer;

    font-size:.95rem;

    font-weight:600;

    transition:all var(--transition);

    user-select:none;

}

.btn i{

    font-size:.95rem;

}

.btn:hover{

    transform:translateY(-2px);

    box-shadow:var(--shadow-md);

}

.btn:active{

    transform:scale(.98);

}

.btn:disabled{

    opacity:.6;

    cursor:not-allowed;

    pointer-events:none;

}

/* =============================================================================
   BUTTON COLORS
============================================================================= */

.btn-primary{

    background:var(--primary);

    color:var(--white);

}

.btn-primary:hover{

    background:var(--primary-dark);

}

.btn-secondary{

    background:var(--secondary);

    color:var(--white);

}

.btn-success{

    background:var(--success);

    color:var(--white);

}

.btn-warning{

    background:var(--warning);

    color:#222;

}

.btn-danger{

    background:var(--danger);

    color:var(--white);

}

.btn-info{

    background:var(--info);

    color:var(--white);

}

.btn-light{

    background:#F8FAFC;

    color:var(--text);

    border:1px solid var(--border);

}

.btn-outline{

    background:transparent;

    color:var(--primary);

    border:1px solid var(--primary);

}

.btn-outline:hover{

    background:var(--primary);

    color:var(--white);

}


/* =============================================================================
   BUTTON SIZES
============================================================================= */

.btn-sm{

    min-height:36px;

    padding:.45rem .90rem;

    font-size:.82rem;

}

.btn-lg{

    min-height:56px;

    padding:.95rem 1.8rem;

    font-size:1rem;

}

.btn-block{

    width:100%;

}


/* =============================================================================
   9. BUTTON GROUP
============================================================================= */

.btn-group{

    display:flex;

    align-items:center;

    gap:.75rem;

    flex-wrap:wrap;

}


/* =============================================================================
   10. FORM
============================================================================= */

.form-group{

    display:flex;

    flex-direction:column;

    gap:.45rem;

    margin-bottom:1.25rem;

}

.form-row{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));

    gap:1rem;

}


/* =============================================================================
   11. LABEL
============================================================================= */

label{

    font-size:.90rem;

    font-weight:600;

    color:var(--text);

}


/* =============================================================================
   12. INPUTS
============================================================================= */

input,

select,

textarea{

    width:100%;

    padding:.80rem 1rem;

    border:1px solid var(--border);

    border-radius:var(--radius-md);

    background:var(--white);

    color:var(--text);

    font-size:.95rem;

    transition:all var(--transition);

}

input::placeholder,

textarea::placeholder{

    color:var(--text-muted);

}

input:focus,

select:focus,

textarea:focus{

    outline:none;

    border-color:var(--primary);

    box-shadow:0 0 0 4px rgba(15,81,50,.10);

}


/* =============================================================================
   13. SELECT
============================================================================= */

select{

    cursor:pointer;

}


/* =============================================================================
   14. TEXTAREA
============================================================================= */

textarea{

    min-height:130px;

    resize:vertical;

}


/* =============================================================================
   15. CHECKBOXES
============================================================================= */

input[type="checkbox"]{

    width:18px;

    height:18px;

    cursor:pointer;

}


/* =============================================================================
   16. RADIO
============================================================================= */

input[type="radio"]{

    width:18px;

    height:18px;

    cursor:pointer;

}


/* =============================================================================
   17. VALIDATION
============================================================================= */

.is-valid{

    border-color:var(--success) !important;

}

.is-invalid{

    border-color:var(--danger) !important;

}

.text-success{

    color:var(--success);

}

.text-danger{

    color:var(--danger);

}

.text-warning{

    color:var(--warning);

}

.text-info{

    color:var(--info);

}


/* =============================================================================
   END OF FILE 1
   PART 2
============================================================================= */

/* =============================================================================
   FILE 1
   BASE.CSS

   PART 3
   ------------------------------------------------------------
   18. CARDS
   19. CARD HEADER
   20. ALERTS
   21. BADGES
   22. AVATARS
   23. PROGRESS
   24. LISTS
   25. DIVIDERS
============================================================================= */


/* =============================================================================
   18. CARDS
============================================================================= */

.card{

    background:var(--surface);

    border:1px solid var(--border);

    border-radius:var(--radius-lg);

    box-shadow:var(--shadow-sm);

    overflow:hidden;

    transition:all var(--transition);

}

.card:hover{

    box-shadow:var(--shadow-md);

}

.card-body{

    padding:1.50rem;

}


/* =============================================================================
   19. CARD HEADER
============================================================================= */

.card-header{

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:1rem;

    padding:1.25rem 1.50rem;

    border-bottom:1px solid var(--border);

    background:#ffffff;

}

.card-header h1,
.card-header h2,
.card-header h3,
.card-header h4,
.card-header h5{

    margin:0;

}

.card-footer{

    padding:1rem 1.50rem;

    border-top:1px solid var(--border);

    background:#FAFBFC;

}


/* =============================================================================
   20. ALERTS
============================================================================= */

.alert{

    display:flex;

    align-items:flex-start;

    gap:.75rem;

    padding:1rem 1.25rem;

    border-radius:var(--radius-md);

    margin-bottom:1rem;

    border-left:5px solid transparent;

}

.alert-success{

    background:#ECFDF3;

    color:#065F46;

    border-left-color:var(--success);

}

.alert-danger{

    background:#FEF2F2;

    color:#991B1B;

    border-left-color:var(--danger);

}

.alert-warning{

    background:#FFF8E1;

    color:#92400E;

    border-left-color:var(--warning);

}

.alert-info{

    background:#EFF6FF;

    color:#1D4ED8;

    border-left-color:var(--info);

}


/* =============================================================================
   21. BADGES
============================================================================= */

.badge{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    padding:.30rem .70rem;

    border-radius:999px;

    font-size:.75rem;

    font-weight:700;

    line-height:1;

}

.badge-primary{

    background:var(--primary);

    color:#ffffff;

}

.badge-success{

    background:var(--success);

    color:#ffffff;

}

.badge-danger{

    background:var(--danger);

    color:#ffffff;

}

.badge-warning{

    background:var(--warning);

    color:#222;

}

.badge-info{

    background:var(--info);

    color:#ffffff;

}


/* =============================================================================
   22. AVATARS
============================================================================= */

.avatar{

    width:44px;

    height:44px;

    border-radius:50%;

    object-fit:cover;

    background:#ffffff;

    border:2px solid var(--border);

}

.avatar-sm{

    width:34px;

    height:34px;

}

.avatar-lg{

    width:64px;

    height:64px;

}


/* =============================================================================
   23. PROGRESS
============================================================================= */

.progress{

    width:100%;

    height:10px;

    background:#E5E7EB;

    border-radius:999px;

    overflow:hidden;

}

.progress-bar{

    height:100%;

    background:var(--primary);

    transition:width .40s ease;

}


/* =============================================================================
   24. LISTS
============================================================================= */

.list{

    list-style:none;

    margin:0;

    padding:0;

}

.list-item{

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:1rem;

    padding:1rem 0;

    border-bottom:1px solid var(--border-light);

}

.list-item:last-child{

    border-bottom:none;

}


/* =============================================================================
   25. DIVIDERS
============================================================================= */

.divider{

    width:100%;

    height:1px;

    background:var(--border);

    margin:1.50rem 0;

}

.vertical-divider{

    width:1px;

    align-self:stretch;

    background:var(--border);

}


/* =============================================================================
   END OF FILE 1
   PART 3
============================================================================= */

/* =============================================================================
   FILE 1
   BASE.CSS

   PART 4
   ------------------------------------------------------------
   26. DISPLAY
   27. FLEX
   28. GRID
   29. ALIGNMENT
   30. WIDTH
   31. HEIGHT
   32. SPACING
   33. POSITION
   34. OVERFLOW
============================================================================= */


/* =============================================================================
   26. DISPLAY
============================================================================= */

.d-none{

    display:none !important;

}

.d-block{

    display:block !important;

}

.d-inline{

    display:inline !important;

}

.d-inline-block{

    display:inline-block !important;

}

.d-flex{

    display:flex !important;

}

.d-grid{

    display:grid !important;

}


/* =============================================================================
   27. FLEX
============================================================================= */

.flex-row{

    flex-direction:row;

}

.flex-column{

    flex-direction:column;

}

.flex-wrap{

    flex-wrap:wrap;

}

.flex-nowrap{

    flex-wrap:nowrap;

}

.justify-start{

    justify-content:flex-start;

}

.justify-center{

    justify-content:center;

}

.justify-end{

    justify-content:flex-end;

}

.justify-between{

    justify-content:space-between;

}

.justify-around{

    justify-content:space-around;

}

.align-start{

    align-items:flex-start;

}

.align-center{

    align-items:center;

}

.align-end{

    align-items:flex-end;

}

.align-stretch{

    align-items:stretch;

}

.flex-1{

    flex:1;

}


/* =============================================================================
   28. GRID
============================================================================= */

.grid{

    display:grid;

    gap:1.5rem;

}

.grid-2{

    grid-template-columns:repeat(2,1fr);

}

.grid-3{

    grid-template-columns:repeat(3,1fr);

}

.grid-4{

    grid-template-columns:repeat(4,1fr);

}

.grid-auto{

    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));

}


/* =============================================================================
   29. TEXT ALIGNMENT
============================================================================= */

.text-left{

    text-align:left;

}

.text-center{

    text-align:center;

}

.text-right{

    text-align:right;

}


/* =============================================================================
   30. WIDTH
============================================================================= */

.w-25{

    width:25%;

}

.w-50{

    width:50%;

}

.w-75{

    width:75%;

}

.w-100{

    width:100%;

}


/* =============================================================================
   31. HEIGHT
============================================================================= */

.h-100{

    height:100%;

}

.min-vh-100{

    min-height:100vh;

}


/* =============================================================================
   32. SPACING
============================================================================= */

.m-0{

    margin:0 !important;

}

.mt-1{

    margin-top:.25rem;

}

.mt-2{

    margin-top:.50rem;

}

.mt-3{

    margin-top:1rem;

}

.mt-4{

    margin-top:1.5rem;

}

.mt-5{

    margin-top:2rem;

}

.mb-1{

    margin-bottom:.25rem;

}

.mb-2{

    margin-bottom:.50rem;

}

.mb-3{

    margin-bottom:1rem;

}

.mb-4{

    margin-bottom:1.5rem;

}

.mb-5{

    margin-bottom:2rem;

}

.p-0{

    padding:0 !important;

}

.p-1{

    padding:.25rem;

}

.p-2{

    padding:.50rem;

}

.p-3{

    padding:1rem;

}

.p-4{

    padding:1.5rem;

}

.p-5{

    padding:2rem;

}


/* =============================================================================
   33. POSITION
============================================================================= */

.position-relative{

    position:relative;

}

.position-absolute{

    position:absolute;

}

.position-fixed{

    position:fixed;

}

.position-sticky{

    position:sticky;

}


/* =============================================================================
   34. OVERFLOW
============================================================================= */

.overflow-hidden{

    overflow:hidden;

}

.overflow-auto{

    overflow:auto;

}

.overflow-x-auto{

    overflow-x:auto;

}

.overflow-y-auto{

    overflow-y:auto;

}


/* =============================================================================
   END OF FILE 1
   PART 4
============================================================================= */

/* =============================================================================
   FILE 1
   BASE.CSS

   PART 5
   ------------------------------------------------------------
   35. RESPONSIVE HELPERS
   36. ACCESSIBILITY
   37. SCROLLBAR
   38. PRINT
   39. REDUCED MOTION
   40. FINAL HELPERS
============================================================================= */


/* =============================================================================
   35. RESPONSIVE HELPERS
============================================================================= */

@media (max-width:1200px){

    .container{

        width:min(100% - 1.75rem,1200px);

    }

}

@media (max-width:992px){

    .container{

        width:min(100% - 1.50rem,960px);

    }

    .grid-4{

        grid-template-columns:repeat(2,1fr);

    }

    .grid-3{

        grid-template-columns:repeat(2,1fr);

    }

}

@media (max-width:768px){

    html{

        font-size:15px;

    }

    .container{

        width:min(100% - 1.25rem,100%);

    }

    .grid-4,
    .grid-3,
    .grid-2{

        grid-template-columns:1fr;

    }

    .form-row{

        grid-template-columns:1fr;

    }

    .btn-group{

        flex-direction:column;

        align-items:stretch;

    }

}

@media (max-width:576px){

    html{

        font-size:14px;

    }

    .content{

        padding:1rem;

    }

}


/* =============================================================================
   36. ACCESSIBILITY
============================================================================= */

.visually-hidden{

    position:absolute !important;

    width:1px;

    height:1px;

    padding:0;

    margin:-1px;

    overflow:hidden;

    clip:rect(0,0,0,0);

    white-space:nowrap;

    border:0;

}

:focus-visible{

    outline:3px solid rgba(13,110,253,.35);

    outline-offset:2px;

}


/* =============================================================================
   37. SCROLLBAR
============================================================================= */

::-webkit-scrollbar{

    width:10px;

    height:10px;

}

::-webkit-scrollbar-track{

    background:#F1F5F9;

}

::-webkit-scrollbar-thumb{

    background:#CBD5E1;

    border-radius:999px;

}

::-webkit-scrollbar-thumb:hover{

    background:#94A3B8;

}

html{

    scrollbar-width:thin;

}


/* =============================================================================
   38. PRINT
============================================================================= */

@media print{

    body{

        background:#FFFFFF;

        color:#000000;

    }

    .no-print{

        display:none !important;

    }

}


/* =============================================================================
   39. REDUCED MOTION
============================================================================= */

@media (prefers-reduced-motion:reduce){

    *{

        animation:none !important;

        transition:none !important;

        scroll-behavior:auto !important;

    }

}


/* =============================================================================
   40. FINAL HELPERS
============================================================================= */

.rounded{

    border-radius:var(--radius-md);

}

.shadow{

    box-shadow:var(--shadow-md);

}

.border{

    border:1px solid var(--border);

}

.bg-white{

    background:#FFFFFF;

}

.bg-primary{

    background:var(--primary);

    color:#FFFFFF;

}

.cursor-pointer{

    cursor:pointer;

}

.user-select-none{

    user-select:none;

}


/* 

/* =============================================================================
   APPLICATION FOOTER
============================================================================= */

.footer{

    margin-left:var(--sidebar-width);

    width:calc(100% - var(--sidebar-width));

    margin-top:40px;

    background:#ffffff;

    border-top:1px solid var(--border);

}

.footer-container{

    max-width:1800px;

    margin:0 auto;

    padding:40px 32px;

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));

    gap:32px;

}

.footer-section h5{

    margin-bottom:16px;

    font-size:1rem;

    font-weight:700;

    color:var(--primary);

}

.footer-section p,

.footer-section li{

    color:var(--text-light);

    line-height:1.8;

    margin-bottom:10px;

}

.footer-section ul{

    list-style:none;

    padding:0;

    margin:0;

}

.footer-section a{

    color:var(--text-light);

    text-decoration:none;

    display:flex;

    align-items:center;

    gap:10px;

    transition:color var(--transition);

}

.footer-section a:hover{

    color:var(--primary);

}

.footer-bottom{

    border-top:1px solid var(--border);

    padding:20px 32px;

    display:flex;

    justify-content:space-between;

    align-items:center;

    flex-wrap:wrap;

    gap:12px;

    color:var(--text-light);

    max-width:1800px;

    margin:0 auto;

}

.footer-bottom i{

    color:#dc3545;

}


/* =============================================================================
   RESPONSIVE FOOTER
============================================================================= */

@media (max-width:992px){

    .footer{

        margin-left:0;

        width:100%;

    }

}

@media (max-width:768px){

    .footer-container{

        grid-template-columns:1fr;

        padding:28px 20px;

    }

    .footer-bottom{

        flex-direction:column;

        text-align:center;

        padding:20px;

    }

}

/* 
=============================================================================
   END OF FILE 1
   BASE.CSS

   RESPONSIBILITIES

   ✓ CSS Reset
   ✓ Variables
   ✓ Typography
   ✓ Generic Layout
   ✓ Buttons
   ✓ Forms
   ✓ Cards
   ✓ Alerts
   ✓ Badges
   ✓ Utilities
   ✓ Responsive Helpers

   DOES NOT STYLE

   ✗ Navbar
   ✗ Sidebar
   ✗ Dashboard
   ✗ Charts
   ✗ Statistics
   ✗ Executive Header
   ✗ User Menu
   ✗ Notifications
   ✗ Search Bar

============================================================================= */