/* ==========================================================================
   CfCbazar Global Stylesheet
   Part 1 of 3
   Root Variables • Reset • Base • Typography • Helpers
   Layout • Header • Navigation • Forms
   ========================================================================== */

/* ==========================================================================
   Root Variables
   ========================================================================== */

:root{

    /* Layout */
    --menu-height:145px;
    --topbar-height:100px;
    --container-width:1400px;

    /* Brand */
    --primary:#28a745;
    --primary-dark:#1e7e34;
    --primary-darker:#155724;

    /* Accent */
    --blue:#0d6efd;
    --orange:#fd7e14;
    --purple:#6f42c1;

    /* Status */
    --success:#28a745;
    --success-bg:#eaf8ee;

    --danger:#dc3545;
    --danger-bg:#fff3f3;

    --warning:#ffc107;
    --warning-bg:#fff8e5;

    --info:#0d6efd;
    --info-bg:#eef6ff;

    /* Neutral */

    --background:#f5f7fb;
    --card-bg:#ffffff;

    --text:#2f3437;
    --text-light:#6c757d;

    --border:#dfe5eb;

    /* Radius */

    --radius-small:8px;
    --radius:14px;
    --radius-large:22px;

    /* Shadows */

    --shadow-small:
        0 2px 8px rgba(0,0,0,.06);

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

    --shadow-large:
        0 16px 40px rgba(0,0,0,.14);

    /* Animation */

    --transition:.25s ease;

}

/* ==========================================================================
   Reset
   ========================================================================== */

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

    margin:0;

    padding:0;

    box-sizing:border-box;

}

/* ==========================================================================
   Base
   ========================================================================== */

html{

    scroll-behavior:smooth;

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

}

body{

    font-family:

        "Segoe UI",
        "Inter",
        "Roboto",
        Arial,
        sans-serif;

    background:var(--background);

    color:var(--text);

    line-height:1.65;

    overflow-x:hidden;

    padding-top:70px;

    text-rendering:optimizeLegibility;

    -webkit-font-smoothing:antialiased;

}

img{

    display:block;

    max-width:100%;

    height:auto;

}

svg{

    max-width:100%;

}

a{

    color:var(--primary);

    text-decoration:none;

    transition:

        color var(--transition),
        background var(--transition),
        transform var(--transition);

}

a:hover{

    color:var(--primary-dark);

}

a:focus-visible{

    outline:3px solid rgba(40,167,69,.25);

    outline-offset:3px;

}

hr{

    border:none;

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

    margin:30px 0;

}

/* ==========================================================================
   Typography
   ========================================================================== */

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

    color:var(--primary-dark);

    font-weight:700;

    line-height:1.3;

    margin-bottom:18px;

}

h1{

    font-size:2.2rem;

}

h2{

    font-size:1.8rem;

}

h3{

    font-size:1.45rem;

}

h4{

    font-size:1.2rem;

}

h5{

    font-size:1.05rem;

}

h6{

    font-size:1rem;

}

p{

    margin-bottom:16px;

}

small{

    color:var(--text-light);

}

strong{

    font-weight:700;

}

/* ==========================================================================
   Helpers
   ========================================================================== */

.hidden{

    display:none !important;

}

.code-block{

    padding:18px;

    overflow:auto;

    border-left:5px solid var(--primary);

    border-radius:10px;

    background:#f3f5f7;

    font-family:

        Consolas,
        monospace;

    font-size:.9rem;

}

/* ==========================================================================
   Main Container
   ========================================================================== */

.container{

    width:min(96%,var(--container-width));

    margin:25px auto;

    padding:28px;

    background:var(--card-bg);

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

    box-shadow:var(--shadow);

    position:relative;

    z-index:1;

}

.home-container{

    text-align:center;

}

/* ==========================================================================
   Header
   ========================================================================== */

.header{

    padding:30px;

    text-align:center;

    color:#fff;

    border-radius:var(--radius);

    background:

        linear-gradient(
            135deg,
            var(--primary),
            var(--primary-dark)
        );

    box-shadow:var(--shadow);

}

.header h1{

    display:flex;

    justify-content:center;

    align-items:center;

    gap:15px;

    color:#fff;

    margin:0;

}

