/* =========================================================
   NU Result Checker v3 – Styled after PECE Result Checker
   Fonts: Hind Siliguri + Sora
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Hind+Siliguri:wght@400;500;600;700&family=Sora:wght@400;500;600;700;800&display=swap');

.nurc-wrapper {
    --nurc-primary:    #1a56db;
    --nurc-primary-dk: #1341b0;
    --nurc-accent:     #0ea5e9;
    --nurc-success:    #10b981;
    --nurc-danger:     #ef4444;
    --nurc-bg:         #f0f4ff;
    --nurc-card:       #ffffff;
    --nurc-border:     #dbe4f7;
    --nurc-text:       #1e293b;
    --nurc-muted:      #64748b;
    --nurc-radius:     14px;
    --nurc-shadow:     0 4px 24px rgba(26,86,219,.12);

    font-family: 'Sora', 'Hind Siliguri', sans-serif;
    color: var(--nurc-text);
    max-width: 680px;
    margin: 2rem auto;
    padding: 0 1rem;
}

/* ---- Form box ---- */
.nurc-form-box {
    background: var(--nurc-card);
    border: 1.5px solid var(--nurc-border);
    border-radius: var(--nurc-radius);
    padding: 1.6rem 1.8rem;
    box-shadow: var(--nurc-shadow);
    margin-bottom: 1.2rem;
}
.nurc-form-title {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--nurc-primary);
    margin: 0 0 1.1rem;
    display: flex;
    align-items: center;
    gap: .5rem;
}
.nurc-form-title svg { flex-shrink: 0; }

.nurc-label {
    display: flex;
    align-items: baseline;
    gap: .5rem;
    font-weight: 700;
    font-size: .92rem;
    margin-bottom: .5rem;
    color: var(--nurc-text);
}
.nurc-label-bn {
    font-family: 'Hind Siliguri', sans-serif;
    font-size: .82rem;
    color: var(--nurc-muted);
    font-weight: 400;
}

.nurc-field { margin-bottom: 1rem; }

.nurc-select,
.nurc-input {
    width: 100%;
    padding: .7rem 1rem;
    border: 1.5px solid var(--nurc-border);
    border-radius: 8px;
    font-size: .97rem;
    font-family: 'Sora', sans-serif;
    color: var(--nurc-text);
    outline: none;
    transition: border-color .2s, box-shadow .2s;
    background: #f8faff;
    box-sizing: border-box;
}
.nurc-select:focus,
.nurc-input:focus {
    border-color: var(--nurc-primary);
    box-shadow: 0 0 0 3px rgba(26,86,219,.15);
    background: #fff;
}

.nurc-btn {
    background: var(--nurc-primary);
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: .75rem 1.4rem;
    font-size: .95rem;
    font-family: 'Sora', sans-serif;
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    transition: background .2s, transform .1s;
    white-space: nowrap;
    width: 100%;
    justify-content: center;
    margin-top: .4rem;
}
.nurc-btn:hover  { background: var(--nurc-primary-dk); }
.nurc-btn:active { transform: scale(.97); }
.nurc-btn:disabled { opacity: .6; cursor: not-allowed; }

.nurc-btn-outline {
    background: transparent;
    color: var(--nurc-primary);
    border: 1.5px solid var(--nurc-primary);
}
.nurc-btn-outline:hover { background: var(--nurc-bg); }

.nurc-hint {
    font-size: .78rem;
    color: var(--nurc-muted);
    margin-top: .45rem;
}
.nurc-error {
    margin-top: .75rem;
    padding: .65rem 1rem;
    background: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: 8px;
    color: var(--nurc-danger);
    font-size: .88rem;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: .5rem;
}

/* ---- Loading ---- */
.nurc-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .8rem;
    padding: 1.4rem;
    color: var(--nurc-muted);
    font-size: .92rem;
}
.nurc-spinner {
    width: 24px; height: 24px;
    border: 3px solid var(--nurc-border);
    border-top-color: var(--nurc-primary);
    border-radius: 50%;
    animation: nurc-spin .7s linear infinite;
    flex-shrink: 0;
}
@keyframes nurc-spin { to { transform: rotate(360deg); } }

