/* GaganSoft student account area (owner: PORTAL): auth pages (register/login/reset) + dashboard extras.
 * Builds on css/app.css (.dash, .dash-card, .stepper, .form-*). Keep it small. */

/* ----------------------------------------------------------------------------- auth pages */
.auth-section { position: relative; padding: 48px 0 80px; background:
  radial-gradient(900px 420px at 0% 0%, rgba(255, 0, 0, .08), transparent 60%),
  radial-gradient(800px 380px at 100% 100%, rgba(0, 0, 0, .06), transparent 60%), var(--surface); }
.auth-shell { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); max-width: 1120px; margin: 0 auto; background: #fff; border: 1px solid var(--border); border-radius: var(--radius-xl); box-shadow: var(--shadow-lg); overflow: hidden; }
.auth-shell-compact { max-width: 980px; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.auth-aside { position: relative; isolation: isolate; display: flex; flex-direction: column; gap: 22px; padding: 44px 40px; background: var(--grad); color: #F7F7F7; overflow: hidden; }
.auth-aside::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: linear-gradient(rgba(255, 255, 255, .07) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .07) 1px, transparent 1px); background-size: 32px 32px; mask-image: radial-gradient(circle at 30% 20%, #000 20%, transparent 75%); -webkit-mask-image: radial-gradient(circle at 30% 20%, #000 20%, transparent 75%); }
.auth-aside::after { content: ""; position: absolute; z-index: -1; right: -120px; bottom: -120px; width: 320px; height: 320px; border-radius: 50%; background: radial-gradient(circle, rgba(255, 255, 255, .22), transparent 70%); }
.auth-eyebrow { align-self: flex-start; margin: 0; background: rgba(255, 255, 255, .14); border-color: rgba(255, 255, 255, .25); color: #fff; }
.auth-aside-title { margin: 0; color: #fff; font-family: var(--font-head); font-weight: 700; letter-spacing: -.015em; font-size: clamp(1.4rem, 2.4vw, 1.85rem); line-height: 1.25; }
.auth-benefits { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.auth-benefits li { display: flex; gap: 14px; align-items: flex-start; margin: 0; }
.auth-benefits .icon-tile { background: rgba(255, 255, 255, .14); border-color: rgba(255, 255, 255, .22); color: #fff; }
.auth-benefits strong { display: block; color: #fff; font-family: var(--font-head); font-size: .98rem; }
.auth-benefits span { display: block; font-size: .875rem; color: rgba(255, 255, 255, .85); line-height: 1.5; }
.auth-aside-foot { margin: auto 0 0; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, .2); font-size: .92rem; color: rgba(255, 255, 255, .9); }
.auth-aside-foot a { color: #fff; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.auth-main { padding: 40px 44px; min-width: 0; }
.auth-head { margin-bottom: 22px; }
.auth-head h1 { font-size: clamp(1.6rem, 3vw, 2rem); margin: 0 0 4px; }
.auth-head p { margin: 0; color: var(--muted); }
.auth-main .form-foot { margin-top: 18px; }
.auth-icon { margin: 0 auto 14px; }
.auth-status h1, .form-card-head h1 { margin: 0 0 8px; }
.auth-center-actions { justify-content: center; margin-top: 20px; }
.auth-status .muted { max-width: 46ch; margin-left: auto; margin-right: auto; }
@media (max-width: 900px) {
  .auth-section { padding: 24px 0 56px; }
  .auth-shell, .auth-shell-compact { grid-template-columns: minmax(0, 1fr); }
  .auth-aside { order: 2; padding: 28px 24px; }
  .auth-main { padding: 28px 22px; }
}
@media (max-width: 480px) { .auth-main { padding: 24px 16px; } .auth-section .container { padding-left: 12px; padding-right: 12px; } }

/* password strength meter (js/account.js) */
.pw-meter { display: flex; align-items: center; gap: 10px; margin-top: 2px; }
.pw-meter[hidden] { display: none; }
.pw-meter-bar { flex: 1; height: 6px; border-radius: 6px; background: var(--surface-2); overflow: hidden; }
.pw-meter-bar > span { display: block; height: 100%; width: 0; border-radius: inherit; background: var(--danger); transition: width .2s, background .2s; }
.pw-meter-text { font-size: .78rem; font-weight: 600; color: var(--muted); min-width: 64px; text-align: right; }
.pw-meter[data-level="1"] .pw-meter-bar > span { width: 25%; background: var(--danger); }
.pw-meter[data-level="2"] .pw-meter-bar > span { width: 50%; background: var(--warning); }
.pw-meter[data-level="3"] .pw-meter-bar > span { width: 75%; background: #65A30D; }
.pw-meter[data-level="4"] .pw-meter-bar > span { width: 100%; background: var(--success); }

/* ----------------------------------------------------------------------------- dashboard shell */
.account-area { background: var(--surface); min-height: 60vh; }
.dash-user .acc-unverified { display: inline-flex !important; align-items: center; gap: 5px; margin-top: 4px; font-size: .75rem !important; font-weight: 600; color: #B45309 !important; word-break: normal !important; }
.next-step-warn { background: #FFFBEB; border-color: #FDE68A; }
.acc-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: start; }
@media (max-width: 1080px) { .acc-grid-2 { grid-template-columns: minmax(0, 1fr); } }
.dash-card-head h2 i { color: var(--primary); margin-right: 6px; font-size: .95em; }
.dash-card > form, form.dash-card { margin: 0; }

/* profile strength ring */
.acc-meter-body { display: flex; gap: 20px; align-items: center; }
.acc-ring { --p: 0; flex: 0 0 96px; width: 96px; height: 96px; border-radius: 50%; display: grid; place-items: center;
  background: conic-gradient(var(--primary) calc(var(--p) * 1%), var(--primary-600) calc(var(--p) * 1%), var(--surface-2) 0); position: relative; }
.acc-ring::before { content: ""; position: absolute; inset: 9px; border-radius: 50%; background: #fff; }
.acc-ring span { position: relative; font-family: var(--font-head); font-weight: 800; font-size: 1.35rem; color: var(--ink); }
.acc-missing { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.acc-missing li { margin: 0; }
.acc-missing a { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: var(--radius-pill); border: 1px dashed var(--primary-200); background: var(--primary-50); color: var(--primary-700); font-size: .8rem; font-weight: 600; text-decoration: none; }
.acc-missing a:hover { border-style: solid; }
.acc-missing a i { font-size: .7rem; }
@media (max-width: 480px) { .acc-meter-body { flex-direction: column; align-items: flex-start; } }
.acc-head-meter { display: flex; align-items: center; gap: 10px; min-width: 220px; }
.acc-head-meter .progress { flex: 1; }

.acc-next-list .btn { flex: 0 0 auto; }
@media (max-width: 560px) { .acc-next-list > li { flex-wrap: wrap; } .acc-next-list .btn { margin-left: 50px; } }
.acc-mini-empty { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.acc-mini-empty p { margin: 0; color: var(--muted); font-size: .9375rem; }

/* ----------------------------------------------------------------------------- list entries (internships, projects, applications) */
.acc-section-title { display: flex; align-items: center; gap: 10px; font-size: 1.05rem; margin: 8px 0 -8px; color: var(--ink-2); }
.acc-entry { padding: 20px 22px; display: flex; flex-direction: column; gap: 16px; scroll-margin-top: calc(var(--header-h) + 16px); transition: box-shadow .2s, border-color .2s; }
.acc-entry:target { border-color: var(--primary-200); box-shadow: var(--ring); }
.acc-entry-head { display: flex; align-items: flex-start; gap: 14px; }
.acc-entry-head > .badge { flex: 0 0 auto; margin-top: 2px; }
.acc-kicker { display: block; font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--primary); margin-bottom: 2px; }
.acc-entry-title { font-size: 1.125rem; margin: 0 0 6px; }
.acc-entry-title a { color: var(--ink); text-decoration: none; }
.acc-entry-title a:hover { color: var(--primary); }
.acc-meta { display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 0; font-size: .8125rem; color: var(--muted); }
.acc-meta span { display: inline-flex; align-items: center; gap: 6px; }
.acc-meta i { color: #999999; }
.acc-stepper { padding-top: 2px; }
.acc-entry-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 16px; padding-top: 14px; border-top: 1px solid var(--border); }
.acc-entry-note { flex: 1 1 260px; font-size: .9rem; color: var(--ink-2); }
.acc-entry-note i { color: var(--primary); margin-right: 4px; }
.acc-entry-foot form { margin: 0; }
.acc-logo { font-size: .9rem; }
@media (max-width: 560px) {
  .acc-entry { padding: 16px; }
  .acc-entry-head { flex-wrap: wrap; }
  .acc-entry-head > .icon-tile, .acc-entry-head > .acc-logo { display: none; }
  .acc-stepper > li { font-size: .7rem; }
}

/* project team + submission */
.acc-sub { font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin: 0 0 10px; }
.acc-members { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.acc-members li { display: flex; align-items: center; gap: 10px; margin: 0; padding: 10px 12px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); min-width: 0; }
.acc-members li > div { flex: 1; min-width: 0; }
.acc-members strong { display: block; font-size: .9rem; color: var(--ink); }
.acc-members span:not(.avatar) { display: block; font-size: .78rem; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.acc-submission { margin: 0; padding: 14px 16px; background: var(--surface); border-radius: 12px; }
.acc-submission dd a { word-break: break-all; }
.acc-submit { background: var(--grad-soft); border-color: var(--primary-100); }
.acc-submit > summary { font-size: .98rem; }
.acc-submit > summary i { color: var(--primary); }
.acc-submit .form-grid { padding-top: 4px; }

/* ----------------------------------------------------------------------------- profile */
.acc-skill-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.acc-skill-chips:empty { display: none; }
.acc-file { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; padding: 14px 16px; margin-bottom: 18px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); }
.acc-file strong { display: block; color: var(--ink); }
.acc-file span:not(.icon-tile) { display: block; font-size: .8125rem; color: var(--muted); }
.acc-file form { margin: 0; }
.acc-upload { display: flex; flex-direction: column; gap: 12px; }
.btn.acc-danger { color: var(--danger); }
.btn.acc-danger:hover { background: #FFF0F0; color: var(--danger); }
.acc-break { word-break: break-all; margin-bottom: 6px; }
.form-section[id], .field[id], .dash-card[id] { scroll-margin-top: calc(var(--header-h) + 16px); }

/* ----------------------------------------------------------------------------- certificates */
.acc-cert-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; }
.acc-cert { position: relative; display: flex; flex-direction: column; gap: 10px; padding: 22px; background: #fff; border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); overflow: hidden; }
.acc-cert::before { content: ""; position: absolute; inset: 0 0 auto; height: 4px; background: var(--grad); }
.acc-cert.is-revoked { background: var(--surface); }
.acc-cert.is-revoked::before { background: var(--danger); }
.acc-cert-top { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 4px; }
.acc-cert-title { font-size: 1.1rem; margin: 0; }
.acc-cert-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px; margin: 4px 0; }
.acc-cert-facts div { min-width: 0; }
.acc-cert-facts dt { font-size: .72rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--muted); }
.acc-cert-facts dd { margin: 0; font-size: .9rem; color: var(--ink); overflow-wrap: anywhere; }
.acc-cert-link code { font-size: .78rem; }
.acc-cert-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 6px; }
.acc-revoked-note { margin: 0; color: #990000; }

/* ----------------------------------------------------------------------------- payments */
.acc-reject-note { color: var(--danger) !important; font-weight: 600; }
.acc-pay-actions { text-align: right; }
@media (max-width: 640px) { .acc-pay-actions { text-align: left; } .acc-pay-actions::before { content: none !important; } }

/* journey (step-by-step progress; .trk-* components come from css/progress.css) */
.acc-journey > summary { justify-content: flex-start; flex-wrap: wrap; gap: 8px 12px; }
.acc-journey-title { margin-right: auto; display: inline-flex; align-items: center; gap: 8px; }
.acc-journey-title i { color: var(--primary); }
.acc-journey-meta { font-family: var(--font-body);font-weight: 600; font-size: .85rem; color: var(--muted); }
.acc-journey > .acc-body { padding-top: 2px; }
.acc-journey-empty { margin: 0 0 6px; padding: 10px 14px; border-radius: 10px; background: var(--surface); border: 1px solid var(--border); font-size: .9rem; color: var(--ink-2); }
.acc-journey-empty i { color: var(--primary); margin-right: 4px; }
.acc-journey .trk-item[id], .acc-journey { scroll-margin-top: calc(var(--header-h) + 16px); }
.acc-journey .trk-item:target > .trk-body { outline: 2px solid var(--primary-200); outline-offset: 4px; border-radius: 6px; }
.trk-actions .field textarea { min-height: 84px; }
.trk-actions .form-actions { margin-top: 0; }
.trk-actions > details > summary { display: inline-flex; align-items: center; gap: 6px; }
.trk-actions > details > form { max-width: 560px; padding: 12px 14px; border: 1px solid var(--border); border-radius: 12px; background: #fff; }
@media (max-width: 560px) { .acc-journey > .acc-body { padding-left: 14px; padding-right: 14px; } .acc-journey > summary { padding: 14px; } .trk-actions > details > form { padding: 10px; } }

/* dashboard "Your progress" card */
.acc-journeys > li { align-items: flex-start; }
.acc-journey-main { flex: 1 1 240px; min-width: 0; }
.acc-journey-main > strong { display: block; color: var(--ink); }
.acc-journey-sub { display: block; font-size: .8125rem; color: var(--muted); }
.acc-journey-main .trk-bar { margin: 8px 0 6px; max-width: 340px; }
.acc-journey-next { margin: 0; font-size: .875rem; color: var(--ink-2); overflow-wrap: anywhere; }
.acc-journey-next i { color: var(--primary); margin-right: 2px; }
.acc-journey-hints { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 0; }
.acc-journey-hints a { text-decoration: none; }
.acc-journey-hints a:hover { text-decoration: underline; }
.acc-journey-actions { display: flex; flex-wrap: wrap; gap: 8px; align-self: center; }
@media (max-width: 560px) { .acc-journeys .icon-tile { display: none; } .acc-journey-actions { align-self: flex-start; } }

@media print { .account-area { background: #fff; } .acc-entry-foot .btn-group, .acc-cert-actions, .acc-submit { display: none !important; } .acc-journey { border: 0; } }

/* message from the hiring team (job applications) */
.acc-message { padding: 12px 16px; border-radius: 12px; background: var(--primary-50); border: 1px solid var(--primary-100); }
.acc-message-from { display: inline-flex; align-items: center; gap: 6px; font-size: .78rem; font-weight: 700; color: var(--primary-700); text-transform: uppercase; letter-spacing: .04em; }
.acc-message p { margin: 6px 0 0; color: var(--ink-2); font-size: .9375rem; }
