html, body {
    box-sizing: border-box; 
    width: 100%;
    scroll-behavior: smooth;
}

body { 
    font-family: "Noto Sans Bengali", sans-serif; 
    background: #f8f9fa; 
    margin: 0; 
    padding: 0; 
}

header { 
    background: #0d6efd; 
    color: white; 
    padding: 10px 20px; 
    display: flex; 
    justify-content: space-between; 
    align-items: center; 
}

h1 { font-size: 20px; margin: 0; }
button { cursor: pointer; }

.container { padding: 20px; max-width: 950px; margin: auto; }

/* --- Login Box & Animated Logo --- */
.login-box { 
    max-width: 350px; 
    margin: 80px auto; 
    background: white; 
    padding: 20px; 
    border-radius: 10px; 
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}

.login-logo-container {
    text-align: center;
    margin-bottom: 25px;
}

.login-logo {
    width: 150px;  /* আগে 100px ছিল, এখন 150px করে দিয়েছি */
    height: auto;  /* height auto দিলে লোগো চ্যাপ্টা বা লম্বাটে হবে না, একদম পারফেক্ট শেপে থাকবে */
    animation: floatLogo 3s ease-in-out infinite;
    filter: drop-shadow(0 4px 6px rgba(0,0,0,0.1));
    margin-bottom: 5px; /* নিচের লেখার সাথে গ্যাপ ঠিক রাখার জন্য */
}

@keyframes floatLogo {
    0% { transform: translateY(0px); }
    50% { transform: translateY(-12px); }
    100% { transform: translateY(0px); }
}

.developer-text {
    font-size: 14px;
    color: #555;
    font-weight: 600;
    margin-top: 10px;
    font-style: italic;
}
/* ---------------------------------- */

input, select, textarea { 
    width: 100%; 
    padding: 8px; 
    margin-bottom: 10px; 
    border-radius: 5px; 
    border: 1px solid #ccc; 
    box-sizing: border-box; 
}

.btn { 
    background: #0d6efd; 
    color: white; 
    border: none; 
    padding: 8px 15px; 
    border-radius: 5px; 
    display: inline-block; /* বাটনগুলো যাতে ঠিকমতো পাশাপাশি বসে */
}

.btn-danger { 
    background: #dc3545; 
    color: white; 
    border: none; 
    padding: 5px 10px; 
    border-radius: 5px; 
    margin-left: 10px; 
}

table { width: 100%; border-collapse: collapse; margin-top: 15px; font-size: 14px; }
th, td { border: 1px solid #ddd; text-align: center; padding: 5px; }
th { background: #e9ecef; }

.tick { color: green; font-weight: bold; }
.cross { color: red; font-weight: bold; }

td .double-tick, 
td .double-cross { 
    color: #ffc107 !important; 
    font-weight: bold; 
}

.notice-board { 
    background: #fff3cd; 
    padding: 10px; 
    border: 1px solid #ffeeba; 
    border-radius: 5px; 
    margin-bottom: 20px; 
}

#latestNotice { font-size: 16px; font-weight: 600; margin-bottom: 5px; display: block; }
#noticeDate { font-size: 12px; color: #856404; display: block; text-align: right;}

/* প্যানেল বক্সগুলোর স্টাইল */
.profile-box, .range-box, .admin-box, .single-meal-box, .seat-rent-box, .chef-box { 
    background: white; 
    padding: 15px; 
    border-radius: 8px; 
    box-shadow: 0 1px 4px rgba(0,0,0,0.1); 
    margin-bottom: 15px; 
}

.admin-range { margin-top: 20px; }
.admin-toggle-btn { padding: 3px 6px; font-size: 12px; margin-left: 5px; }

.forgot-link {
    display: block;
    text-align: right;
    margin-top: -5px; 
    margin-bottom: 10px;
    font-size: 12px;
    color: #0d6efd;
    text-decoration: none;
}

.month-selector { display: flex; gap: 10px; margin-bottom: 10px; align-items: center; }
.month-selector select { width: 65%; margin-bottom: 0; }
.month-selector button { margin-bottom: 0; } 

.monthly-stats {
    background: #e9f7ef;
    padding: 10px;
    border-radius: 5px;
    border-left: 5px solid #28a745;
    margin-bottom: 15px;
}

.monthly-stats p {
    margin: 5px 0;
    font-size: 14px;
}
.monthly-stats strong {
    font-weight: 700;
}

.admin-stats-box {
    background: #f8f9fa;
    border: 1px solid #ddd;
    padding: 15px;
    border-radius: 8px;
    margin-bottom: 15px;
}

.seat-rent-box table th:nth-child(2),
.seat-rent-box table td:nth-child(2) {
    width: 30%;
}

.user-rent-selects { display: flex; gap: 10px; margin-bottom: 10px; }
.user-rent-selects select { width: 45%; margin-bottom: 0; }
.user-rent-selects button { width: 10%; margin-bottom: 0; }

.profit-box {
    background: #f0f0f0;
    padding: 10px;
    border-radius: 5px;
    margin-top: 10px;
}

.profit-box p { margin: 5px 0; font-weight: 600; }
.profit { color: green; }
.loss { color: red; }

.expense-input-group {
    display: flex;
    gap: 10px;
    margin-bottom: 10px;
}
.expense-input-group > * {
    flex: 1;
}

#groupListTable th:nth-child(2),
#groupListTable td:nth-child(2) {
     width: 40%;
}

#chefBreakdown, #groupBreakdown {
    border: 1px solid #ccc;
    padding: 10px;
    border-radius: 5px;
    margin-top: 15px;
    background: #ffffff;
}

