/* =========================================================
   GANESH PUJA PUBLIC PAGE
   ========================================================= */

.ganesh-body {
    margin: 0;
    padding: 0;
    background: #f4f7f5;
}


/* =========================================================
   HEADER
   ========================================================= */

.ganesh-header {
    display: flex;
    align-items: center;
    justify-content: space-between;

    padding: 12px 5%;

    background: #087631;
}


/* Logo */

.ganesh-header .logo {
    display: flex;
    align-items: center;
    gap: 15px;
}


.ganesh-header .logo img {
    width: 65px;
    height: 65px;

    object-fit: contain;

    border-radius: 50%;
}


/* Club name */

.ganesh-header .club-name h1 {
    margin: 0;

    color: #ffffff;

    font-size: 24px;
}


.ganesh-header .club-name p {
    margin: 4px 0 0;

    color: #ffffff;

    font-size: 13px;
}


/* Home */

.ganesh-home-button {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    padding: 10px 20px;

    background: #ffffff;

    color: #087631;

    text-decoration: none;

    border-radius: 8px;

    font-weight: 700;

    transition: 0.3s;
}


.ganesh-home-button:hover {
    transform: translateY(-2px);

    background: #e9f7ec;
}


/* =========================================================
   HERO
   ========================================================= */

.ganesh-hero {
    position: relative;

    padding: 65px 20px;

    text-align: center;

    color: #ffffff;

    background:
        linear-gradient(
            135deg,
            #087631,
            #19a34a
        );

    overflow: hidden;
}


.ganesh-hero::before {
    content: "";

    position: absolute;

    width: 180px;
    height: 180px;

    border-radius: 50%;

    background: rgba(255,255,255,0.08);

    top: -80px;
    left: 5%;
}


.ganesh-hero::after {
    content: "";

    position: absolute;

    width: 220px;
    height: 220px;

    border-radius: 50%;

    background: rgba(255,255,255,0.08);

    right: 5%;
    bottom: -120px;
}


.ganesh-hero-content {
    position: relative;

    z-index: 2;
}


.ganesh-symbol {
    font-size: 48px;

    margin-bottom: 5px;
}


.ganesh-hero h1 {
    margin: 0;

    font-size: 40px;
}


.ganesh-hero h2 {
    margin: 8px 0 0;

    font-size: 18px;

    font-weight: 500;
}


.ganesh-hero p {
    margin: 8px 0 0;

    font-size: 15px;
}


/* =========================================================
   CONTAINER
   ========================================================= */

.ganesh-container {
    width: 88%;

    max-width: 1200px;

    margin: 35px auto 60px;
}


/* =========================================================
   YEAR
   ========================================================= */

.ganesh-year-box {
    background: #ffffff;

    padding: 20px 25px;

    border-radius: 12px;

    margin-bottom: 25px;

    box-shadow: 0 5px 18px rgba(0,0,0,0.07);
}


.ganesh-year-box label {
    display: block;

    margin-bottom: 8px;

    color: #087631;

    font-size: 14px;

    font-weight: 700;
}


.ganesh-year-box select {
    width: 200px;

    padding: 10px 13px;

    border: 1px solid #d7d7d7;

    border-radius: 7px;

    font-size: 14px;

    background: #ffffff;
}


/* =========================================================
   SUMMARY
   ========================================================= */

.ganesh-summary {
    display: grid;

    grid-template-columns:
        repeat(4, 1fr);

    gap: 18px;

    margin-bottom: 30px;
}


.ganesh-card {
    padding: 23px 12px;

    text-align: center;

    background: #ffffff;

    border-radius: 13px;

    border-top: 4px solid #087631;

    box-shadow:
        0 5px 18px rgba(0,0,0,0.07);
}


.ganesh-card-icon {
    font-size: 27px;

    margin-bottom: 7px;
}


.ganesh-card h3 {
    margin: 0;

    color: #087631;

    font-size: 25px;
}


