:root{--bg:#fafaf7;--fg:#1b1d1f;--muted:#5d646b;--line:#dcdfe2;--card:#fff;--accent:#0b6e4f;--accent-2:#e9f5ef;--warn:#9a4b00;--bad:#a1260d;font-size:16px}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:1rem/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--accent)}
header.site{border-bottom:1px solid var(--line);background:var(--card)}
header.site .wrap{display:flex;gap:1rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
.brand{font-weight:700;text-decoration:none;color:var(--fg);font-size:1.1rem}
.brand span{color:var(--accent)}
nav a{margin-left:1rem;font-size:.95rem;text-decoration:none}
.wrap{max-width:1080px;margin:0 auto;padding:.9rem 1rem}
h1{font-size:1.6rem;line-height:1.25;margin:.6rem 0 .3rem}
h2{font-size:1.2rem;margin:1.6rem 0 .5rem}
p.lede{color:var(--muted);margin:.2rem 0 1rem;max-width:60ch}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:820px){.grid{grid-template-columns:1fr}}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:1rem}
.card h2{margin-top:0}
label{font-size:.9rem;color:var(--muted)}
select,input{font:inherit;padding:.45rem .5rem;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--fg)}
input[type=number]{width:5.2rem}
button{font:inherit;cursor:pointer;border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:6px;padding:.45rem .8rem}
button.ghost{background:#fff;color:var(--accent)}
button.x{border:none;background:none;color:var(--muted);padding:.2rem .4rem;font-size:1.1rem}
.addrow{display:flex;gap:.5rem;flex-wrap:wrap}
.addrow select{flex:1;min-width:12rem}
table{border-collapse:collapse;width:100%;font-size:.93rem}
th,td{text-align:left;padding:.45rem .4rem;border-bottom:1px solid var(--line);vertical-align:top}
th{font-weight:600;color:var(--muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.02em}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.loads td input{width:4.2rem}
.settings{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.6rem}
.settings div{display:flex;flex-direction:column;gap:.2rem}
.big{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin:.4rem 0 .8rem}
@media(max-width:560px){.big{grid-template-columns:1fr}}
.big div{background:var(--accent-2);border-radius:8px;padding:.6rem .7rem}
.big b{display:block;font-size:1.45rem;font-variant-numeric:tabular-nums}
.big span{font-size:.82rem;color:var(--muted)}
.math{font:13px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#f3f4f1;border:1px solid var(--line);border-radius:8px;padding:.7rem;white-space:pre-wrap;overflow-x:auto}
.tag{display:inline-block;font-size:.75rem;padding:.05rem .4rem;border-radius:4px;background:#eef0f2;color:var(--muted);margin-left:.25rem}
.tag.dc{background:#fff2e0;color:var(--warn)}
.fit{color:var(--accent);font-weight:600}.nofit{color:var(--bad)}
.muted{color:var(--muted);font-size:.88rem}
.tablewrap{overflow-x:auto}
footer{border-top:1px solid var(--line);margin-top:2rem;color:var(--muted);font-size:.85rem}
.prose{max-width:70ch}
.prose table{margin:.6rem 0}
.callout{border-left:3px solid var(--accent);padding:.4rem .8rem;background:var(--accent-2);border-radius:0 6px 6px 0}
.grid>*{min-width:0}
.addrow select{min-width:0;width:100%;flex:1 1 12rem}
input[type=checkbox]{width:auto;padding:0;margin:0 .25rem 0 0;vertical-align:-2px}
.dclabel{display:inline-block;font-size:.8rem;color:var(--muted);margin-top:.15rem}
.rownote{font-size:.8rem}
@media(max-width:560px){
  .loads th:nth-child(4),.loads td:nth-child(4){display:none}
  .loads td input{width:3.6rem}
  th,td{padding:.4rem .25rem}
  nav a{margin-left:0;margin-right:.9rem}
  h1{font-size:1.4rem}
}
@media(max-width:560px){
  .loads thead{display:none}
  .loads tr{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:.2rem .5rem;border-bottom:1px solid var(--line);padding:.5rem 0}
  .loads td{border:none;padding:0}
  .loads td:first-child{grid-column:1/-1}
  .loads td[data-label]{text-align:left}
  .loads td[data-label]::before{content:attr(data-label);display:block;font-size:.72rem;color:var(--muted);text-transform:uppercase}
  .loads td:last-child{align-self:end}
}
.loads td input[type=checkbox]{width:auto}
