/* SoulShive · Premium typography baseline — all public pages and Admin.
   Normal text: 16px; auxiliary labels: 14px. Keep headings and icons sized
   by their components. Intentionally does not touch application logic or data. */
:root { --ss-body-font:16px; --ss-label-font:14px; }
html { font-size:16px; -webkit-text-size-adjust:100%; }
body { font-size:16px !important; line-height:1.55; }
/* Primary reading surfaces */
body :is(p,li,dd,dt,blockquote,summary,figcaption,article,textarea,select,option),
body :is(.chat-bubble,.message-body,.comment-body,.description,.content-text) {
  font-size:16px !important;
  line-height:1.55 !important;
}
body :is(input:not([type="checkbox"]):not([type="radio"]),textarea,select) {
  font-size:16px !important;
  line-height:1.45 !important;
}
body :is(input,textarea)::placeholder { font-size:16px; opacity:1; color:#a6b5cc; }
/* Do not shrink values, names and actions inside data-heavy cards. */
body :is(td,table td,.ss27-table-scroll td) {font-size:16px !important;line-height:1.5 !important;}
body :is(th,table th,.ss27-table-scroll th) {font-size:14px !important;line-height:1.5 !important;}
body main a:not(.btn):not([class*="badge"]):not([class*="chip"]),
body .ss26-content-wrap a:not(.btn):not([class*="badge"]):not([class*="chip"]){
  font-size:max(16px,1em) !important;
}
/* Auxiliary details may be smaller than copy, but never microscopic. */
body :is(small,label,time,caption,figcaption,.small,.muted,.hint,.help-text,.helper-text,
           .ss26-page-kicker,.ss26-footer-kicker,.ss26-adsense-label,
           [class*="-meta"],[class*="-kicker"],[class*="-badge"],[class*="-chip"]) {
  font-size:14px !important;
  line-height:1.5 !important;
}
/* Buttons are text too. Icon-only buttons retain their original glyph sizing. */
body :is(button,a.btn,.btn,[role="button"]):not(.ssg-icon):not(.ss26-icon-link):not(.ssg-burger):not(.ss26-burger) {
  font-size:16px !important;
  line-height:1.35 !important;
}
body :is(.ss26-mainnav a,.ssg-nav a,.ssg-more-menu a,.ssg-small,.ssg-add,.ss26-mini-btn,.ss26-add-btn) {
  font-size:14px !important;
  line-height:1.35 !important;
}
body :is(.ssg-search input,.ss26-newsletter input) {font-size:16px !important;}
body :is(.ss26-global-footer a,.ss26-global-footer h4,.ss26-global-footer span) {
  font-size:14px !important;
  line-height:1.5 !important;
}
body .ss26-global-footer p {font-size:16px !important;line-height:1.55 !important;}
/* Avoid cropped text as the user enlarges fonts in accessibility settings. */
body :is(.card,.panel,.ss26-content-wrap,.ss27-table-scroll){min-width:0;}
body :is(button,.btn,input,select,textarea){max-width:100%;}
body :is(p,li,td,a,label){overflow-wrap:break-word;}
@media (max-width:700px) {
  body {font-size:16px !important;}
  body :is(p,li,td,input:not([type="checkbox"]):not([type="radio"]),textarea,select){font-size:16px !important;}
  body :is(label,small,time,th){font-size:14px !important;}
}

/* Headline links keep their heading hierarchy. */
body :is(h1,h2,h3,h4) a {font-size:inherit !important;}

/* 2026-10-11 — Semantic hierarchy, not only a font-size floor.
   Previously several page headings and server names were only 14px, making
   them indistinguishable from secondary labels. Keep true labels at >=14px. */
body.ss26-page .ss26-home :is(.ss26-head h2,.ss26-title,.ss26-boostinfo h2,.ss26-boosted h2),
body.ss26-page .ss26-home .ss26-owner-verify-copy h2 {
  font-size:clamp(20px,2.1vw,25px) !important;
  line-height:1.3 !important;
  letter-spacing:-.01em;
}
body.ss26-page .ss26-home .ss26-boostinfo h3 {
  font-size:17px !important;
  line-height:1.5 !important;
}
body.ss26-page .ss26-home .ss26-serverbody h3 {
  font-size:17px !important;
  line-height:1.35 !important;
  white-space:normal !important;
  overflow-wrap:anywhere;
  /* Allow long server names two lines before an ellipsis. */
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-clamp:2;
  overflow:hidden;
}
body.ss26-page .ss26-home :is(.ss26-stepgrid b,.ss26-gamegrid b,
  .ss26-benefits b,.ss26-partners b,.ss26-addons b,
  .ss26-community b,.ss26-finalcta b,.boostmini b) {
  font-size:16px !important;
  line-height:1.4 !important;
}
body.ss26-page .ss26-home .ss26-gamegrid a {
  height:auto;
  min-height:74px;
}
body.ss26-page .ss26-home .boostmini a {
  height:auto;
  min-height:94px;
}
body.ss26-page .ss26-home :is(.ss26-cardactions a,.ss26-stepcta,
  .ss26-head>a,.ss26-boosted .ss26-head a) {
  font-size:16px !important;
  line-height:1.45 !important;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
body.ss26-page-admin :is(.st26-card h2,.st26-system h3,
  .bw-list-head h2,.tk-list-head h2) {
  font-size:19px !important;
  line-height:1.35 !important;
}
body.ss26-page-admin :is(.st26-hero p,.st26-card-head p,
  .bw-manual p,.bw-list-head p,.tk-list-head p) {
  font-size:16px !important;
  line-height:1.55 !important;
}
@media(max-width:700px){
  body.ss26-page .ss26-home .ss26-serverbody h3{font-size:16px !important}
  body.ss26-page .ss26-home .ss26-cardactions{grid-template-columns:minmax(0,1fr);gap:8px}
  body.ss26-page .ss26-home .ss26-cardactions a{width:100%;padding:10px 8px;white-space:normal}
  body.ss26-page .ss26-home .ss26-head{flex-wrap:wrap;gap:10px}
}
/* Let denser dashboard panels genuinely shrink on narrow devices instead of
   cropping their content behind a viewport-wide overflow mask. */
body.ss26-page .ss26-home :is(.ss26-two,.ss26-two > .ss26-panel,
  .ss26-boostinfo > div:last-child,.ss26-boosted,.boostmini){min-width:0}
@media(max-width:700px){
  body.ss26-page .ss26-home .ss26-two{
    display:grid;
    grid-template-columns:minmax(0,1fr) !important;
  }
  body.ss26-page .ss26-home .ss26-boostinfo{align-items:flex-start;gap:12px}
  body.ss26-page .ss26-home .boostmini{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.ss26-page .ss26-home :is(.ss26-servergrid,.ss26-gamegrid){grid-template-columns:repeat(2,minmax(0,1fr))}
  body.ss26-page .ss26-home .boostmini b{white-space:normal;overflow-wrap:anywhere}
}
@media(max-width:390px){
  body.ss26-page .ss26-home .boostmini{grid-template-columns:minmax(0,1fr)}
}