.header img{

    width:90px;

    height:90px;

    object-fit:contain;

    border-radius:12px;

}

/* ==========================================================================
   Navigation
   ========================================================================== */

.main-nav{

    position:fixed;

    top:0;

    left:0;

    width:90%;

    padding:16px 22px;

    background:var(--primary);

    box-shadow:0 4px 12px rgba(0,0,0,.12);

    z-index:99999;

}

.menu-toggle{

    display:none;

    background:none;

    border:none;

    color:#fff;

    cursor:pointer;

    width:auto;

    font-size:1.5rem;

    box-shadow:none;

}

.nav-menu{

    display:flex;

    justify-content:center;

    align-items:center;

    flex-wrap:wrap;

    gap:12px;

    list-style:none;

}

.nav-menu li{

    list-style:none;

}

.nav-menu li a{

    display:block;

    padding:10px 16px;

    color:#fff;

    font-weight:500;

    border-radius:8px;

    transition:all var(--transition);

}

.nav-menu li a:hover{

    background:rgba(255,255,255,.12);

    transform:translateY(-2px);

}

.nav-menu li a:focus-visible{

    outline:2px solid #fff;

    outline-offset:2px;

}

/* ==========================================================================
   Forms
   ========================================================================== */

form{

    margin-top:20px;

}

.form-group{

    margin-bottom:20px;

}

label{

    display:block;

    margin-bottom:8px;

    font-weight:600;

}

input,
textarea,
select,
button{

    width:100%;

    padding:12px 14px;

    margin-top:6px;

    font-size:1rem;

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

}

input,
textarea,
select{

    background:#fff;

    color:var(--text);

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

    transition:

        border-color var(--transition),
        box-shadow var(--transition);

}

input:focus,
textarea:focus,
select:focus{

    outline:none;

    border-color:var(--primary);

    box-shadow:0 0 0 4px rgba(40,167,69,.15);

}

textarea{

    resize:vertical;

    min-height:130px;

}

button{

    border:none;

    cursor:pointer;

    font-weight:600;

    color:#fff;

    background:

        linear-gradient(
            135deg,
            var(--primary),
            var(--primary-dark)
        );

    transition:

        transform var(--transition),
        box-shadow var(--transition),
        background var(--transition);

}

button:hover:not(:disabled){

    transform:translateY(-2px);

    box-shadow:var(--shadow);

    background:

        linear-gradient(
            135deg,
            var(--primary-dark),
            var(--primary-darker)
        );

}

button:disabled{

    opacity:.6;

    cursor:not-allowed;

}

/* ==========================================================================
   CfCbazar Global Stylesheet
   Part 2 of 3
   Cards • Alerts • Tables • Dashboard • Grids • Utilities • Footer
   ========================================================================== */

/* ==========================================================================
   Messages / Alerts
   ========================================================================== */

.success,
.error,
.warning,
.info{

    padding:18px 22px;

    margin:20px 0;

    border-left:6px solid;

    border-radius:var(--radius);

    font-weight:600;

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

}

.success{

    color:var(--success);

    background:var(--success-bg);

    border-color:var(--success);

}

.error{

    color:var(--danger);

    background:var(--danger-bg);

    border-color:var(--danger);

}

.warning{

    color:#8a6300;

    background:var(--warning-bg);

    border-color:var(--warning);

}

.info{

    color:var(--info);

    background:var(--info-bg);

    border-color:var(--info);

}

/* ==========================================================================
   Cards
   ========================================================================== */

.card,
.dashboard-card,
.welcome-card,
.info-card,
.profile-card,
.statistics-card,
.hero-section,
.wallet-form,
.vip-section,
.logout-section,
.login-prompt{

    background:var(--card-bg);

    border:1px solid rgba(0,0,0,.04);

    border-radius:var(--radius);

    padding:28px;

    margin:24px 0;

    box-shadow:var(--shadow);

    transition:

        transform .25s ease,

        box-shadow .25s ease,

        border-color .25s ease;

}

.card:hover,
.dashboard-card:hover,
.welcome-card:hover,
.info-card:hover,
.profile-card:hover,
.statistics-card:hover{

    transform:translateY(-4px);

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

    border-color:rgba(40,167,69,.15);

}

