/* ============================================================
   অ্যাডমিন ড্যাশবোর্ড — একই ব্র্যান্ড টোকেন (মূল ফর্মের style.css থেকে)
   ============================================================ */
:root {
    --paper: #FAF7EF;
    --paper-raised: #FFFFFF;
    --ink: #24261F;
    --ink-soft: #5B5D4F;
    --green-900: #1B3B2E;
    --green-700: #234A38;
    --green-50: #EAF0EB;
    --brass: #A9834A;
    --brass-soft: #D9C7A3;
    --line: #E4DFCF;
    --error: #A3372C;
    --error-bg: #FBEDEB;
    --success: #2F6B4F;
    --success-bg: #E7F3EC;
    --warn: #9C6B12;
    --warn-bg: #FBF1DE;
    --radius: 6px;
    --font-display: 'Noto Serif Bengali', 'Noto Serif', serif;
    --font-body: 'Hind Siliguri', 'Noto Sans Bengali', sans-serif;
    --sidebar-w: 240px;
}

* { box-sizing: border-box; }
body {
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.6;
}
a { color: inherit; text-decoration: none; }

/* ---------- অথ পেজ (লগইন/সেটআপ) ---------- */
.auth-body {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--green-900);
    padding: 20px;
}
.auth-card {
    background: var(--paper-raised);
    border-radius: var(--radius);
    padding: 36px 32px;
    max-width: 380px;
    width: 100%;
    box-shadow: 0 12px 40px rgba(0,0,0,0.25);
}
.auth-brand { text-align: center; margin-bottom: 24px; }
.auth-logo { display: block; height: 44px; width: auto; max-width: 160px; object-fit: contain; margin: 0 auto 12px; }
.auth-org { font-size: 0.78rem; color: var(--ink-soft); margin: 0 0 6px; }
.auth-card h1 {
    font-family: var(--font-display);
    font-size: 1.35rem;
    color: var(--green-900);
    margin: 0 0 20px;
    text-align: center;
}
.auth-card label {
    display: block;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--green-700);
    margin: 14px 0 6px;
}
.auth-card input {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    font-family: var(--font-body);
    font-size: 0.95rem;
}
.auth-card input:focus { outline: none; border-color: var(--brass); box-shadow: 0 0 0 3px rgba(169,131,74,0.18); }
.auth-card button {
    width: 100%;
    margin-top: 22px;
    background: var(--green-900);
    color: #F4EFE2;
    border: none;
    padding: 12px;
    border-radius: var(--radius);
    font-size: 0.98rem;
    font-weight: 600;
    cursor: pointer;
}
.auth-card button:hover { background: var(--brass); color: var(--green-900); }
.auth-errors { background: var(--error-bg); border: 1px solid var(--error); border-radius: var(--radius); padding: 10px 14px; margin-bottom: 12px; }
.auth-errors p, .auth-errors li { color: var(--error); margin: 0; font-size: 0.88rem; }
.auth-errors ul { margin: 0; padding-inline-start: 18px; }
.auth-note { text-align: center; font-size: 0.92rem; }
.auth-note.success { color: var(--success); font-weight: 600; }
.auth-hint { text-align: center; font-size: 0.78rem; color: var(--ink-soft); margin-top: 18px; }
.btn-link { display: block; text-align: center; background: var(--green-900); color: #F4EFE2; padding: 10px; border-radius: var(--radius); font-weight: 600; }
.btn-link:hover { background: var(--brass); color: var(--green-900); }

/* ---------- অ্যাপ শেল ---------- */
.app-shell { display: flex; min-height: 100vh; }

.sidebar {
    width: var(--sidebar-w);
    flex-shrink: 0;
    background: var(--green-900);
    color: #F4EFE2;
    display: flex;
    flex-direction: column;
    position: sticky;
    top: 0;
    height: 100vh;
}
.sidebar-brand { padding: 20px 20px 16px; border-bottom: 1px solid rgba(255,255,255,0.12); text-align: center; }
.sidebar-logo { display: block; height: 40px; width: auto; max-width: 140px; object-fit: contain; margin: 0 auto 10px; }
.brand-org { font-size: 0.72rem; opacity: 0.8; margin: 0 0 4px; }
.brand-sub { font-family: var(--font-display); font-size: 1.15rem; font-weight: 700; margin: 0; color: var(--brass-soft); }

.sidebar-nav { flex: 1; padding: 16px 12px; display: flex; flex-direction: column; gap: 4px; }
.sidebar-nav a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 14px;
    border-radius: var(--radius);
    font-size: 0.92rem;
    color: #E7E2D2;
}
.sidebar-nav a:hover { background: rgba(255,255,255,0.08); }
.sidebar-nav a.active { background: var(--brass); color: var(--green-900); font-weight: 600; }
.nav-icon { font-size: 1rem; width: 18px; text-align: center; }