/* ---- Result card ---- */
.nurc-result-card {
    background: var(--nurc-card);
    border: 1.5px solid var(--nurc-border);
    border-radius: var(--nurc-radius);
    box-shadow: var(--nurc-shadow);
    overflow: hidden;
    animation: nurc-fadein .4s ease;
}
@keyframes nurc-fadein {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: translateY(0); }
}

.nurc-result-header {
    background: linear-gradient(135deg, var(--nurc-primary) 0%, #1d4ed8 100%);
    color: #fff;
    text-align: center;
    padding: 1.4rem 1.5rem 1.2rem;
}
.nurc-org {
    font-size: .82rem;
    opacity: .85;
    letter-spacing: .05em;
    text-transform: uppercase;
    margin-bottom: .3rem;
}
.nurc-exam-title-display {
    font-family: 'Hind Siliguri', sans-serif;
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.4;
}
.nurc-site {
    font-size: .78rem;
    opacity: .7;
    margin-top: .3rem;
}

.nurc-marksheet-title {
    text-align: center;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--nurc-primary);
    padding: 1rem 1.5rem .2rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}

/* ---- Info grid ---- */
.nurc-info-grid {
    padding: .8rem 1.5rem;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .45rem 1.5rem;
}
@media (max-width: 480px) {
    .nurc-info-grid { grid-template-columns: 1fr; }
    .nurc-form-box  { padding: 1.2rem 1rem; }
    .nurc-wrapper   { padding: 0 .75rem; margin: 1rem auto; }
}
.nurc-info-item {
    display: flex;
    flex-direction: column;
    padding: .4rem 0;
    border-bottom: 1px solid #f1f5fd;
}
.nurc-info-key {
    font-size: .72rem;
    color: var(--nurc-muted);
    text-transform: uppercase;
    letter-spacing: .05em;
    font-weight: 600;
    margin-bottom: .15rem;
}
.nurc-info-val {
    font-family: 'Hind Siliguri', sans-serif;
    font-size: 1rem;
    color: var(--nurc-text);
    font-weight: 600;
}
.nurc-info-val.is-pass { color: #065f46; font-weight: 700; }
.nurc-info-val.is-fail { color: #991b1b; font-weight: 700; }

/* ---- GPA / status row ---- */
.nurc-gpa-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.4rem;
    background: linear-gradient(135deg, #f0f4ff 0%, #e8f0fe 100%);
    margin: .8rem 1.5rem;
    border-radius: 12px;
    padding: 1rem 1.5rem;
    border: 1.5px solid var(--nurc-border);
    flex-wrap: wrap;
}
.nurc-gpa-divider-v {
    width: 1px;
    height: 3rem;
    background: var(--nurc-border);
    border-radius: 1px;
    flex-shrink: 0;
}

/* ---- Failed banner ---- */
.nurc-not-promoted {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    margin: .8rem 1.5rem;
    padding: .85rem 1.2rem;
    border-radius: 12px;
    background: #fff5f5;
    border: 1.5px solid #fca5a5;
    color: #991b1b;
    font-weight: 700;
    font-size: .95rem;
}

.nurc-gpa-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .3rem;
}
.nurc-gpa-label {
    font-size: .62rem;
    text-transform: uppercase;
    letter-spacing: .09em;
    font-weight: 700;
    color: var(--nurc-muted);
}

/* GPA number badge */
.nurc-gpa-value {
    font-size: 1.55rem;
    font-weight: 800;
    line-height: 1;
    padding: .3rem .85rem;
    border-radius: 10px;
    letter-spacing: .02em;
    background: #dbeafe;
    color: #1e40af;
}

/* Class badge – exact same size & style as GPA badge */
.nurc-gpa-class-text {
    font-size: 1.55rem;
    font-weight: 800;
    line-height: 1;
    padding: .3rem .85rem;
    border-radius: 10px;
    letter-spacing: .02em;
    background: #dbeafe;
    color: #1e40af;
}

/* Per-class colour tints applied to BOTH value and class-text */
.nurc-gpa-1stclass  { background: #d1fae5; color: #065f46; }
.nurc-gpa-2ndclass  { background: #dbeafe; color: #1e40af; }
.nurc-gpa-3rdclass  { background: #fef9c3; color: #78350f; }
.nurc-gpa-fail      { background: #fee2e2; color: #991b1b; }

/* ---- Grade table GP column ---- */
.nurc-gp-cell {
    font-weight: 700;
    color: var(--nurc-primary);
    font-size: .9rem;
}
.nurc-gp-fail { color: #991b1b; }



/* ---- Grade table ---- */
.nurc-table-wrap {
    padding: 0 1.5rem 1rem;
    overflow-x: auto;
}
.nurc-table {
    width: 100%;
    border-collapse: collapse;
    font-size: .9rem;
}
.nurc-table thead tr {
    background: var(--nurc-primary);
    color: #fff;
}
.nurc-table th {
    padding: .6rem .9rem;
    text-align: left;
    font-weight: 600;
    font-size: .82rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.nurc-table td {
    padding: .55rem .9rem;
    border-bottom: 1px solid #f1f5fd;
    font-family: 'Hind Siliguri', sans-serif;
}
.nurc-table tbody tr:hover td { background: #f0f4ff; }

/* Grade colour badges */
.nurc-grade-badge {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 12px;
    font-weight: 700;
    font-size: .82rem;
}
.nurc-grade-ap  { background:#d1fae5; color:#065f46; }
.nurc-grade-a   { background:#dbeafe; color:#1e40af; }
.nurc-grade-bp  { background:#ede9fe; color:#5b21b6; }
.nurc-grade-b   { background:#fef9c3; color:#78350f; }
.nurc-grade-cp  { background:#ffedd5; color:#9a3412; }
.nurc-grade-c   { background:#fee2e2; color:#991b1b; }
.nurc-grade-f   { background:#fce7f3; color:#9d174d; }
.nurc-grade-def { background:#f1f5f9; color:#64748b; }

/* ---- Actions ---- */
.nurc-actions {
    display: flex;
    justify-content: flex-end;
    gap: .7rem;
    padding: .8rem 1.5rem 1.2rem;
    border-top: 1px solid var(--nurc-border);
}
.nurc-actions .nurc-btn { width: auto; margin-top: 0; flex: 1; }

/* ---- Mobile overrides ---- */
@media (max-width: 480px) {
    .nurc-info-grid  { grid-template-columns: 1fr; }
    .nurc-form-box   { padding: 1.2rem 1rem; }
    .nurc-wrapper    { padding: 0 .75rem; margin: 1rem auto; }

    /* GPA + Class always in one row, never wrap */
    .nurc-gpa-row    { flex-wrap: nowrap; gap: .9rem; padding: .8rem 1rem; margin: .6rem 1rem; }
    .nurc-gpa-value,
    .nurc-gpa-class-text { font-size: 1.25rem; padding: .28rem .65rem; }

    /* Buttons always side-by-side */
    .nurc-actions    { padding: .75rem 1rem 1rem; gap: .5rem; }
    .nurc-actions .nurc-btn { font-size: .85rem; padding: .65rem .6rem; }

    /* Table tighter on mobile */
    .nurc-table-wrap { padding: 0 1rem .8rem; }
}

/* ---- Print styles ---- */
@media print {
    body > *, body * { visibility: hidden !important; }
    #nurc-result-card,
    #nurc-result-card * { visibility: visible !important; }
    #nurc-result-card {
        position: fixed !important;
        top: 0 !important; left: 0 !important;
        width: 100% !important;
        margin: 0 !important;
        box-shadow: none !important;
        border: none !important;
        border-radius: 0 !important;
        overflow: visible !important;
        font-size: 10pt !important;
    }
    .nurc-result-header {
        padding: .6rem 1rem !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
    .nurc-actions { display: none !important; }
    @page { size: A4 portrait; margin: 10mm; }
}