.card h2,
.card h3,
.card h4{

    margin-bottom:18px;

}

.card p:last-child{

    margin-bottom:0;

}

/* ==========================================================================
   Dashboard Statistic Cards
   ========================================================================== */

.stat-box{

    background:#fff;

    border-radius:var(--radius);

    padding:24px;

    text-align:center;

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

    transition:.25s;

}

.stat-box:hover{

    transform:translateY(-4px);

    box-shadow:var(--shadow);

}

.stat-box h2{

    margin:0;

    color:var(--primary);

    font-size:2rem;

}

.stat-box p{

    margin-top:10px;

    color:var(--text-light);

    font-size:.95rem;

}

/* ==========================================================================
   Generic Content Blocks
   ========================================================================== */

.profile-box,
.settings-box,
.gear,
.quests,
.achievements{

    margin-top:20px;

    padding:22px;

    background:#fafafa;

    border-radius:var(--radius);

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

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

}

/* ==========================================================================
   Badges
   ========================================================================== */

.badge{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    min-width:80px;

    padding:6px 12px;

    border-radius:999px;

    font-size:.85rem;

    font-weight:700;

}

.badge-success{

    background:#dff7e6;

    color:#155724;

}

.badge-error{

    background:#ffe5e7;

    color:#842029;

}

.badge-warning{

    background:#fff3cd;

    color:#856404;

}

.badge-info{

    background:#d9ecff;

    color:#0a58ca;

}

/* ==========================================================================
   Tables
   ========================================================================== */

.table-wrapper{

    width:100%;

    overflow-x:auto;

    border-radius:var(--radius);

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

}

table{

    width:100%;

    border-collapse:collapse;

    background:#fff;

}

thead{

    position:sticky;

    top:0;

    z-index:2;

}

th{

    padding:14px 16px;

    background:var(--primary);

    color:#fff;

    text-align:left;

    font-weight:700;

    white-space:nowrap;

}

td{

    padding:12px 16px;

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

    vertical-align:middle;

}

tbody tr{

    transition:.2s;

}

tbody tr:nth-child(even){

    background:#fbfbfb;

}

tbody tr:hover{

    background:#eef8f0;

}

/* ==========================================================================
   Dashboard Tables
   ========================================================================== */

.table-actions{

    display:flex;

    gap:8px;

    flex-wrap:wrap;

}

.table-actions button{

    width:auto;

}

/* ==========================================================================
   Grid Layouts
   ========================================================================== */

.grid-2{

    display:grid;

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

    gap:24px;

}

.grid-3{

    display:grid;

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

    gap:24px;

}

.grid-4{

    display:grid;

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

    gap:24px;

}

/* ==========================================================================
   Links Grid
   ========================================================================== */

.links-grid{

    display:grid;

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

    gap:22px;

    margin:28px 0;

}

.link-card{

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    min-height:170px;

    padding:20px;

    text-align:center;

    background:#fff;

    color:var(--text);

    border-radius:var(--radius);

    border:1px solid rgba(0,0,0,.05);

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

    transition:.25s;

}

.link-card:hover{

    transform:translateY(-6px);

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

}

.link-card span:first-child{

    font-size:2.3rem;

    margin-bottom:12px;

}

.link-card span:last-child{

    font-size:1rem;

    font-weight:600;

}

/* ==========================================================================
   Flex Helpers
   ========================================================================== */

.flex{

    display:flex;

}

.flex-wrap{

    display:flex;

    flex-wrap:wrap;

    gap:18px;

}

.flex-center{

    display:flex;

    justify-content:center;

    align-items:center;

}

.flex-between{

    display:flex;

    justify-content:space-between;

    align-items:center;

}

.flex-column{

    display:flex;

    flex-direction:column;

}

/* ==========================================================================
   Text Helpers
   ========================================================================== */

.text-center{text-align:center;}

.text-left{text-align:left;}

.text-right{text-align:right;}

.text-success{color:var(--success);}

.text-danger{color:var(--danger);}