.sidebar-footer { padding: 16px 20px; border-top: 1px solid rgba(255,255,255,0.12); }
.admin-name { font-size: 0.85rem; margin: 0 0 6px; font-weight: 600; }
.logout-link { font-size: 0.82rem; color: var(--brass-soft); }
.logout-link:hover { text-decoration: underline; }

.main-col { flex: 1; min-width: 0; display: flex; flex-direction: column; }

.topbar {
    background: var(--paper-raised);
    border-bottom: 1px solid var(--line);
    padding: 16px 26px;
    display: flex;
    align-items: center;
    gap: 14px;
    position: sticky;
    top: 0;
    z-index: 5;
}
.topbar-logo { height: 30px; width: auto; max-width: 100px; object-fit: contain; flex-shrink: 0; }
.page-title { font-family: var(--font-display); font-size: 1.3rem; color: var(--green-900); margin: 0; }
.menu-toggle { display: none; background: none; border: none; font-size: 1.3rem; cursor: pointer; color: var(--green-900); }

.content { padding: 24px 26px 60px; }

@media (max-width: 900px) {
    .sidebar { position: fixed; left: -260px; z-index: 20; transition: left 0.2s ease; box-shadow: 0 0 40px rgba(0,0,0,0.3); }
    .sidebar.open { left: 0; }
    .menu-toggle { display: block; }
    .content { padding: 18px 16px 60px; }
    .topbar { padding: 14px 16px; }
}

@media (max-width: 480px) {
    .topbar-logo { display: none; }
}

/* ---------- সাধারণ কম্পোনেন্ট ---------- */
.card {
    background: var(--paper-raised);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 20px 22px;
}
.card + .card { margin-top: 18px; }

.kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 14px;
    margin-bottom: 20px;
}
.kpi-card {
    background: var(--paper-raised);
    border: 1px solid var(--line);
    border-left: 4px solid var(--brass);
    border-radius: var(--radius);
    padding: 16px 18px;
}
.kpi-card .kpi-value { font-family: var(--font-display); font-size: 1.9rem; color: var(--green-900); font-weight: 700; line-height: 1.1; }
.kpi-card .kpi-label { font-size: 0.82rem; color: var(--ink-soft); margin-top: 6px; }
.kpi-card.accent-green { border-left-color: var(--green-700); }
.kpi-card.accent-error { border-left-color: var(--error); }
.kpi-card.accent-success { border-left-color: var(--success); }

.chart-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 18px; margin-bottom: 18px; }
.chart-grid-half { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 18px; }
@media (max-width: 900px) { .chart-grid, .chart-grid-half { grid-template-columns: 1fr; } }

.card h2 { font-family: var(--font-display); font-size: 1.05rem; color: var(--green-900); margin: 0 0 14px; }
.card h3 { font-family: var(--font-display); font-size: 0.98rem; color: var(--green-900); margin: 0 0 12px; }

