/* ActivatedSludge.com site styles. Mobile first, no frameworks. */
*{box-sizing:border-box}
:root{--navy:#0B2A5B;--navy2:#071C3F;--blue:#1E88E5;--blue2:#0B6BC2;--green:#43A047;--green2:#2E7D32;--ink:#14213D;--muted:#4A5872;--soft:#EEF5FD;--soft2:#E8F5E9;--warn:#FFF4E5;--warnb:#E65100;--line:#C9D8EC;--radius:12px;--shadow:0 6px 20px rgba(11,42,91,.10)}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;font-size:18px;line-height:1.65;color:var(--ink);background:#fff}
a{color:var(--blue2);text-underline-offset:3px}
a:hover{color:var(--navy)}
:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
img,svg{max-width:100%;height:auto}
h1,h2,h3,h4{color:var(--navy);line-height:1.25;margin:1.4em 0 .5em}
h1{font-size:2rem;margin-top:0}
h2{font-size:1.5rem}
h3{font-size:1.2rem}
p,ul,ol{margin:0 0 1em}
li{margin-bottom:.35em}
.wrap{max-width:1160px;margin:0 auto;padding:0 18px}
.skip{position:absolute;left:-9999px;top:6px;background:var(--navy);color:#fff;padding:10px 16px;z-index:200;font-weight:700}
.skip:focus{left:8px}
code,.mono{font-family:ui-monospace,Consolas,Menlo,monospace;font-size:.92em}
.small{font-size:.9rem;color:var(--muted)}
/* header */
.topbar{background:var(--navy2);color:#dfe9f7;font-size:.85rem}
.topbar .wrap{display:flex;flex-wrap:wrap;gap:4px 18px;justify-content:space-between;padding-top:6px;padding-bottom:6px}
.topbar a{color:#fff;text-decoration:none}
.topbar a:hover{text-decoration:underline}
header.site{background:#fff;border-bottom:4px solid var(--green);position:sticky;top:0;z-index:100;box-shadow:0 2px 10px rgba(11,42,91,.10)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:8px;padding-bottom:8px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--navy)}
.brand img{width:48px;height:48px}
.brand .name{font-weight:800;font-size:1.15rem;line-height:1.1;display:block}
.brand .tag{font-size:.75rem;color:var(--muted);display:block;font-weight:600}
.navbtn{background:var(--navy);color:#fff;border:0;border-radius:8px;padding:10px 14px;font:inherit;font-weight:700;cursor:pointer}
nav.main{display:none;width:100%}
nav.main.open{display:block}
header.site .wrap{flex-wrap:wrap}
nav.main ul{list-style:none;margin:0;padding:0}
nav.main>ul>li{border-top:1px solid var(--line);position:relative}
nav.main a.top,nav.main button.top{display:flex;justify-content:space-between;align-items:center;width:100%;padding:12px 6px;background:none;border:0;font:inherit;font-weight:800;color:var(--navy);text-decoration:none;cursor:pointer;letter-spacing:.02em;text-align:left}
nav.main button.top::after{content:"";border:solid var(--navy);border-width:0 2px 2px 0;padding:3px;transform:rotate(45deg);margin-left:8px}
nav.main button.top[aria-expanded="true"]::after{transform:rotate(-135deg)}
nav.main ul.sub{display:none;padding:0 0 10px 12px}
nav.main ul.sub.open{display:block}
nav.main ul.sub a{display:block;padding:7px 6px;color:var(--ink);text-decoration:none}
nav.main ul.sub a:hover{color:var(--blue2);text-decoration:underline}
nav.main a[aria-current="page"]{color:var(--blue2)}
nav.main a.nav-train,nav.main a.nav-train:hover{color:#fff!important;background:var(--green2);border-radius:8px;padding:10px 14px!important;margin:8px 0}
@media(min-width:1000px){
 .navbtn{display:none}
 header.site .wrap{flex-wrap:nowrap}
 nav.main{display:block;width:auto}
 nav.main>ul{display:flex;gap:2px;align-items:center}
 nav.main>ul>li{border:0}
 nav.main a.top,nav.main button.top{padding:10px 12px;border-radius:8px;font-size:.92rem}
 nav.main a.top:hover,nav.main button.top:hover{background:var(--soft)}
 nav.main ul.sub{position:absolute;left:0;top:100%;background:#fff;min-width:250px;border:1px solid var(--line);border-top:3px solid var(--blue);border-radius:0 0 10px 10px;box-shadow:var(--shadow);padding:8px}
 nav.main li:hover>ul.sub,nav.main li:focus-within>ul.sub{display:block}
 nav.main li.right ul.sub{left:auto;right:0}
 nav.main a.nav-train{margin:0 0 0 6px} nav.main a.nav-train:hover{background:var(--navy)}
}
/* hero */
.hero{background:linear-gradient(120deg,var(--navy2),var(--navy) 50%,var(--blue2));color:#fff;position:relative;overflow:hidden}
.hero .wrap{padding-top:40px;padding-bottom:44px;position:relative;z-index:1}
.hero h1{color:#fff;font-size:2.1rem;margin-bottom:.3em}
.hero p.lead{font-size:1.15rem;color:#E3EEFB;max-width:760px}
.hero .eyebrow{display:inline-block;background:var(--green2);color:#fff;font-weight:800;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;padding:5px 12px;border-radius:99px;margin-bottom:12px}
.hero svg.heroart{position:absolute;right:-40px;bottom:-10px;width:520px;opacity:.20;z-index:0}
.pagehead{background:linear-gradient(120deg,var(--navy2),var(--navy) 60%,var(--blue2));color:#fff}
.pagehead .wrap{padding-top:22px;padding-bottom:26px}
.pagehead h1{color:#fff;margin:.2em 0 .2em;font-size:1.8rem}
.pagehead p{color:#E3EEFB;margin:0;max-width:820px}
.crumbs{font-size:.85rem;color:#cfe0f5}
.crumbs a{color:#fff}
@media(min-width:760px){.hero h1{font-size:3rem}.pagehead h1{font-size:2.3rem}h1{font-size:2.4rem}}
main{display:block}
.section{padding:28px 0}
.section.alt{background:var(--soft)}
/* cards */
.grid{display:grid;gap:14px;grid-template-columns:1fr}
@media(min-width:600px){.grid.g2,.grid.g3,.grid.g4{grid-template-columns:1fr 1fr}}
@media(min-width:960px){.grid.g3{grid-template-columns:repeat(3,1fr)}.grid.g4{grid-template-columns:repeat(4,1fr)}}
.card{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s,border-color .15s}
a.card:hover{transform:translateY(-2px);border-color:var(--blue);box-shadow:0 10px 26px rgba(11,42,91,.16);color:var(--ink)}
.card h3{margin:.2em 0 .3em;font-size:1.12rem}
.card p{margin:0;color:var(--muted);font-size:.95rem}
.card.big{padding:22px;border-left:6px solid var(--blue)}
.card.big .ico{width:46px;height:46px;display:block;margin-bottom:6px}
.card.big:nth-child(3n+2){border-left-color:var(--green)}
.card.big:nth-child(3n){border-left-color:var(--navy)}
.card.sym{border-top:5px solid var(--warnb)}
.tag{display:inline-block;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--green2);background:var(--soft2);padding:2px 8px;border-radius:99px}
/* content */
.content{max-width:820px}
.layout{display:grid;gap:28px;grid-template-columns:1fr;padding:26px 0 36px}
@media(min-width:1000px){.layout{grid-template-columns:minmax(0,1fr) 300px}}
aside.side .box{background:var(--soft);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:16px;font-size:.95rem}
aside.side h2{font-size:1.05rem;margin:0 0 .5em}
aside.side ul{padding-left:18px;margin:0}
.callout{border-left:5px solid var(--blue);background:var(--soft);padding:12px 16px;border-radius:0 10px 10px 0;margin:1em 0}
.callout.warn{border-color:var(--warnb);background:var(--warn)}
.callout.ok{border-color:var(--green);background:var(--soft2)}
.deeper{margin:28px 0 8px;padding:16px 18px;border:2px solid var(--green);border-radius:var(--radius);background:#F6FBF6}
.deeper h2{font-size:1.1rem;margin:0 0 .3em;color:var(--green2)}
.deeper p{margin:0}
figure{margin:1.2em 0}
figure svg{display:block;width:100%;height:auto;background:#fff;border:1px solid var(--line);border-radius:10px}
figcaption{font-size:.9rem;color:var(--muted);margin-top:6px}
table{border-collapse:collapse;width:100%;margin:0 0 1.2em;font-size:.95rem}
th,td{border:1px solid var(--line);padding:7px 9px;text-align:left;vertical-align:top}
th{background:var(--soft);color:var(--navy)}
.tablewrap{overflow-x:auto}
.diag h2{display:flex;align-items:center;gap:10px}
.diag h2 .n{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--navy);color:#fff;font-size:.95rem;flex:none}
.diag section.help h2 .n{background:var(--warnb)}
.photo-ph{border:2px dashed var(--line);border-radius:10px;padding:22px;text-align:center;color:var(--muted);background:#FAFCFF;font-weight:600}
/* buttons and forms */
.btn{display:inline-block;background:var(--navy);color:#fff;text-decoration:none;font-weight:800;padding:11px 18px;border-radius:9px;border:2px solid var(--navy);cursor:pointer;font:inherit;font-weight:800}
.btn:hover{background:var(--blue2);border-color:var(--blue2);color:#fff}
.btn.alt{background:#fff;color:var(--navy)}
.btn.green{background:var(--green2);border-color:var(--green2)}
.btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
label{font-weight:700;display:block;margin-bottom:3px;font-size:.95rem}
input[type=number],input[type=text],input[type=search],select,textarea{width:100%;font:inherit;padding:9px 10px;border:2px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}
input:focus,select:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px rgba(30,136,229,.25)}
input[aria-invalid="true"]{border-color:#C62828;background:#FFF5F5}
.field{margin-bottom:12px}
.field .hint{font-size:.82rem;color:var(--muted)}
.field .err{font-size:.85rem;color:#B71C1C;font-weight:700;display:none}
.field .err.show{display:block}
.inrow{display:flex;gap:6px;align-items:center}
.inrow .u{min-width:92px;font-size:.88rem;color:var(--muted)}
/* calculators */
.calc{background:#fff;border:2px solid var(--line);border-radius:var(--radius);padding:16px;margin:16px 0 22px;box-shadow:var(--shadow)}
.calc h2{margin-top:0;font-size:1.25rem}
.calc .fields{display:grid;gap:4px 16px;grid-template-columns:1fr}
@media(min-width:640px){.calc .fields{grid-template-columns:1fr 1fr}}
.unitswitch{display:inline-flex;border:2px solid var(--navy);border-radius:9px;overflow:hidden;margin-bottom:12px}
.unitswitch button{border:0;background:#fff;color:var(--navy);font:inherit;font-weight:700;padding:6px 14px;cursor:pointer}
.unitswitch button[aria-pressed="true"]{background:var(--navy);color:#fff}
.results{margin-top:12px;background:var(--soft2);border:1px solid #B9DDBB;border-radius:10px;padding:12px 14px;min-height:48px}
.results .r{display:flex;justify-content:space-between;gap:10px;border-bottom:1px dashed #B9DDBB;padding:4px 0}
.results .r:last-child{border-bottom:0}
.results .r b{font-size:1.1rem;color:var(--navy);text-align:right}
.results .note{font-size:.9rem;color:var(--muted);margin-top:6px}
.results.bad{background:#FFF5F5;border-color:#EF9A9A}
.formula{background:#0F203F;color:#E8F1FF;border-radius:10px;padding:12px 14px;font-family:ui-monospace,Consolas,monospace;font-size:.92rem;overflow-x:auto;white-space:pre-wrap}
.example{background:var(--warn);border:1px solid #FFCC80;border-radius:10px;padding:12px 14px}
.searchbox{position:relative;margin:10px 0 18px}
.searchbox input{font-size:1.1rem;padding:12px 14px}
.hidden{display:none!important}
/* state point */
#sp-plot{width:100%;height:auto;background:#fff;border:1px solid var(--line);border-radius:10px}
.status{font-weight:800;padding:8px 12px;border-radius:8px;display:inline-block;margin:6px 0}
.status.under{background:#E8F5E9;color:#1B5E20}
.status.crit{background:#FFF8E1;color:#8D6E00}
.status.over{background:#FFEBEE;color:#B71C1C}
/* matrix and questionnaire */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 16px}
.chips button{border:2px solid var(--navy);background:#fff;color:var(--navy);border-radius:99px;padding:7px 14px;font:inherit;font-weight:700;cursor:pointer;font-size:.92rem}
.chips button[aria-pressed="true"]{background:var(--navy);color:#fff}
.mx-panel{border:2px solid var(--line);border-radius:var(--radius);padding:16px;background:#fff}
.mx-cols{display:grid;gap:14px;grid-template-columns:1fr}
@media(min-width:900px){.mx-cols{grid-template-columns:repeat(3,1fr)}}
.mx-cols>div{background:var(--soft);border-radius:10px;padding:12px}
.mx-cols h3{margin-top:0}
.q-step{border:2px solid var(--line);border-radius:var(--radius);padding:16px;background:#fff}
.q-step .opts{display:grid;gap:8px;margin-top:8px}
.q-step .opts button{text-align:left;border:2px solid var(--line);background:#fff;border-radius:10px;padding:10px 12px;font:inherit;cursor:pointer}
.q-step .opts button:hover{border-color:var(--blue);background:var(--soft)}
/* process map */
.pmap a .zone{transition:fill .15s,stroke-width .15s}
.pmap a:hover .zone,.pmap a:focus .zone{stroke:#43A047;stroke-width:4}
.pmap a:focus{outline:none}
.pmap text{pointer-events:none}
/* glossary */
dl.gloss dt{font-weight:800;color:var(--navy);margin-top:12px}
dl.gloss dd{margin:2px 0 0 0}
.letters{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 14px}
.letters a{display:inline-block;padding:3px 9px;border:1px solid var(--line);border-radius:6px;text-decoration:none;font-weight:700}
/* footer */
footer.site{background:var(--navy2);color:#cfdcf0;margin-top:30px;font-size:.92rem}
footer.site .wrap{padding-top:28px;padding-bottom:20px}
footer.site a{color:#fff}
footer.site h2{color:#fff;font-size:1rem;margin:0 0 .5em}
footer.site ul{list-style:none;padding:0;margin:0}
footer.site .cols{display:grid;gap:20px;grid-template-columns:1fr 1fr}
@media(min-width:900px){footer.site .cols{grid-template-columns:1.4fr 1fr 1fr 1fr 1fr}}
footer.site .fbrand{display:flex;gap:10px;align-items:center}
footer.site .fbrand img{width:56px;height:56px;border-radius:8px;background:#fff}
footer.site .legal{border-top:1px solid #23406f;margin-top:20px;padding-top:12px;font-size:.82rem}
/* print */
@media print{
 .topbar,header.site,footer.site,.noprint,aside.side,.deeper{display:none!important}
 body{font-size:11pt}
 .pagehead{background:none;color:#000}.pagehead h1,.pagehead p{color:#000}
 .formula{background:#fff;color:#000;border:1px solid #999}
 a{color:#000;text-decoration:none}
 .sheet section{break-inside:avoid}
}
/* Photomicrographs */
.photos{display:grid;grid-template-columns:1fr;gap:16px;margin:1em 0}
@media(min-width:600px){.photos{grid-template-columns:1fr 1fr}.photos.one{grid-template-columns:1fr}}
@media(min-width:1100px){.photos.idstrip{grid-template-columns:repeat(3,1fr)}}
figure.photo{margin:0;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:var(--shadow)}
figure.photo img{display:block;width:100%;height:auto;background:#222}
figure.photo figcaption{padding:10px 12px;margin:0;font-size:.9rem;line-height:1.45}
figure.photo .ind{display:block;margin-top:4px;color:var(--ink)}
.photo-note{margin-top:4px}
img.portrait{display:block;width:100%;max-width:340px;height:auto;border-radius:10px;border:1px solid var(--line);box-shadow:var(--shadow)}
img.portrait-sm{float:right;width:110px;height:auto;margin:0 0 10px 14px;border-radius:8px;border:1px solid var(--line)}
figure .credit{display:block;margin-top:4px;font-size:.85em;color:var(--muted)}
figure.diagram.illus .ind{display:block;margin-top:4px;color:var(--ink)}
figure.photo.wide{margin:1em 0}figure.photo.wide img{width:100%;height:auto;max-width:760px}
.illus-grid{display:grid;grid-template-columns:1fr;gap:16px;margin:1em 0}
@media(min-width:900px){.illus-grid{grid-template-columns:1fr 1fr}}
