/* Game Server and voice scan views share the Administrator Dashboard palette. */
.server-page { --server-accent:var(--accent,#dddddd); }
.server-page .server-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:18px; }
.server-page .server-heading h1 { font-size:30px; font-weight:650; letter-spacing:-.7px; }
.server-page .server-heading p { margin-top:8px; color:var(--muted); font-size:14px; }
.server-page .btn { min-height:44px; padding:10px 15px; font-size:13px; }
.server-page .btn,.server-page .server-links button { transition:background .18s,border-color .18s,transform .18s; }
.server-page .btn:active,.server-page .server-links button:active { transform:translateY(1px); }
.server-page .server-preview,.server-page .server-alert { padding:12px 16px; margin-bottom:18px; border:1px solid var(--line); border-radius:8px; font-size:13px; line-height:1.65; background:var(--panel); color:var(--muted); }
.server-page .server-alert { color:var(--text); border-left:3px solid var(--server-accent); }
.server-page .server-overview-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:stretch; }
.server-page .server-overview-grid:has(.server-priority-details[open],#server-priority-editor:not([hidden])) { align-items:start; }
.server-page .server-priority,.server-page .server-players,.server-page .server-scan-card,.server-page .server-scan-summary,.server-page .server-records { min-width:0; border:1px solid var(--line); border-radius:12px; background:var(--panel); }
.server-page .server-priority { --server-accent:var(--text); overflow:hidden; box-shadow:inset 0 2px 0 var(--line); }
.server-page .server-priority[data-active="true"] { border-color:var(--faint); background:linear-gradient(120deg,color-mix(in srgb,var(--text) 5%,transparent),transparent 75%),var(--panel); }
.server-page .server-priority .server-badge[data-kind="active"] { color:var(--text); border-color:var(--faint); background:var(--hover); }
.server-page .server-priority[data-active="true"] .server-timer strong { color:var(--text); }
[data-theme="light"] .server-page .server-priority { --server-accent:var(--text); }
[data-theme="light"] .server-page .server-priority .server-badge[data-kind="active"], [data-theme="light"] .server-page .server-priority[data-active="true"] .server-timer strong { color:var(--text); }
.server-page .server-players { padding:18px 20px; }
.server-page #server-priority-content { display:flex; flex-direction:column; gap:6px; min-height:180px; padding:14px 18px; }
.server-page .server-panel-title { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.server-page .server-overview-grid .server-panel-title { min-height:42px; width:100%; }
.server-page h2 { font-size:15px; font-weight:600; letter-spacing:-.1px; }
.server-page .server-panel-title>svg { color:var(--muted); width:19px; height:19px; }
.server-page .server-badge { display:inline-flex; align-items:center; gap:7px; padding:4px 9px; border:1px solid var(--line); border-radius:20px; font-size:11px; color:var(--muted); white-space:nowrap; }
.server-page .server-badge>span { width:5px; height:5px; border-radius:50%; background:currentColor; }
.server-page .server-badge[data-kind="active"] { color:var(--server-accent); border-color:var(--accent-line,#dddddd40); background:var(--accent-soft,#dddddd0c); }
.server-page .server-priority-main { display:flex; justify-content:space-between; align-items:center; gap:20px; min-height:50px; }
.server-page .server-priority-state { color:var(--text); font-size:20px; letter-spacing:-.4px; font-weight:600; }
.server-page .server-priority-state>small { display:block; margin-top:3px; color:var(--muted); font-size:11px; font-weight:400; letter-spacing:0; }
.server-page .server-explanation { color:var(--muted); font-size:13px; margin-top:7px; max-width:440px; line-height:1.7; overflow-wrap:anywhere; }
.server-page .server-timer { flex-shrink:0; text-align:right; }
.server-page .server-timer strong { display:block; font-size:27px; letter-spacing:-.6px; font-weight:500; line-height:1.2; font-variant-numeric:tabular-nums; }
.server-page .server-timer>span { display:block; color:var(--muted); font-size:11px; line-height:16px; }
.server-page .server-participants { display:flex; flex-direction:column; gap:9px; margin-top:12px; }
.server-page .server-participants>span { color:var(--muted); font-size:11px; }
.server-page .server-participants>div { display:flex; flex-wrap:wrap; gap:6px; }
.server-page .server-participant { display:inline-flex; padding:4px 9px; border-radius:5px; border:1px solid var(--line); background:var(--surface); font-size:12px; overflow-wrap:anywhere; }
.server-page .server-read-only { color:var(--muted); font-size:11px; }
.server-page .server-player-count { margin-top:14px; font-size:42px; font-weight:550; line-height:1.25; letter-spacing:-1.8px; font-variant-numeric:tabular-nums; }
.server-page .server-player-count>span { color:var(--muted); font-size:22px; font-weight:400; letter-spacing:-.4px; margin-left:8px; }
.server-page .server-players>p { font-size:12px; color:var(--muted); margin-top:6px; line-height:1.7; }
.server-page .server-capacity { height:4px; border-radius:4px; background:var(--line); margin-top:15px; overflow:hidden; }
.server-page .server-capacity>span { display:block; height:100%; border-radius:4px; background:var(--server-accent); transition:width .5s; }
.server-page .server-player-source { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; margin-top:14px; font-size:11px; color:var(--muted); }
.server-page .server-player-source time { color:var(--faint); font-size:11px; }
.server-page .server-scan-card { display:flex; align-items:center; gap:20px; padding:16px 20px; margin-top:14px; }
.server-page .server-scan-intro { flex:1; }
.server-page .server-scan-title { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.server-page .server-scan-title>svg { width:18px; height:18px; color:var(--server-accent); }
.server-page .server-scan-intro>p,.server-page .server-scan-summary-head>div>p { color:var(--muted); font-size:12px; margin-top:10px; line-height:1.7; }
.server-page .server-quiet-label { color:var(--muted); font-size:11px; }
.server-page .server-scan-last { color:var(--faint); font-size:11px; margin-top:10px; }
.server-page .server-scan-progress { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.server-page progress { accent-color:var(--server-accent); width:100px; height:5px; border:0; border-radius:5px; overflow:hidden; background:var(--line); }
.server-page progress::-webkit-progress-bar { background:var(--line); }
.server-page progress::-webkit-progress-value { background:var(--server-accent); }
.server-page progress::-moz-progress-bar { background:var(--server-accent); }
.server-page .server-scan-metrics { display:flex; gap:22px; flex-shrink:0; }
.server-page .server-scan-metrics>div { display:flex; align-items:baseline; gap:7px; }
.server-page .server-scan-metrics strong { font-size:18px; font-weight:550; letter-spacing:-.2px; }
.server-page .server-scan-metrics span { font-size:11px; color:var(--muted); }
.server-page .server-links { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-top:16px; }
.server-page .server-links button { display:flex; align-items:center; gap:12px; min-height:54px; padding:12px 16px; text-align:left; border:1px solid var(--line); border-radius:10px; }
.server-page .server-links button:hover { background:var(--panel); border-color:var(--faint); }
.server-page .server-links button>svg { color:var(--muted); }
.server-page .server-links button>svg:last-child { width:16px; height:16px; margin-left:auto; }
.server-page .server-links strong { display:block; font-size:13px; font-weight:550; }
.server-page .server-links small { display:block; font-size:12px; color:var(--muted); margin-top:4px; }
.server-page .server-update { margin:19px 0 3px; color:var(--faint); font-size:11px; }
.server-page #server-priority-editor { padding:20px 24px 24px; border-top:1px solid var(--line); background:var(--surface); }
.server-page .server-editor-heading { display:flex; justify-content:space-between; align-items:center; margin-bottom:17px; }
.server-page .server-editor-heading h3 { font-size:15px; font-weight:600; }
.server-page .server-editor-heading p { color:var(--muted); font-size:12px; margin-top:5px; line-height:1.6; }
.server-page .server-editor-heading>.icon-btn { flex-shrink:0; width:44px; height:44px; }
.server-page .priority-edit-tabs { display:flex; flex-wrap:wrap; gap:4px; margin-bottom:18px; padding-bottom:8px; border-bottom:1px solid var(--line); }
.server-page .priority-edit-tabs button { padding:10px 12px; min-height:44px; border-radius:6px; font-size:12px; color:var(--muted); transition:background .18s,color .18s; }
.server-page .priority-edit-tabs button[aria-selected="true"] { color:var(--text); background:var(--hover); }
.server-page .priority-edit-tabs button:hover { color:var(--text); background:var(--panel); }
.server-page .priority-edit-summary { border:1px solid var(--line); border-radius:8px; background:var(--panel); padding:14px 16px; margin-bottom:18px; min-width:0; }
.server-page .priority-summary-line { display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:12px; }
.server-page .priority-summary-line strong { font-weight:600; }
.server-page .priority-summary-line>span { color:var(--server-accent); white-space:nowrap; font-variant-numeric:tabular-nums; }
.server-page .priority-edit-summary p { color:var(--muted); font-size:12px; line-height:1.7; margin-top:7px; overflow-wrap:anywhere; }
.server-page .priority-edit-summary>small { display:block; font-size:11px; color:var(--faint); margin-top:8px; line-height:1.6; }
.server-page .priority-summary-people { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.server-page .priority-summary-people>span { color:var(--text); font-size:11px; padding:4px 7px; background:var(--surface); border-radius:4px; overflow-wrap:anywhere; }
.server-page .priority-summary-people>span.priority-person-out { color:var(--faint); }
.server-page .priority-queue-preview { padding-left:20px; margin-top:10px; max-height:180px; overflow-y:auto; color:var(--muted); font-size:12px; }
.server-page .priority-queue-preview li { padding:7px 2px; border-bottom:1px solid var(--line); }
.server-page .priority-queue-preview li:last-child { border-bottom:0; }
.server-page .priority-queue-preview li>span { color:var(--text); overflow-wrap:anywhere; }
.server-page .priority-queue-preview small { margin-left:8px; font-size:11px; }
.server-page .priority-field { min-width:0; display:flex; flex-direction:column; gap:8px; color:var(--muted); font-size:12px; }
.server-page .priority-field small { color:var(--faint); font-size:11px; line-height:1.6; }
.server-page .priority-action-description { color:var(--muted); font-size:12px; line-height:1.7; margin-top:8px; }
.server-page .priority-action-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:16px; margin-top:18px; }
.server-page .priority-action-fields:empty { display:none; }
.server-page .priority-action-fields>.priority-field:first-child:last-child { grid-column:1/-1; }
.server-page .priority-action-fields select { text-overflow:ellipsis; }
.server-page .priority-reason { margin-top:18px; }
.server-page .priority-multiselect { border:0; padding:0; margin:0; grid-column:1/-1; }
.server-page .priority-multiselect legend { margin-bottom:8px; padding:0; line-height:1.6; }
.server-page .priority-multiselect>div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; max-height:230px; overflow-y:auto; }
.server-page .priority-multiselect label { display:flex; align-items:center; gap:9px; min-height:44px; padding:10px; border:1px solid var(--line); border-radius:6px; color:var(--text); line-height:1.5; cursor:pointer; }
.server-page .priority-multiselect label:has(input:checked) { border-color:var(--server-accent); background:var(--panel); }
.server-page .priority-multiselect input { width:16px; height:16px; min-height:0; flex-shrink:0; accent-color:var(--server-accent); }
.server-page .priority-multiselect span { overflow-wrap:anywhere; }
.server-page .server-edit-fields { display:grid; gap:17px; grid-template-columns:1fr 1.4fr; align-items:start; }
.server-page .server-edit-fields>label { display:flex; flex-direction:column; gap:8px; color:var(--muted); font-size:12px; }
.server-page input,.server-page select,.server-page textarea { background:var(--panel); color:var(--text); border:1px solid var(--line); border-radius:7px; padding:11px 12px; min-height:44px; font-size:13px; width:100%; }
.server-page textarea { resize:vertical; min-height:82px; max-height:260px; }
.server-page .server-confirm { display:flex; align-items:flex-start; gap:10px; padding:13px 0 0; font-size:12px; line-height:1.65; }
.server-page .server-confirm input { width:17px; height:17px; min-height:0; flex-shrink:0; margin-top:2px; accent-color:var(--server-accent); }
.server-page .server-edit-message,.server-page .server-edit-notice { font-size:12px; color:var(--text); line-height:1.7; }
.server-page .server-edit-message:not(:empty) { padding-top:14px; }
.server-page .server-edit-notice { padding:10px 12px; border-left:2px solid var(--server-accent); background:var(--panel); margin-bottom:17px; }
.server-page .server-edit-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:19px; }
.server-page .server-edit-actions>span { flex:1; min-width:150px; font-size:11px; color:var(--muted); line-height:1.6; margin-right:8px; }
.server-page .server-scan-summary { padding:14px 18px 0; margin-bottom:14px; }
.server-page .server-scan-summary-head { display:flex; align-items:center; justify-content:space-between; gap:26px; }
.server-page .server-records { overflow:hidden; }
.server-page .server-record-toolbar { display:flex; justify-content:space-between; flex-wrap:wrap; align-items:center; gap:12px; padding:12px 14px; border-bottom:1px solid var(--line); }
.server-page .server-tabs { display:flex; gap:3px; border:1px solid var(--line); border-radius:8px; padding:3px; }
.server-page .server-tabs button { min-height:38px; padding:8px 13px; font-size:12px; color:var(--muted); border-radius:5px; white-space:nowrap; }
.server-page .server-tabs button[aria-selected="true"] { color:var(--text); background:var(--hover); }
.server-page .server-tabs button:hover { color:var(--text); }
.server-page .server-record-filters { display:flex; gap:9px; flex:1; justify-content:flex-end; }
.server-page .server-search { position:relative; width:min(100%,290px); }
.server-page .server-search input { padding-left:37px; }
.server-page .server-search>svg { position:absolute; top:14px; left:12px; height:15px; width:15px; color:var(--faint); }
.server-page .server-record-filters>label:not(.server-search) { min-width:140px; }
.server-page .server-table-scroll { overflow-x:auto; }
.server-page .server-table { width:100%; border-collapse:collapse; min-width:790px; table-layout:fixed; text-align:left; }
.server-page .server-table th { font-size:11px; color:var(--muted); font-weight:500; padding:13px 18px; border-bottom:1px solid var(--line); }
.server-page .server-table td { padding:17px 18px; border-bottom:1px solid var(--line); vertical-align:top; font-size:12px; overflow-wrap:anywhere; }
.server-page .server-table tbody tr:last-child td { border-bottom:0; }
.server-page .server-table tbody tr:hover { background:var(--surface); }
.server-page .server-table th:first-child { width:25%; }
.server-page .server-table th:nth-child(2) { width:14%; }
.server-page .server-table th:nth-child(3) { width:14%; }
.server-page .server-table th:nth-child(4) { width:14%; }
.server-page .server-table th:nth-child(5) { width:19%; }
.server-page .server-cell-name { display:block; font-size:13px; font-weight:550; }
.server-page .server-cell-sub { display:block; color:var(--faint); margin-top:5px; font-size:11px; }
.server-page .server-record-status { display:inline-flex; border:1px solid var(--line); padding:3px 7px; border-radius:5px; color:var(--muted); font-size:11px; }
.server-page .server-record-pages { padding:10px 16px; display:flex; align-items:center; justify-content:space-between; gap:15px; color:var(--muted); font-size:12px; border-top:1px solid var(--line); }
.server-page .server-record-pages:empty { display:none; }
.server-page .server-record-pages>div { display:flex; align-items:center; gap:13px; }
.server-page .server-record-pages>span>small { display:block; color:var(--faint); font-size:11px; margin-top:5px; max-width:420px; }
.server-page .server-record-pages .btn { min-width:44px; padding:10px; }
.server-page .server-empty,.server-page .server-loading { padding:32px 20px; text-align:center; color:var(--muted); }
.server-page .server-empty strong { display:block; color:var(--text); font-size:15px; font-weight:550; margin-bottom:7px; }
.server-page .server-empty p { font-size:13px; line-height:1.8; max-width:450px; margin:auto; }
@media(max-width:1100px) {
  .server-page .server-scan-card { flex-wrap:wrap; }
  .server-page .server-scan-intro { flex-basis:calc(100% - 160px); }
  .server-page .server-scan-card>.btn { margin-left:auto; }
  .server-page .server-scan-metrics { gap:24px; }
}
@media(max-width:760px) {
  .server-page .server-overview-grid { grid-template-columns:1fr; }
  .server-page .server-heading h1 { font-size:26px; }
  .server-page .server-heading p { font-size:13px; }
  .server-page .server-heading>.btn { flex-shrink:0; }
  .server-page .server-scan-summary-head { align-items:flex-start; flex-direction:column; }
  .server-page .server-scan-metrics { width:100%; justify-content:space-between; gap:16px; }
  .server-page .server-scan-card { padding:16px; gap:14px; }
  .server-page .server-links { grid-template-columns:1fr 1fr; gap:10px; }
  .server-page .server-links button { padding:17px 15px; gap:10px; }
  .server-page .server-links small { font-size:11px; }
  .server-page .server-record-filters { flex-basis:100%; }
  .server-page .server-search { width:100%; }
  .server-page .server-table { min-width:0; table-layout:auto; }
  .server-page .server-table thead { display:none; }
  .server-page .server-table tbody,.server-page .server-table tr { display:block; }
  .server-page .server-table tr { padding:16px 18px; border-bottom:1px solid var(--line); }
  .server-page .server-table tr:last-child { border-bottom:0; }
  .server-page .server-table td { display:grid; grid-template-columns:130px minmax(0,1fr); gap:0 15px; padding:6px 0; border:0; }
  .server-page .server-table td::before { content:attr(data-label); color:var(--muted); font-size:11px; grid-column:1; grid-row:1 / span 3; }
  .server-page .server-table td>* { grid-column:2; }
  .server-page .server-record-status { justify-self:start; }
  .server-page input,.server-page select,.server-page textarea { font-size:16px; }
}
@media(max-width:480px) {
  .server-page .server-heading { gap:10px; }
  .server-page .server-heading h1 { font-size:24px; }
  .server-page #server-priority-content,.server-page .server-players { padding:14px 16px; }
  .server-page .server-priority-state { font-size:20px; }
  .server-page .server-timer strong { font-size:26px; }
  .server-page .server-priority-main { gap:16px; }
  .server-page .server-links { grid-template-columns:1fr; }
  .server-page .server-edit-fields { grid-template-columns:1fr; }
  .server-page .priority-action-fields { grid-template-columns:1fr; }
  .server-page .priority-edit-tabs { display:grid; grid-template-columns:1fr 1fr; }
  .server-page .priority-edit-tabs button { text-align:left; padding:10px; }
  .server-page .priority-multiselect>div { grid-template-columns:1fr; }
  .server-page .priority-summary-line { flex-wrap:wrap; gap:6px 12px; }
  .server-page #server-priority-editor { padding:17px 20px 20px; }
  .server-page .server-edit-actions>span { flex-basis:100%; margin-bottom:5px; }
  .server-page .server-edit-actions>.btn { flex:1; }
  .server-page .server-record-filters { flex-wrap:wrap; }
  .server-page .server-record-filters>label { width:100%; }
  .server-page .server-table td { grid-template-columns:105px minmax(0,1fr); gap:0 10px; }
}
@media(prefers-reduced-motion:reduce) {
  .server-page .btn,.server-page .server-links button,.server-page .server-capacity>span { transition:none; }
}

/* Details stay folded until selected; the summary remains keyboard accessible. */
.server-page .server-disclosure { min-width:0; }
.server-page .server-disclosure>summary { display:flex; align-items:center; gap:12px; min-height:44px; padding:10px 0; color:var(--muted); font-size:12px; cursor:pointer; list-style:none; border-radius:4px; }
.server-page .server-disclosure>summary::-webkit-details-marker { display:none; }
.server-page .server-disclosure>summary:hover { color:var(--text); }
.server-page .server-disclosure>summary:focus-visible { outline:2px solid var(--server-accent); outline-offset:-2px; }
.server-page .server-disclosure-meta { margin-left:auto; text-align:right; font-size:11px; color:var(--faint); }
.server-page .server-disclosure-chevron { width:7px; height:7px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(-45deg); flex-shrink:0; margin:0 5px; transition:transform .18s; }
.server-page .server-disclosure[open]>summary .server-disclosure-chevron { transform:rotate(45deg); }
.server-page .server-disclosure-body { padding:0 0 14px; min-width:0; }
.server-page .server-detail-note { color:var(--muted); font-size:12px; line-height:1.7; overflow-wrap:anywhere; }
.server-page .server-detail-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px 22px; margin:12px 0 0; }
.server-page .server-detail-grid>div { min-width:0; }
.server-page .server-detail-grid dt { color:var(--faint); font-size:11px; line-height:1.5; }
.server-page .server-detail-grid dd { color:var(--text); font-size:12px; line-height:1.6; margin:4px 0 0; overflow-wrap:anywhere; }
.server-page .server-priority-details { border-top:1px solid var(--line); }
.server-page .server-priority-details .server-detail-grid { grid-template-columns:1fr; }
.server-page .server-priority-details .server-participants { margin-top:10px; }
.server-page .server-scanner-details { margin-top:10px; border-top:1px solid var(--line); }
.server-page .server-scan-unavailable { color:var(--muted); font-size:12px; line-height:1.7; padding:10px 0 14px; }
.server-page .server-record-disclosure { border-bottom:1px solid var(--line); }
.server-page .server-record-disclosure:last-child { border-bottom:0; }
.server-page .server-record-disclosure>summary { display:grid; grid-template-columns:minmax(140px,1fr) minmax(100px,.4fr) minmax(90px,.35fr) 16px; gap:14px; min-height:54px; padding:10px 18px; border-radius:0; }
.server-page .server-record-disclosure>summary:hover,.server-page .server-record-disclosure[open]>summary { background:var(--surface); }
.server-page .server-record-person { display:flex; align-items:center; flex-wrap:wrap; gap:5px 12px; min-width:0; }
.server-page .server-record-person strong { font-size:13px; font-weight:550; color:var(--text); overflow-wrap:anywhere; }
.server-page .server-record-person small { font-size:11px; color:var(--faint); }
.server-page .server-record-kind { color:var(--muted); font-size:12px; }
.server-page .server-record-disclosure .server-record-status { justify-self:start; }
.server-page .server-record-disclosure .server-disclosure-body { padding:0 18px 18px; background:var(--surface); }
.server-page .server-record-disclosure .server-detail-grid { margin:0; padding-top:10px; }
@media(max-width:1100px) {
  .server-page .server-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:760px) {
  .server-page .server-scan-summary-head { gap:12px; }
  .server-page .server-scan-metrics { justify-content:flex-start; flex-wrap:wrap; gap:8px 20px; }
  .server-page .server-record-disclosure>summary { grid-template-columns:minmax(0,1fr) auto 16px; gap:7px 12px; padding:10px 14px; }
  .server-page .server-record-person { grid-column:1; grid-row:1; }
  .server-page .server-record-kind { grid-column:1; grid-row:2; font-size:11px; }
  .server-page .server-record-disclosure .server-record-status { grid-column:2; grid-row:1 / span 2; }
  .server-page .server-record-disclosure .server-disclosure-chevron { grid-column:3; grid-row:1 / span 2; }
  .server-page .server-detail-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 16px; }
}
@media(prefers-reduced-motion:reduce) {
  .server-page .server-disclosure-chevron { transition:none; }
}

/* A single population strip and a searchable, folded player roster. */
.server-page .server-player-summary,.server-page .server-roster { min-width:0; border:1px solid var(--line); border-radius:12px; background:var(--panel); overflow:hidden; }
.server-page .server-player-summary { margin-bottom:16px; }
.server-page .server-population-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px 16px; padding:12px 18px; border-bottom:1px solid var(--line); }
.server-page .server-population-heading>div { display:flex; align-items:center; gap:10px; }
.server-page .server-population-heading time { font-size:11px; color:var(--muted); }
.server-page .server-population-metrics { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); padding:16px 0; }
.server-page .server-population-metric { display:flex; flex-direction:column; gap:5px; min-width:0; padding:0 18px; border-right:1px solid var(--line); }
.server-page .server-population-metric:last-child { border-right:0; }
.server-page .server-population-metric>span { font-size:12px; color:var(--muted); }
.server-page .server-population-metric>strong { font-size:27px; line-height:1.35; font-weight:600; letter-spacing:-.6px; font-variant-numeric:tabular-nums; color:var(--team-color,var(--text)); }
.server-page .server-population-metric>strong>small { font-size:14px; letter-spacing:0; font-weight:400; color:var(--muted); }
.server-page .server-population-metric>small { font-size:10px; line-height:1.5; color:var(--faint); }
.server-page [data-team="law_enforcement"] { --team-color:#d5d5d5; }
.server-page [data-team="fire"] { --team-color:#b7b7b7; }
.server-page [data-team="dot"] { --team-color:#999999; }
.server-page [data-team="civilian"] { --team-color:#eeeeee; }
.server-page [data-team="unknown"] { --team-color:var(--muted); }
[data-theme="light"] .server-page [data-team="law_enforcement"] { --team-color:#333333; }
[data-theme="light"] .server-page [data-team="fire"] { --team-color:#555555; }
[data-theme="light"] .server-page [data-team="dot"] { --team-color:#666666; }
[data-theme="light"] .server-page [data-team="civilian"] { --team-color:#444444; }
.server-page .server-population-note { padding:0 18px 12px; font-size:12px; line-height:1.6; color:var(--muted); }
.server-page .server-overview-scan { display:flex; flex-direction:column; margin-top:0; align-items:stretch; flex-wrap:nowrap; gap:6px; min-height:182px; padding:14px 18px; }
.server-page .server-overview-scan .server-scan-metrics { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; width:100%; min-height:50px; gap:8px 20px; }
.server-page .server-scan-state { display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px; min-height:44px; border-top:1px solid var(--line); padding:8px 0; }
.server-page .server-scan-state .server-scan-last { margin:0; }
.server-page .server-scan-state .server-explanation { flex-basis:100%; margin:0; }
.server-page .server-roster { margin-top:16px; }
.server-page .server-onshift { margin-top:16px; border:1px solid var(--line); border-radius:12px; background:var(--panel); overflow:hidden; }
.server-page .server-onshift .onshift-heading { padding:13px 18px; align-items:center; }
.server-page .server-onshift .onshift-source,.server-page .server-onshift .onshift-person-copy>span,.server-page .server-onshift .onshift-footer { display:none; }
.server-page .server-onshift .onshift-all { margin:0; }
.server-page .server-onshift .onshift-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:6px; gap:2px 6px; }
.server-page .server-onshift .onshift-person { min-height:56px; padding:10px 12px; border:0; border-radius:7px; }
.server-page .server-onshift .onshift-avatar { width:32px; height:32px; }
.server-page .server-onshift .onshift-person-copy strong { font-size:13px; font-weight:600; }
.server-page .server-onshift .onshift-empty { grid-column:1/-1; padding:14px 12px; }
.server-page .server-roster-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px 22px; padding:14px 18px; }
.server-page .server-roster-heading>div:first-child { display:flex; align-items:center; flex-wrap:wrap; gap:7px 14px; }
.server-page .server-roster-status { color:var(--muted); font-size:11px; }
.server-page .server-roster-status[data-stale="true"],.server-page .server-roster-stale { color:var(--muted); }
[data-theme="light"] .server-page .server-roster-status[data-stale="true"],[data-theme="light"] .server-page .server-roster-stale { color:var(--muted); }
.server-page .server-roster-tools { display:flex; align-items:center; gap:10px; }
.server-page .server-roster-tools .server-search { width:310px; }
.server-page .server-roster-tools>label:last-child { width:185px; }
.server-page .server-roster-columns,.server-page .server-roster-row>summary { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(160px,.8fr) minmax(100px,.35fr) 16px; gap:16px; padding:11px 18px; }
.server-page .server-roster-columns { border-top:1px solid var(--line); border-bottom:1px solid var(--line); color:var(--faint); font-size:11px; background:var(--surface); }
.server-page .server-roster-row { border-bottom:1px solid var(--line); }
.server-page .server-roster-row:last-child { border-bottom:0; }
.server-page .server-roster-row>summary { min-height:50px; border-radius:0; transition:background .16s; }
.server-page .server-roster-row>summary:hover,.server-page .server-roster-row[open]>summary { background:var(--surface); }
.server-page .server-roster-name { min-width:0; }
.server-page .server-roster-name strong { color:var(--text); font-weight:550; font-size:13px; overflow-wrap:anywhere; }
.server-page .server-roster-team { display:flex; align-items:center; gap:8px; font-size:12px; color:var(--muted); min-width:0; }
.server-page .server-roster-team i { width:6px; height:6px; border-radius:50%; flex-shrink:0; background:var(--team-color,var(--muted)); }
.server-page .server-roster-callsign { color:var(--muted); font-size:12px; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.server-page .server-roster-row .server-disclosure-body { padding:0 18px 16px; background:var(--surface); }
.server-page .server-roster-row .server-detail-grid { margin:0; padding-top:10px; }
.server-page .server-roster-profile { display:inline-flex; align-items:center; gap:8px; margin-top:12px; text-decoration:none; }
.server-page .server-roster-profile svg { width:15px; height:15px; }
.server-page .server-roster .server-record-pages[hidden] { display:none; }
@media(max-width:1100px) {
  .server-page .server-onshift .onshift-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .server-page .server-population-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px 0; }
  .server-page .server-population-metric:nth-child(3) { border-right:0; }
  .server-page .server-roster-tools { flex:1; }
  .server-page .server-roster-tools .server-search { width:100%; min-width:180px; }
  .server-page .server-roster-tools>label:last-child { flex-shrink:0; }
}
@media(max-width:600px) {
  .server-page .server-onshift .onshift-list { grid-template-columns:minmax(0,1fr); }
  .server-page .server-onshift .onshift-heading { padding:10px 14px; }
  .server-page .server-population-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .server-page .server-population-metric:nth-child(3) { border-right:1px solid var(--line); }
  .server-page .server-population-metric:nth-child(even) { border-right:0; }
  .server-page .server-population-metric { padding:0 14px; }
  .server-page .server-population-metric>strong { font-size:25px; }
  .server-page .server-roster-heading { padding:14px; }
  .server-page .server-roster-tools { flex-wrap:wrap; flex-basis:100%; }
  .server-page .server-roster-tools>label:last-child { width:100%; }
  .server-page .server-roster-columns { display:none; }
  .server-page .server-roster-row>summary { grid-template-columns:minmax(0,1fr) 80px 16px; gap:5px 10px; padding:12px 14px; }
  .server-page .server-roster-name { grid-column:1; grid-row:1; }
  .server-page .server-roster-team { grid-column:1; grid-row:2; font-size:11px; }
  .server-page .server-roster-callsign { grid-column:2; grid-row:1 / span 2; text-align:right; }
  .server-page .server-roster-row .server-disclosure-chevron { grid-column:3; grid-row:1 / span 2; }
  .server-page .server-roster-row .server-disclosure-body { padding:0 14px 14px; }
  .server-page .server-roster .server-record-pages { gap:10px; flex-wrap:wrap; }
}
@media(prefers-reduced-motion:reduce) {
  .server-page .server-roster-row>summary { transition:none; }
}