table.data-table { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
table.data-table th, table.data-table td { padding: 10px 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
table.data-table th { color: var(--green-700); font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.02em; background: var(--green-50); }
table.data-table tbody tr:hover { background: var(--green-50); }
table.data-table td.num { text-align: right; }

.badge { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 0.78rem; font-weight: 600; white-space: nowrap; }
.badge-applied { background: #EFEAF9; color: #5B3FA6; }
.badge-shortlisted { background: var(--warn-bg); color: var(--warn); }
.badge-interview { background: #E3EEF7; color: #2B6693; }
.badge-written { background: #F5E8D8; color: #8A5A1E; }
.badge-practical { background: #E9E2F2; color: #6B3FA0; }
.badge-selected { background: var(--success-bg); color: var(--success); }
.badge-rejected { background: var(--error-bg); color: var(--error); }

.btn {
    display: inline-block;
    padding: 8px 16px;
    border-radius: var(--radius);
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    border: 1px solid var(--line);
    background: var(--paper-raised);
    color: var(--ink);
}
.btn:hover { border-color: var(--brass); }
.btn-primary { background: var(--green-900); color: #F4EFE2; border-color: var(--green-900); }
.btn-primary:hover { background: var(--brass); color: var(--green-900); border-color: var(--brass); }
.btn-danger { background: var(--error-bg); color: var(--error); border-color: var(--error); }
.btn-danger:hover { background: var(--error); color: #fff; }
.btn-sm { padding: 5px 11px; font-size: 0.78rem; }
.btn-row { display: flex; gap: 10px; flex-wrap: wrap; }

.filters-bar {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: flex-end;
    margin-bottom: 18px;
}
.filters-bar .field { display: flex; flex-direction: column; gap: 4px; }
.filters-bar label { font-size: 0.78rem; color: var(--ink-soft); font-weight: 600; }
.filters-bar input, .filters-bar select {
    padding: 8px 10px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    font-family: var(--font-body);
    font-size: 0.88rem;
    background: var(--paper-raised);
}

.pagination { display: flex; gap: 6px; margin-top: 18px; flex-wrap: wrap; }
.pagination a, .pagination span {
    display: inline-block;
    padding: 7px 12px;
    border-radius: var(--radius);
    border: 1px solid var(--line);
    font-size: 0.85rem;
}
.pagination a:hover { border-color: var(--brass); }
.pagination .current { background: var(--green-900); color: #F4EFE2; border-color: var(--green-900); }

.empty-state { text-align: center; padding: 40px 20px; color: var(--ink-soft); }

.flash { border-radius: var(--radius); padding: 12px 16px; margin-bottom: 18px; font-size: 0.9rem; }
.flash-success { background: var(--success-bg); color: var(--success); border: 1px solid var(--success); }
.flash-error { background: var(--error-bg); color: var(--error); border: 1px solid var(--error); }

/* ---------- CV / প্রার্থী বিস্তারিত পেজ ---------- */
.cv-header { display: flex; gap: 20px; align-items: flex-start; flex-wrap: wrap; margin-bottom: 20px; }
.cv-photo { width: 110px; height: 138px; object-fit: cover; border-radius: var(--radius); border: 1px solid var(--line); background: var(--green-50); flex-shrink: 0; }
.cv-photo-placeholder { width: 110px; height: 138px; border-radius: var(--radius); background: var(--green-50); border: 1px dashed var(--brass-soft); display: flex; align-items: center; justify-content: center; color: var(--ink-soft); font-size: 0.75rem; text-align: center; flex-shrink: 0; }
.cv-title { font-family: var(--font-display); font-size: 1.4rem; color: var(--green-900); margin: 0 0 4px; }
.cv-subtitle { color: var(--ink-soft); font-size: 0.9rem; margin: 0 0 10px; }
.cv-meta { display: flex; gap: 16px; flex-wrap: wrap; font-size: 0.85rem; color: var(--ink-soft); }

.info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 24px; }
@media (max-width: 640px) { .info-grid { grid-template-columns: 1fr; } }
.info-item dt { font-size: 0.78rem; color: var(--ink-soft); margin-bottom: 2px; }
.info-item dd { margin: 0; font-size: 0.94rem; }
.info-grid dl.info-item { margin: 0; }

.stage-tracker { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 4px; }
.stage-step {
    flex: 1;
    min-width: 90px;
    text-align: center;
    padding: 9px 6px;
    border-radius: var(--radius);
    background: var(--green-50);
    color: var(--ink-soft);
    font-size: 0.78rem;
    font-weight: 600;
    border: 1px solid var(--line);
}
.stage-step.done { background: var(--green-700); color: #F4EFE2; border-color: var(--green-700); }
.stage-step.current { background: var(--brass); color: var(--green-900); border-color: var(--brass); }
.stage-step.rejected-step { background: var(--error); color: #fff; border-color: var(--error); }

.timeline { list-style: none; margin: 0; padding: 0; }
.timeline li { padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 0.87rem; }
.timeline li:last-child { border-bottom: none; }
.timeline .t-time { color: var(--ink-soft); font-size: 0.78rem; }

textarea.notes-box {
    width: 100%;
    min-height: 90px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    font-family: var(--font-body);
    font-size: 0.9rem;
    resize: vertical;
}

.cert-link { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; background: var(--green-50); border: 1px solid var(--brass-soft); border-radius: var(--radius); font-size: 0.85rem; }

/* ---------- অ্যাডমিন তালিকার ইনলাইন এডিট ফর্ম ---------- */
.edit-admin-row td { background: var(--green-50); padding: 14px 12px; }
.edit-admin-form { display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap; }
.edit-admin-form .field { display: flex; flex-direction: column; gap: 4px; }
.edit-admin-form label { font-size: 0.76rem; color: var(--ink-soft); font-weight: 600; }
.edit-admin-form input {
    padding: 8px 10px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    font-family: var(--font-body);
    font-size: 0.88rem;
}

@media print {
    .sidebar, .topbar, .btn-row, .no-print { display: none !important; }
    .content { padding: 0; }
    body { background: #fff; }
}
