/* ==============================================
   DYN-RESULT-CARD — Exclusive prefixed styles
   All classes: .dyn-result-*
   ============================================== */

/* ── Wrapper ── */
.dyn-result-wrap {
    font-family: Arial, sans-serif;
    width: 100%;
    box-sizing: border-box;
}

/* ── Tab Navigation ── */
.dyn-result-tabnav {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 20px;
    border-bottom: 2px solid #0073aa;
    padding-bottom: 0;
}

.dyn-result-tab {
    display: inline-block;
    padding: 10px 18px;
    background: #f1f1f1;
    color: #333;
    text-decoration: none;
    border: 1px solid #ccc;
    border-bottom: none;
    border-radius: 5px 5px 0 0;
    font-size: 14px;
    font-weight: 500;
    transition: background 0.2s;
}
.dyn-result-tab:hover { background: #e0e0e0; }
.dyn-result-tab--active {
    background: #fff;
    color: #0073aa;
    font-weight: bold;
    border-color: #0073aa;
    border-bottom-color: #fff;
    position: relative;
    top: 2px;
}

/* ── Section boxes ── */
.dyn-result-section {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 6px;
    padding: 20px;
    margin-bottom: 20px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}
.dyn-result-section h3 { margin-top: 0; color: #0073aa; border-bottom: 1px solid #e0e0e0; padding-bottom: 8px; }
.dyn-result-section h4 { color: #555; }

/* ── Filters row ── */
.dyn-result-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-bottom: 10px;
}
.dyn-result-filter-item {
    display: flex;
    flex-direction: column;
    flex: 1 1 180px;
}
.dyn-result-filter-item label {
    font-weight: 600;
    font-size: 13px;
    color: #555;
    margin-bottom: 4px;
}
.dyn-result-filter-item select,
.dyn-result-filter-item input[type="text"],
.dyn-result-filter-item input[type="number"] {
    padding: 8px 10px;
    border: 1px solid #ccc;
    border-radius: 5px;
    font-size: 14px;
    background: #fff;
}
.dyn-result-filter-item select:focus,
.dyn-result-filter-item input:focus {
    outline: none;
    border-color: #0073aa;
    box-shadow: 0 0 0 2px rgba(0,115,170,0.15);
}

/* ── Controls wrapper (publish) ── */
.dyn-result-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    background: #f9f9f9;
    border: 1px solid #ddd;
    border-radius: 6px;
    padding: 16px;
    margin-bottom: 20px;
}

/* ── Buttons ── */
.dyn-result-btn {
    background: #0073aa;
    color: #fff;
    border: none;
    padding: 7px 14px;
    border-radius: 5px;
    cursor: pointer;
    font-size: 13px;
    transition: background 0.2s;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    white-space: nowrap;
    line-height: 1.3;
}
.dyn-result-btn:hover { background: #005a87; color: #fff; }
.dyn-result-btn--secondary { background: #6c757d; }
.dyn-result-btn--secondary:hover { background: #545b62; }
.dyn-result-btn--tabulation { background: #1a5c3a; }
.dyn-result-btn--tabulation:hover { background: #134d30; }
.dyn-result-btn--merit { background: #7b4e00; }
.dyn-result-btn--merit:hover { background: #623e00; }
.dyn-result-btn--danger { background: #d32f2f; }
.dyn-result-btn--danger:hover { background: #b71c1c; }
.dyn-result-btn--sm { padding: 4px 10px; font-size: 12px; }

/* Button group row */
.dyn-result-btn-group {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    align-self: flex-end;
}

/* ── Tables ── */
.dyn-result-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
    margin-top: 8px;
}
.dyn-result-table th,
.dyn-result-table td {
    padding: 7px 10px;
    border: 1px solid #ddd;
    text-align: left;
    white-space: nowrap;
}
.dyn-result-table th { background: #f2f2f2; font-weight: bold; }
.dyn-result-table tr:nth-child(even) { background: #fafafa; }

/* ── Notices ── */
.dyn-result-notice {
    padding: 10px 16px;
    border-radius: 4px;
    margin-bottom: 16px;
    font-size: 14px;
}
.dyn-result-notice--success { background: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
.dyn-result-notice--warn    { background: #fff3cd; color: #856404; border: 1px solid #ffeeba; }
.dyn-result-notice--error   { background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }

/* ── Form rows ── */
.dyn-result-form-row {
    margin-bottom: 12px;
}
.dyn-result-form-row label {
    display: block;
    font-weight: 600;
    margin-bottom: 4px;
    color: #444;
}
.dyn-result-form-row input[type="text"],
.dyn-result-form-row input[type="number"] {
    width: 100%;
    max-width: 400px;
    padding: 8px 10px;
    border: 1px solid #ccc;
    border-radius: 5px;
    font-size: 14px;
    box-sizing: border-box;
}

/* ── Class tab buttons (settings tab) ── */
.dyn-result-classtab-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 16px;
}
.dyn-result-classtab-btn {
    padding: 8px 16px;
    border: 1px solid #ccc;
    background: #f1f1f1;
    cursor: pointer;
    border-radius: 4px;
    font-size: 13px;
    transition: background 0.2s;
}
.dyn-result-classtab-btn:hover { background: #e0e0e0; }
.dyn-result-classtab-btn--active { background: #0073aa; color: #fff; border-color: #0073aa; }

/* ── Settings grid ── */
.dyn-result-settings-section {
    border: 1px solid #eee;
    padding: 14px;
    border-radius: 4px;
    margin-bottom: 14px;
    background: #fafafa;
}
.dyn-result-settings-section h5 { margin: 0 0 10px; color: #0073aa; border-bottom: 1px solid #ddd; padding-bottom: 6px; }
.dyn-result-settings-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 12px;
}
.dyn-result-settings-grid > div { display: flex; flex-direction: column; }
.dyn-result-settings-grid label { font-size: 12px; font-weight: 600; color: #555; margin-bottom: 4px; }
.dyn-result-settings-grid input { padding: 6px 8px; border: 1px solid #ccc; border-radius: 4px; font-size: 13px; }

/* ── Checkbox list ── */
.dyn-result-checkbox-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 10px 0;
}
.dyn-result-check-item {
    display: flex;
    align-items: center;
    gap: 5px;
    background: #fff;
    border: 1px solid #ddd;
    padding: 6px 10px;
    border-radius: 4px;
    cursor: pointer;
    font-size: 13px;
}

/* ── Small number input ── */
.dyn-result-num-sm {
    width: 80px;
    padding: 4px 6px;
    border: 1px solid #ccc;
    border-radius: 3px;
    font-size: 13px;
}

/* ── Bulk set row ── */
.dyn-result-bulk-set {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    padding: 8px 12px;
    background: #fff8e1;
    border: 1px solid #ffe082;
    border-radius: 4px;
}

/* ============================================
   RESULT CARD (Screen + Print)
   ============================================ */

.dyn-result-print-area {
    box-sizing: border-box;
    width: 100%;
}

.dyn-result-card {
    width: 210mm;
    height: 297mm;
    padding: 8mm; /* Reduced padding from 10mm to create more inner width */
    box-sizing: border-box;
    border: 1px solid #ccc;
    margin: 0 auto 12px auto;
    position: relative;
    background-color: #fff;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
    overflow: hidden;
}

.dyn-result-card--break {
    page-break-before: always;
}

.dyn-result-card--bg {
    /* background-image set dynamically via wp_add_inline_style */
    background-size: 100% 100%;
    background-position: center;
    background-repeat: no-repeat;
}

/* School header */
.dyn-result-school-header {
    display: flex;
    align-items: center;
    flex-direction: column;
    border-bottom: 1px solid #555;
    padding-bottom: 4px;
    margin-bottom: 4px;
}
.dyn-result-logo { max-height: 70px; margin-bottom: 4px; }
.dyn-result-school-info { text-align: center; }
.dyn-result-school-info h2 { margin: 0 0 2px; }
.dyn-result-school-info p  { margin: 1px 0; font-size: 13px; color: #555; font-weight: bold; }

.dyn-result-transcript-title {
    text-align: center;
    font-weight: bold;
    margin: 4px 0 2px;
}
.dyn-result-exam-header {
    text-align: center;
    font-weight: bold;
    margin: 1px 0 6px;
}

/* Student info */
.dyn-result-student-photo {
    display: flex;
    justify-content: flex-start;
    margin-top: -65px;
    margin-left: 10px;
    margin-bottom: 4px;
}
.dyn-result-student-photo img { max-height: 55px; border: 1px solid #ddd; border-radius: 3px; }

.dyn-result-student-info {
    margin-left: 10px;
    font-size: 14px;
    font-weight: bold;
}
.dyn-result-student-info p {
    margin: 1px 0;
    line-height: 16px;
    border-bottom: 0;
    width: 2.6in;
}

/* Marks table */
.dyn-result-body table {
    width: 100%;
    border-collapse: collapse;
    font-size: 11.5px; /* Reduced font size to fit columns properly */
    margin-top: 10px;
}
.dyn-result-body th,
.dyn-result-body td {
    border: 1px solid #555;
    padding: 2px; /* Reduced padding from 2px 3px */
    text-align: center;
    vertical-align: middle;
}
.dyn-result-body th { background: #ebebeb; font-weight: bold; font-size: 11px; }
.dyn-result-body tr { height: 16px; line-height: 1.1; }
.dyn-result-body .dyn-result-subject { 
    text-align: left; 
    white-space: normal; /* Normal wrap allows long subjects to break, saving width */
}
.dyn-result-fullmarks { color: #c00; font-weight: bold; }
.dyn-result-total-hdr,
.dyn-result-total-val { font-weight: bold; color: darkgreen; }
.dyn-result-add-header td { text-align: center; font-weight: bold; background: #f5f5f5; font-style: italic; color: #333; }

/* Summary / footer */
.dyn-result-footer { margin-top: 4px; }

.dyn-result-summary table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
    text-align: center;
}
.dyn-result-summary td { padding: 2px 4px; border: 1px solid #bbb; font-size: 14px; text-align: center; }
.dyn-result-summary thead td { font-weight: bold; background: #f0f0f0; color: darkgreen; }
.dyn-result-merit-col { /* shown/hidden via JS */ }

.dyn-result-comment {
    width: calc(100% - 10px);
    margin: 4px auto 0;
    padding: 2px 6px;
    font-size: 13px;
    text-align: center;
}

.dyn-result-signature {
    position: absolute;
    bottom: 10mm;
    right: 15mm;
    width: 1.5in;
    text-align: center;
}
.dyn-result-signature img { display: block; margin: 0 auto 2px; max-height: 32px; }
.dyn-result-signature p  { border-top: 1px solid #333; padding-top: 2px; margin: 0; font-size: 12px; font-weight: bold; }

/* ============================================
   PRINT STYLES — exclusively scoped
   ============================================ */
@media print {
    body { background: none !important; margin: 0 !important; padding: 0 !important; }
    body * { visibility: hidden; }

    #pub-output, #pub-output * { visibility: visible; }

    /* Fix: Isolate #pub-output completely so the WordPress theme wrapper paddings don't squash the card */
    #pub-output {
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        margin: 0;
        padding: 0;
    }

    @page { size: A4 portrait; margin: 0; }

    .dyn-result-card--break { page-break-before: always !important; }

    .dyn-result-card {
        width: 210mm !important;
        height: 297mm !important;
        padding: 8mm !important; /* Smaller print padding */
        margin: 0 !important;
        border: none !important;
        box-shadow: none !important;
        position: relative !important;
        background-color: #fff !important;
        page-break-inside: avoid !important;
        page-break-after: always !important; /* Forces the next card properly on the next A4 sheet */
    }

    .dyn-result-card--bg {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
        background-size: 100% 100% !important; /* Stretches edge-to-edge for perfect cover */
        background-repeat: no-repeat !important;
        background-position: center !important;
    }

    .dyn-result-body th  { background: #ebebeb !important; }
    .dyn-result-fullmarks  { color: #c00 !important; }
    .dyn-result-add-header td { background: #f5f5f5 !important; }

    .dyn-result-body th,
    .dyn-result-body td,
    .dyn-result-summary td,
    .dyn-result-signature p {
        border-color: #000 !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    table { page-break-inside: auto !important; }
    tr    { page-break-inside: avoid !important; page-break-after: auto !important; }
}

/* ── Responsive ── */
@media (max-width: 768px) {
    .dyn-result-filters { flex-direction: column; }
    .dyn-result-filter-item { flex: 1 1 100%; }
    .dyn-result-controls { flex-direction: column; }
    .dyn-result-settings-grid { grid-template-columns: 1fr; }
    .dyn-result-btn-group { width: 100%; }
    .dyn-result-btn-group .dyn-result-btn { flex: 1 1 calc(50% - 4px); justify-content: center; }
}
@media (max-width: 480px) {
    .dyn-result-btn-group .dyn-result-btn { flex: 1 1 100%; justify-content: center; }
}