.ganesh-card p {
    margin: 6px 0 0;

    color: #666;

    font-size: 13px;
}


/* =========================================================
   SECTION
   ========================================================= */

.ganesh-section {
    margin-bottom: 28px;

    padding: 25px;

    background: #ffffff;

    border-radius: 14px;

    box-shadow:
        0 5px 18px rgba(0,0,0,0.07);
}


.ganesh-section-title {
    margin-bottom: 18px;

    padding-bottom: 13px;

    border-bottom: 2px solid #eeeeee;
}


.ganesh-section-title h2 {
    margin: 0;

    color: #087631;

    font-size: 22px;
}


.ganesh-section-title p {
    margin: 5px 0 0;

    color: #777;

    font-size: 13px;
}


/* =========================================================
   TABLE
   ========================================================= */

.ganesh-table-wrapper {
    width: 100%;

    overflow-x: auto;
}


.ganesh-table {
    width: 100%;

    min-width: 550px;

    border-collapse: collapse;
}


.ganesh-table thead th {
    padding: 13px 12px;

    text-align: left;

    background: #087631;

    color: #ffffff;

    font-size: 14px;
}


.ganesh-table tbody td {
    padding: 13px 12px;

    border-bottom: 1px solid #eeeeee;

    color: #444;

    font-size: 14px;
}


.ganesh-table tbody tr:hover {
    background: #f3faf5;
}


/* =========================================================
   STATUS
   ========================================================= */

.ganesh-paid {
    display: inline-block;

    padding: 5px 12px;

    background: #e5f7ea;

    color: #087631;

    border-radius: 20px;

    font-size: 12px;

    font-weight: 700;
}


.ganesh-unpaid {
    display: inline-block;

    padding: 5px 12px;

    background: #fff0f0;

    color: #d62828;

    border-radius: 20px;

    font-size: 12px;

    font-weight: 700;
}


/* Empty */

.ganesh-empty {
    text-align: center !important;

    padding: 35px 10px !important;

    color: #777 !important;
}


/* =========================================================
   PUBLIC NOTE
   ========================================================= */

.ganesh-public-note {
    text-align: center;

    padding: 15px;

    color: #666;

    font-size: 13px;

    line-height: 1.7;
}


.ganesh-public-note p {
    margin: 4px 0;
}


/* =========================================================
   FOOTER
   ========================================================= */

.ganesh-body .footer {
    margin-top: 0;
}


/* =========================================================
   TABLET
   ========================================================= */

