{% extends 'base.html' %}
{% load static i18n %}

{% block title %}Candidate Tier Management - {{ job.title }} - ATS{% endblock %}
{% block customCSS %}
<style>
    /* KAAT-S UI Variables */
    :root {
        --kaauh-teal: #00636e;
        --kaauh-teal-dark: #004a53;
        --kaauh-border: #eaeff3;
        --kaauh-primary-text: #343a40;
        --kaauh-success: #28a745;
        --kaauh-info: #17a2b8;
        --kaauh-danger: #dc3545;
        --kaauh-warning: #ffc107;
    }

    /* Primary Color Overrides */
    .text-primary-theme { color: var(--kaauh-teal) !important; }
    .bg-primary-theme { background-color: var(--kaauh-teal) !important; }

    /* 1. Main Container & Card Styling */
    .kaauh-card {
        border: 1px solid var(--kaauh-border);
        border-radius: 0.75rem;
        box-shadow: 0 4px 12px rgba(0,0,0,0.06);
        background-color: white;
    }

    /* Dedicated style for the filter block */
    .filter-controls {
        background-color: #f8f9fa;
        border-radius: 0.75rem;
        padding: 1.5rem;
        margin-bottom: 2rem;
        border: 1px solid var(--kaauh-border);
    }

    /* 2. Button Styling (Themed for Main Actions) */
    .btn-main-action {
        background-color: var(--kaauh-teal);
        border-color: var(--kaauh-teal);
        color: white;
        font-weight: 600;
        transition: all 0.2s ease;
    }
    .btn-main-action:hover {
        background-color: var(--kaauh-teal-dark);
        border-color: var(--kaauh-teal-dark);
        box-shadow: 0 4px 8px rgba(0,0,0,0.15);
    }
    .btn-outline-secondary {
        color: var(--kaauh-teal-dark);
        border-color: var(--kaauh-teal);
    }
    .btn-outline-secondary:hover {
        background-color: var(--kaauh-teal-dark);
        color: white;
        border-color: var(--kaauh-teal-dark);
    }
    /* Style for the Bulk Move button */
    .btn-bulk-action {
        background-color: var(--kaauh-teal-dark);
        border-color: var(--kaauh-teal-dark);
        color: white;
        font-weight: 500;
    }
    .btn-bulk-action:hover {
        background-color: #00363e;
        border-color: #00363e;
    }

    /* 3. Candidate Table Styling (Aligned with KAAT-S) */
    .candidate-table {
        table-layout: fixed;
        width: 100%;
        border-collapse: separate;
        border-spacing: 0;
        background-color: white;
        border-radius: 0.5rem;
        overflow: hidden;
    }
    .candidate-table thead {
        background-color: var(--kaauh-border);
    }
    .candidate-table th {
        padding: 0.75rem 1rem;
        font-weight: 600;
        color: var(--kaauh-teal-dark);
        border-bottom: 2px solid var(--kaauh-teal);
        font-size: 0.9rem;
        vertical-align: middle;
    }
    .candidate-table td {
        padding: 0.75rem 1rem;
        border-bottom: 1px solid var(--kaauh-border);
        vertical-align: middle;
        font-size: 0.9rem;
    }
    .candidate-table tbody tr:hover {
        background-color: #f1f3f4;
    }
    .candidate-table thead th:nth-child(1) { width: 40px; }
    .candidate-table thead th:nth-child(4) { width: 10%; }
    .candidate-table thead th:nth-child(7) { width: 100px; }

    .candidate-name {
        font-weight: 600;
        color: var(--kaauh-primary-text);
    }
    .candidate-details {
        font-size: 0.8rem;
        color: #6c757d;
    }

    /* 4. Badges and Statuses */
    .ai-score-badge {
        background-color: var(--kaauh-teal-dark) !important;
        color: white;
        font-weight: 700;
        padding: 0.4em 0.8em;
        border-radius: 0.4rem;
    }
    .status-badge {
        font-size: 0.75rem;
        padding: 0.3em 0.7em;
        border-radius: 0.35rem;
        font-weight: 700;
    }
    .bg-applicant { background-color: #6c757d !important; color: white; }
    .bg-candidate { background-color: var(--kaauh-success) !important; color: white; }

    /* Stage Badges */
    .stage-badge {
        font-size: 0.75rem;
        padding: 0.25rem 0.6rem;
        border-radius: 0.3rem;
        font-weight: 600;
        display: inline-block;
        margin-bottom: 0.2rem;
    }
    .stage-Applied { background-color: #e9ecef; color: #495057; }
    .stage-Screening { background-color: var(--kaauh-info); color: white; }
    .stage-Exam { background-color: var(--kaauh-warning); color: #856404; }
    .stage-Interview { background-color: #17a2b8; color: white; }
    .stage-Offer { background-color: var(--kaauh-success); color: white; }

    /* Timeline specific container */
    .applicant-tracking-timeline {
        margin-bottom: 2rem;
    }

    /* --- CUSTOM HEIGHT OPTIMIZATION (MAKING INPUTS/BUTTONS SMALLER) --- */
    .form-control-sm,
    .btn-sm {
        /* Reduce vertical padding even more than default Bootstrap 'sm' */
        padding-top: 0.2rem !important;
        padding-bottom: 0.2rem !important;
        /* Ensure a consistent, small height for both */
        height: 28px !important;
        font-size: 0.8rem !important; /* Slightly smaller font */
    }


</style>
{% endblock %}
{% block content %}
<div class="container-fluid py-4">
    <div class="d-flex justify-content-between align-items-center mb-4">
        <div>
            <h1 class="h3 mb-1 page-header">
                <i class="fas fa-edit me-2"></i>
                {% trans "Exam Management" %} - {{ job.title }}
            </h1>
            <h2 class="h5 text-muted mb-0">
                {% trans "Candidates in Exam Stage:" %} <span class="fw-bold">{{ total_candidates }}</span>
            </h2>
        </div>
        <div class="d-flex gap-2">
            <a href="{% url 'export_candidates_csv' job.slug 'exam' %}"
               class="btn btn-outline-secondary"
               title="{% trans 'Export exam candidates to CSV' %}">
                <i class="fas fa-download me-1"></i> {% trans "Export CSV" %}
            </a>
            <a href="{% url 'job_detail' job.slug %}" class="btn btn-outline-secondary">
                <i class="fas fa-arrow-left me-1"></i> {% trans "Back to Job" %}
            </a>
        </div>
    </div>

    <div class="applicant-tracking-timeline mb-4">
        {% include 'jobs/partials/applicant_tracking.html' %}
    </div>

    <h2 class="h4 mb-3" style="color: var(--kaauh-primary-text);">
        {% trans "Candidate List" %}
        <span class="badge bg-primary-theme ms-2">{{ candidates|length }} / {{ total_candidates }} Total</span>
        <small class="text-muted fw-normal ms-2">({% trans "Sorted by AI Score" %})</small>
    </h2>

    <div class="kaauh-card shadow-sm p-3">
         {% if candidates %}
        <div class="bulk-action-bar p-3 bg-light border-bottom">
            <form hx-boost="true" hx-include="#candidate-form" action="{% url 'candidate_update_status' job.slug %}" method="post" class="action-group">
                {% csrf_token %}

                {# Using d-flex for horizontal alignment and align-items-end to align items to the bottom baseline #}
                <div class="d-flex align-items-end gap-3">

                    {# Select Input Group #}
                    <div>

                        <select name="mark_as" id="update_status" class="form-select form-select-sm" style="min-width: 150px;">
                            <option selected>
                                ----------
                            </option>
                            <option value="Interview">
                                {% trans "Interview Stage" %}
                            </option>
                            <option value="Applied">
                                {% trans "Screening Stage" %}
                            </option>
                        </select>
                    </div>

                    {# Button #}
                    <button type="submit" class="btn btn-main-action btn-sm">
                        <i class="fas fa-arrow-right me-1"></i> {% trans "Change Stage" %}
                    </button>

                     <button type="button" class="btn btn-outline-info btn-sm"
                                data-bs-toggle="modal"
                                hx-boost='true'
                                data-bs-target="#emailModal"
                                hx-get="{% url 'compose_candidate_email' job.slug %}"
                                hx-target="#emailModalBody"
                                hx-include="#candidate-form"
                                title="Email Participants">
                                <i class="fas fa-envelope"></i>
                 </button>

                </div>
            </form>
       </div>
    {% endif %}
        <div class="table-responsive">
            <form id="candidate-form" method="post">
                {% csrf_token %}
                <table class="table candidate-table align-middle">
                    <thead>
                        <tr>
                            <th style="width: 2%;">
                                {% if candidates %}
                                    <div class="form-check">
                                        <input
                                        type="checkbox" class="form-check-input" id="selectAllCheckbox">
                                    </div>
                                {% endif %}
                            </th>
                            <th style="width: 15%;">{% trans "Name" %}</th>
                            <th style="width: 15%;">{% trans "Contact Info" %}</th>
                            <th style="width: 10%;" class="text-center">{% trans "AI Score" %}</th>
                            <th style="width: 15%;">{% trans "Exam Date" %}</th>
                            <th style="width: 15%;">{% trans "Exam Score" %}</th>
                            <th style="width: 10%;" class="text-center">{% trans "Exam Results" %}</th>
                            <th style="width: 15%;">{% trans "Actions" %}</th>
                        </tr>
                    </thead>
                    <tbody>
                        {% for candidate in candidates %}
                            <tr>
                                <td>
                                    <div class="form-check">
                                    <input
                                    name="candidate_ids"
                                    value="{{ candidate.id }}"
                                    type="checkbox" class="form-check-input rowCheckbox" id="candidate-{{ candidate.id }}">
                                </div>
                                </td>
                                <td>
                                    <div class="candidate-name">
                                        {{ candidate.name }}
                                    </div>
                                </td>
                                <td>
                                    <div class="candidate-details">
                                        <i class="fas fa-envelope me-1"></i> {{ candidate.email }}<br>
                                        <i class="fas fa-phone me-1"></i> {{ candidate.phone }}
                                    </div>
                                </td>
                                <td class="text-center">
                                    <span class="badge ai-score-badge">{{ candidate.match_score|default:"0" }}%</span>
                                </td>
                                <td>
                                    {{candidate.exam_date|date:"d-m-Y h:i A"|default:"--"}}
                                </td>
                                <td id="exam-score-{{ candidate.pk}}">
                                    {{candidate.exam_score|default:"--"}}
                                </td>

                                <td class="text-center" id="status-result-{{ candidate.pk}}">
                                    {% if not candidate.exam_status %}
                                        <button type="button" class="btn btn-warning btn-sm"
                                            data-bs-toggle="modal"
                                            data-bs-target="#candidateviewModal"
                                            hx-get="{% url 'update_candidate_status' job.slug candidate.slug 'exam' 'passed' %}"
                                            hx-target="#candidateviewModalBody"
                                            title="Pass Exam">
                                            <i class="fas fa-plus"></i>
                                        </button>
                                    {% else %}
                                        {% if candidate.exam_status %}
                                            <button type="button" class="btn btn-{% if candidate.exam_status == 'Passed' %}success{% else %}danger{% endif %} btn-sm"
                                                data-bs-toggle="modal"
                                                data-bs-target="#candidateviewModal"
                                                hx-get="{% url 'update_candidate_status' job.slug candidate.slug 'exam' 'passed' %}"
                                                hx-target="#candidateviewModalBody"
                                                title="Pass Exam">
                                                {{ candidate.exam_status }}
                                            </button>
                                        {% else %}
                                        --
                                        {% endif %}
                                    {% endif %}
                                </td>

                                <td >
                                    <button type="button" class="btn btn-outline-secondary btn-sm"
                                        data-bs-toggle="modal"
                                        data-bs-target="#candidateviewModal"
                                        hx-get="{% url 'candidate_criteria_view_htmx' candidate.pk %}"
                                        hx-target="#candidateviewModalBody"
                                        title="View Profile">
                                        <i class="fas fa-eye"></i>
                                    </button>
                                </td>
                            </tr>
                        {% endfor %}
                    </tbody>
                </table>
                {% if not candidates %}
                    <div class="alert alert-info text-center mt-3 mb-0" role="alert">
                        <i class="fas fa-info-circle me-1"></i>
                        {% trans "No candidates are currently in the Exam stage for this job." %}
                    </div>
                {% endif %}
            </form>
        </div>
    </div>
</div>

<div class="modal fade modal-lg" id="candidateviewModal" tabindex="-1" aria-labelledby="candidateviewModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content kaauh-card">
            <div class="modal-header" style="border-bottom: 1px solid var(--kaauh-border);">
                <h5 class="modal-title" id="candidateviewModalLabel" style="color: var(--kaauh-teal-dark);">
                    {% trans "Candidate Details & Exam Update" %}
                </h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <div id="candidateviewModalBody" class="modal-body">
                <div class="text-center py-5 text-muted">
                    <i class="fas fa-spinner fa-spin fa-2x"></i><br>
                    {% trans "Loading candidate data..." %}
                </div>
            </div>
            <div class="modal-footer" style="border-top: 1px solid var(--kaauh-border);">
                <button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">
                    {% trans "Close" %}
                </button>
            </div>
        </div>
    </div>
</div>


<!-- Email Modal -->
<div class="modal fade" id="emailModal" tabindex="-1" aria-labelledby="emailModalLabel" aria-hidden="true">
  <div class="modal-dialog modal-lg" role="document">
    <div class="modal-content kaauh-card">
      <div class="modal-header" style="border-bottom: 1px solid var(--kaauh-border);">
        <h5 class="modal-title" id="emailModalLabel" style="color: var(--kaauh-teal-dark);">
          <i class="fas fa-envelope me-2"></i>{% trans "Compose Email" %}
        </h5>
        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
      </div>
      <div id="emailModalBody" class="modal-body">
        <div class="text-center py-5 text-muted">
          <i class="fas fa-spinner fa-spin fa-2x"></i><br>
          {% trans "Loading email form..." %}

        </div>
      </div>
    </div>
  </div>
</div>
{% endblock %}


{% block customJS %}
<script>
    document.addEventListener('DOMContentLoaded', function () {
        const selectAllCheckbox = document.getElementById('selectAllCheckbox');
        const rowCheckboxes = document.querySelectorAll('.rowCheckbox');

        if (selectAllCheckbox) {

            // Function to safely update the header checkbox state
            function updateSelectAllState() {
                const checkedCount = Array.from(rowCheckboxes).filter(cb => cb.checked).length;
                const totalCount = rowCheckboxes.length;

                if (checkedCount === 0) {
                    selectAllCheckbox.checked = false;
                    selectAllCheckbox.indeterminate = false;
                } else if (checkedCount === totalCount) {
                    selectAllCheckbox.checked = true;
                    selectAllCheckbox.indeterminate = false;
                } else {
                    // Set to indeterminate state (partially checked)
                    selectAllCheckbox.checked = false;
                    selectAllCheckbox.indeterminate = true;
                }
            }

            // 1. Logic for the 'Select All' checkbox (Clicking it updates all rows)
            selectAllCheckbox.addEventListener('change', function () {
                const isChecked = selectAllCheckbox.checked;

                rowCheckboxes.forEach(checkbox => checkbox.removeEventListener('change', updateSelectAllState));

                rowCheckboxes.forEach(function (checkbox) {
                    checkbox.checked = isChecked;
                    checkbox.dispatchEvent(new Event('change', { bubbles: true }));
                });

                rowCheckboxes.forEach(checkbox => checkbox.addEventListener('change', updateSelectAllState));
                updateSelectAllState();
            });

            // 2. Logic to update 'Select All' state based on row checkboxes
            rowCheckboxes.forEach(function (checkbox) {
                checkbox.addEventListener('change', updateSelectAllState);
            });

            // Initial check to set the correct state on load (in case items are pre-checked)
            updateSelectAllState();
        }
    });
</script>
{% endblock %}
