/* =====================================================================
   NIT Agartala admission portal - applicant area theme
   Used by SiteMasterPage.master (and feepayment.aspx).
   Purely visual: restyles the existing page markup (panels, inputs,
   buttons, grids) without needing any change to the content pages.
   Loaded AFTER page content and scoped to .nx-portal so it wins over
   the old page-level ".css3gradient" (green) and Theme1.css styles.
   Depends on the colour variables defined in nx-theme.css.
   ===================================================================== */

/* ---------- Header user bar ---------- */
.nx-portal .nx-userbar a { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }
.nx-portal .nx-user {
    display: inline-flex; align-items: center; gap: 8px;
    background: rgba(46, 49, 146, .07); color: var(--nx-primary);
    padding: 7px 14px 7px 8px; border-radius: 999px; font-size: 13px;
}
.nx-portal .nx-user:has(span:empty) { display: none; }
.nx-portal .nx-user svg {
    width: 26px; height: 26px; padding: 5px; border-radius: 50%;
    background: var(--nx-primary-2); fill: #fff; flex: 0 0 auto;
}
.nx-portal .nx-user span { color: var(--nx-primary) !important; font-weight: 600; }
/* Extra specificity so it beats the generic ".nx-portal input.btn-info" (white text) rule below */
.nx-portal .nx-userbar input.btn-info.nx-signout,
.nx-portal .nx-userbar input.btn-info.nx-signout:focus {
    background: #fff !important; color: var(--nx-danger) !important;
    border: 1.5px solid #f1c4c4 !important; box-shadow: none !important;
    padding: 7px 16px !important; font-weight: 600; transform: none;
}
.nx-portal .nx-userbar input.btn-info.nx-signout:hover {
    background: #fff4f4 !important; color: var(--nx-danger) !important;
    border-color: var(--nx-danger) !important;
}

.nx-portal .nx-nav-title {
    justify-content: flex-start !important; color: rgba(255, 255, 255, .9);
    font-family: 'Poppins', sans-serif; font-size: 14px; font-weight: 500; letter-spacing: .02em;
    padding-top: 9px !important; padding-bottom: 9px !important;
}

.nx-portal .nx-portal-main { padding-top: 22px; padding-bottom: 40px; min-height: 60vh; }

/* ---------- Panels (replace the old green .css3gradient heading) ---------- */
.nx-portal .panel.panel-info {
    border: 1px solid var(--nx-line); border-radius: var(--nx-radius);
    box-shadow: var(--nx-shadow); background: #fff; margin-bottom: 22px;
}
.nx-portal .panel.panel-info > .panel-heading,
.nx-portal .panel-heading.css3gradient {
    background: linear-gradient(135deg, var(--nx-primary) 0%, var(--nx-primary-2) 60%, #4549b8 100%) !important;
    filter: none !important;
    border: 0; border-bottom: 4px solid var(--nx-accent);
    border-radius: var(--nx-radius) var(--nx-radius) 0 0;
    color: #fff; padding: 14px 20px;
}
.nx-portal .panel-heading .panel-title,
.nx-portal .panel-heading .panel-title-left,
.nx-portal .panel-heading .panel-title b {
    font-family: 'Poppins', sans-serif; font-size: 16px; font-weight: 600;
    color: #fff; letter-spacing: .02em;
}
.nx-portal .panel-heading .row { margin: 0; display: flex; align-items: center; flex-wrap: wrap; }
.nx-portal .panel-heading .row > [class*="col-"] { padding-left: 0; padding-right: 0; }
.nx-portal .panel-heading a,
.nx-portal .panel-heading a:visited {
    display: inline-block; color: #fff !important; text-decoration: none;
    background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .35);
    padding: 4px 14px; border-radius: 999px; font-size: 13px;
}
.nx-portal .panel-heading a:hover { background: rgba(255, 255, 255, .26); }
.nx-portal .panel.panel-info > .panel-body { padding: 20px 22px; }

