.portal-topbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.portal-topbar .dsrs-topbar__logo { width: 104px; height: 46px; }
.portal-shell { min-height: 100vh; }
.portal-hero { position: relative; overflow: hidden; padding: 30px 0 42px; color: #fff; background: radial-gradient(circle at 85% 20%,rgba(243,111,50,.17),transparent 25%),linear-gradient(135deg,var(--dsrs-navy),var(--dsrs-navy-light)); }
.portal-hero::after { content:""; position:absolute; width:360px; height:360px; right:-110px; top:-170px; border:1px solid rgba(255,255,255,.12); border-radius:50%; }
.portal-hero .dsrs-overline { color:var(--dsrs-brand-orange); }
.portal-hero h1 { max-width: 720px; margin: 0; font-size: clamp(36px, 4.5vw, 52px); line-height: 1; letter-spacing: -.045em; }
.portal-hero p:not(.dsrs-overline) { max-width: 680px; margin: 12px 0 0; color: #dce9f2; font-size: 15px; }
.portal-build-chip { display: inline-flex; margin-top: 16px; padding: 6px 10px; border:1px solid rgba(255,255,255,.15); border-radius:999px; background:rgba(255,255,255,.08); color:#e6eff4; font-size:12px; }
.portal-main { position: relative; z-index: 2; margin-top: -20px; padding-bottom: 28px; }
.portal-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.portal-card {
  min-height: 210px;
  display: flex;
  flex-direction: column;
  padding: 18px;
  text-decoration: none;
  transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}
a.portal-card:hover,
a.portal-card:focus-visible {
  border-color: rgba(243,111,50,.55);
  box-shadow: 0 9px 24px rgba(6,43,70,.11);
}
.portal-card__top { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:16px; }
.portal-icon {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border: 1px solid rgba(243,111,50,.28);
  border-radius: var(--dsrs-radius);
  background: rgba(243,111,50,.10);
  color: var(--dsrs-brand-orange);
}
.portal-icon svg { width: 24px; height: 24px; }
.portal-card .dsrs-badge { margin-top: 2px; }
.portal-card h2 { margin:0 0 7px; color:var(--dsrs-text); font-size:22px; line-height:1.15; letter-spacing:-.025em; }
.portal-card p { margin:0 0 16px; max-width:54ch; color:var(--dsrs-muted); font-size:13px; line-height:1.5; }
.portal-card__action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid var(--dsrs-line);
  color: var(--dsrs-brand-orange-strong);
  font-size: 12px;
  font-weight: 800;
}
.portal-card__action > span { font-size: 16px; line-height: 1; }
.portal-card__action > span[aria-hidden="true"] { transition: transform .18s ease; }
a.portal-card:hover .portal-card__action > span[aria-hidden="true"],
a.portal-card:focus-visible .portal-card__action > span[aria-hidden="true"] { transform: translateX(2px); }
.portal-card--disabled { border-color:var(--dsrs-line); background:var(--dsrs-surface); box-shadow:none; }
.portal-card--disabled .portal-icon { border-color:var(--dsrs-line); background:#eef2f5; color:var(--dsrs-muted); }
.portal-card--disabled .portal-icon svg { width:26px; height:26px; }
.portal-card--disabled .portal-card__action { color:var(--dsrs-muted); }
.portal-system { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr); gap:16px; margin-top:12px; padding:18px; }
.portal-system h2 { margin:0 0 4px; font-size:20px; }
.portal-system > div > p { margin:0; color:var(--dsrs-muted); }
.portal-checks { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-top:12px; }
.portal-check { display:flex; align-items:center; gap:9px; padding:8px 10px; border:1px solid var(--dsrs-line); border-radius:10px; background:var(--dsrs-surface); }
.portal-check > span { width:25px; height:25px; display:grid; place-items:center; flex:0 0 auto; border-radius:50%; background:#e7f7ef; color:var(--dsrs-success); font-weight:900; }
.portal-check[data-state="warning"] > span { background:#fff1e8; color:var(--dsrs-orange); }
.portal-check strong,.portal-check small { display:block; }
.portal-check strong { font-size:14px; }
.portal-check small { margin-top:2px; color:var(--dsrs-muted); font-size:12px; }
.portal-build-summary { padding:16px; border-radius:13px; background:linear-gradient(145deg,var(--dsrs-navy),var(--dsrs-navy-light)); color:#fff; }
.portal-build-summary > span { color:#bcd0dd; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.portal-build-summary > strong { display:block; margin:7px 0 3px; font-size:21px; }
.portal-build-summary > p { margin:0; color:#dce9f2; font-size:13px; }
.portal-build-summary dl { margin:12px 0 0; }
.portal-build-summary dl div { display:flex; justify-content:space-between; gap:14px; padding:6px 0; border-top:1px solid rgba(255,255,255,.13); font-size:11px; }
.portal-build-summary dt { color:#bcd0dd; }.portal-build-summary dd { margin:0; text-align:right; font-weight:700; }
@media(max-width:900px){.portal-system{grid-template-columns:1fr}.portal-hero{padding-top:28px}.portal-checks{grid-template-columns:1fr}}
@media(max-width:680px){.portal-topbar{gap:8px}.portal-topbar .dsrs-topbar__brand{gap:8px;flex:0 1 auto}.portal-topbar .dsrs-topbar__logo{width:72px;height:40px;flex:0 0 72px}.portal-topbar .dsrs-topbar__title{font-size:13px;white-space:nowrap}.portal-topbar .dsrs-status-chip{max-width:none;flex:0 0 auto;gap:7px;padding:7px 9px;white-space:nowrap;font-size:10px}.portal-grid{grid-template-columns:1fr}.portal-card{min-height:196px}.portal-system{padding:15px}.portal-hero{padding:26px 0 38px}.portal-hero::after{display:none}.portal-hero p:not(.dsrs-overline){font-size:14px}}
