/* Shared responsive controls for the public wallet list and its admin page. */
.account-page { max-width: 1100px; }
.account-page nav { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 16px; }
.account-page nav a { display: inline-flex; align-items: center; min-height: 44px; color: #075974; }
.account-page .network-hero { min-height: 250px; }
.account-page .network-hero nav a { color: #e0fcff; }
.account-page .network-hero nav a:hover, .account-page .network-hero nav a:focus-visible { color: #fff; }
.account-page .form-control, .account-page .form-select { min-height: 44px; font-size: 16px; }
.account-page .btn { min-height: 44px; }
.account-page .card-body, .account-page .d-grid { min-width: 0; }
.account-page code { overflow-wrap: anywhere; }
.account-page #result, .account-page #message { overflow-wrap: anywhere; }
.wallet-table { table-layout: fixed; }
.wallet-table th:first-child { width: 38%; }
.wallet-table th, .wallet-table td { padding: 10px; }
.network-label { display: flex; align-items: center; gap: 10px; overflow-wrap: anywhere; }
.network-label img { flex: none; border-radius: 8px; }
.network-origins { display: flex; flex-wrap: wrap; gap: 3px; margin-top: 4px; }
.network-origin { display: inline-block; font-size: 10px; line-height: 1.2; font-weight: 600; color: #234355; background: #e3f0f5; border-radius: 4px; padding: 2px 4px; }
.wallet-entry + .wallet-entry { border-top: 1px solid #dee2e6; margin-top: 10px; padding-top: 10px; }
.wallet-entry code { display: block; color: #164c69; user-select: text; }
.wallet-radio { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 600; cursor: pointer; }
.wallet-radio input { flex: none; width: 18px; height: 18px; accent-color: #087a91; }
.wallet-radio input:disabled + span { color: #752d20; }
.wallet-table tr.wallet-selected-row > * { --bs-table-bg: #e7f5f8; background-color: #e7f5f8; }
.wallet-table tr.wallet-selected-row > :first-child { box-shadow: inset 3px 0 #087a91; }
.wallet-check { min-width: 0; }
.wallet-verify-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.wallet-safety { max-width: 100%; }
.wallet-safety summary { display: inline-flex; align-items: center; min-height: 44px; cursor: pointer; color: #075974; font-weight: 600; text-decoration: underline; }
.wallet-safety[open] { flex-basis: 100%; }
.wallet-safety .alert { padding: 8px 10px; font-size: 14px; line-height: 1.4; }
.wallet-details { min-width: 0; }
.address-book-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; column-gap: 12px; }
.address-book-toolbar .wallet-origin-filter { margin-bottom: 0; }
.address-book-toolbar > small { grid-column: 1 / -1; color: #405167; }
.address-book-controls { display: grid; grid-template-columns: 190px 156px; gap: 8px; align-items: end; justify-self: end; }
.address-book-controls > div { min-width: 0; }
.address-book-controls .form-label { margin-bottom: 3px; font-size: 12px; white-space: nowrap; }
.account-page .address-book-controls .form-control, .account-page .address-book-controls .form-select { min-height: 36px; font-size: 13px; padding-block: 4px; }
.wallet-origin-filter { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; min-width: 0; margin-bottom: 10px; padding: 0; border: 0; }
.wallet-origin-filter legend { float: none; width: 100%; margin: 0; font-size: 14px; font-weight: 600; }
.wallet-origin-option { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 5px 10px; border: 1px solid #aac7cd; border-radius: 8px; background: #fff; cursor: pointer; }
.wallet-origin-option:has(input:checked) { border-color: #087a91; background: #e7f5f8; box-shadow: inset 0 0 0 1px #087a91; }
.wallet-origin-option:focus-within { outline: 2px solid #075974; outline-offset: 2px; }
.wallet-origin-option input { width: 18px; height: 18px; accent-color: #087a91; }
.wallet-origin-option img { flex: none; object-fit: contain; }
.wallet-origin-filter small { flex-basis: 100%; color: #405167; }
.address-book .wallet-entry { display: flex; align-items: center; flex-wrap: wrap; justify-content: space-between; gap: 8px; }
.address-book .wallet-entry code { min-width: 0; }
.address-book .wallet-entry .wallet-actions { margin-top: 0; }
.status-more { min-width: 44px; font-size: 22px; line-height: 1; }
.status-short { font-size: 12px; color: #405167; }
.status-dialog { width: min(94vw, 960px); max-height: 88dvh; border: 1px solid #aac7cd; border-radius: 14px; padding: clamp(14px, 3vw, 26px); color: #10283a; }
.status-dialog::backdrop { background: rgba(12, 31, 48, .65); }
.status-dialog .status-close { float: right; min-height: 44px; }
.status-dialog caption { caption-side: top; font-weight: 700; color: #10283a; }
.status-dialog .status-table-scroll { max-width: 100%; overflow-x: auto; }
.status-dialog table { min-width: 650px; }
.status-dialog th, .status-dialog td { padding: 7px; vertical-align: top; }
.status-flag { display: inline-block; white-space: nowrap; border-radius: 6px; padding: 3px 7px; font-weight: 700; }
.status-confirmed { background: #e3f4e8; color: #14532d; }
.status-unconfirmed { background: #e9edf0; color: #364653; }
.status-failed { background: #fce8e7; color: #8a241d; }
.address-book-page > .small { flex: none; }
.wallet-details #wallet-status:empty { display: none; }
.wallet-footer { height: 50px; flex: 0 0 50px; display: flex; align-items: center; justify-content: center; border-top: 1px solid #aac7cd; color: #405167; }
.network-directory-panel { min-width: 0; }
.network-directory-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 8px; }
.network-directory-item { min-width: 0; border: 1px solid #cfdee2; border-radius: 8px; padding: 10px; background: #fff; display: flex; flex-direction: column; gap: 6px; overflow-wrap: anywhere; }
.network-directory-heading { min-width: 0; display: flex; align-items: center; gap: 8px; }
.network-directory-heading img, .network-directory-initials { flex: none; width: 30px; height: 30px; border-radius: 7px; }
.network-directory-heading .status-more { margin-left: auto; }
.network-directory-initials { display: inline-flex; align-items: center; justify-content: center; background: #243846; color: #fff; font-size: 12px; font-weight: 700; }
.network-directory-badges { display: flex; flex-wrap: wrap; gap: 4px; }
.directory-badge { border-radius: 4px; padding: 2px 5px; font-size: 11px; font-weight: 600; background: #e8f2f4; color: #244350; }
.directory-badge-catalog { background: #f8e6de; color: #642518; }
.directory-badge-scope { background: #fff3d2; color: #62420a; }
.network-directory-item small { color: #405167; }
.verification-status { display: block; font-size: 11px; line-height: 1.35; font-weight: 400; color: #405167; overflow-wrap: anywhere; margin-top: 3px; }
.verification-status.no-algorithm { color: #642518; background: #f8e6de; border-left: 3px solid #823725; border-radius: 3px; padding: 3px 6px; font-size: 12px; font-weight: 700; }
.verification-status.direct-only { color: #62420a; background: #fff3d2; border-left: 3px solid #ad790d; border-radius: 3px; padding: 3px 6px; font-size: 12px; font-weight: 600; }
.wallet-asset { display: block; font-weight: 600; font-size: 13px; }
.wallet-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.wallet-actions .btn { padding-inline: 10px; }
.admin-network-table .admin-address-form { min-width: 0; }
.admin-network-table .form-control { width: 100%; min-width: 0; }
.admin-saved-entry { min-width: 0; }
.admin-saved-entry span { overflow-wrap: anywhere; }
.admin-network-table .wallet-actions { margin-bottom: 4px; }
/* Admin rows: one network address and one row per token address or token input. */
.admin-page.py-4 { padding-block: 8px !important; }
.admin-page .network-hero { min-height: 0; height: 138px; margin-bottom: 10px; }
.admin-page .network-hero-content { min-height: 0; height: 100%; padding-block: 10px; }
.admin-page .network-hero-message { padding-top: 0; }
.admin-page .network-hero-title { font-size: 27px; margin: 4px 0; }
.admin-page .network-hero-subtitle { font-size: 13px; line-height: 1.3; }
.admin-page > .alert-warning { padding: 7px 12px; margin-bottom: 8px; font-size: 13px; }
.admin-page #logout { margin-bottom: 6px !important; }
.admin-page #logout[hidden] { display: none !important; }
.admin-page .admin-list h2 { margin-bottom: 2px; }
.admin-page .admin-list > p { margin-bottom: 7px; }
.admin-page .wallet-table th, .admin-page .wallet-table td { padding: 5px 8px; }
.admin-page .network-label img { width: 26px; height: 26px; }
.admin-page .network-label { gap: 8px; }
.admin-page .admin-network-table .form-control, .admin-page .admin-network-table .form-select { min-height: 36px; padding-block: 4px; }
.admin-page .admin-network-table .btn { min-height: 36px; padding: 4px 9px; }
.admin-page .admin-address-form { display: flex; align-items: center; gap: 6px; }
.admin-page .admin-address-input-wrap { position: relative; flex: 1 1 0; min-width: 0; }
.admin-page .admin-address-input-wrap .form-control { width: 100%; padding-right: 88px; }
.admin-page .admin-network-table .admin-paste-clear { display: inline-flex; align-items: center; justify-content: center; gap: 4px; min-width: 68px; min-height: 28px; padding: 4px 7px; border: 0; border-radius: 4px; background: #ffdddd; color: #a32a22; font-family: Consolas, Menlo, Monaco, 'Liberation Mono', 'DejaVu Sans Mono', 'Ubuntu Mono', monospace; font-size: 13px; font-weight: 400; line-height: 1.1; cursor: pointer; }
.admin-page .admin-network-table .admin-paste-clear:hover { background: #f4cdcd; }
.admin-page .admin-network-table .admin-paste-clear.is-clear { background: #84848e; color: #fff; }
.admin-page .admin-network-table .admin-paste-clear.is-clear:hover { background: #62626d; }
.admin-page .admin-network-table .admin-paste-clear:focus-visible { outline: 2px solid #075974; outline-offset: 2px; }
.admin-page .admin-network-table .admin-paste-clear:disabled { opacity: .65; cursor: wait; }
.admin-page .admin-paste-clear svg { width: 16px; height: 16px; fill: currentColor; flex: none; }
.admin-page .admin-address-input-wrap .admin-paste-clear { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); }
.admin-page .admin-saved-entry .admin-paste-clear { min-height: 36px; }
.admin-page .wallet-actions { flex: none; margin: 0; gap: 4px; }
.admin-page .admin-token-form { display: flex; align-items: center; gap: 6px; min-width: 0; }
.admin-page .admin-token-form .form-control { flex: 1 1 0; }
.admin-page .admin-token-row th { font-size: 13px; font-weight: 600; }
.admin-page .admin-token-add-row th { font-weight: 400; }
.admin-page .admin-saved-entry { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0; padding: 0; border: 0; }
.admin-page .admin-token-address { font-size: 12px; overflow-wrap: anywhere; min-width: 0; }
.admin-page #message:empty { display: none; }
@media (min-width: 900px) and (min-height: 800px) {
  .account-page.admin-page .network-hero { height: 138px; }
}
@media (max-width: 700px) {
  .account-page.admin-page .network-hero { height: auto; min-height: 170px; }
  .admin-page .network-hero-content { min-height: 170px; }
  .admin-page .admin-address-form, .admin-page .admin-saved-entry { flex-wrap: wrap; }
  .admin-page .admin-address-input-wrap, .admin-page .admin-token-address { flex-basis: 100%; }
  .admin-page .wallet-actions { flex: 1 1 auto; flex-wrap: wrap; }
  .admin-page .admin-token-form { flex-wrap: wrap; }
  .admin-page .admin-token-form .form-control { flex: 1 1 130px; }
}
@media (min-width: 900px) and (min-height: 620px) and (max-height: 799px) {
  .account-page.admin-page .network-hero { height: 124px; }
}
@media (any-pointer: coarse) {
  .admin-page .admin-network-table .btn, .admin-page .admin-network-table .form-control, .admin-page .admin-network-table .form-select { min-height: 48px; }
  .admin-page .admin-network-table .admin-paste-clear { min-height: 44px; }
}
@media (max-width: 576px) {
  .wallet-table th:first-child { width: 42%; }
  .wallet-table th, .wallet-table td { padding: 8px 5px; font-size: 14px; }
  .network-label { gap: 5px; }
}
@media (max-width: 850px) {
  .address-book-toolbar { grid-template-columns: minmax(0, 1fr); row-gap: 8px; }
  .address-book-controls { justify-self: stretch; grid-template-columns: minmax(0, 1fr) minmax(150px, 190px); }
  .address-book-toolbar > small { grid-row: 2; }
}
@media (max-width: 576px) {
  .address-book-controls { grid-template-columns: 1fr; }
}
@media (min-width: 900px) {
  .wallet-layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(20px, 3vw, 40px); }
  .admin-list { min-width: 0; }
  #login { max-width: 520px; }
}
@media (max-width: 576px) {
  .account-page { padding-inline: 16px; }
  .account-page .network-hero { min-height: 300px; }
  .account-page .actions { flex-wrap: wrap; }
  .account-page .actions .btn { flex: 1 1 130px; }
}
@media (any-pointer: coarse) {
  .account-page nav a, .account-page .btn, .account-page .form-control, .account-page .form-select { min-height: 48px; }
  .account-page .address-book-controls .form-control, .account-page .address-book-controls .form-select { min-height: 48px; }
  .wallet-origin-option { min-height: 48px; }
  .wallet-safety summary { min-height: 48px; }
}
/* Compact desktop spacing; wallet list scrolling is scoped below. */
@media (min-width: 900px) and (min-height: 620px) {
  .account-page.py-4 { padding-block: 8px !important; min-height: 100dvh; }
  .account-page .network-hero { min-height: 0; height: 124px; margin-bottom: 14px; }
  .account-page .network-hero-content { height: 100%; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; padding: 10px 24px; }
  .account-page .network-hero-content nav { grid-column: 2; grid-row: 1; align-self: start; justify-self: end; }
  .account-page .network-hero-message { grid-column: 1; grid-row: 1; align-self: center; margin: 0; padding: 0; max-width: 850px; }
  .account-page .network-hero-title { font-size: 28px; margin: 6px 0; }
  .account-page .network-hero-subtitle { font-size: 13px; line-height: 1.3; }
  .account-page > .alert-warning { padding: 8px 12px; margin-bottom: 12px; font-size: 14px; line-height: 1.4; }
  .account-page #panel #logout { margin-bottom: 8px !important; }
  .account-page #add .form-label { margin-bottom: 4px; }
  .account-page #add .mb-2 { margin-bottom: 4px !important; }
}
@media (min-width: 900px) and (min-height: 800px) {
  .account-page { display: flex; flex-direction: column; }
  .account-page .network-hero { height: clamp(170px, 20dvh, 230px); flex: none; }
  .account-page > .alert-warning { flex: none; }
  .account-page .wallet-layout { margin-block: auto; }
  .account-page #login:not([hidden]), .account-page #panel:not([hidden]) { margin-block: auto; flex: none; }
}
@media (min-width: 900px) and (min-height: 620px) {
  .account-page.wallets-page.py-4 { height: 100dvh; min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
  .account-page.wallets-page .network-hero { flex: none; }
  .account-page.wallets-page .wallet-layout { flex: 1 1 0; min-height: 0; margin-block: 0; overflow: hidden; }
  .account-page.wallets-page .wallet-details { display: flex; flex-direction: column; min-height: 0; }
  .account-page.wallets-page .wallet-table-scroll { flex: 1 1 0; min-height: 0; overflow-y: auto; scrollbar-gutter: stable; }
  .account-page.wallets-page .wallet-check { min-height: 0; overflow-y: auto; }
  .account-page.address-book-page .address-book { flex: 1 1 0; display: flex; flex-direction: column; min-height: 0; }
}
@media (min-width: 900px) and (min-height: 620px) and (max-height: 749px) {
  .account-page.wallets-page .network-hero { height: 90px; }
  .account-page.wallets-page .network-hero-title { font-size: 22px; margin-block: 2px; }
  .account-page.wallets-page .network-hero-subtitle { font-size: 12px; }
}
/* Admin content follows the document height; the complete list stays visible in one flow. */
.account-page.admin-page { display: block; min-height: 0; }