/* Panels nested inside a panel (notes / info boxes) */
.nx-portal .panel .panel.panel-info {
    box-shadow: none; border: 1px solid #d3d5f2; background: #f5f6fd;
    border-radius: 10px; margin-bottom: 12px; line-height: 1.7;
}
.nx-portal .panel .panel.panel-info > .panel-heading { border-radius: 10px 10px 0 0; padding: 10px 16px; }

/* ---------- Form fields ---------- */
.nx-portal .form-control,
.nx-portal input.form-control,
.nx-portal select.form-control {
    height: 38px; border: 1.5px solid #cfd8e3; border-style: solid; border-radius: 8px;
    background-color: #fbfcfe; color: var(--nx-ink); font-size: 14px;
    box-shadow: none; transition: border-color .2s ease, box-shadow .2s ease;
}
.nx-portal textarea.form-control { height: auto; min-height: 70px; }
.nx-portal .form-control:focus,
.nx-portal .form-control:hover:focus {
    border-color: var(--nx-primary-2); border-style: solid; background-color: #fff;
    box-shadow: 0 0 0 3px rgba(46, 49, 146, .14); outline: none;
}
.nx-portal .form-control[disabled],
.nx-portal .form-control[readonly] { background-color: #eef1f6; color: #5b6776; }
.nx-portal input[type="file"] { font-size: 13px; }
.nx-portal .validstar { color: var(--nx-danger) !important; margin-right: 2px; }
.nx-portal .panel-body td { color: #34404f; }

/* ---------- Buttons ---------- */
.nx-portal .btn-info,
.nx-portal input.btn-info,
.nx-portal a.btn-info {
    background: linear-gradient(90deg, var(--nx-primary-2) 0%, #3b6fd8 100%);
    color: #fff !important; border: 0; border-radius: 8px;
    font-family: 'Poppins', sans-serif; font-weight: 500; font-size: 14px;
    padding: 8px 18px; min-height: 36px; line-height: 1.4; cursor: pointer;
    box-shadow: 0 4px 12px rgba(46, 49, 146, .22); text-decoration: none;
    transition: transform .15s ease, box-shadow .2s ease; margin: 3px 2px;
    text-shadow: none; white-space: nowrap; width: auto !important; min-width: 0;
}
.nx-portal .btn-info:hover,
.nx-portal .btn-info:focus {
    background: linear-gradient(90deg, #262a86 0%, #2f5fc4 100%);
    transform: translateY(-1px); box-shadow: 0 6px 16px rgba(46, 49, 146, .32); outline: none;
}
.nx-portal .btn-info[disabled] { opacity: .55; cursor: not-allowed; transform: none; }

/* ---------- Links ---------- */
.nx-portal .panel-body a,
.nx-portal .panel-body a:visited { color: var(--nx-primary-2); font-weight: 600; }
.nx-portal .panel-body a:hover { color: var(--nx-warn); }

/* ---------- Fieldsets with a legend ---------- */
.nx-portal fieldset.fieldset,
.nx-portal fieldset:has(> legend) {
    border: 1px solid var(--nx-line); border-radius: 12px;
    padding: 6px 18px 14px; margin: 0 0 18px; background: #fff;
}
.nx-portal fieldset > legend {
    width: auto; border: 0; margin: 0 0 6px; padding: 0 10px;
    font-family: 'Poppins', sans-serif; font-size: 15px; font-weight: 600;
    color: var(--nx-primary);
}

/* ---------- Data grids (Theme1.css .vista-grid) ---------- */
.nx-portal .vista-grid {
    border: 1px solid var(--nx-line); border-radius: 12px; overflow-x: auto;
    font-family: 'Inter', 'Segoe UI', Arial, sans-serif; font-size: 13px; background: #fff;
}
.nx-portal .vista-grid .titlebar {
    background: var(--nx-primary) none; color: #fff; height: auto;
    line-height: 1.4; padding: 10px 14px; font-family: 'Poppins', sans-serif; font-size: 14px;
}
.nx-portal .vista-grid table thead th,
.nx-portal .vista-grid .header th,
.nx-portal .vista-grid .datatable .header TH {
    background: #eef0fb none; color: var(--nx-primary); font-weight: 600;
    border-bottom: 1px solid #d3d5f2; height: auto; line-height: 1.4; padding: 10px 8px;
}
.nx-portal .vista-grid .item td,
.nx-portal .vista-grid .altitem td,
.nx-portal .vista-grid .datatable .item TD,
.nx-portal .vista-grid .datatable .altitem TD {
    padding: 9px 8px; border-bottom: 1px solid #eef1f6; color: #2b3644; vertical-align: middle;
}
.nx-portal .vista-grid .datatable .altitem TD { background-color: #f8f9fe; }

/* ---------- Profile summary page (Intermediate.aspx) ---------- */
.nx-portal [id$="pnlsummry"] .panel-body table td[style*="padding-left:13%"],
.nx-portal [id$="pnlsummry"] .panel-body table td[style*="padding-left:5%"] {
    padding: 0 !important; vertical-align: top;
}
.nx-portal [id$="pnlsummry"] .panel-body table td[style*="padding-left:13%"] > *:first-child,
.nx-portal [id$="pnlsummry"] .panel-body table td[style*="padding-left:5%"] > *:first-child { margin-left: 14px; }
.nx-portal [id$="pnlsummry"] .panel-body table td[style*="padding-left:13%"],
.nx-portal [id$="pnlsummry"] .panel-body table td[style*="padding-left:5%"] {
    display: table-cell; background: #fafbff; border: 1px solid var(--nx-line);
    border-radius: 10px; line-height: 46px; text-align: left !important;
}
.nx-portal [id$="pnlsummry"] .panel-body > center > table { border-collapse: separate; border-spacing: 10px 10px; }
.nx-portal [id$="pnlsummry"] .panel-body table td a { text-decoration: none; }
.nx-portal [id$="gridpref"] td { padding: 8px 12px; border-bottom: 1px dashed var(--nx-line); text-align: left; }

/* ---------- Gate / NET page: recolour its green card to the blue theme ---------- */
.nx-portal .gn-card { border-color: var(--nx-line); border-radius: var(--nx-radius); box-shadow: var(--nx-shadow); }
.nx-portal .gn-card-head {
    background: linear-gradient(135deg, var(--nx-primary) 0%, var(--nx-primary-2) 60%, #4549b8 100%);
    border-bottom: 4px solid var(--nx-accent);
}
.nx-portal .gn-select.form-control { border-color: #cfd8e3; }
.nx-portal .gn-select.form-control:focus { border-color: var(--nx-primary-2); box-shadow: 0 0 0 3px rgba(46, 49, 146, .14); }
.nx-portal .gn-drop { border-color: #c4c8ec; background: #f6f7fd; }
.nx-portal .gn-drop:hover,
.nx-portal .gn-drop.is-dragover { border-color: var(--nx-primary-2); background: #eef0fb; }
.nx-portal .gn-drop-icon,
.nx-portal .gn-drop-title b { color: var(--nx-primary-2); }
.nx-portal .gn-drop-file { color: var(--nx-primary); }
.nx-portal .gn-existing { border-color: #d3d5f2; background: #f5f6fd; }
.nx-portal .gn-existing-name span { color: var(--nx-primary-2); }
.nx-portal .gn-actions { border-top-color: var(--nx-line); }
.nx-portal .gn-btn-primary {
    border: 0; background: linear-gradient(90deg, var(--nx-primary-2) 0%, #3b6fd8 100%);
    border-radius: 8px; box-shadow: 0 4px 12px rgba(46, 49, 146, .22);
}
.nx-portal .gn-btn-primary:hover { background: linear-gradient(90deg, #262a86 0%, #2f5fc4 100%); }
.nx-portal .gn-btn-light { border-color: #cfd3ee; color: var(--nx-primary-2); border-radius: 8px; }
.nx-portal .gn-btn-light:hover { background: #f0f1fb; }

/* ---------- Small screens ---------- */
@media (max-width: 767px) {
    .nx-portal .nx-header .nx-wrap { justify-content: center; }
    .nx-portal .nx-userbar a { justify-content: center; }
    .nx-portal .panel.panel-info > .panel-body { padding: 16px 12px; }
    .nx-portal .form-control { width: 100% !important; }
}