.text-warning{color:#856404;}

.text-info{color:var(--info);}

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

/* ==========================================================================
   Width Helpers
   ========================================================================== */

.w-25{width:25%;}

.w-33{width:33.333%;}

.w-50{width:50%;}

.w-75{width:75%;}

.w-100{width:100%;}

/* ==========================================================================
   Margin Helpers
   ========================================================================== */

.mt-5{margin-top:5px;}
.mt-10{margin-top:10px;}
.mt-15{margin-top:15px;}
.mt-20{margin-top:20px;}
.mt-30{margin-top:30px;}
.mt-40{margin-top:40px;}
.mt-50{margin-top:50px;}

.mb-5{margin-bottom:5px;}
.mb-10{margin-bottom:10px;}
.mb-15{margin-bottom:15px;}
.mb-20{margin-bottom:20px;}
.mb-30{margin-bottom:30px;}
.mb-40{margin-bottom:40px;}
.mb-50{margin-bottom:50px;}

.ml-auto{margin-left:auto;}

.mr-auto{margin-right:auto;}

/* ==========================================================================
   Padding Helpers
   ========================================================================== */

.p-10{padding:10px;}
.p-15{padding:15px;}
.p-20{padding:20px;}
.p-30{padding:30px;}

/* ==========================================================================
   Loading
   ========================================================================== */

.loading{

    opacity:.6;

    pointer-events:none;

    cursor:wait;

}

/* ==========================================================================
   Footer
   ========================================================================== */

footer.footer{

    margin-top:60px;

    padding:30px 20px;

    text-align:center;

    color:var(--text-light);

}

footer.footer .card{

    max-width:900px;

    margin:auto;

}

footer.footer a{

    display:inline-block;

    transition:.25s;

}

footer.footer a:hover{

    transform:translateY(-2px);

}

/* ==========================================================================
   CfCbazar Global Stylesheet
   Part 3 of 3
   Responsive • Navigation • Accessibility • Images • Print
   ========================================================================== */

/* ==========================================================================
   Desktop Navigation (769px+)
   ========================================================================== */

@media (min-width:769px){

    .main-nav{

        min-height:60px;

        z-index:99999;

    }

    .menu-toggle{

        display:block;

        position:absolute;

        top:10px;

        left:20px;

        width:auto;

        padding:6px 12px;

        background:none;

        color:#fff;

        border:none;

        font-size:1.2rem;

        font-weight:600;

        cursor:pointer;

        box-shadow:none;

        z-index:100001;

    }

    .menu-toggle:hover{

        transform:none;

        background:rgba(255,255,255,.12);

        border-radius:8px;

    }

    .nav-menu{

        position:absolute;

        top:100%;

        left:0;

        width:100%;

        display:flex;

        flex-direction:column;

        gap:0;

        background:var(--primary);

        box-shadow:0 10px 30px rgba(0,0,0,.18);

        border-radius:0 0 14px 14px;

        max-height:0;

        overflow:hidden;

        opacity:0;

        visibility:hidden;

        transition:

            max-height .3s ease,

            opacity .2s ease,

            visibility .2s ease;

    }

    .nav-menu.active{

        max-height:calc(100vh - 70px);

        overflow-y:auto;

        -webkit-overflow-scrolling:touch;

        opacity:1;

        visibility:visible;

    }

    .nav-menu li{

        width:90%;

    }

    .nav-menu li a{

        display:block;

        width:100%;

        padding:8px 16px;

        margin:0;

        text-align:left;

        border-bottom:1px solid rgba(255,255,255,.08);

    }

    .nav-menu li:last-child a{

        border-bottom:none;

    }

}

/* ==========================================================================
   Tablet (992px)
   ========================================================================== */

@media (max-width:992px){

    body{

        padding-top:70px;

    }

    .container{

        width:97%;

        padding:24px;

    }

    h1{

        font-size:2rem;

    }

    h2{

        font-size:1.65rem;

    }

    h3{

        font-size:1.35rem;

    }

}

/* ==========================================================================
   Mobile Navigation (768px)
   ========================================================================== */

@media (max-width:768px){

    body{

        padding-top:70px;

    }

    .main-nav{

        padding:10px 0;

        min-height:56px;

        overflow:visible;

    }

    .menu-toggle{

        display:block;

        position:absolute;

        top:8px;

        right:12px;

        width:auto;

        padding:6px 12px;

        background:none;

        color:#fff;

        border:none;

        font-size:1.35rem;

        cursor:pointer;

        box-shadow:none;

        z-index:100001;

    }

    .menu-toggle:hover{

        transform:none;

        background:rgba(255,255,255,.15);

    }

    .nav-menu{

        position:absolute;

        top:100%;

        left:0;

        width:100%;

        display:flex;

        flex-direction:column;

        gap:0;

        background:var(--primary);

        box-shadow:0 10px 30px rgba(0,0,0,.18);

        border-radius:0 0 14px 14px;

        max-height:0;

        overflow:hidden;

        opacity:0;

        visibility:hidden;

        transition:

            max-height .3s ease,

            opacity .2s ease,

            visibility .2s ease;

    }

    .nav-menu.active{

        max-height:calc(100vh - 60px);

        overflow-y:auto;

        -webkit-overflow-scrolling:touch;

        opacity:1;

        visibility:visible;

    }

    .nav-menu li{

        width:100%;

    }

    .nav-menu li a{

        display:block;

        width:100%;

        margin:0;

        padding:8px 14px;

        font-size:.95rem;

        line-height:1.25;

        text-align:left;

        border-bottom:1px solid rgba(255,255,255,.08);

    }

    .nav-menu li:last-child a{

        border-bottom:none;

    }

    .container{

        width:98%;

        padding:18px;

        border-radius:16px;

    }

    .header{

        padding:22px;

    }

    .header h1{

        flex-direction:column;

        gap:10px;

        font-size:1.6rem;

    }

    .header img{

        width:72px;

        height:72px;

    }

    .card,
    .dashboard-card,
    .welcome-card,
    .info-card,
    .profile-card{

        padding:18px;

    }

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

        grid-template-columns:1fr;

    }

    .links-grid{

        grid-template-columns:1fr;

    }

    .link-card{

        min-height:120px;

    }

    .flex,
    .flex-between{

        flex-direction:column;

        align-items:stretch;

    }

    .w-25,
    .w-33,
    .w-50,
    .w-75{

        width:100%;

    }

}

