/* ============================================================
   REDSOL · Portal de seguimiento y panel de solicitudes
   ============================================================ */
.portal-page { min-height: 100vh; background: linear-gradient(180deg, var(--beige-soft), var(--misty) 55%, #F6F1F3); }
.portal-header { background: rgba(255,255,255,.78); border-bottom: 1px solid var(--line); }
.portal-header-inner { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 76px; }
.portal-logo img { width: 158px; height: auto; }
.portal-back { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 800; color: var(--blue); }
.portal-back:hover { text-decoration: underline; }
.portal-main { width: min(980px, calc(100% - 36px)); margin: 0 auto; padding: 46px 0 78px; }
.portal-intro { max-width: 680px; }
.portal-intro h1 { margin: 12px 0 10px; font-family: var(--font-display); font-size: clamp(32px, 5vw, 52px); font-weight: 400; letter-spacing: -.045em; line-height: 1.02; }
.portal-intro p { font-size: 13.5px; line-height: 1.7; color: var(--slate); }
.portal-grid { display: grid; grid-template-columns: 1.08fr .92fr; gap: 16px; margin-top: 28px; }
.portal-card { padding: 24px; border-radius: 22px; background: rgba(255,255,255,.82); border: 1px solid rgba(255,255,255,.95); }
.portal-card h2 { font-family: var(--font-display); font-size: 22px; font-weight: 400; letter-spacing: -.03em; }
.portal-card h3 { font-size: 13px; font-weight: 800; }
.portal-form { display: flex; flex-direction: column; gap: 12px; }
.portal-form .field { display: flex; flex-direction: column; gap: 5px; }
.portal-form .field label { font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--slate); }
.portal-form .field input { width: 100%; padding: 12px 13px; border-radius: 10px; border: 1px solid var(--line); background: rgba(234,226,228,.5); color: var(--navy); font-size: 13px; }
.portal-form .field input:focus { border-color: var(--blue); background: #fff; outline: 2px solid rgba(30,93,172,.2); outline-offset: 1px; }
.portal-form .btn { width: 100%; }
.portal-aside { display: flex; flex-direction: column; gap: 12px; }
.portal-aside p, .portal-aside li { font-size: 11.5px; line-height: 1.65; color: var(--slate); }
.portal-aside ul { display: flex; flex-direction: column; gap: 7px; }
.portal-aside li::before { content: "·"; color: var(--blue); font-weight: 800; margin-right: 7px; }
.portal-message { display: none; margin-top: 10px; padding: 10px 12px; border-radius: 9px; background: #FBECEE; border: 1px solid #E3B6BD; color: #8A2C3A; font-size: 10.5px; line-height: 1.5; }
.portal-message.show { display: block; }
.track-result { margin-top: 18px; }
.track-result[hidden] { display: none; }
.track-result-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.track-code { font-size: 11px; font-weight: 800; letter-spacing: .08em; color: var(--slate); }
.status-badge { display: inline-flex; align-items: center; gap: 5px; padding: 5px 9px; border-radius: 999px; font-size: 8.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; background: rgba(30,93,172,.1); color: var(--blue); }
.status-badge.contactado { background: rgba(46,158,104,.12); color: #1C7A4D; }
.status-badge.cerrado { background: rgba(90,109,137,.12); color: var(--slate); }
.track-result h2 { margin-top: 14px; font-family: var(--font-display); font-size: 30px; font-weight: 400; letter-spacing: -.03em; }
.track-details { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 18px; }
.track-details dt { font-size: 8px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; color: var(--slate); }
.track-details dd { margin: 4px 0 0; font-size: 12px; font-weight: 700; color: var(--navy); }
.track-message { margin-top: 18px; padding: 14px; border-radius: 12px; background: rgba(234,226,228,.55); border: 1px solid var(--line); }
.track-message strong { display: block; font-size: 9px; text-transform: uppercase; letter-spacing: .08em; color: var(--slate); }
.track-message p { margin-top: 5px; font-size: 12px; line-height: 1.6; color: var(--navy); white-space: pre-wrap; }
.track-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 18px; }
.track-note { margin-top: 12px; font-size: 9px; line-height: 1.5; color: var(--slate); }
.portal-footer { border-top: 1px solid var(--line); padding: 20px 0; }
.portal-footer-inner { display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; font-size: 9px; color: var(--slate); }
@media (max-width: 760px) {
  .portal-main { padding: 32px 0 58px; }
  .portal-grid { grid-template-columns: 1fr; }
  .portal-header-inner { min-height: 68px; }
  .portal-logo img { width: 132px; }
  .track-details { grid-template-columns: 1fr; }
  .portal-footer-inner { flex-direction: column; gap: 6px; }
}
