/*==================================================
  BloomServe HRMS — Master UI Stylesheet
  (Midnight Dark Sidebar + Windows 11 Fluent Layout)
==================================================*/

/* 1. Global Reset & Ambient Background */
* {
    box-sizing: border-box;
}

body,
.bs-layout,
.bs-content {
    background: 
        radial-gradient(ellipse 80% 60% at 55% 25%, #e1effe 0%, rgba(240, 247, 255, 0.7) 45%, transparent 80%),
        radial-gradient(circle 500px at 85% 15%, #e0f2fe 0%, transparent 70%),
        radial-gradient(circle 400px at 20% 40%, #f1f5f9 0%, transparent 60%),
        #f8fafc !important;
    background-attachment: fixed !important;
    font-family: 'Segoe UI Variable Display', 'Segoe UI', -apple-system, BlinkMacSystemFont, sans-serif !important;
    color: #0f172a;
    margin: 0;
    padding: 0;
}

.bs-layout {
    display: flex !important;
    min-height: 100vh !important;
    width: 100% !important;
}

/* Hide Leaking Artifacts */
.bs-desktop-header,
.bs-mobile-only,
.bs-bottom-nav,
.bs-mobile-bottom-nav {
    display: none !important;
}

/* ==========================================================
   2. MIDNIGHT DARK SIDEBAR WITH ALL ICONS
   ========================================================== */
.bs-sidebar {
    width: 260px !important;
    min-width: 260px !important;
    max-width: 260px !important;
    height: 100vh !important;
    position: sticky !important;
    top: 0 !important;
    background: #0b1329 !important;
    border-right: 1px solid rgba(255, 255, 255, 0.08) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    box-shadow: 10px 0 35px rgba(0, 0, 0, 0.25) !important;
    z-index: 100 !important;
}

.bs-sidebar .bs-logo {
    padding: 24px 20px 16px !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
}

.bs-sidebar .bs-logo img {
    width: 140px !important;
    height: auto !important;
    display: block !important;
    margin-bottom: 8px !important;
    filter: brightness(0) invert(1) !important;
}

.bs-sidebar .bs-logo-text h3 {
    margin: 0 !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    color: #38bdf8 !important;
    letter-spacing: -0.3px !important;
}

.bs-sidebar .bs-logo-text p {
    margin: 2px 0 0 !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    color: #64748b !important;
    text-transform: uppercase !important;
    letter-spacing: 0.6px !important;
}

.bs-menu {
    flex: 1 !important;
    padding: 14px 12px !important;
    overflow-y: auto !important;
}

.bs-menu-group {
    margin-bottom: 20px !important;
}

.bs-menu-title {
    padding: 0 12px !important;
    margin-bottom: 8px !important;
    font-size: 10.5px !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.8px !important;
    color: #64748b !important;
}

.bs-menu ul {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.bs-menu li {
    margin-bottom: 4px !important;
}

.bs-menu a {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 10px 14px !important;
    border-radius: 12px !important;
    text-decoration: none !important;
    color: #94a3b8 !important;
    font-size: 13.5px !important;
    font-weight: 600 !important;
    transition: all 0.2s ease !important;
    border: 1px solid transparent !important;
}

.bs-icon {
    width: 20px !important;
    height: 20px !important;
    display: inline-flex !important;
    justify-content: center !important;
    align-items: center !important;
    background: transparent !important;
    color: #64748b !important;
    font-size: 15px !important;
    flex-shrink: 0 !important;
}

/* Guarantee Icons for Employee Master & Payroll */
.bs-menu a[href*="employee_master"] .bs-icon::before,
.bs-menu a[href*="employee-master"] .bs-icon::before {
    content: "👥" !important;
    font-size: 14px !important;
}

.bs-menu a[href*="payroll"] .bs-icon::before {
    content: "💳" !important;
    font-size: 14px !important;
}

.bs-menu a:hover {
    background: rgba(255, 255, 255, 0.06) !important;
    color: #f8fafc !important;
    transform: translateX(4px) !important;
}

.bs-menu a:hover .bs-icon {
    color: #38bdf8 !important;
}

.bs-menu li.active a,
.bs-menu li.current-menu-item a,
.bs-menu a.active {
    background: linear-gradient(135deg, #0284c7 0%, #2563eb 100%) !important;
    color: #ffffff !important;
    font-weight: 700 !important;
    box-shadow: 0 8px 24px -4px rgba(2, 132, 199, 0.5) !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
}

.bs-menu li.active .bs-icon,
.bs-menu a.active .bs-icon {
    color: #ffffff !important;
}

.bs-sidebar-footer {
    padding: 16px 14px !important;
    border-top: 1px solid rgba(255, 255, 255, 0.06) !important;
}

.bs-logout-btn {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 10px 14px !important;
    border-radius: 12px !important;
    text-decoration: none !important;
    background: rgba(239, 68, 68, 0.08) !important;
    color: #f87171 !important;
    font-size: 13.5px !important;
    font-weight: 700 !important;
    border: 1px solid rgba(239, 68, 68, 0.15) !important;
}

.bs-logout-btn:hover {
    background: #ef4444 !important;
    color: #ffffff !important;
}

/* ==========================================================
   3. MAIN CONTENT CONTAINER
   ========================================================== */
.bs-content {
    flex: 1 !important;
    min-width: 0 !important;
    min-height: 100vh !important;
    padding: 30px 44px !important;
    box-sizing: border-box !important;
}

/* ==========================================================
   4. STRUCTURED FORMS (DOCUMENTS, LEAVE, ATTENDANCE)
   ========================================================== */
.bs-doc-card,
.bs-leave-card,
.bs-payslip-card,
.bs-profile-page {
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 16px !important;
    padding: 24px 28px !important;
    box-shadow: 0 4px 18px rgba(15, 23, 42, 0.02) !important;
    margin-bottom: 24px !important;
}

/* Strict Inline Layout for Document Upload Form */
.bs-doc-card form,
.bs-doc-form-grid,
form.bs-doc-form,
div[class*="doc-card"] form {
    display: grid !important;
    grid-template-columns: 1.2fr 1fr 1.3fr 1fr auto !important;
    gap: 14px !important;
    align-items: end !important;
    width: 100% !important;
}

/* Leave Form Grid */
.bs-leave-form-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr 1fr 1.5fr !important;
    gap: 16px !important;
    align-items: end !important;
    width: 100% !important;
}

.bs-form-group {
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    text-align: left !important;
    margin: 0 !important;
}

.bs-form-group label {
    font-size: 11px !important;
    font-weight: 700 !important;
    color: #64748b !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    margin: 0 !important;
}

.bs-form-group input[type="text"],
.bs-form-group select,
.bs-form-group input[type="date"],
.bs-form-group textarea {
    width: 100% !important;
    height: 40px !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 8px !important;
    padding: 0 12px !important;
    font-size: 13px !important;
    color: #1e293b !important;
    background: #f8fafc !important;
    outline: none !important;
}

.bs-form-group input:focus,
.bs-form-group select:focus {
    border-color: #0284c7 !important;
    background: #ffffff !important;
}

/* File Input & Scan */
.bs-doc-file-box,
.bs-doc-file-wrap {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    width: 100% !important;
}

.bs-doc-file-box input[type="file"],
.bs-doc-file-wrap input[type="file"] {
    flex: 1 !important;
    height: 40px !important;
    padding: 6px !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 8px !important;
    font-size: 11px !important;
    background: #f8fafc !important;
}

.bs-btn-scan-cam {
    height: 40px !important;
    padding: 0 14px !important;
    background: #0284c7 !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 8px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    white-space: nowrap !important;
}

.bs-btn-primary,
button[type="submit"].bs-btn-primary,
input[type="submit"].bs-btn-primary,
.bs-doc-card button[type="submit"],
.bs-leave-card button[type="submit"] {
    height: 40px !important;
    padding: 0 22px !important;
    background: #0284c7 !important;
    color: #ffffff !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    border-radius: 8px !important;
    border: none !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    white-space: nowrap !important;
    transition: all 0.2s ease !important;
}

.bs-btn-primary:hover {
    background: #0369a1 !important;
}

/* ==========================================================
   5. UNIVERSAL TABLES (ATTENDANCE, LEAVES, DOCS, PAYSLIPS)
   ========================================================== */
.bs-table-wrap,
.bs-attendance-table-wrap,
.table-responsive-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    display: block !important;
    margin-top: 16px !important;
    border-radius: 12px !important;
    border: 1px solid #e2e8f0 !important;
    background: #ffffff !important;
}

.bs-table,
.bs-attendance-table,
.attendance-table {
    width: 100% !important;
    min-width: 800px !important;
    border-collapse: collapse !important;
    text-align: left !important;
}

.bs-table th,
.bs-attendance-table th {
    background: #f8fafc !important;
    color: #64748b !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.6px !important;
    padding: 14px 16px !important;
    border-bottom: 1px solid #e2e8f0 !important;
    white-space: nowrap !important;
}

.bs-table td,
.bs-attendance-table td {
    padding: 14px 16px !important;
    font-size: 13px !important;
    color: #1e293b !important;
    border-bottom: 1px solid #f1f5f9 !important;
    white-space: nowrap !important;
}

/* Status Badges */
.bs-status-pill,
span[class*="status-"] {
    padding: 4px 10px !important;
    border-radius: 20px !important;
    font-size: 11.5px !important;
    font-weight: 700 !important;
    display: inline-block !important;
}

.bs-status-present,
.bs-status-approved,
.bs-status-completed {
    background: #ecfdf5 !important;
    color: #059669 !important;
}

.bs-status-pending {
    background: #fffbeb !important;
    color: #d97706 !important;
}

.bs-status-rejected,
.bs-status-absent {
    background: #fef2f2 !important;
    color: #dc2626 !important;
}