/* ==========================================================================
   Small Phones (480px)
   ========================================================================== */

@media (max-width:480px){

    body{

        font-size:.95rem;

    }

    h1{

        font-size:1.45rem;

    }

    h2{

        font-size:1.3rem;

    }

    h3{

        font-size:1.15rem;

    }

    .container{

        padding:15px;

    }

    input,
    textarea,
    select,
    button{

        font-size:16px;

    }

    .nav-menu li a{

        padding:8px 12px;

        font-size:.9rem;

    }

}

/* ==========================================================================
   Responsive Tables
   ========================================================================== */

@media (max-width:768px){

    .table-wrapper{

        overflow-x:auto;

    }

    table{

        min-width:650px;

    }

}

/* ==========================================================================
   Images
   ========================================================================== */

.responsive-img{

    display:block;

    width:100%;

    max-width:100%;

    height:auto;

    border-radius:var(--radius);

}

.avatar{

    width:80px;

    height:80px;

    border-radius:50%;

    object-fit:cover;

}

/* ==========================================================================
   Accessibility
   ========================================================================== */

:focus-visible{

    outline:3px solid rgba(40,167,69,.35);

    outline-offset:2px;

}

::selection{

    background:rgba(40,167,69,.18);

}

/* ==========================================================================
   Smooth Animations
   ========================================================================== */

.card,
.dashboard-card,
.welcome-card,
.info-card,
.profile-card,
button,
.link-card,
.stat-box{

    transition:

        background .25s ease,

        color .25s ease,

        border-color .25s ease,

        transform .25s ease,

        box-shadow .25s ease;

}

/* ==========================================================================
   Print
   ========================================================================== */

@media print{

    body{

        background:#fff;

        padding:0;

    }

    .main-nav,

    .menu-toggle,

    footer,

    button{

        display:none !important;

    }

    .container{

        width:100%;

        margin:0;

        padding:0;

        box-shadow:none;

        border:none;

    }

    .card{

        break-inside:avoid;

        box-shadow:none;

        border:1px solid #ccc;

    }

}

/* Fix list indentation and hanging numbers */
ol, ul {
    padding-left: 24px;
    margin-bottom: 16px;
}

ol li, ul li {
    margin-bottom: 8px;
}