.breakdown-list {
    list-style-type: none; 
    padding-left: 0; 
    margin-top: 5px;
}

.breakdown-list li {
    margin-bottom: 3px; 
    font-weight: bold; 
    padding: 3px 8px; 
    border-left: 4px solid; 
    border-radius: 3px;
}

.breakdown-list.lunch li {
     background: #f0f8ff; 
     border-left-color: #007bff;
}

.breakdown-list.dinner li {
     background: #fff0f0; 
     border-left-color: #dc3545;
}

/* Quick Navigation Styles */
.quick-nav-container {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 20px;
    padding: 10px;
    background: #f0f2f5;
    border: 1px solid #ddd;
    border-radius: 8px;
}

.quick-nav-container h3 {
    width: 100%;
    margin: 0 0 5px 0;
    font-size: 16px;
    color: #333;
}

.quick-nav-btn {
    background: #0d6efd;
    color: white;
    border: none;
    padding: 6px 10px;
    border-radius: 5px;
    cursor: pointer;
    font-size: 13px;
    font-weight: 500;
    transition: background 0.3s;
}

.quick-nav-btn:hover {
    background: #0b5ed7;
}

.quick-nav-btn.admin {
    background: #198754; 
}

.quick-nav-btn.admin:hover {
    background: #157347;
}

/* 🚀 Footer Social Media Design (Updated) */
.app-footer {
    text-align: center;
    padding: 20px;
    background: #f8f9fa;
    color: #333;
    margin-top: 40px;
    border-top: 1px solid #ddd;
}

.app-footer p {
    margin: 0 0 10px 0;
    font-size: 15px;
    font-weight: bold;
    color: #0d6efd;
}

.social-icons a {
    color: #777;
    font-size: 26px;
    margin: 0 12px;
    text-decoration: none;
    transition: all 0.3s ease;
    display: inline-block;
}

.social-icons a:hover {
    transform: translateY(-4px);
}

/* Hover korle brand er original color asbe */
.social-icons .fa-facebook:hover { color: #1877F2; }
.social-icons .fa-whatsapp:hover { color: #25D366; }
.social-icons .fa-github:hover { color: #000000; }
.social-icons .fa-youtube:hover { color: #FF0000; }

.btn-cancel-guest {
    background: #dc3545; 
    color: white; 
    border: none; 
    padding: 1px 5px; 
    font-size: 10px; 
    border-radius: 3px; 
    margin-left: 5px; 
    cursor: pointer;
}

/* 🚀 Responsive Table Wrapper */
.table-responsive-wrapper {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch; /* iOS এ স্মুথ স্ক্রলিং এর জন্য */
    border: 1px solid #ddd;
    border-radius: 5px;
    margin-bottom: 15px;
}

/* 🚀 Admin Zoom Button Controls */
#zoomControls {
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 1002; /* এটি মোডাল এর উপরে থাকবে */
    display: flex;
    gap: 10px;
}

.admin-zoom-btn {
    background: #198754; /* অ্যাডমিন সবুজ রঙ */
    color: white;
    font-size: 20px;
    font-weight: bold;
    width: 45px;
    height: 45px;
    padding: 0;
    border-radius: 50%; /* গোলাকার বাটন */
    box-shadow: 0 2px 5px rgba(0,0,0,0.3);
    border: 2px solid white;
    line-height: 40px; /* + / - চিহ্ন মাঝখানে আনতে */
    cursor: pointer;
}

.admin-zoom-btn:hover {
    background: #157347;
}
/* 🚀 Print Layout Settings for Monthly Report (Notice Board Fix) */
@media print {
    /* হেডার, ফুটার, নোটিশ বোর্ড এবং অন্যান্য প্যানেল পুরোপুরি গায়েব করে দেওয়া */
    header, .app-footer, #loginBox, #userPanel, #chefPanel, #zoomControls, .quick-nav-container, #noticeBoard {
        display: none !important;
    }

    /* অ্যাডমিন প্যানেলের সব বক্স লুকানো, শুধু 'মাসিক রিপোর্ট' বক্সটি ছাড়া */
    #adminPanel > div:not(#nav-monthly-report) {
        display: none !important;
    }
    
    /* অ্যাডমিন প্যানেলের মেইন টাইটেল লুকানো */
    #adminPanel > h2 {
        display: none !important;
    }

    /* রিপোর্টের ভেতরের সিলেক্ট অপশন ও সাধারণ টেক্সট লুকানো */
    .month-selector, #nav-monthly-report > h3, #nav-monthly-report > p {
        display: none !important;
    }

    /* কন্টেইনারের প্যাডিং/মার্জিন জিরো করা যাতে এক্সট্রা সাদা পেজ না আসে */
    body, html, .container {
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        background: #fff !important;
    }

    /* প্রিন্ট বাটন লুকানো */
    .print-btn, .btn {
        display: none !important;
    }

    /* প্রিন্ট করার সময় টেবিলের বর্ডার যেন স্পষ্ট কালো আসে */
    #finalReportTable {
        border-collapse: collapse !important;
        width: 100% !important;
    }
    
    #finalReportTable th, #finalReportTable td {
        border: 1px solid #000 !important;
        padding: 8px !important;
        color: #000 !important;
    }
    
    /* সামারি বক্সের ডিজাইন ঠিক রাখা */
    div[style*="background: #e9ecef"] {
        background-color: #f8f9fa !important;
        border: 1px solid #ddd !important;
    }
}