/* SHDI pH monitor — HOBO MX2501 / LI-COR Cloud */
#page-ph{overflow:auto;-webkit-overflow-scrolling:touch;}
.ph-wrap{max-width:1180px;margin:0 auto;padding:22px 24px 56px;animation:us3in .25s ease;}
.ph-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px;}
.ph-kicker{font:700 11px/1 'Hanken Grotesk',sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);}
.ph-head h1{margin:6px 0 4px;font:800 28px/1.1 'Hanken Grotesk',sans-serif;letter-spacing:-.02em;color:var(--text);}
.ph-sub{margin:0;max-width:46em;font-size:13.5px;line-height:1.45;color:var(--text-2);}
.ph-grid{display:grid;grid-template-columns:minmax(260px,340px) 1fr;gap:16px;align-items:stretch;}
.ph-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:18px 20px;}
.ph-status-ph{font:800 56px/1 'IBM Plex Mono',monospace;letter-spacing:-.04em;color:var(--text);font-variant-numeric:tabular-nums;}
.ph-status-ph small{display:block;margin-top:6px;font:700 12px/1 'Hanken Grotesk',sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);}
.ph-meta{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px;}
.ph-meta dt{font:700 10px/1 'Hanken Grotesk',sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);margin-bottom:4px;}
.ph-meta dd{margin:0;font:600 16px/1.2 'IBM Plex Mono',monospace;color:var(--text);font-variant-numeric:tabular-nums;}
.ph-pill{display:inline-flex;align-items:center;gap:7px;height:28px;padding:0 10px;border-radius:999px;font:700 11px/1 'Hanken Grotesk',sans-serif;letter-spacing:.06em;text-transform:uppercase;}
.ph-pill i{width:8px;height:8px;border-radius:50%;background:currentColor;}
.ph-pill.ok{background:var(--ok-weak);color:var(--ok);}
.ph-pill.watch{background:var(--warn-weak);color:var(--warn);}
.ph-pill.alarm{background:var(--danger-weak);color:var(--danger);}
.ph-pill.stale,.ph-pill.aging,.ph-pill.never,.ph-pill.empty{background:var(--surface-2);color:var(--text-2);}
.ph-scale{margin-top:20px;}
.ph-scale-track{position:relative;height:14px;border-radius:999px;background:linear-gradient(90deg,#c0392b 0%,#e67e22 18%,#f1c40f 36%,#27ae60 50%,#1abc9c 64%,#2980b9 82%,#8e44ad 100%);box-shadow:inset 0 0 0 1px rgba(0,0,0,.18);}
.ph-scale-band{position:absolute;top:-3px;bottom:-3px;border:1px dashed rgba(255,255,255,.55);border-radius:8px;pointer-events:none;}
.ph-scale-needle{position:absolute;top:-7px;width:4px;height:28px;margin-left:-2px;border-radius:2px;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.35),0 4px 10px rgba(0,0,0,.35);}
.ph-scale-labels{display:flex;justify-content:space-between;margin-top:8px;font:500 10px/1 'IBM Plex Mono',monospace;color:var(--text-3);}
.ph-chart-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px;}
.ph-chart-head h2{margin:0;font:700 15px 'Hanken Grotesk',sans-serif;color:var(--text);}
.ph-chart-head span{font-size:12px;color:var(--text-3);}
.ph-chart{width:100%;height:320px;display:block;}
.ph-empty{padding:36px 12px;text-align:center;color:var(--text-2);font-size:14px;line-height:1.5;}
.ph-empty strong{display:block;margin-bottom:6px;color:var(--text);font-size:16px;}
.ph-note{margin-top:14px;font-size:12.5px;line-height:1.45;color:var(--text-3);}
.ph-admin{margin-top:16px;}
.ph-admin h2{margin:0 0 4px;font:700 15px 'Hanken Grotesk',sans-serif;}
.ph-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px;}
.ph-form label{display:flex;flex-direction:column;gap:5px;font:700 11px/1 'Hanken Grotesk',sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);}
.ph-form .wide{grid-column:1/-1;}
.ph-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;}
.ph-msg{margin-top:10px;font-size:13px;color:var(--text-2);}
.ph-msg.err{color:var(--danger);}
@media (max-width:860px){
  .ph-wrap{padding:16px 14px 48px;}
  .ph-grid,.ph-form,.ph-meta{grid-template-columns:1fr;}
  .ph-status-ph{font-size:44px;}
  .ph-chart{height:240px;}
}
