.portal-section { padding: 28px 0; border-bottom: 1px solid #343439; }
.portal-section > header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 20px; flex-wrap: wrap; }
.portal-section > header h3 { margin: 0; font-size: 19px; }
.portal-heading-actions {display:flex;gap:8px;flex-wrap:wrap;}
.portal-context { display: flex; align-items: center; gap: 20px; margin-bottom: 20px; flex-wrap: wrap; }
.portal-context a { display: inline-flex; align-items: center; gap: 8px; color: #B4B3BB; }
.portal-summary { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); border-top: 1px solid #343439; border-bottom: 1px solid #343439; margin: 24px 0; }
.portal-summary > div { display: flex; flex-direction: column; gap: 10px; padding: 20px 20px 20px 0; }
.portal-summary span { color: #B4B3BB; font-size: 14px; }
.portal-summary strong { font-size: 23px; line-height: 1.3; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.portal-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; max-width: 960px; margin: 24px 0; }
.portal-form label { display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.portal-form input, .portal-form select, .portal-form textarea { width: 100%; min-width: 0; }
.portal-full { grid-column: 1 / -1; }
.portal-form .form-actions { justify-content: flex-end; margin: 0; }
.portal-form .form-error { flex: 1; margin: 0; }
.portal-form [type="file"] { padding: 12px; }
.portal-list { list-style: none; padding: 0; margin: 0; }
.portal-list > li { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:16px 0; border-bottom:1px solid #29292E; }
.portal-list small { display:block; margin-top:5px; color:#B4B3BB; }
.portal-check { display:flex; flex-direction:row; align-items:center; gap:10px; flex-shrink:0; }
.portal-check input { width:20px; height:20px; }
.portal-shortcuts { display:flex; flex-wrap:wrap; gap:24px; padding:28px 0; }
.portal-shortcuts a { display:flex; gap:10px; align-items:center; min-height:44px; }
.portal-connections { display:flex; flex-direction:column; }
.portal-connection { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:20px; padding:28px 0; border-bottom:1px solid #343439; }
.portal-connection h3 { display:inline-block; margin:0 12px 12px 0; font-size:20px; }
.portal-connection p { color:#B4B3BB; margin:0 0 8px; }
.portal-connection small { color:#94939D; }
.portal-connection-actions { display:flex; gap:8px; flex-wrap:wrap; align-items:center; justify-content:flex-end; }
.portal-connection .portal-form { grid-column:1/-1; margin:0; max-width:680px; }
.portal-referral-link { display:flex; gap:8px; align-items:center; max-width:800px; }
.portal-referral-link input { flex:1; min-width:0; font-size:14px; font-family:var(--font-mono,monospace); }
.portal-referral-link .icon-button { flex-shrink:0; }
.portal-terms { color:#B4B3BB; font-size:14px; line-height:1.6; }
.portal-activation { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 28px; }
.portal-activation > div { display:flex; gap:16px; align-items:center; justify-content:space-between; border-bottom:1px solid #29292E; padding:16px 0; }
.portal-public { min-height:100dvh; padding:52px 24px; background:#161618; }
.portal-public-body { width:100%; max-width:720px; margin:0 auto; }
.portal-public-body > img { object-fit:contain; margin-bottom:52px; }
.portal-public-body h1 { font-size:32px; line-height:1.2; margin:0 0 16px; }
.portal-public-body p { line-height:1.65; color:#B4B3BB; }
.portal-public-body .portal-form { margin:32px 0; }
.portal-public-login { display:inline-flex; align-items:center; gap:10px; min-height:44px; margin-top:20px; color:#B4B3BB; }
@media (max-width: 1000px) { .portal-connection {grid-template-columns:1fr;} .portal-connection-actions {justify-content:flex-start;} }
@media (max-width: 600px) {
  .portal-summary {grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;}
  .portal-summary strong {font-size:20px;}
  .portal-form,.portal-activation {grid-template-columns:minmax(0,1fr);}
  .portal-list > li {align-items:flex-start;gap:14px;}
  .portal-list > li > div {min-width:0;}
  .portal-check span {font-size:13px;}
  .portal-section > header {align-items:flex-start;}
  .portal-section .data-table th,.portal-section .data-table td {white-space:normal;overflow-wrap:anywhere;}
  .portal-public {padding:32px 20px;}
  .portal-public-body > img {margin-bottom:36px;}
  .portal-public-body h1 {font-size:28px;}
}
