/* ==========================================================================
   BlueLeaf Hosting brand layer: fonts + type + palette from www.blueleafhosting.com
   Live homepage tokens (verified 2026-10-10):
     fonts: headings SamsungSharpSans-Bold (weight 400), body Manrope 400-700, labels/code "DM Mono"
     --bg #f4f3ed --paper #fffef9 --ink #151513 --muted #66655f --line #c9c7bf --soft #e9e7df
     --accent #ff5c35 --accent-2 #d94421 --positive #17734d --terminal #1c1d1a
   Loaded LAST on status.blueleafhosting.com.
   ========================================================================== */
@import url("https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700&display=swap");
@font-face{font-family:'SamsungSharpSans-Bold';src:url('/bl-skin/fonts/SamsungSharpSans-Bold.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'SamsungSharpSans-Bold';src:url('/bl-skin/fonts/SamsungSharpSans-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}

:root{
  --bl-head:'SamsungSharpSans-Bold',Manrope,sans-serif;
  --bl-text:Manrope,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --bl-mono:"DM Mono",ui-monospace,Consolas,monospace;
  --bl-accent:#ff5c35;--bl-accent-2:#d94421;--bl-positive:#17734d;
  --bl-ink:#151513;--bl-muted:#66655f;--bl-line:#c9c7bf;--bl-soft:#e9e7df;--bl-bg:#f4f3ed;--bl-paper:#fffef9;
}
html[data-theme=dark]{--bl-accent:#ff7a59;--bl-accent-2:#ff5c35}

/* ---- type ---- */
html body,html body input,html body select,html body textarea,html body button{font-family:var(--bl-text)!important;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
html body{line-height:1.55}
html body h1,html body h2,html body h3,html body h4,html body .tpsh-title{font-family:var(--bl-head)!important;font-weight:400!important;letter-spacing:0!important}
html body th,html body thead th,html body .sortbtn,html body .filt,html body button.plain,html body .tpsh-tg button,html body .tpsh-s .k,html body .k,html body label{font-family:var(--bl-text)!important;font-weight:700!important}
/* homepage uses DM Mono for kickers/labels/code */
html body code,html body pre,html body .mono,html body .c-name,html body .num,html body #ts,html body .tpsh-lbl,html body .tpsh-note,html body .kc-chip,html body th .sortbtn{font-family:var(--bl-mono)!important}
html body th,html body thead th{text-transform:uppercase;letter-spacing:.08em!important;font-size:.72rem!important}
html body .tpsh-s .v,html body td .num{font-variant-numeric:tabular-nums}

/* ---- accent = homepage orange ---- */
html body a:not(.logo):not(.brand a){color:var(--bl-accent-2)}
html[data-theme=dark] body a:not(.logo):not(.brand a){color:var(--bl-accent)}
/* filter chips: status colors stay semantic (green = online, red = offline); brand orange only marks the active one */
html body .filt.active{background:var(--bl-ink)!important;border-color:var(--bl-ink)!important;color:var(--bl-paper)!important;box-shadow:inset 0 -3px 0 var(--bl-accent)!important}
html[data-theme=dark] body .filt.active{background:color-mix(in srgb,var(--bl-accent) 16%,transparent)!important;border-color:var(--bl-accent)!important;color:#ffe3d9!important;box-shadow:none!important}
html body thead th.sorted .sortbtn,html body .sort-arrow:not(.empty){color:var(--bl-accent)!important}
html body ::selection{background:color-mix(in srgb,var(--bl-accent) 30%,transparent)}
html body :focus-visible{outline:3px solid color-mix(in srgb,var(--bl-accent) 60%,transparent)!important;outline-offset:3px}

/* primary actions = BlueLeaf orange (homepage .btn), not the old electric blue */
html body button#refbtn,html body #kcbtn,html body button.primary,html body .kc-row button:not(.showkey){background:var(--bl-accent)!important;border-color:var(--bl-accent)!important;color:#160d09!important;font-family:var(--bl-text)!important;font-weight:700!important}
html body button#refbtn:hover,html body #kcbtn:hover{background:var(--bl-accent-2)!important;border-color:var(--bl-accent-2)!important;color:#160d09!important}
html body button.rowref{color:var(--bl-accent-2)!important;background:color-mix(in srgb,var(--bl-accent) 10%,transparent)!important;border-color:color-mix(in srgb,var(--bl-accent) 40%,transparent)!important}
html[data-theme=dark] body button.rowref{color:var(--bl-accent)!important}
html body #grid tr.tpsh-open>td{box-shadow:inset 0 -2px 0 var(--bl-accent)!important}
html body .tpsh-tg button.on{background:var(--bl-accent)!important;border-color:var(--bl-accent)!important;color:#160d09!important}
/* readable status text: homepage --positive green, not neon */
html:not([data-theme=dark]) body .st.online,html:not([data-theme=dark]) body .online:not(.dot):not(.filt){color:var(--bl-positive)!important;filter:none!important}
/* timestamps match the other data columns */
html body td[data-label="Checked"],html body tbody td:nth-child(6){font-family:var(--bl-mono)!important}
html body input[type=checkbox]{accent-color:var(--bl-accent)}

/* input + header hairlines in BlueLeaf warm grey instead of blue */
html:not([data-theme=dark]) body .kc-row input,html:not([data-theme=dark]) body thead,html:not([data-theme=dark]) body thead th{border-color:var(--bl-line)!important}
html body .kc-row input:focus{border-color:var(--bl-accent)!important}
html body button.rowref{font-size:15px!important}

html body button#refbtn,html body #kcbtn{color:#160d09!important}
html[data-theme=dark] body thead th,html[data-theme=dark] body thead th .sortbtn{color:#b6b3aa!important}
