/* Personnel Portal account management inside the administrative dossier. */
.portal-access-card { overflow: hidden; border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); background: var(--surface-primary); box-shadow: var(--shadow-sm); }
.portal-access-status-heading { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 24px 28px; border-bottom: 1px solid var(--border-subtle); background: linear-gradient(135deg, var(--theme-accent-soft), var(--surface-primary)); }
.portal-access-status-heading > div { display: flex; align-items: center; gap: 14px; }
.portal-access-status-heading p { margin: 0 0 3px; color: var(--text-muted); font-size: .72rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.portal-access-status-heading strong { font-size: 1.18rem; }
.portal-access-shield, .portal-dialog-icon { display: grid; place-items: center; width: 44px; height: 48px; border-radius: 50% 50% 45% 45%; background: var(--theme-primary); color: var(--theme-on-primary); font-weight: 800; }
.portal-access-details { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.portal-access-details > div { min-height: 100px; padding: 22px 28px; border-right: 1px solid var(--border-subtle); border-bottom: 1px solid var(--border-subtle); }
.portal-access-details > div:nth-child(3n) { border-right: 0; }
.portal-access-details dd small { display: block; margin-top: 5px; color: var(--text-muted); }
.portal-access-actions { display: flex; flex-wrap: wrap; gap: 12px; padding: 22px 28px; }
.portal-access-readonly { margin: 0; padding: 18px 28px; border-top: 1px solid var(--border-subtle); color: var(--text-muted); font-size: .82rem; }
.portal-access-dialog { max-width: 520px; }
.portal-access-dialog .portal-dialog-icon { margin: 0 auto 16px; }
.portal-dialog-summary { margin: 18px 0 0; padding: 14px 16px; border-radius: var(--radius-md); background: var(--surface-quiet); }
.portal-dialog-summary dt { color: var(--text-muted); font-size: .7rem; font-weight: 750; text-transform: uppercase; }
.portal-dialog-summary dd { margin: 4px 0 0; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-weight: 750; }
.portal-credential-result { display: grid; place-items: start center; padding: clamp(18px, 4vw, 58px) 0; }
.portal-credential-card { width: min(100%, 720px); padding: clamp(24px, 5vw, 48px); border: 1px solid var(--border-subtle); border-radius: var(--radius-xl); background: var(--surface-primary); box-shadow: var(--shadow-overlay); text-align: center; }
.portal-credential-success { display: grid; place-items: center; width: 58px; height: 58px; margin: 0 auto 18px; border-radius: 50%; background: var(--semantic-success-subtle); color: var(--semantic-success); font-size: 1.5rem; font-weight: 800; }
.portal-credential-card h1 { margin: 6px 0 18px; font-size: clamp(1.8rem, 4vw, 2.7rem); }
.portal-credential-person { display: grid; gap: 3px; margin: 0 0 22px; }
.portal-credential-person span, .portal-credential-person small { color: var(--text-muted); }
.portal-credential-person strong { font-size: 1.12rem; }
.portal-credential-warning { display: grid; gap: 5px; padding: 18px 20px; border: 1px solid var(--semantic-warning); border-radius: var(--radius-md); background: var(--semantic-warning-subtle); text-align: left; }
.portal-credential-warning strong { text-transform: uppercase; letter-spacing: .06em; }
.portal-credential-values { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 22px 0; text-align: left; }
.portal-credential-values > div { min-width: 0; padding: 17px 18px; border-radius: var(--radius-md); background: var(--surface-quiet); }
.portal-credential-values dt { color: var(--text-muted); font-size: .7rem; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; }
.portal-credential-values dd { margin: 7px 0 0; overflow-wrap: anywhere; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 1rem; font-weight: 780; user-select: all; }
.portal-credential-actions { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 44px; }
.portal-copy-status { color: var(--text-muted); font-size: .78rem; }
.portal-credential-login { margin: 18px 0 22px; color: var(--text-muted); }

@media (max-width: 768px) {
    .portal-access-details { grid-template-columns: 1fr 1fr; }
    .portal-access-details > div:nth-child(3n) { border-right: 1px solid var(--border-subtle); }
    .portal-access-details > div:nth-child(2n) { border-right: 0; }
}

@media (max-width: 430px) {
    .portal-access-status-heading { align-items: flex-start; padding: 20px; }
    .portal-access-status-heading > .status-badge { display: none; }
    .portal-access-details, .portal-credential-values { grid-template-columns: 1fr; }
    .portal-access-details > div { min-height: auto; padding: 18px 20px; border-right: 0 !important; }
    .portal-access-actions { display: grid; padding: 20px; }
    .portal-access-actions .button { width: 100%; }
    .portal-credential-actions { align-items: stretch; flex-direction: column; }
}
.personnel-temporary-login { margin-bottom:24px; padding:24px; border:1px solid #d8c398; border-radius:8px; background:#faf6eb; color:#172940; }
.personnel-temporary-login h3 { margin:0 0 8px; font-size:22px; }
.personnel-temporary-login p { font-size:13px; line-height:1.6; }
.personnel-temporary-login .portal-credential-values { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:20px 0 12px; }
.personnel-temporary-login .portal-credential-values > div { padding:16px; background:#fff; border:1px solid #dfd9cd; border-radius:5px; min-width:0; }
.personnel-temporary-login .portal-credential-values dd { margin:8px 0 0; font-family:monospace; font-size:28px; letter-spacing:.08em; overflow-wrap:anywhere; color:#132954; user-select:all; }
.portal-temporary-expiry { color:#596475; }
.portal-temporary-help { padding:18px; margin-bottom:22px; background:var(--surface-quiet,#f5f3ee); border-radius:5px; }
.portal-temporary-help p { margin:8px 0; font-size:13px; }
@media(max-width:600px){.personnel-temporary-login{padding:16px}.personnel-temporary-login .portal-credential-values{grid-template-columns:1fr}}
@media print{.personnel-temporary-login{display:none!important}}

.portal-login-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:20px 0}.portal-login-fields label{display:grid;gap:7px;font-size:13px;font-weight:600}.portal-login-fields input{min-height:44px;width:100%;padding:10px;border:1px solid #b8c0ca;border-radius:4px;background:#fff;color:#172940;font-size:18px}.portal-login-fields small{font-size:11px;font-weight:400;color:#586576;line-height:1.5}.portal-access-dialog .portal-login-fields{grid-template-columns:1fr}@media(max-width:600px){.portal-login-fields{grid-template-columns:1fr}}
