.sftp-page { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; max-width: 1780px; min-width: 0; margin: 0 auto; }
.sftp-page > *, .sftp-grid > *, .sftp-form > *, .sftp-connect dl > * { min-width: 0; }
.sftp-form input, .sftp-form select { min-width: 0; width: 100%; }
.sftp-connect dd { overflow-wrap: anywhere; }
.sftp-hero { position: relative; display: flex; justify-content: space-between; gap: 34px; align-items: flex-end; overflow: hidden; min-height: 260px; padding: 42px 44px; border-radius: 10px; background: radial-gradient(circle at 70% 0, rgb(245 131 69 / 16%), transparent 30%), linear-gradient(120deg, #242827, #173c36); color: #fff; box-shadow: 0 18px 48px rgb(23 46 40 / 15%); }
.sftp-hero::before { position: absolute; inset: 0 auto 0 0; width: 5px; background: var(--ers-orange); content: ""; }
.sftp-hero > * { position: relative; z-index: 1; }
.sftp-hero h1 { margin: 9px 0 11px; color: #fff !important; font-family: "ERS Intro", Aptos, "Segoe UI", sans-serif; font-size: clamp(36px, 4vw, 58px); letter-spacing: -.04em; line-height: .98; }
.sftp-hero p { margin: 0; color: #d9dee2; }
.sftp-hero-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }.sftp-hero-tags span { border: 1px solid rgb(255 255 255 / 14%); border-radius: 999px; padding: 6px 10px; background: rgb(255 255 255 / 6%); color: #dceae6; font-size: 9px; font-weight: 800; letter-spacing: .04em; }
.sftp-health { display: flex; align-items: center; gap: 11px; min-width: 230px; padding: 17px 18px; border: 1px solid #ffffff24; border-radius: 8px; background: #ffffff0d; backdrop-filter: blur(10px); }
.sftp-health i { width: 10px; height: 10px; border-radius: 50%; background: #ef6b5d; box-shadow: 0 0 0 5px #ef6b5d22; }
.sftp-health.online i { background: #4fd18b; box-shadow: 0 0 0 5px #4fd18b22; }
.sftp-health span { display: grid; gap: 3px; }.sftp-health small { color: #cbd2d7; }
.sftp-metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.sftp-metrics article { display: grid; gap: 3px; padding: 20px 22px; border: 1px solid var(--ers-line); border-radius: 8px; background: var(--ers-surface); box-shadow: 0 5px 18px rgb(20 40 35 / 4%); }
.sftp-metrics span, .sftp-metrics small { color: var(--ers-muted); }.sftp-metrics strong { font-size: 25px; }
.sftp-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 18px; }.sftp-grid .panel { margin: 0; border-radius: 9px; box-shadow: 0 6px 22px rgb(20 40 35 / 4%); }
.sftp-page .panel > header { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 18px; }
.sftp-page .panel h2 { margin: 3px 0 0; }.sftp-page .panel small { color: var(--ers-muted); }
.sftp-section-help { margin: 5px 0 0; color: var(--ers-muted); font-size: 11px; font-weight: 400; }.sftp-form { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }.sftp-form label { display: grid; gap: 6px; font-weight: 650; }.sftp-form label small { font-weight: 400; }.sftp-form .full { grid-column: 1 / -1; }.sftp-form input,.sftp-form select { min-height: 44px; border-radius: 6px; }.sftp-create-button { min-height: 48px; background: #176f61 !important; font-size: 13px; }
.sftp-connect dl { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; margin: 0 0 15px; }.sftp-connect dl div { padding: 12px; background: var(--ers-soft); border-radius: 5px; }.sftp-connect dt { color: var(--ers-muted); font-size: 11px; text-transform: uppercase; }.sftp-connect dd { margin: 5px 0 0; font-weight: 750; }
.sftp-page pre { overflow: auto; padding: 14px; border-radius: 5px; background: #17191b; color: #d9f2e5; white-space: pre-wrap; word-break: break-word; }
.sftp-table-wrap { overflow-x: auto; }.sftp-users table { width: 100%; border-collapse: collapse; }.sftp-users th, .sftp-users td { padding: 13px 10px; border-bottom: 1px solid var(--ers-line); text-align: left; vertical-align: middle; }.sftp-users td > small, .sftp-users td > strong { display: block; }.sftp-actions { display: flex; flex-wrap: wrap; gap: 6px; }.sftp-actions .button { padding: 7px 9px; font-size: 11px; }
.sftp-event-list { display: grid; max-height: 450px; overflow: auto; }.sftp-event-list > div { display: grid; grid-template-columns: .8fr 1.2fr; gap: 15px; padding: 11px 2px; border-bottom: 1px solid var(--ers-line); }.sftp-event-list span { display: grid; gap: 3px; min-width: 0; }.sftp-event-list strong, .sftp-event-list small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.sftp-empty { padding: 25px; color: var(--ers-muted); text-align: center; }
.sftp-modal { position: fixed; z-index: 1000; inset: 0; display: grid; place-items: center; padding: 20px; background: rgb(10 20 17 / 68%); backdrop-filter: blur(7px); }.sftp-modal > section { width: min(720px, 100%); padding: 30px; border-radius: 12px; background: var(--ers-surface); box-shadow: 0 30px 90px rgb(0 0 0 / 35%); }.sftp-modal h2 { margin-bottom: 5px; }.sftp-modal > section > div { display: flex; justify-content: flex-end; gap: 9px; }.sftp-client-copy { width: 100%; min-height: 50px; margin: 5px 0 12px; background: #176f61 !important; font-size: 13px; }
@media (max-width: 900px) { .sftp-metrics { grid-template-columns: 1fr 1fr; }.sftp-grid { grid-template-columns: 1fr; }.sftp-hero { align-items: flex-start; flex-direction: column; }.sftp-form { grid-template-columns: 1fr; }.sftp-form .full { grid-column: auto; } }
@media (max-width: 560px) { .sftp-metrics { grid-template-columns: 1fr; }.sftp-connect dl { grid-template-columns: 1fr; } }
@media (max-width: 900px) {
  .portal-frame:has(.sftp-page) .portal-topbar { grid-template-columns: minmax(0, 1fr) auto; gap: 8px; padding-block: 10px; }
  .portal-frame:has(.sftp-page) .wp-topnav { grid-column: 1 / -1; grid-row: 2; min-width: 0; max-width: 100%; overflow-x: auto; }
  .portal-frame:has(.sftp-page) .portal-user { grid-column: 2; grid-row: 1; }
  .sftp-hero { padding: 24px; }
  .sftp-health { min-width: 0; max-width: 100%; }
  .sftp-page .panel > header { flex-wrap: wrap; }
  .sftp-create-button { white-space: normal; }
}
