/* ============================================
   ManTrack Pro - Main Stylesheet
   Construction Manpower & DCR System
   ============================================ */

/* --- Color Variables --- */
:root {
    --mt-primary:       #0F7B5C;  /* Construction Teal */
    --mt-primary-dark:  #0A5C44;  /* Hover / pressed */
    --mt-primary-light: #E6F5F0;  /* Tinted backgrounds */
    --mt-navy:          #0A1628;  /* Sidebar dark */
    --mt-navy-mid:      #1a2f4e;  /* Sidebar gradient end */
    --mt-white:         #FFFFFF;
    --mt-bg:            #F0F2F5;  /* Page background */
    --mt-card-bg:       #FFFFFF;
    --mt-border:        #E8EDF2;
    --mt-text:          #2C3E50;
    --mt-text-muted:    #6C757D;
    --mt-success:       #198754;
    --mt-warning:       #FFC107;
    --mt-danger:        #DC3545;
    --mt-info:          #0DCAF0;

    /* Aliases used by header.php dynamic override */
    --primary:      #0F7B5C;
    --primary-dark: #0A5C44;
    --sidebar-bg:   #0A1628;
}

/* --- Body & Layout --- */
body {
    background-color: var(--mt-bg);
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: 14px;
    margin: 0;
    padding: 0;
    color: var(--mt-text);
}

.wrapper {
    display: flex;
    min-height: 100vh;
}

/* ── Sidebar ──────────────────────────────────────────── */
.sidebar {
    width: 260px;
    height: 100vh;
    background: linear-gradient(180deg, var(--mt-navy) 0%, var(--mt-navy-mid) 100%);
    position: fixed;
    top: 0;
    left: 0;
    overflow-y: auto;
    overflow-x: hidden;
    z-index: 1000;
    transition: transform 0.3s ease;
}

.sidebar-brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 20px 15px 16px;
    border-bottom: 1px solid rgba(255,255,255,0.1);
    gap: 10px;
    text-align: center;
}

.brand-icon {
    width: 72px;
    height: 72px;
    background: var(--mt-primary);
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 36px;
    color: white;
}

.brand-text {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}

.brand-name {
    display: block;
    color: white;
    font-weight: 700;
    font-size: 15px;
    letter-spacing: 0.5px;
}

.brand-sub {
    display: block;
    color: #A8B9CC;
    font-size: 11px;
    letter-spacing: 0.3px;
}

/* ── Sidebar Navigation ───────────────────────────────── */
.sidebar-nav {
    padding: 10px 0 40px;
    height: calc(100vh - 120px);
    overflow-y: auto;
    overflow-x: hidden;
}

