/* Shared portal layout rules, independent of the selected color theme. */
:root { --c-on-brand: #fff; --c-action: #5422d5; --c-action-text: #fff; --c-success-action: #15803d; }
html { overflow-wrap: break-word; }
body { min-width: 0; min-height: 100svh; }
main, section, article, .container, .card, .form-group, .field { min-width: 0; }
input[type="checkbox"], input[type="radio"] { width: 1.1rem; height: 1.1rem; flex: 0 0 1.1rem; padding: 0; }
button, input, select, textarea { max-width: 100%; }
button, a.btn, summary { touch-action: manipulation; }
:focus-visible { outline: 3px solid var(--c-accent); outline-offset: 3px; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible, [role="button"]:focus-visible { outline:3px solid var(--c-accent) !important; outline-offset:3px; }
.portal-landing .hero h1, .portal-landing .hero h2, .cta-academy h2 { color: #fff; }
.brand-logo-link, nav.scoras-cnav .cnav-brand { width:160px; height:50px; display:inline-flex; align-items:center; justify-content:center; overflow:hidden; flex-shrink:0; }
.brand-logo-link img.brand-logo, nav.scoras-cnav .cnav-brand img { width:160px; height:auto; max-width:none; max-height:none; flex:none; }
.logo-wrap { height:70px; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.logo-wrap img { width:220px; height:auto; max-height:none; flex:none; }
.chip-btn.active { background:var(--c-action); color:#fff; border-color:var(--c-action); }
.scoras-cnav .nav-right a.active { color:var(--c-accent); }
.methodology strong, .methodology .toggle { color:var(--c-text); }
.methodology .highlight p { color:var(--c-text); }
.field label { color:var(--c-text); }
.photo-hint a, .hint a, .portal-check a { text-decoration:underline; }
.btn-primary { background: var(--c-action); color: var(--c-action-text); }
#btn-submit { background:var(--c-action); color:var(--c-action-text); }
.btn-student { background:linear-gradient(135deg,#020381,#1d4ed8); color:#fff; }
.btn-company { background: var(--c-success-action); color: #fff; }
.hero-jobs-link { display:inline-block; color:#fff; border:1px solid rgba(255,255,255,.7); border-radius:10px; padding:.7rem 1.1rem; margin-top:1.25rem; font-weight:600; }
.hero-jobs-link:hover { color:#fff; }
.hero-actions { display:flex; gap:.75rem; max-width:420px; margin:1.25rem auto 0; }
.hero-actions .hero-access { flex:1; min-width:0; background:#fff; color:#020381; padding:.85rem 1rem; line-height:1.2; }
.hero-actions .hero-access:hover { color:#020381; }
.form-step { font-weight:700; color:var(--c-text); margin-bottom:1rem; }
.registration-success { padding:1rem; color:#166534; background:#dcfce7; border-radius:10px; }
.registration-error { color:var(--c-danger); }
.rank-score small { margin-left:.2rem; font-size:.72em; }
.portal-landing .rank-score { background:var(--c-action); color:#fff; }
.portal-check { display:flex; align-items:flex-start; gap:.75rem; }
.form-group label.portal-check { display:flex; }
.portal-check > span { flex:1; min-width:0; overflow-wrap:anywhere; }
.portal-score-note { color:var(--c-muted); font-size:.9rem; line-height:1.6; margin:.8rem 0; }
.portal-security { margin-top:1.5rem; padding:1rem; border:1px solid var(--c-line); border-radius:12px; background:var(--c-white); }
.portal-security p { margin-bottom:.8rem; color:var(--c-muted); }
.portal-status { min-height:1.5rem; }
.portal-status:empty { min-height:0; }
.company-review { background:var(--c-white); color:var(--c-text); border:1px solid var(--c-line); border-radius:12px; padding:1.25rem; margin:0 0 1.25rem; }
.company-review h4 { margin-bottom:.5rem; }
.company-review p, .company-review label { margin-bottom:.65rem; }
.company-review textarea { width:100%; min-height:90px; padding:.75rem; background:var(--c-bg); color:var(--c-text); border:1px solid var(--c-line); border-radius:8px; }
.review-actions { display:flex; flex-wrap:wrap; gap:.65rem; margin:.8rem 0; }
@media(max-width:720px) {
    .container { padding:1.25rem 1rem; }
    .nav { padding:.85rem 1rem; gap:.75rem; flex-wrap:wrap; }
    .nav-right, .nav-links { gap:.75rem; }
    .card, .card-login { padding:1.25rem; }
    .hero { padding:1.5rem 1rem; }
    .hero h1, .hero h2 { font-size:clamp(1.5rem,6.5vw,2rem); line-height:1.2; }
    .hero p { font-size:1rem; }
    .job-top { flex-wrap:wrap; gap:.5rem; }
    .job-card { padding:1.15rem; }
    .salary { white-space:normal; }
    .form-row, .choice-grid { grid-template-columns:minmax(0,1fr); }
    .choice-card { padding:1.5rem; }
    .stats-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .choice-grid { gap:1rem; }
    .cta-academy { padding:2rem 1.25rem; margin-top:2rem; }
    .cta-academy .btn-big, .cta-academy .btn-secondary { display:block; width:100%; margin: .75rem 0 0; padding:1rem; }
    input:not([type="checkbox"]):not([type="radio"]), select, textarea { font-size:16px; }
    button, a.btn { min-height:44px; }
    .rank-item { grid-template-columns:28px minmax(0,1fr); gap:.6rem; }
    .rank-score { grid-column:2; justify-self:start; }
    .rank-stats { flex-wrap:wrap; gap:.25rem .7rem; }
    .nav-logo { height:36px; max-width:150px; }
    .header { flex-wrap:wrap; }
    .hero-grid, .stats-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .profile-body { padding:1.25rem; }
    .social-previews { grid-template-columns:minmax(0,1fr); }
    .methodology { padding:1.25rem; }
    .talent-grid { grid-template-columns:minmax(0,1fr); }
    .hero-score, .hero-score-box { max-width:100%; }
    .portal-security button { width:100%; white-space:normal; }
    .section-divider span { white-space:normal; min-width:0; }
    .section-subnav { max-width:100%; }
    .profile-ranking-row { grid-template-columns:1.75rem minmax(0,1fr) 4.5rem !important; }
    .profile-ranking-row > :nth-child(4) { grid-column:2; }
    .kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .kpi { padding:1rem; min-width:0; }
    .kpi-value { font-size:clamp(1.25rem,5vw,1.9rem); overflow-wrap:anywhere; }
    .table-scroll { overflow-x:auto; max-width:100%; }
}
@media(prefers-reduced-motion:reduce) {
    *, *::before, *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}