@media screen and (max-width: 1000px) {

    .ganesh-summary {
        grid-template-columns:
            repeat(2, 1fr);
    }

    .ganesh-container {
        width: 92%;
    }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media screen and (max-width: 768px) {

    .ganesh-header {
        padding: 10px 4%;
    }


    .ganesh-header .logo {
        gap: 8px;
    }


    .ganesh-header .logo img {
        width: 50px;
        height: 50px;
    }


    .ganesh-header .club-name {
        display: none;
    }


    .ganesh-home-button {
        padding: 8px 14px;

        font-size: 13px;
    }


    .ganesh-hero {
        padding: 45px 15px;
    }


    .ganesh-symbol {
        font-size: 40px;
    }


    .ganesh-hero h1 {
        font-size: 30px;
    }


    .ganesh-hero h2 {
        font-size: 15px;
    }


    .ganesh-hero p {
        font-size: 13px;
    }


    .ganesh-container {
        width: 94%;

        margin-top: 25px;
    }


    .ganesh-year-box {
        padding: 18px;
    }


    .ganesh-year-box select {
        width: 100%;
    }


    .ganesh-summary {
        grid-template-columns:
            repeat(2, 1fr);

        gap: 12px;
    }


    .ganesh-card {
        padding: 18px 8px;
    }


    .ganesh-card h3 {
        font-size: 21px;
    }


    .ganesh-card p {
        font-size: 11px;
    }


    .ganesh-section {
        padding: 17px 12px;
    }


    .ganesh-section-title h2 {
        font-size: 19px;
    }


    .ganesh-table {
        min-width: 520px;
    }

}


/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media screen and (max-width: 480px) {

    .ganesh-header .logo img {
        width: 43px;
        height: 43px;
    }


    .ganesh-home-button {
        padding: 7px 11px;

        font-size: 12px;
    }


    .ganesh-hero {
        padding: 38px 10px;
    }


    .ganesh-hero h1 {
        font-size: 26px;
    }


    .ganesh-hero h2 {
        font-size: 13px;
    }


    .ganesh-hero p {
        font-size: 11px;
    }


    .ganesh-summary {
        gap: 8px;
    }


    .ganesh-card {
        padding: 15px 5px;
    }


    .ganesh-card-icon {
        font-size: 22px;
    }


    .ganesh-card h3 {
        font-size: 18px;
    }


    .ganesh-card p {
        font-size: 10px;
    }


    .ganesh-section {
        padding: 14px 9px;
    }


    .ganesh-section-title h2 {
        font-size: 17px;
    }


    .ganesh-table {
        min-width: 500px;
    }


    .ganesh-table thead th,
    .ganesh-table tbody td {
        padding: 10px 8px;

        font-size: 12px;
    }


    .ganesh-public-note {
        font-size: 11px;
    }

}
/* =================================
   GANESH PUJA ACCESS PAGE
================================= */

.ganesh-access-section {
    min-height: 55vh;
    padding: 55px 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #f5f7fa;
}

.ganesh-access-card {
    width: 100%;
    max-width: 500px;
    padding: 35px;
    background: #ffffff;
    border-radius: 20px;
    text-align: center;
    box-shadow: 0 10px 35px rgba(0,0,0,0.12);
}

.ganesh-access-icon {
    font-size: 52px;
    margin-bottom: 12px;
}

.ganesh-access-card h2 {
    color: #0b5d1e;
    margin-bottom: 10px;
    font-size: 25px;
}

.ganesh-access-card > p {
    color: #666;
    line-height: 1.6;
    margin-bottom: 25px;
}

#ganeshAccessForm {
    text-align: left;
}

#ganeshAccessForm label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    color: #333;
}

#memberCode {
    width: 100%;
    padding: 14px 16px;
    border: 1px solid #ccc;
    border-radius: 10px;
    font-size: 16px;
    margin-bottom: 15px;
    outline: none;
}

#memberCode:focus {
    border-color: #0b5d1e;
    box-shadow: 0 0 0 3px rgba(11,93,30,0.1);
}

#ganeshAccessForm button {
    width: 100%;
    padding: 14px;
    border: none;
    border-radius: 10px;
    background: #0b5d1e;
    color: white;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
}

#ganeshAccessForm button:hover {
    background: #084916;
}

.access-error {
    display: none;
    color: #d32f2f;
    font-size: 14px;
    margin-top: 12px;
    text-align: center;
}

.access-note {
    margin-top: 25px;
    padding: 12px;
    border-radius: 10px;
    background: #f1f8f3;
    color: #555;
    font-size: 13px;
    display: flex;
    gap: 8px;
    align-items: flex-start;
    text-align: left;
}

.access-note i {
    color: #0b5d1e;
    margin-top: 3px;
}

