/* Saved progress, favorites and live roster: compact, independent sections. */
.portal .sidebar nav{gap:3px}.portal .sidebar nav>a{min-height:40px;padding:9px 12px}
.overview-layout .stat{min-height:108px}.overview-layout .stat small{line-height:1.55}
.overview-cards .card-body{min-height:0}.overview-connect .card-body{padding:14px 16px}
.favorite-address{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(85px,.7fr);gap:8px;margin:8px 0}
.favorite-address>div{position:relative;min-width:0;padding:8px 33px 8px 10px;border:1px solid #465059;border-radius:6px;background:#11191bc9}
.favorite-address small,.favorite-password small{display:block;font-size:.62rem;color:#99aaac}.favorite-address code{display:block;font-size:.76rem;overflow-wrap:anywhere}.favorite-address button{position:absolute;right:3px;top:50%;transform:translateY(-50%);padding:4px;min-height:28px;background:transparent;border:0}.favorite-address .icon{width:14px;height:14px}
.favorite-password{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid #41484d;border-radius:6px;background:#10161780}.favorite-password>span>span{font-size:.8rem;letter-spacing:.14em}.favorite-password .button{font-size:.67rem;min-height:28px;padding:4px 8px}.favorite-password .icon{width:14px;height:14px}.favorite-steps{font-size:.68rem;line-height:1.65;margin:11px 0 8px;color:#b2bfc0}.favorite-steps b{color:#ded8c9;font-weight:550}.favorite-guide>h3{font-size:1.6rem}.favorite-guide ol{padding-left:23px;margin:22px 0;display:grid;gap:16px;font-size:.83rem;line-height:1.65;color:#c1cbcc}.favorite-guide li::marker{color:#e5b78b;font-weight:700}.favorite-guide strong{color:#f1e5cf}.favorite-guide .notice{padding:13px 16px;font-size:.77rem;line-height:1.65;display:block;margin:15px 0}
.online-preview{display:block;width:100%;padding:0;border:0;background:none;text-align:left;color:inherit}.online-preview:hover .text-link{color:#f1d5af}.online-total{display:flex;align-items:center;gap:7px}.online-total>strong{font:600 2rem/1.25 'Bahnschrift','Segoe UI',sans-serif;color:#f2e7d4}.online-total>span{font-size:.7rem;color:#afbcba}.online-total>.icon{margin-left:auto;width:16px}.online-chips{display:flex;gap:6px;flex-wrap:wrap;margin:19px 0}.online-chips>span{display:block;min-width:0;max-width:100%;padding:5px 8px;border:1px solid #48575a;border-radius:5px;background:#25303190;font-size:.7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.online-chips .online-more{color:#d8ad89;border-color:#715d48}.online-quiet{display:block;margin:18px 0;color:#9baaaa;font-size:.77rem}.online-view-all{display:flex;align-items:center;gap:6px}.online-view-all .icon{width:15px}
.full-roster{min-width:0}#detail-dialog:has(.full-roster){width:min(1000px,calc(100vw - 32px))}#full-roster-list{max-height:min(520px,60dvh);overflow:auto;padding:0;margin:18px 0}#full-roster-list>li{display:grid;grid-template-columns:minmax(180px,1.4fr) 80px 90px minmax(165px,1fr);gap:12px;padding:15px 10px;align-items:center;border-bottom:1px solid #354047;font-size:.8rem}#full-roster-list .roster-identity{display:flex;gap:10px;align-items:center;min-width:0}#full-roster-list strong{overflow-wrap:anywhere}#full-roster-list small{display:block;color:#94a4a9;font-size:.64rem}#full-roster-list b{font-weight:500;font-size:.74rem;color:#d3dad8}.roster-identity>.icon{width:24px;height:24px;color:#d0a27e;flex-shrink:0}
.character-detail .character-banner{min-height:99px;padding:18px 21px;margin:0}.character-detail .character-banner .avatar{width:62px;height:62px}.character-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0;padding:10px 18px;border-top:1px solid #48545a;border-bottom:1px solid #3d4a51;background:#141c20}.character-tabs button{padding:9px 13px;background:transparent;border:1px solid transparent;color:#adb9bc;font-size:.76rem;white-space:nowrap}.character-tabs [aria-selected=true]{color:#eed5b7;background:#6247324d;border-color:#98745270;box-shadow:inset 0 -2px #d1a87c}#character-tab-panel{padding:20px;min-height:275px;outline-offset:-3px}.character-progress-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:19px 0}.character-progress-stats>div{padding:12px;border:1px solid #445158;border-radius:7px;background:#19242a}.character-progress-stats small{display:block;font-size:.64rem}.character-progress-stats strong{display:block;font:550 1.35rem 'Bahnschrift','Segoe UI',sans-serif;color:#f0d9b5;margin:6px 0}.character-save-note{display:flex;align-items:center;gap:8px;border-top:1px solid #3c454a;padding:11px 20px;margin:0;font-size:.65rem;color:#92a3a9;line-height:1.6}.character-save-note .icon{width:14px;height:14px;flex-shrink:0}.character-detail .definition-grid{gap:16px}.character-detail .definition-grid dt{font-size:.64rem}.character-detail .definition-grid dd{font-size:.78rem}
.health-readings{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.health-readings>div{padding:10px 9px;border:1px solid #405059;border-radius:5px;background:#18232a}.health-readings small{display:block;font-size:.64rem}.health-readings strong{font-size:.93rem;display:block;margin-top:5px;color:#eadcc5}.health-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:19px 0 12px}.health-caption h3{font-size:.9rem;margin:0}.health-caption small{font-size:.64rem}.body-regions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.body-region{padding:9px 10px;border:1px solid #3b504d;border-radius:5px;background:#1a2a2680}.body-region>div{display:flex;justify-content:space-between;gap:5px;align-items:center;font-size:.67rem}.body-region strong{font-weight:500;color:#ccdbd2}.body-region>div>span{font-size:.63rem;color:#a9bdae}.body-region small{display:block;font-size:.57rem;line-height:1.45;margin-top:3px;color:#92aa9f}.body-region meter{width:100%;height:4px;display:block;margin-top:6px}.body-region meter::-webkit-meter-bar{border:0;background:#35423e;border-radius:2px}.body-region meter::-webkit-meter-optimum-value{background:#8ea98a}.body-region.injured{background:#35251f88;border-color:#865548}.body-region.injured strong{color:#edc3a2}.body-region.injured small{color:#c6a394}
.skill-controls{display:flex;align-items:center;gap:12px;margin-bottom:17px}.skill-controls .search-field{flex:1;min-width:0}.skill-controls input,.skill-controls select{min-height:35px;font-size:.74rem}.skill-controls>span{font-size:.66rem;color:#9daaad;white-space:nowrap}.skill-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px 20px}.skill-row{min-width:0;padding-bottom:7px;border-bottom:1px solid #364047}.skill-row>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:.7rem}.skill-row strong{font-weight:500;color:#cbd7d6}.skill-row>div>span{font-size:.64rem;color:#829295}.skill-row b{color:#e5c7a5}.skill-level{display:grid;grid-template-columns:repeat(10,1fr);gap:3px;margin-top:6px}.skill-level i{height:5px;border-radius:1px;background:#333e43}.skill-level i.earned{background:#bd9062;box-shadow:0 0 5px #c38b3717}.skill-list>.empty-state{grid-column:1/-1}.background-heading{display:flex;align-items:center;gap:16px;margin-bottom:25px}.background-heading>.icon{width:36px;height:36px;color:#d0a17d}.background-heading h3{margin:4px 0 0}.trait-heading{font-size:.9rem}.trait-list{display:flex;flex-wrap:wrap;gap:9px}.trait-list .badge{padding:7px 11px;font-size:.76rem;background:#273136}
.ranking-banner{position:relative;background:linear-gradient(90deg,#0c151ce0,#15202b35 60%,#131b2350),url('./survival-hall.webp') center 45%/cover!important;min-height:157px!important;padding:27px!important}.ranking-banner .badge{position:absolute;right:22px;bottom:20px;font-size:.62rem;background:#192124ba;max-width:40%;text-align:right}.ranking-categories{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:15px 0}.ranking-categories>button{display:flex;align-items:center;gap:14px;padding:18px;background:linear-gradient(130deg,#26323a,#1c242b);border:1px solid #47565e;box-shadow:0 6px 14px #0002;border-radius:8px;text-align:left}.ranking-categories>button>span{min-width:0}.ranking-categories strong{display:block;font-size:.92rem;color:#e5dfd3}.ranking-categories small{font-size:.66rem;color:#94a6ac;display:block;margin-top:5px}.ranking-categories .icon{width:23px;height:23px;color:#acbac0}.ranking-categories .icon:last-child{width:16px;margin-left:auto}.ranking-categories [aria-selected=true]{border-color:#be9470;background:linear-gradient(130deg,#4d3d2d88,#25292c);box-shadow:inset 0 -2px #d1a773,0 8px 20px #0002}.ranking-categories [aria-selected=true]>.icon:first-child{color:#dfbd87}.ranking-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 24px;border-bottom:1px solid #3d494f}.ranking-toolbar small{display:block;margin-top:5px;font-size:.65rem}.ranking-toolbar input{min-height:35px;font-size:.75rem}.ranking-toolbar .search-field{width:min(300px,45%)}.ranking-table-wrap{max-height:460px;overflow:auto}.ranking-table{width:100%;border-collapse:collapse;font-size:.79rem}.ranking-table th{position:sticky;top:0;z-index:1;text-align:left;background:#182126;color:#8d9fa6;font-size:.65rem;font-weight:500;padding:12px 24px}.ranking-table td{padding:15px 24px;border-top:1px solid #344047}.ranking-table td:first-child{width:110px}.ranking-table td:last-child,.ranking-table th:last-child{text-align:right}.ranking-table td>strong{display:block;font-weight:550;color:#d9e0db}.ranking-table td>small{display:block;color:#8fa2a7;font-size:.65rem;margin-top:4px}.ranking-table td:last-child>strong{font:550 1.2rem 'Bahnschrift','Segoe UI',sans-serif;color:#e8c998}.rank-position{display:flex;align-items:center;gap:8px;color:#9dadb1}.rank-position>.icon{width:22px;height:22px}.rank-1{color:#dbb876}.rank-2{color:#afc4d0}.rank-3{color:#c59777}.ranking-table .podium{background:linear-gradient(90deg,#503b201f,transparent)}.ranking-notes{padding:14px 2px;color:#83969c;font-size:.68rem;line-height:1.6}.ranking-notes p{margin:0 0 5px}.ranking-notes small{font-size:.62rem}
@media(min-width:1100px) and (max-height:850px){.portal .sidebar-art{height:85px;max-height:85px}.portal .sidebar-bottom{padding-top:8px}.portal .sidebar nav>a{min-height:35px;padding:7px 12px}}
@media(min-width:1500px){.skill-list{gap:12px 25px}.body-region{padding:11px 13px}.ranking-table-wrap{max-height:calc(100dvh - 420px)}}
@media(max-width:1100px){.health-readings{grid-template-columns:repeat(3,1fr)}.body-regions,.skill-list{grid-template-columns:repeat(2,minmax(0,1fr))}.ranking-categories>button{gap:9px;padding:14px 12px}.ranking-categories small{display:none}}
@media(max-width:650px){.overview-layout .stat{min-height:100px}.favorite-address{grid-template-columns:minmax(0,1.5fr) minmax(85px,.7fr)}#full-roster-list>li{grid-template-columns:1fr 70px;gap:9px 12px;padding:14px 3px}#full-roster-list>li>span:nth-child(n+3){padding-left:2px}.character-tabs{padding:9px;gap:3px}.character-tabs button{padding:8px 9px;font-size:.68rem}#character-tab-panel{padding:14px}.character-progress-stats{gap:7px}.character-progress-stats>div{padding:10px 8px}.character-progress-stats strong{font-size:1.15rem}.health-caption{align-items:flex-start;flex-direction:column;gap:4px}.body-regions,.skill-list{grid-template-columns:1fr}.skill-controls{flex-wrap:wrap;gap:7px}.skill-controls .search-field{flex:1 0 100%}.skill-controls>label:nth-child(2){flex:1}.skill-controls>span{margin-left:auto}.character-save-note{padding:10px 14px}.ranking-banner{min-height:155px!important;padding:21px!important}.ranking-banner .badge{position:static;margin-top:10px;max-width:100%}.ranking-categories{gap:6px}.ranking-categories>button{flex-direction:column;justify-content:center;padding:13px 5px;gap:8px;text-align:center}.ranking-categories strong{font-size:.68rem}.ranking-categories .icon:last-child{display:none}.ranking-toolbar{padding:16px 13px;gap:10px;flex-wrap:wrap}.ranking-toolbar .search-field{width:100%}.ranking-table td,.ranking-table th{padding:13px 11px}.ranking-table td:first-child{width:60px}.rank-position{gap:4px}.rank-position .icon{width:16px}.ranking-table td>strong{font-size:.75rem}.ranking-table td:last-child>strong{font-size:1rem}.ranking-table-wrap{max-height:none}.ranking-notes{padding:13px 3px;font-size:.65rem}}

/* These controls share the catalog styling without relying on its wrapper. */
.skill-controls .search-field,.ranking-toolbar .search-field{position:relative;display:block}
.skill-controls .search-field>.icon,.ranking-toolbar .search-field>.icon{width:16px;height:16px;left:12px;bottom:12px}
.overview-connect .text-link{background:none;border:0;padding:0;color:#d6b798}
.character-detail .definition-grid{padding:0}
@media(min-width:1500px){
 .skill-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 22px}
 .body-regions{grid-template-columns:repeat(4,minmax(0,1fr))}.body-region{padding:9px 13px}
 .character-detail .character-banner{padding:13px 21px;min-height:108px}
 .character-detail .character-banner h2{font-size:1.4rem;margin:5px 0 7px}
 .character-motto{height:88px;margin-top:12px}.character-motto>img{width:78px;height:78px}
}
@media(min-width:1100px) and (min-height:700px){
 .ranking-page{height:calc(100dvh - 172px);min-height:550px;display:flex;flex-direction:column}
 .ranking-banner{flex-shrink:0;margin-bottom:0}.ranking-categories,.ranking-notes{flex-shrink:0}
 .ranking-card{min-height:0;flex:1;display:flex;flex-direction:column;overflow:hidden}
 .ranking-toolbar{flex-shrink:0}
 #ranking-results{flex:1;min-height:0;overflow:hidden}
 .ranking-table-wrap{height:100%;max-height:none;overflow:auto}
}

/* Server favorites: match the existing overview, scoped to this card only. */
.overview-connect .connection-access{display:flex;flex-direction:column;gap:14px;min-width:0;font-family:inherit}
.overview-connect .access-heading{display:flex;align-items:center;gap:11px;min-width:0}
.overview-connect .access-emblem{width:38px;height:38px;display:grid;place-items:center;flex-shrink:0;border:1px solid var(--line);border-radius:8px;background:linear-gradient(145deg,var(--raised),var(--surface));color:var(--accent);box-shadow:inset 0 1px #ffffff08,0 3px 10px #0002}
.overview-connect .access-label{display:block;font-size:.59rem;letter-spacing:.1em;color:var(--muted);margin-bottom:5px}
.overview-connect .access-heading h3{font-weight:600;font-family:inherit;font-size:.86rem;line-height:1.35;letter-spacing:0;margin:0;color:var(--text)}
.overview-connect .access-description{font-size:.76rem;line-height:1.65;color:var(--muted);margin:0;text-wrap:pretty}
.overview-connect .access-steps{display:flex;align-items:center;gap:8px;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.overview-connect .access-steps>span{display:flex;align-items:center;gap:6px;flex:1;font-size:.65rem;color:var(--soft)}
.overview-connect .access-steps i{font-style:normal;width:20px;height:20px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:.6rem;flex-shrink:0}
.overview-connect .access-steps .is-current{color:var(--text)}.overview-connect .access-steps .is-current i{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.overview-connect .access-steps .is-done{color:var(--ok)}
.overview-connect .access-actions{display:flex;flex-wrap:wrap;gap:8px}.overview-connect .access-actions .button{font-family:inherit;font-size:.72rem;gap:6px;min-height:36px;padding:7px 10px}.overview-connect .access-actions .icon{width:14px;height:14px}
.overview-connect .access-footer{padding-top:2px}.overview-connect .access-steam-link{display:inline-flex;align-items:center;gap:7px;max-width:100%;font-family:inherit;font-size:.66rem;line-height:1.5;color:var(--muted);padding:3px 0;text-decoration:none}.overview-connect .access-steam-link:hover{color:var(--text);text-decoration:underline;text-underline-offset:4px}.overview-connect .access-steam-link .icon{width:14px;height:14px}.overview-connect .access-steam-link .icon:last-child{width:12px;height:12px;opacity:.7}
.overview-connect .access-checking{align-items:center;justify-content:center}.overview-connect .access-checking .loading-inline{font:inherit;font-size:.76rem;color:var(--muted)}.overview-connect .access-checking .zombie-picture{width:60px;height:60px}
@media(min-width:960px) and (max-width:1399px){.overview-connect .connection-access{gap:10px}.overview-connect .access-actions .button{flex:1;white-space:normal}.overview-connect .access-emblem{width:30px;height:30px}}

.overview-connect .access-actions [data-action="request-whitelist"]:not(:disabled){border-color:#806e5e;background:linear-gradient(#39352f,#292a28);color:var(--text);box-shadow:inset 0 1px #ffffff08,0 2px 6px #0002}.overview-connect .access-actions .secondary{background:transparent;color:var(--muted)}

/* Revealed connection details have their own compact rhythm, not the access-request spacing. */
.overview-connect .connection-access.is-revealed{gap:7px}.overview-connect .is-revealed .connect-intro{font-size:.74rem;margin:0;line-height:1.4}.overview-connect .is-revealed .favorite-address{margin:0;gap:7px}.overview-connect .is-revealed .favorite-address>div{padding-top:6px;padding-bottom:6px}.overview-connect .is-revealed .favorite-password{padding:6px 10px}.overview-connect .is-revealed .favorite-steps{margin:1px 0;font-size:.64rem;line-height:1.5}.overview-connect .favorite-tools{display:flex;align-items:center;justify-content:space-between;gap:8px}.overview-connect .favorite-tools .text-link{display:inline-flex;align-items:center;gap:5px;font-size:.67rem}.overview-connect .favorite-tools .icon{width:13px;height:13px}.overview-connect .favorite-tools .button{font-size:.65rem;min-height:28px;padding:4px 8px}.overview-connect .is-revealed .access-steam-link{font-size:.63rem;line-height:1.4;padding:0}

@media(min-width:960px) and (max-height:800px){.overview-connect .is-revealed .connect-intro,.overview-connect .is-revealed .favorite-steps{display:none}.overview-connect .connection-access.is-revealed{gap:4px}}