/* Collapsible group toggle header */
.nav-group-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 16px 10px 20px;
    cursor: pointer;
    user-select: none;
    border-left: 3px solid transparent;
    transition: background 0.2s, border-color 0.2s;
    margin-top: 4px;
}
.nav-group-toggle:hover {
    background: rgba(255,255,255,0.04);
}
.nav-group-toggle.open {
    border-left-color: rgba(15,123,92,0.5);
}
.nav-group-toggle-inner {
    display: flex;
    align-items: center;
    gap: 10px;
}
.nav-group-icon {
    font-size: 15px;
    width: 20px;
    text-align: center;
    color: #4A6080;
    transition: color 0.2s;
}
.nav-group-toggle.open .nav-group-icon { color: #6ecfb0; }
.nav-group-toggle-inner span {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: #4A6080;
    transition: color 0.2s;
}
.nav-group-toggle.open .nav-group-toggle-inner span { color: #6ecfb0; }
.nav-group-chevron {
    font-size: 11px;
    color: #4A6080;
    transition: transform 0.25s ease, color 0.2s;
}
.nav-group-chevron.rotated {
    transform: rotate(90deg);
    color: #6ecfb0;
}

/* Collapsible group body */
.nav-group-body {
    overflow: hidden;
    max-height: 600px;
    transition: max-height 0.3s ease;
}

/* Nav items */
.nav-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 20px;
    color: #A8B9CC;
    text-decoration: none;
    font-size: 14px;
    transition: all 0.2s;
    border-left: 3px solid transparent;
}
.nav-item-child {
    padding-left: 28px;
    font-size: 13px;
}
.nav-item:hover {
    background: rgba(255,255,255,0.05);
    color: white;
    border-left-color: var(--mt-primary);
}
.nav-item.active {
    background: rgba(15,123,92,0.2);
    color: white;
    border-left-color: var(--mt-primary);
}
.nav-item i {
    font-size: 18px;
    width: 20px;
    text-align: center;
}
.nav-item-child i { font-size: 15px; }

/* Logout item */
.nav-logout {
    margin-top: 8px;
    border-top: 1px solid rgba(255,255,255,0.06);
    padding-top: 12px;
}

/* ── Main Content ─────────────────────────────────────── */
.main-content {
    margin-left: 260px;
    flex: 1;
    min-width: 0;
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
}

/* ── Topbar ───────────────────────────────────────────── */
.topbar {
    background: white;
    padding: 12px 25px;
    display: flex;
    align-items: center;
    gap: 12px;
    border-bottom: 1px solid var(--mt-border);
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
    position: sticky;
    top: 0;
    z-index: 999;
}
.topbar-title {
    flex: 1;
    font-size: 18px;
    font-weight: 600;
    color: var(--mt-navy);
    margin: 0;
}
.topbar-user {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #4A5568;
    font-size: 14px;
    margin-left: auto;
}
.user-avatar {
    width: 36px;
    height: 36px;
    background: var(--mt-primary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: 700;
    font-size: 14px;
}

/* ── Page Content ─────────────────────────────────────── */
.page-content {
    padding: 25px;
    flex: 1;
}

/* ── Cards ────────────────────────────────────────────── */
.card {
    border: none;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    margin-bottom: 20px;
}
.card-header {
    background: white;
    border-bottom: 1px solid var(--mt-border);
    border-radius: 12px 12px 0 0 !important;
    padding: 15px 20px;
    font-weight: 600;
    color: var(--mt-navy);
}

/* Dark navy card header (filter bars, section headers) */
.card-header-dark {
    background: linear-gradient(90deg, var(--mt-navy), var(--mt-navy-mid));
    color: #fff;
    border-radius: 12px 12px 0 0 !important;
    padding: 13px 20px;
}

/* ── KPI Gradient Cards ───────────────────────────────── */
.kpi-card {
    border-radius: 12px !important;
    border: none;
    box-shadow: 0 4px 16px rgba(0,0,0,0.1);
    margin-bottom: 20px;
    overflow: hidden;
}
.kpi-card .card-body { padding: 20px; }
.kpi-label {
    font-size: 13px;
    font-weight: 500;
    opacity: 0.85;
    margin-bottom: 4px;
}
.kpi-value {
    font-size: 32px;
    font-weight: 700;
    line-height: 1;
}
.kpi-icon-box {
    width: 48px;
    height: 48px;
    background: rgba(255,255,255,0.2);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
}
.card-footer-tint {
    border-top: 1px solid rgba(255,255,255,0.15);
    font-size: 12px;
    opacity: 0.8;
}

/* ── Stat Cards (border-left style) ──────────────────── */
.stat-card {
    background: white;
    border-radius: 12px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    border-left: 4px solid var(--mt-primary);
}
.stat-icon {
    width: 52px;
    height: 52px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
}
.stat-number {
    font-size: 28px;
    font-weight: 700;
    color: var(--mt-navy);
    line-height: 1;
}
.stat-label {
    font-size: 13px;
    color: var(--mt-text-muted);
    margin-top: 3px;
}

/* ── Buttons ──────────────────────────────────────────── */
.btn-primary {
    background: var(--mt-primary);
    border-color: var(--mt-primary);
}
.btn-primary:hover, .btn-primary:focus {
    background: var(--mt-primary-dark);
    border-color: var(--mt-primary-dark);
}

/* ── Tables ───────────────────────────────────────────── */
.table th {
    background: #F8FAFC;
    color: #4A5568;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 2px solid var(--mt-border);
}
.table td {
    vertical-align: middle;
    font-size: 14px;
}
.table th, .table td {
    border-right: 1px solid var(--mt-border);
}
.table th:last-child, .table td:last-child { border-right: none; }
.table tbody tr:nth-child(even) td { background: #F5F8FC; }

/* Contextual row colours over zebra */
.table tbody tr.table-danger  td { background: rgba(220,53,69,0.08)   !important; }
.table tbody tr.table-warning td { background: rgba(255,193,7,0.12)   !important; }
.table tbody tr.table-success td { background: rgba(25,135,84,0.08)   !important; }

/* ── Page Header ──────────────────────────────────────── */
.page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
}
.page-header h1 {
    font-size: 22px;
    font-weight: 700;
    color: var(--mt-navy);
    margin: 0;
}

/* ── Print / PDF Button Bar ───────────────────────────── */
.btn-bar {
    position: fixed;
    top: 10px;
    right: 10px;
    display: flex;
    gap: 8px;
    z-index: 9999;
}
.print-btn {
    background: var(--mt-primary);
    color: #fff;
    border: none;
    padding: 10px 20px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 13px;
    font-weight: bold;
}
.back-btn {
    background: #6c757d;
    color: #fff;
    border: none;
    padding: 10px 20px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: bold;
    text-decoration: none;
    display: inline-block;
}
@media print { .btn-bar { display: none !important; } }

/* ── Search input in topbar ───────────────────────────── */
#mt-search-input::placeholder { color: #8aa8cc; }
#mt-search-input:focus { outline: none; }
.mt-sr-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    text-decoration: none;
    color: #333;
    border-bottom: 1px solid #f5f5f5;
    transition: background 0.15s;
    font-size: 13px;
}
.mt-sr-item:hover { background: #f0fff8; }
.mt-sr-hdr {
    padding: 7px 14px 3px;
    font-size: 11px;
    font-weight: 700;
    color: #999;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    background: #fafafa;
}

/* ── Mobile hamburger & overlay ───────────────────────── */
.sidebar-toggle {
    display: none;
    align-items: center;
    background: none;
    border: none;
    color: var(--mt-navy);
    font-size: 22px;
    cursor: pointer;
    padding: 4px 8px;
    border-radius: 6px;
    flex-shrink: 0;
    margin-right: 4px;
    line-height: 1;
}
.sidebar-toggle:hover { background: var(--mt-primary-light); }

.sidebar-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.5);
    z-index: 1000;
}
.sidebar-overlay.active { display: block; }

/* ── Responsive ───────────────────────────────────────── */
@media (max-width: 768px) {
    .sidebar-toggle { display: flex; }
    .sidebar {
        transform: translateX(-260px);
        z-index: 1001;
    }
    .sidebar.open { transform: translateX(0); }
    .main-content { margin-left: 0 !important; }
    .topbar { padding: 10px 14px; }
    .topbar-title { font-size: 15px; }
    .page-content { padding: 14px; }
    .page-header { flex-wrap: wrap; gap: 10px; }
    .stat-number { font-size: 22px; }
    #mt-search-input { width: 130px !important; }
}
@media (max-width: 480px) {
    #mt-search-input { display: none !important; }
    .page-content { padding: 10px; }
    .topbar-title { font-size: 14px; }
}

/* ── Toast animations ─────────────────────────────────── */
@keyframes toastIn  { from{opacity:0;transform:translateX(20px)} to{opacity:1;transform:translateX(0)} }
@keyframes toastOut { from{opacity:1;transform:translateX(0)} to{opacity:0;transform:translateX(20px)} }