@media (max-width: 600px) {

    .ganesh-access-section {
        padding: 35px 15px;
    }

    .ganesh-access-card {
        padding: 25px 20px;
    }

    .ganesh-access-card h2 {
        font-size: 22px;
    }

}
/* =========================================
   KARYA BANTAN - STEP 1
========================================= */
.karya-section { position: relative; }
.karya-heading-row { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; }
.karya-heading-row .ganesh-section-title { flex:1; margin-bottom:0; }
.karya-add-btn { border:0; border-radius:10px; padding:11px 17px; background:#087631; color:#fff; font-weight:700; cursor:pointer; white-space:nowrap; }
.karya-add-btn:hover { background:#065b25; transform:translateY(-1px); }
.task-list { margin-top:20px; display:grid; gap:14px; }
.task-empty { padding:32px 16px; text-align:center; border:1px dashed #cdd8d0; border-radius:12px; background:#f8fbf9; color:#6b756e; }
.task-empty i { font-size:32px; color:#087631; margin-bottom:8px; }
.task-empty h3 { margin:0 0 5px; color:#31543b; font-size:17px; }
.task-empty p { margin:0; font-size:13px; }
.task-item { display:flex; gap:15px; padding:18px; border:1px solid #e1e8e3; border-left:4px solid #087631; border-radius:12px; background:#fff; box-shadow:0 4px 14px rgba(0,0,0,.05); }
.task-number { min-width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:#e9f6ed; color:#087631; font-weight:700; }
.task-main { flex:1; min-width:0; }
.task-main h3 { margin:0 0 8px; color:#164d28; font-size:18px; }
.task-meta { display:flex; flex-wrap:wrap; gap:8px 16px; color:#666; font-size:13px; margin-bottom:8px; }
.task-main p { margin:5px 0 0; color:#555; font-size:13px; }
.task-note { padding:8px 10px; background:#f5f8f6; border-radius:7px; }
.task-form-card { margin:20px 0 0; padding:24px; background:#fff; border:2px solid #e0ece3; border-radius:14px; box-shadow:0 6px 20px rgba(0,0,0,.07); }
.task-form-header { display:flex; justify-content:space-between; align-items:flex-start; gap:15px; margin-bottom:18px; padding-bottom:12px; border-bottom:1px solid #eee; }
.task-form-header h2 { margin:0; color:#087631; font-size:21px; }
.task-form-header p { margin:5px 0 0; color:#777; font-size:13px; }
.task-close-btn { border:0; background:#f2f4f2; width:34px; height:34px; border-radius:50%; font-size:24px; color:#555; cursor:pointer; line-height:1; }
.task-form { display:grid; gap:15px; }
.task-field { display:flex; flex-direction:column; gap:7px; }
.task-field label { font-weight:600; color:#333; font-size:14px; }
.task-field input, .task-field textarea { width:100%; box-sizing:border-box; padding:11px 13px; border:1px solid #d3dad5; border-radius:8px; font:inherit; outline:none; }
.task-field input:focus, .task-field textarea:focus { border-color:#087631; box-shadow:0 0 0 3px rgba(8,118,49,.09); }
.task-grid { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.task-form-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:3px; }
.task-cancel-btn, .task-save-btn { border:0; border-radius:8px; padding:11px 18px; font-weight:700; cursor:pointer; }
.task-cancel-btn { background:#edf0ee; color:#444; }
.task-save-btn { background:#087631; color:#fff; }
.step1-note { margin:20px 0 0; padding:12px 14px; border-radius:9px; background:#eef7f0; color:#496050; font-size:12px; text-align:center; }
.step1-note i { color:#087631; margin-right:5px; }
@media (max-width:700px) { .karya-heading-row { flex-direction:column; } .karya-add-btn { width:100%; } .task-grid { grid-template-columns:1fr; } .task-form-card { padding:18px 14px; } .task-item { padding:14px 12px; } .task-meta { flex-direction:column; gap:5px; } }

/* =========================================
   STEP 1 - SUMMARY + MEMBER KARYA VIEW
========================================= */
.ganesh-summary-section .ganesh-summary { margin-bottom: 0; }
.ganesh-summary-section .ganesh-card h3 { text-transform: none; }
.ganesh-summary-section .ganesh-card:nth-child(4) h3 { font-size: 20px; }
.no-amount { text-align:center; color:#666; font-size:13px; padding:10px; }
