/* Shared shell and compact Minecraft server directory. */
.form-error-summary { padding: 18px 22px; border: 2px solid #a32929; border-radius: 8px; background: #fff4f4; color: #7e2020; }
.form-error-summary h2 { margin: 0 0 8px; font-size: 1.2rem; }
.form-error-summary p { margin: 0 0 10px; }
.form-error-summary ul { margin: 0; padding-left: 22px; }
.form-error-summary a { color: inherit; text-decoration: underline; }
:root {
  --ink: #30353b;
  --muted: #707984;
  --green: #087c49;
  --green-hover: #05623a;
  --line: #e2e5e9;
  --bg: #f6f7f9;
  --soft: #eaf8ef;
  --radius: 12px;
}
/* Account controls in the navigation bar. */
.rating-account { flex-shrink: 0; }
.account-bell { position: relative; color: #8b939f; display: grid; place-items: center; width: 40px; height: 44px; text-decoration: none; flex: none; }
.account-bell:hover { color: var(--green); }
.account-notification-count { position: absolute; top: 1px; right: 0; display: grid; place-items: center; min-width: 19px; height: 19px; padding: 0 4px; border-radius: 20px; color: white; background: #22c878; border: 2px solid white; font-size: 10px; font-weight: 700; line-height: 1; }
.account-notification-count.is-empty { background: #9099a5; }
.account-dropdown { position: relative; border: 0; background: transparent; padding: 0; margin: 0; }
.account-dropdown > summary { display: flex; align-items: center; gap: 12px; padding: 3px 0; min-height: 48px; border: 0; cursor: pointer; list-style: none; color: var(--ink); }
.account-dropdown > summary::-webkit-details-marker { display: none; }
.account-dropdown > summary::marker { content: ''; }
.account-wallet > summary { flex-direction: column; align-items: flex-start; justify-content: center; gap: 0; padding: 0 12px 0 2px; min-width: 88px; font-size: .875rem; }
.account-balance-label { color: #87909c; font-weight: 400; }
.account-wallet strong { font-size: .875rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.account-wallet small { font-size: .62rem; font-weight: 500; }
.account-avatar { display: grid; place-items: center; width: 44px; height: 44px; flex: none; border-radius: 9px; overflow: hidden; color: #b5b8c2; background: #f5f6f8; }
.account-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.account-nickname { max-width: 155px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .9rem; font-weight: 650; }
.account-chevron { color: #89929c; flex: none; transition: transform .15s; }
.account-dropdown[open] .account-chevron { transform: rotate(180deg); }
.account-dropdown > .account-dropdown-panel { position: absolute; right: 0; top: calc(100% + 12px); z-index: 50; width: 270px; max-width: calc(100vw - 32px); margin: 0; padding: 18px; background: white; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 12px 36px #21312724; font-size: .85rem; font-weight: 400; }
.account-dropdown-panel p { margin: 9px 0 12px; color: var(--muted); font-size: .85rem; }
.account-dropdown > .account-menu-links { padding: 7px; width: 230px; }
.account-menu-links a, .account-menu-links button { display: block; width: 100%; padding: 11px 13px; background: transparent; border: 0; border-radius: 7px; color: var(--ink); text-align: left; text-decoration: none; font: inherit; cursor: pointer; }
.account-menu-links a:hover, .account-menu-links button:hover { background: #edf8f2; color: var(--green); }
.account-menu-links form { margin: 5px 0 0; padding-top: 5px; border-top: 1px solid var(--line); }
.account-menu-links button { color: #9d4141; }
.account-profile-preview { display: flex; align-items: center; gap: 18px; margin: 24px 0; overflow-wrap: anywhere; }
.account-profile-preview .account-avatar { width: 80px; height: 80px; }
.account-profile-preview .account-avatar svg { width: 72px; height: 72px; }
.account-profile-preview p { margin: 3px 0 0; font-size: .9rem; }
.account-profile-page input[type=checkbox] { width: auto; }
.account-notifications-page { max-width: 900px; }
.account-notifications-list { display: grid; gap: 12px; }
.account-notification h2, .account-notifications-empty h2 { font-size: 1.05rem; margin: 0 0 8px; }
.account-notification p { margin: 0 0 10px; overflow-wrap: anywhere; }
.account-notification time { color: var(--muted); font-size: .8rem; }
.account-notification.is-unread { border-left: 3px solid #22bc72; }
.unread-dot { display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%; background: #22bc72; }
@media (min-width: 981px) and (max-width: 1250px) {
  .rating-navrow { flex-wrap: wrap; padding-top: 7px; padding-bottom: 7px; gap: 4px; }
  .rating-account { margin-left: auto; }
}
@media (max-width: 620px) {
  .account-profile-menu > summary { gap: 8px; }
  .account-nickname { max-width: 105px; }
  .account-wallet > summary { min-width: 72px; padding-right: 4px; }
  .account-wallet > .account-dropdown-panel { right: -120px; }
  .account-avatar { width: 38px; height: 38px; }
}
body { font-family: 'Segoe UI', Arial, sans-serif; line-height: 1.5; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.rating-header { background: #fff; border-bottom: 1px solid var(--line); border-top: 7px solid #17ad69; }
.rating-topbar, .rating-navrow { max-width: 1680px; margin: auto; padding: 0 32px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.rating-topbar { min-height: 86px; }
.rating-brand { display: flex; align-items: center; gap: 13px; font-size: 1.55rem; font-weight: 750; color: var(--ink); text-decoration: none; letter-spacing: -.04em; line-height: 1.2; }
.rating-brand small { display: block; font-size: .8rem; letter-spacing: 0; font-weight: 400; margin-top: 5px; }
.brand-icon { display: block; width: 48px; height: 48px; flex: 0 0 48px; object-fit: contain; }
.rating-owner-actions, .rating-account { display: flex; align-items: center; gap: 12px; }
.rating-owner-actions .button { padding: 11px 19px; border-radius: 10px; }
.rating-owner-actions .button span { font-size: 1.4rem; line-height: 1; }
.promote-button { background: #09864c; color: #fff; border-color: #09864c; }
.promote-button:hover { background: #09864c; color: #fff; }
.add-button { background: #30353b; color: #fff; border-color: #30353b; }
.add-button:hover { background: #1d2329; color: #fff; }
.rating-navrow { min-height: 66px; border-top: 1px solid var(--line); }
.rating-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 26px; }
.rating-nav a { display: inline-flex; align-items: center; min-height: 44px; color: #68717b; text-decoration: none; font-size: .93rem; font-weight: 600; position: relative; }
.rating-nav a:hover, .rating-nav a[aria-current] { color: var(--green); }
.rating-nav a[aria-current]:after { content: ''; position: absolute; bottom: 0; height: 3px; left: 0; right: 0; background: #19b96b; border-radius: 3px; }
.rating-account .button { min-height: 39px; background: #f7f8fa; font-size: .875rem; }
.rating-account .register-button { color: #087c49; background: #e5f7ee; border-color: #e5f7ee; }
.directory-page { max-width: 1680px; padding: 22px 32px 52px; margin: auto; }
.directory-intro { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 22px 24px 20px; margin-bottom: 24px; }
.intro-title-line { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 20px; margin-bottom: 13px; }
.directory-intro h1 { font-size: 1.55rem; letter-spacing: -.025em; line-height: 1.25; margin: 0; }
.intro-stats { display: flex; flex-wrap: wrap; gap: 8px; font-size: .75rem; }
.intro-stats > span { display: inline-flex; align-items: center; gap: 5px; padding: 5px 8px; background: #f3f5f7; border-radius: 5px; }
.intro-stats i { width: 7px; height: 7px; border-radius: 50%; background: #20bb71; }
.intro-stats .region-label { color: var(--green); background: #edf8f2; }
.directory-intro p { margin: 6px 0 0; font-size: .925rem; line-height: 1.55; color: #5c6671; }
.directory-intro p a { font-weight: 600; }
.directory-layout { display: grid; grid-template-columns: minmax(0, 1fr) 248px; gap: 0 22px; align-items: start; }
.directory-discovery { grid-column: 1; min-width: 0; }
.directory-section-title { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 0 0 16px; }
.directory-section-title h2 { font-size: 1.25rem; margin: 0; letter-spacing: -.025em; }
.how-link { font-size: .8rem; text-decoration: none; white-space: nowrap; }
.directory-search { background: #fff; display: flex; gap: 8px; align-items: center; padding: 9px; border: 1px solid var(--line); border-radius: 10px; margin-bottom: 10px; position: relative; }
.directory-search .search-icon { position: absolute; left: 22px; font-size: 1.65rem; color: #8a939e; pointer-events: none; }
.directory-search input { border-color: var(--line) !important; padding-left: 38px !important; height: 42px; min-width: 0; font-size: .875rem; }
.directory-search .button { padding-left: 20px; padding-right: 20px; }
.quick-selector { border: 1px solid var(--line); background: #fff; border-radius: 10px; padding: 4px 17px; }
.quick-selector-row { display: grid; grid-template-columns: 125px minmax(0, 1fr); gap: 10px; align-items: start; padding: 12px 0; }
.quick-selector-row + .quick-selector-row { border-top: 1px solid #f0f1f3; }
.quick-selector-row h3 { font-size: .82rem; margin: 6px 0 0; font-weight: 650; }
.filter-chips { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.filter-chips a { color: #4c5662; background: #fff; border: 1px solid var(--line); border-radius: 6px; padding: 5px 10px; font-size: .81rem; line-height: 1.35; min-height: 30px; display: inline-flex; gap: 4px; align-items: center; text-decoration: none; }
.filter-chips a span { color: #717c86; }
.filter-chips a:hover { border-color: #50b67e; color: #087a47; background: #f3fbf6; }
.filter-chips a[aria-current] { color: #087342; border-color: #9fd6b9; background: #e8f7ef; box-shadow: inset 0 0 0 1px #d2eedf; font-weight: 650; }
.mode-chips a { border-radius: 20px; }
.version-options { min-width: 0; display: flex; align-items: start; flex-wrap: wrap; gap: 6px 12px; }
.more-chips { margin-top: 0; }
.more-chips[open] { flex-basis: 100%; }
.more-chips summary { font-size: .78rem; font-weight: 500; color: #66727e; width: fit-content; min-height: 28px; padding: 3px 0; }
.more-chips[open] summary { margin-bottom: 7px; }
.more-chips > summary + * { margin-top: 0; }
.active-filters { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; margin: 12px 0 0; font-size: .77rem; }
.active-filters > span { color: var(--muted); }
.active-filters a { display: flex; align-items: center; gap: 10px; border-radius: 5px; padding: 5px 9px; text-decoration: none; color: #086b41; background: #e5f4ec; overflow-wrap: anywhere; max-width: 100%; }
.active-filters a span { font-size: 1rem; }
.active-filters .clear-filters { background: transparent; color: #65717d; text-decoration: underline; }
.directory-layout > .filters { grid-column: 2; grid-row: 1 / 3; min-width: 0; }
.directory-layout .filters details { padding: 18px; }
.directory-layout .filters select { border-color: var(--line); font-size: .825rem; padding: 9px; }
.directory-layout .filters label { font-size: .82rem; }
.directory-layout .filters summary { font-size: .94rem; }
.directory-layout .sidebar-note { padding: 20px 12px; font-size: .8rem; }
.directory-results { grid-column: 1; margin-top: 19px; }
.directory-results .results-toolbar { font-size: .81rem; margin-bottom: 12px; }
.directory-results .empty-state { min-height: 270px; padding: 32px 24px; border: 1px solid var(--line); }
.directory-results .empty-symbol { width: 42px; height: 42px; font-size: 1.6rem; margin-bottom: 15px; }
.directory-results .empty-state h2 { font-size: 1.3rem; }
.directory-results .empty-state p { font-size: .875rem; }
.rating-card.server-row { display: grid; grid-template-columns: 72px minmax(0, 1fr) minmax(0, 1.25fr) 205px; gap: 17px; padding: 20px 18px; border: 1px solid var(--line); border-radius: 12px; align-items: center; box-shadow: 0 2px 3px #273a4903; }
.rating-card.server-row:hover { border-color: #b8c7bf; }
.rating-card.server-row.promoted { border-left: 3px solid #e5bb51; }
.rating-identity { position: relative; display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.rating-position { position: absolute; left: -12px; top: -11px; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: #e9edf1; color: #53606c; border: 2px solid #fff; font-size: .73rem; font-weight: 700; z-index: 1; }
.server-list .rating-card:nth-child(1) .rating-position { background: #ffc660; color: #704804; }
.server-list .rating-card:nth-child(2) .rating-position { background: #dce1e6; color: #535f6c; }
.server-list .rating-card:nth-child(3) .rating-position { background: #e8c6b4; color: #805440; }
.rating-avatar { display: grid; place-items: center; width: 72px; height: 72px; border-radius: 10px; background: linear-gradient(135deg,#e1f5e9,#b5dec8); color: #087147; font-size: 2rem; font-weight: 750; text-decoration: none; overflow: hidden; }
.rating-avatar img { width: 100%; height: 100%; object-fit: cover; }
.rating-vote { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 35px; padding: 5px 7px; border: 1px solid #9ed8ff; background: #f2faff; border-radius: 5px; color: #159df4; font-size: .8rem; text-decoration: none; }
.rating-vote .rating-like-icon { flex: none; width: 19px; height: 19px; }
.rating-vote .rating-like-count { font-weight: 400; font-size: .875rem; font-variant-numeric: tabular-nums; }
.rating-vote:hover { color: #0788dc; background: #e5f5ff; border-color: #6bc2ff; }
.rating-info, .rating-description { min-width: 0; overflow-wrap: anywhere; }
.rating-info h2 { font-size: 1rem; line-height: 1.4; margin: 0 0 8px; letter-spacing: -.02em; }
.rating-info h2 a { color: #28343e; text-decoration: none; }
.rating-info h2 a:hover { color: var(--green); }
.rating-facts { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.rating-online, .rating-edition { font-size: .74rem; background: #f4f6f8; padding: 4px 6px; border-radius: 4px; }
.rating-online.online { color: #087c49; background: #edf8f1; }
.rating-edition { color: #616c77; }
.rating-versions { font-size: .75rem; color: var(--muted); margin-top: 7px; }
.rating-versions strong { font-weight: 600; color: #148554; }
.rating-badges { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; font-size: .7rem; }
.rating-badges > span:not(.sponsored):not(.promotion-badges) { background: #eef0fb; color: #686ca5; padding: 3px 7px; border-radius: 4px; }
.rating-badges .sponsored { font-size: .7rem; padding: 3px 7px; }
.rating-country { color: #7a838d; font-size: .73rem; margin-top: 7px; }
.rating-description p { font-size: .8rem; color: #6b7580; line-height: 1.5; margin: 0 0 10px; }
.rating-banner { display: block; margin-bottom: 10px; }
.rating-banner img { display: block; width: 100%; max-height: 85px; object-fit: contain; border-radius: 6px; }
.rating-description .tags { gap: 5px; }
.rating-description .tags a { font-size: .7rem; background: #f3f5f7; color: #65717d; padding: 3px 6px; }
.rating-card .rating-connect { display: flex; flex-direction: column; gap: 0; grid-column: auto; grid-row: auto; min-width: 0; width: 100%; }
.rating-address { display: flex; align-items: center; width: 100%; min-width: 0; border: 1px solid var(--line); border-bottom: 0; border-radius: 7px 7px 0 0; padding: 10px 9px; gap: 3px; background: #fff; }
.rating-address > span { color: #87939f; font-size: 1rem; }
.rating-card .rating-connect .address-display { font-size: .82rem !important; font-weight: 650; color: #34424d !important; width: 100%; min-width: 0; }
.rating-connect .rating-play-button { width: 100%; min-height: 36px; border-radius: 0 0 7px 7px; font-size: .8rem; background: #09864c; border-color: #09864c; box-shadow: inset 0 -3px 0 #07683b; }
.rating-connect .rating-play-button:hover { background: #098a4e; }
.rating-connect small { margin-top: 7px; font-size: .7rem; }
.rating-detail-link { font-size: .73rem; margin-top: 9px; text-decoration: none; color: #667683; text-align: center; }
.browse-categories { margin-top: 24px; }
.browse-categories > strong { display: block; margin-bottom: 12px; font-size: .82rem; color: #66717b; }
.browse-categories .filter-chips a { background: transparent; font-size: .75rem; }
.detail-grid .rating-card.server-row { grid-template-columns: 60px minmax(0, 1fr) 175px; }
.detail-grid .rating-avatar { width: 60px; height: 60px; }
.detail-grid .rating-description { grid-column: 2; }
.detail-grid .rating-card .rating-connect { grid-column: 3; grid-row: 1 / 3; display: flex; }
.site-footer { padding-left: max(32px, calc((100vw - 1616px) / 2)); padding-right: max(32px, calc((100vw - 1616px) / 2)); }
@media (max-width: 1250px) {
  .rating-topbar, .rating-navrow { padding-left: 24px; padding-right: 24px; }
  .rating-nav { gap: 8px 18px; }
  .rating-nav a { font-size: .84rem; }
  .directory-page { padding-left: 24px; padding-right: 24px; }
  .directory-layout { grid-template-columns: minmax(0, 1fr) 220px; gap: 0 18px; }
  .rating-card.server-row { grid-template-columns: 60px minmax(0, 1fr) 190px; gap: 14px; }
  .rating-avatar { width: 60px; height: 60px; }
  .rating-description { grid-column: 2; }
  .rating-card .rating-connect { grid-column: 3; grid-row: 1 / 3; }
  .rating-identity { grid-row: 1 / 3; align-self: start; }
  .quick-selector-row { grid-template-columns: 110px minmax(0, 1fr); }
}
@media (max-width: 980px) {
  .rating-navrow { flex-wrap: wrap; gap: 4px; padding-top: 8px; padding-bottom: 8px; }
  .rating-account { margin-left: auto; }
  .rating-topbar { gap: 15px; }
  .rating-brand { font-size: 1.3rem; }
  .rating-owner-actions { gap: 8px; }
  .rating-owner-actions .button { padding: 9px 12px; font-size: .8rem; }
  .directory-layout { grid-template-columns: minmax(0, 1fr); }
  .directory-discovery { grid-column: 1; }
  .directory-layout > .filters { grid-column: 1; grid-row: auto; margin-top: 14px; }
  .directory-layout .filters details { padding: 15px 18px; }
  .directory-layout .filters .sidebar-note { display: none; }
  .directory-layout .filters summary { border: 0; padding-bottom: 0; }
  .directory-layout .filters form { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 8px 15px; align-items: center; }
  .directory-layout .filters form label { margin: 0; }
  .directory-layout .filters form .check { grid-column: 1 / -1; margin: 5px 0; }
  .directory-layout .filters form .full { grid-column: 2; margin-top: 4px; }
  .directory-layout .filters form .reset { grid-column: 2; margin: 0; }
  .rating-card.server-row { grid-template-columns: 64px minmax(0, 1fr) 205px; }
  .rating-avatar { width: 64px; height: 64px; }
  .directory-intro h1 { font-size: 1.45rem; }
}
@media (max-width: 620px) {
  .rating-topbar { flex-direction: column; align-items: stretch; padding: 16px; gap: 16px; }
  .rating-brand { font-size: 1.4rem; gap: 11px; }
  .rating-brand small { font-size: .73rem; }
  .brand-icon { width: 41px; height: 41px; flex-basis: 41px; }
  .rating-owner-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .rating-owner-actions .button { min-height: 44px; font-size: .73rem; padding: 8px; gap: 5px; }
  .rating-owner-actions .button span { font-size: 1.2rem; }
  .rating-navrow { padding: 6px 16px 12px; gap: 9px; }
  .rating-nav { width: 100%; gap: 0 18px; }
  .rating-nav a { font-size: .78rem; min-height: 39px; }
  .rating-account { width: 100%; margin: 0; justify-content: flex-end; gap: 8px; }
  .rating-account .button { min-height: 35px; padding: 6px 14px; font-size: .77rem; }
  .directory-page { padding: 14px 12px 35px; }
  .directory-intro { padding: 18px 16px; margin-bottom: 20px; }
  .directory-intro h1 { font-size: 1.35rem; line-height: 1.3; }
  .directory-intro p { font-size: .82rem; line-height: 1.6; }
  .intro-title-line { gap: 11px; }
  .intro-stats { font-size: .68rem; gap: 5px; }
  .directory-section-title { gap: 7px; flex-wrap: wrap; margin-bottom: 12px; }
  .directory-section-title h2 { font-size: 1.08rem; }
  .how-link { font-size: .75rem; }
  .directory-search { padding: 7px; gap: 6px; }
  .directory-search .search-icon { left: 15px; font-size: 1.4rem; }
  .directory-search input { font-size: .77rem; padding-left: 28px !important; }
  .directory-search .button { padding: 9px 12px; font-size: .78rem; }
  .quick-selector { padding: 3px 12px; }
  .quick-selector-row { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 11px 0; }
  .quick-selector-row h3 { margin: 0; font-size: .8rem; }
  .filter-chips { gap: 6px; }
  .filter-chips a { font-size: .75rem; min-height: 35px; padding: 6px 9px; }
  .more-chips summary { min-height: 34px; display: list-item; padding: 7px 0; }
  .directory-layout .filters form { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .directory-layout .filters form label { margin-top: 9px; }
  .directory-layout .filters form .full, .directory-layout .filters form .reset { grid-column: 1; }
  .directory-layout .filters form .reset { padding: 8px; }
  .directory-results { margin-top: 16px; }
  .directory-results .results-toolbar { align-items: start; font-size: .73rem; gap: 10px; }
  .results-toolbar > span { text-align: right; }
  .rating-card.server-row, .detail-grid .rating-card.server-row { grid-template-columns: 56px minmax(0, 1fr); padding: 17px 14px; gap: 12px; }
  .rating-identity { grid-row: 1; }
  .rating-avatar, .detail-grid .rating-avatar { width: 56px; height: 56px; }
  .rating-vote { min-height: 35px; }
  .rating-info { grid-column: 2; }
  .rating-info h2 { font-size: .96rem; }
  .rating-description, .detail-grid .rating-description { grid-column: 1 / -1; }
  .rating-description p { font-size: .8rem; margin-bottom: 9px; }
  .rating-card .rating-connect, .detail-grid .rating-card .rating-connect { grid-column: 1 / -1; grid-row: auto; display: flex; width: 100%; }
  .rating-address { padding: 10px 14px; }
  .rating-card .rating-connect .address-display { font-size: .875rem !important; }
  .rating-connect .rating-play-button { min-height: 43px; font-size: .85rem; }
  .rating-detail-link { padding: 7px; font-size: .8rem; margin-top: 5px; }
  .rating-banner img { max-height: none; }
  .directory-results .empty-state { padding: 28px 18px; }
  .directory-results .empty-state h2 { font-size: 1.15rem; }
  .site-footer { padding-left: 16px; padding-right: 16px; }
}
/* Crawlable help content shares the compact catalog layout. */
.breadcrumbs {max-width:1680px;margin:16px auto;padding:0 24px;font-size:.9rem;color:#596673}
.breadcrumbs ol {display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.breadcrumbs li+li::before {content:"/";margin-right:8px;color:#73808b}
.breadcrumbs a,.guide-page a:not(.button),.catalog-advice a,.catalog-guides a {color:#087742;text-decoration:underline;text-underline-offset:3px}
.guide-page {max-width:960px;margin:24px auto;padding:32px;overflow-wrap:anywhere}
.guide-page h1 {font-size:clamp(1.6rem,3vw,2.2rem);line-height:1.2}
.guide-page h2,.catalog-advice h2,.catalog-guides h2 {font-size:1.2rem;line-height:1.4}
.guide-page p {line-height:1.75;color:#43515e;max-width:78ch}
.guide-page section {margin-top:28px}
.guide-related li,.guide-sources li,.catalog-guides li {margin:12px 0}
.guide-grid {display:grid;gap:20px}
.catalog-advice,.catalog-guides {margin-top:16px;line-height:1.65}
.rating-banner {aspect-ratio:468/60;overflow:hidden}
.rating-banner img {width:100%;height:100%;object-fit:contain}
.gallery img {aspect-ratio:16/9;object-fit:contain;width:100%}
@media(max-width:620px) {.guide-page {margin:12px;padding:20px}.breadcrumbs {padding:0 16px}.guide-page li a,.catalog-guides li a {display:inline-block;min-height:44px;padding:8px 0}.rating-card,.guide-page,.catalog-advice {min-width:0}}

/* Server media keeps its natural proportions in the editor and public page. */
.listing-media-fields input[type=file] { max-width: 100%; }
.media-preview-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 16px; }
.media-preview-grid figure { margin: 0; padding: 12px; border: 1px solid var(--line); border-radius: 8px; }
.media-preview-grid img { display: block; max-width: 100%; height: auto; }
.media-preview-grid .media-preview-icon { width: 64px; height: 64px; object-fit: contain; }
.media-preview-grid figcaption { margin-top: 8px; font-size: .85rem; color: var(--muted); }
.server-detail-icon { float: left; margin: 0 16px 12px 0; width: 64px; height: 64px; border-radius: 8px; }
.server-detail-banner { max-width: 468px; margin-bottom: 20px; }
.server-detail-banner img { display: block; width: 100%; height: auto; aspect-ratio: 468/60; }

.promotion-badges{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;max-width:100%}
.promotion-badges .ranking-king,.promotion-badges .promotion-stars{display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:4px 8px;border-radius:5px;font-size:.75rem;line-height:1.3;white-space:nowrap}
.promotion-badges .ranking-king{background:#fff0c2;color:#865300;border:1px solid #f8dfa1;font-weight:600}
.promotion-badges .promotion-stars{background:#fff7e9;color:#925a00;border:1px solid #f9e6bd;font-weight:600;font-variant-numeric:tabular-nums}
.promotion-badges svg{flex:none;color:#f4a900}

.edition-version-rows{display:flex;flex-direction:column;gap:12px;min-width:0}
.edition-version-row{gap:6px;align-items:center}
.edition-version-row a,.edition-version-label,.edition-more-versions summary{font-size:.81rem;line-height:1.35;padding:4px 8px;min-height:30px;border:1px solid var(--line);border-radius:6px;white-space:nowrap;background:#fff;color:#4c5662}
.edition-version-label{display:inline-flex;align-items:center;font-weight:500}
.edition-more-versions{margin:0}
.edition-more-versions summary{display:inline-flex;align-items:center;border-style:dashed;font-weight:600;cursor:pointer;list-style:none}
.edition-more-versions summary::-webkit-details-marker{display:none}
.edition-more-versions summary:hover{background:#f3fbf6;border-color:#50b67e;color:#087a47}
.edition-more-versions .versions-show-less{display:none}
.edition-more-versions[open]{flex-basis:100%;min-width:0}
.edition-more-versions[open] .versions-show-more{display:none}
.edition-more-versions[open] .versions-show-less{display:inline}
.edition-more-versions .edition-older-versions{margin-top:8px}
#id_versions{max-height:330px;overflow-y:auto;padding:10px;border:1px solid var(--line);border-radius:8px;overscroll-behavior:contain}
@media(max-width:600px){.edition-version-row{gap:5px}.edition-version-row a,.edition-version-label,.edition-more-versions summary{padding:5px 7px;font-size:.78rem}}

.directory-title-badges{display:flex;align-items:center;flex-wrap:wrap;gap:12px 18px;min-width:0}
.directory-top-badge{display:inline-flex;align-items:center;gap:8px;padding:7px 13px 8px;border-radius:8px;background:#ffb900;color:#fff;box-shadow:0 4px 0 #df9400;font-size:.82rem;font-weight:700;line-height:1.3;white-space:nowrap}
.directory-top-badge svg{flex:none}
@media(max-width:600px){.directory-title-badges{gap:10px}.directory-top-badge{font-size:.75rem;padding:6px 10px;white-space:normal}.directory-top-badge svg{width:20px;height:20px}}

.promotion-badges a.promotion-stars{text-decoration:none;cursor:pointer}
.promotion-badges a.promotion-stars:hover{background:#ffedbe;border-color:#eeb642;color:#805000}
.star-shop-wrap{padding:36px 20px 56px;background:linear-gradient(180deg,#eaf2ed,transparent)}
.star-shop.surface{position:relative;max-width:760px;margin:0 auto;padding:40px}
.star-shop-close{position:absolute;right:16px;top:9px;text-decoration:none;font-size:1.8rem;color:var(--muted);line-height:1;padding:5px}
.star-shop h1{font-size:clamp(1.45rem,3vw,1.95rem);line-height:1.3;padding-right:14px}
.star-shop h2{font-size:1rem;margin:0 0 16px}
.star-shop-switch{font-size:.9rem;color:var(--muted);margin:16px 0 12px}
.star-current{margin:22px 0 24px;font-size:1rem}.star-current strong{color:#a56b00}
.star-packages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.star-package{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;min-height:174px;padding:20px 10px;border:1px solid var(--line);border-radius:14px;background:#fff;text-decoration:none;color:var(--ink);text-align:center}
.star-package:hover,.star-package.selected{border-color:#28b66f;background:#f2fcf6;box-shadow:0 0 0 1px #28b66f}
.star-package-icon{display:grid;place-items:center;width:44px;height:44px;background:#27bf73;border-radius:9px;color:white;font-size:2rem;line-height:1}
.star-package strong{font-size:.95rem}.star-discount{background:#e3f8ed;color:#087c49;padding:4px 7px;border-radius:5px;font-size:.75rem;font-weight:650}
.star-price-note{font-size:.8rem;line-height:1.6;color:var(--muted);margin:18px 0 22px}
.star-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px;border-top:1px solid var(--line);padding-top:22px}
.star-fields label{margin:0 0 8px;font-size:.85rem}.star-fields input,.star-fields select{margin:0;width:100%;min-height:50px}
.star-recalculate{margin-top:16px}.star-total{margin:26px 0;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.star-total>div{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}.star-total>div:last-child{margin-bottom:0}
.star-savings{color:#098451}.star-total .star-total-due{font-size:1.2rem;padding-top:14px;margin-top:14px;border-top:1px solid var(--line)}
.star-pay{min-height:50px}.star-shop .star-pay:disabled{cursor:not-allowed;background:#7caf94;border-color:#7caf94;opacity:1}
.star-shop>.help{font-size:.8rem;margin:12px 0 0}.star-server-search>div{display:flex;gap:10px}.star-server-search input{margin:0}
.star-server-list{margin:22px 0}.star-server-list>a{display:flex;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);text-decoration:none;font-weight:600}
@media(max-width:600px){.star-shop-wrap{padding:20px 12px 36px}.star-shop.surface{padding:28px 18px}.star-packages{gap:7px}.star-package{padding:14px 5px;min-height:154px}.star-package strong{font-size:.8rem}.star-discount{font-size:.65rem;padding:4px}.star-fields{grid-template-columns:1fr;gap:14px}.star-total .star-total-due{font-size:1.1rem}}

/* Compact server management list. */
.owner-panel-wrap { max-width: 1680px; margin: 24px auto 40px; padding: 0 24px; }
.owner-panel { padding: 26px 28px 18px; background: #fff; border: 1px solid var(--line); border-radius: 14px; }
.owner-panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 24px; }
.owner-panel-heading h1 { display: flex; align-items: center; gap: 12px; margin: 0; font-size: 1.65rem; letter-spacing: -.025em; }
.owner-panel-heading h1 span { display: grid; place-items: center; min-width: 26px; height: 26px; padding: 0 7px; border-radius: 7px; font-size: .8rem; background: #eef5f1; color: #6c7e73; }
.owner-panel-heading .button { padding: 9px 15px; font-size: .85rem; }
.owner-server-list { display: grid; gap: 12px; }
.owner-server-row { padding: 14px 18px 10px; background: linear-gradient(100deg, #f0faf5, #fff); border-left: 2px solid #2bcc7d; border-radius: 8px; min-width: 0; }
.owner-server-unpublished { background: linear-gradient(100deg, #fff4ed, #fff); border-left-color: #e9a45c; }
.owner-server-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; align-items: center; gap: 18px; margin-bottom: 12px; }
.owner-server-heading h2 { display: flex; gap: 8px; align-items: center; min-width: 0; margin: 0; font-size: .94rem; line-height: 1.4; }
.owner-server-heading h2 a { color: var(--ink); text-decoration: none; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.owner-server-heading h2 a:hover { color: var(--green); }
.owner-publication-mark { display: grid; place-items: center; flex: none; width: 16px; height: 16px; background: #46c68a; color: white; border-radius: 3px; font-size: .7rem; }
.owner-server-unpublished .owner-publication-mark { background: #dd9750; }
.owner-server-heading p { margin: 0; font-size: .8rem; color: #65716d; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.owner-public-link, .owner-publication-label { font-size: .75rem; color: #84908a; white-space: nowrap; }
.owner-server-controls { display: grid; grid-template-columns: minmax(160px, 2.8fr) repeat(3, minmax(85px, .85fr)) repeat(3, minmax(95px, 1fr)); gap: 10px; }
.owner-server-cell { min-width: 0; min-height: 70px; padding: 10px 8px; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 3px; border: 1px solid var(--line); border-radius: 7px; background: white; color: var(--ink); text-decoration: none; text-align: center; }
.owner-server-cell strong { font-size: .9rem; font-weight: 600; line-height: 1.4; }
.owner-server-cell small { font-size: .76rem; color: #88938e; line-height: 1.3; }
.owner-panel .owner-server-cell.owner-server-address input[readonly] { display: block; width: 100%; min-width: 0; min-height: 24px; margin: 0; border: 0; border-radius: 4px; background: transparent; padding: 0 4px; color: var(--ink); font-size: .92rem; font-weight: 600; text-align: center; text-overflow: ellipsis; }
.owner-server-version strong span { font-size: .7rem; font-weight: 400; color: #859089; }
.owner-state-dot { display: inline-block; width: 7px; height: 7px; margin-right: 6px; border-radius: 50%; background: #a2aaa6; vertical-align: middle; }
.owner-server-players.online .owner-state-dot { background: #24c677; }
.owner-server-players.offline .owner-state-dot { background: #ee7770; }
.owner-server-players.checking .owner-state-dot { background: #e3b85c; }
.owner-server-stars strong span { color: #ffb424; font-size: 1.3rem; vertical-align: -1px; margin-right: 4px; }
.owner-server-action { gap: 6px; font-size: .8rem; font-weight: 600; }
.owner-server-action svg { color: #19b86b; }
.owner-server-cell.owner-promote { background: #18bd6a; color: white; border-color: #18bd6a; }
.owner-promote svg { color: white; }
.owner-server-cell[href]:hover { border-color: #83cba5; background: #ecf8f1; color: #087c49; }
.owner-server-cell.owner-promote:hover { background: #10a95b; border-color: #10a95b; color: white; }
.owner-row-footer { display: flex; justify-content: space-between; gap: 12px; margin-top: 8px; font-size: .7rem; color: #88958d; }
.owner-row-footer a { color: #698674; text-decoration: none; }
.owner-row-footer a:hover { text-decoration: underline; }
.owner-moderation-note { color: #9d642b; font-size: .8rem; margin: 8px 0 0; overflow-wrap: anywhere; }
.owner-panel-footer { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 24px; padding-top: 17px; margin-top: 24px; border-top: 1px solid var(--line); }
.owner-panel-footer a, .owner-panel-footer button { color: #7b867f; font-size: .8rem; text-decoration: none; }
.owner-panel-footer button { padding: 0; border: 0; background: transparent; cursor: pointer; font-family: inherit; }
.owner-panel-footer form { margin: 0 0 0 auto; }
.owner-panel-footer a:hover, .owner-panel-footer button:hover { color: var(--green); }
.owner-claims { padding: 14px; border-radius: 8px; background: #fff8ec; margin-bottom: 18px; }
.owner-claims h2 { font-size: 1rem; margin: 0 0 8px; }
.owner-claims p { margin: 5px 0; font-size: .85rem; }
@media (max-width: 1100px) {
  .owner-server-controls { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .owner-server-address { grid-column: span 3; }
  .owner-server-action { grid-column: span 2; min-height: 48px; flex-direction: row; }
  .owner-server-heading { grid-template-columns: minmax(0, 1fr) auto; gap: 6px 14px; }
  .owner-server-heading p { grid-row: 2; grid-column: 1 / -1; }
  .owner-public-link, .owner-publication-label { grid-column: 2; grid-row: 1; }
}
@media (max-width: 620px) {
  .owner-panel-wrap { margin: 14px auto 24px; padding: 0 12px; }
  .owner-panel { padding: 18px 12px 14px; }
  .owner-panel-heading { flex-wrap: wrap; gap: 12px; margin-bottom: 18px; }
  .owner-panel-heading h1 { font-size: 1.35rem; }
  .owner-panel-heading .button { padding: 8px 12px; font-size: .78rem; }
  .owner-server-row { padding: 12px 10px 9px; }
  .owner-server-heading { gap: 7px; }
  .owner-server-heading h2 { font-size: .85rem; }
  .owner-public-link, .owner-publication-label { font-size: .67rem; }
  .owner-server-heading p { font-size: .74rem; }
  .owner-server-controls { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
  .owner-server-cell { min-height: 62px; padding: 8px 4px; }
  .owner-server-action { grid-column: auto; flex-direction: column; font-size: .66rem; }
  .owner-server-cell strong { font-size: .8rem; }
  .owner-server-cell small { font-size: .66rem; }
  .owner-panel-footer { gap: 12px; margin-top: 18px; }
  .owner-panel-footer a, .owner-panel-footer button { font-size: .73rem; }
}

/* Launcher download next to the site name. */
.rating-brand-group { display: flex; align-items: center; gap: 24px; min-width: 0; }
.rating-brand-group .rating-brand { min-width: 0; }
.launcher-download { flex: none; gap: 9px; padding: 11px 16px; border-radius: 9px; background: #e9f8ef; border-color: #bde7cc; color: #087c49; font-size: .84rem; white-space: nowrap; box-shadow: 0 3px 0 #d5eddf; }
.launcher-download svg { flex: none; }
.launcher-download:hover { color: #056b3d; background: #daf3e5; border-color: #90d4ad; }
.launcher-page { max-width: 680px; margin: 48px auto; padding: 40px 32px; text-align: center; background: #fff; border: 1px solid var(--line); border-radius: 16px; }
.launcher-page > img { display: block; margin: 0 auto 20px; }
.launcher-page .launcher-coming-soon { display: inline-block; margin: 0 0 16px; padding: 5px 13px; border-radius: 20px; background: #fff4d7; color: #9b6a13; font-size: .8rem; font-weight: 650; }
.launcher-page h1 { font-size: 1.85rem; margin: 0 0 15px; letter-spacing: -.025em; }
.launcher-page > p:not(.launcher-coming-soon) { color: var(--muted); line-height: 1.7; }
.launcher-page-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
@media (min-width: 621px) and (max-width: 1250px) {
  .rating-topbar { flex-wrap: wrap; padding-top: 16px; padding-bottom: 16px; gap: 16px; }
  .rating-topbar .rating-owner-actions { margin-left: auto; }
}
@media (max-width: 620px) {
  .rating-brand-group { flex-wrap: wrap; gap: 14px; }
  .launcher-download { min-height: 42px; width: 100%; justify-content: center; }
  .launcher-page { margin: 20px 12px; padding: 28px 18px; }
  .launcher-page h1 { font-size: 1.45rem; }
  .launcher-page-actions { flex-direction: column; }
}

/* Click-to-copy address and compact launcher action. */
.rating-card .rating-connect .rating-address { min-height: 44px; padding: 10px 12px; justify-content: center; gap: 8px; cursor: pointer; font: inherit; color: #34424d; }
.rating-address svg { flex: none; color: #87939f; }
.rating-address .rating-ip-text { min-width: 0; font-size: .875rem; color: #34424d; font-weight: 600; overflow-wrap: anywhere; }
.rating-address:hover .rating-ip-text, .rating-address:focus-visible .rating-ip-text { font-weight: 750; }
.rating-address:hover { background: #f8fcfa; }
.rating-card .rating-connect .rating-play-button { min-height: 29px; padding: 5px 8px 7px; font-size: .76rem; line-height: 1.25; text-decoration: none; }
.copy-fallback[hidden] { display: none; }
.launcher-dialog { width: min(720px, calc(100vw - 32px)); max-width: calc(100vw - 32px); max-height: 90vh; padding: 30px 42px; border: 0; border-radius: 16px; background: radial-gradient(ellipse at bottom, #dcf7e7, transparent 60%), #fff; color: var(--ink); box-shadow: 0 20px 90px #0003; }
.launcher-dialog::backdrop { background: #111c17b8; }
.launcher-dialog-close { position: absolute; top: 9px; right: 13px; border: 0; background: transparent; color: #7c8881; font-size: 1.9rem; line-height: 1; padding: 5px; cursor: pointer; }
.launcher-dialog-intro { display: grid; justify-items: center; gap: 6px; margin-bottom: 24px; }
.launcher-dialog-intro strong { font-size: 1.25rem; }
.launcher-dialog-intro span { font-size: .84rem; color: var(--muted); }
.launcher-dialog h2 { text-align: center; font-size: 1.45rem; margin: 0 0 8px; }
.launcher-target-name { text-align: center; font-size: .9rem; color: #148a50; margin: 0 0 24px; overflow-wrap: anywhere; }
.launcher-steps { list-style: none; counter-reset: launcher-step; padding: 0; margin: 0; display: grid; gap: 22px; }
.launcher-steps > li { counter-increment: launcher-step; position: relative; padding-left: 38px; }
.launcher-steps > li:before { content: counter(launcher-step); position: absolute; left: 0; top: -2px; display: grid; place-items: center; width: 27px; height: 27px; border: 1px solid #dce7df; border-radius: 50%; background: #fff; font-weight: 600; font-size: .86rem; }
.launcher-steps li > strong { font-size: .94rem; }
.launcher-steps li > p { font-size: .85rem; color: #859087; margin: 8px 0 13px; }
.launcher-steps .button { gap: 8px; font-size: .83rem; }
.launcher-steps .button small { font-size: .67rem; padding: 3px 7px; border-radius: 5px; background: #ffffff26; }
.launcher-connect.endpoint-card { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; padding: 0; border: 0; background: transparent; margin: 12px 0; }
.launcher-connect input[readonly]:not([type=hidden]) { flex: 1 1 170px; width: 170px; min-width: 0; text-align: center; font-weight: 650; font-size: .87rem; border-color: #d6e5dc; }
.launcher-connect > strong, .launcher-connect > small { flex-basis: 100%; }
.launcher-connect .copy-button { background: #e9f8ef; color: #078349; border-color: #c6e8d3; }
.launcher-manual-guide { font-size: .8rem; }
.launcher-page-steps { text-align: left; margin-top: 28px; }
@media (max-width: 620px) {
  .rating-card .rating-connect .rating-play-button { min-height: 34px; font-size: .8rem; }
  .launcher-dialog { padding: 32px 18px 24px; }
  .launcher-dialog h2 { font-size: 1.2rem; }
  .launcher-dialog-intro span { font-size: .76rem; }
  .launcher-steps > li { padding-left: 33px; }
  .launcher-steps .button.full { flex-wrap: wrap; }
}
