/* =========================================================================
   suite.css — shared style system for the manufacturing calculator suite.
   Used by safety-stock.html + reorder-point.html.
   ponytail: index.html keeps its own inline copy (it was shipped/verified
   standalone). Consolidate index.html onto this file next time it's touched. */
:root{
  color-scheme:light;
  --bg:#F6F7F4; --surface:#FFFFFF; --surface-2:#FBFBF9;
  --ink:#15202B; --muted:#5C6975; --muted-2:#626C78;
  --line:#E0E5E8; --line-2:#EDF0F1;
  --signal:#E0791F; --signal-soft:#FBEEDE; --signal-deep:#A8560F;
  --steel:#2C6E8E; --steel-soft:#E7F0F4;
  --go:#1C7350; --go-soft:#E2F2EC;
  --body-text:#28333D;          /* long-form paragraph text (softer than --ink) */
  --tint-border:#CFE2EA;        /* steel-tint borders on the vs-strip */
  --bad-fg:#A23B2B; --bad-bg:#FCF1EF;   /* error rows / bad CSV lines */
}
/* dark theme — flip the same vars so every component adapts from one place.
   Applied via <html data-theme="dark"> set by an early inline script (no flash). */
[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0F141A; --surface:#161C24; --surface-2:#1C232D;
  --ink:#E6EBF0; --muted:#9DA9B5; --muted-2:#AAB6C2;
  --line:#2A333E; --line-2:#1E2630;
  --signal:#F08C33; --signal-soft:#2E2213; --signal-deep:#EDA95C;
  --steel:#5FA6CB; --steel-soft:#16242E;
  --go:#3FB07E; --go-soft:#13251D;
  --body-text:#C5CED6;
  --tint-border:#2A333E;
  --bad-fg:#F09284; --bad-bg:#2A1618;
}
/* dark-only component fixes for spots where a single var can't serve both roles */
[data-theme="dark"] .btn{background:var(--signal);color:#10161d}   /* light-orange text-var can't back a white-label button → solid orange + dark text */
[data-theme="dark"] .btn:hover{background:#F5A04D}
[data-theme="dark"] .btn-sec:hover{color:#10161d}
[data-theme="dark"] .suite-nav a.active{border-color:#5A4326}
[data-theme="dark"] .formula{background:#0A0E13;color:#E6EBF0}    /* inverted panel: --ink flips light in dark, so pin an explicit inset */
*{margin:0;padding:0;box-sizing:border-box}

/* theme toggle — injected by suite.js (renderThemeToggle), one per page */
.theme-toggle{position:fixed;top:14px;right:14px;z-index:50;width:38px;height:38px;border-radius:19px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(20,30,40,.10);transition:border-color .15s,background .15s,transform .15s}
.theme-toggle:hover{border-color:var(--signal);transform:translateY(-1px)}
@media print{.theme-toggle{display:none}}
html{scroll-behavior:smooth}
body{
  background:var(--bg);color:var(--ink);
  font-family:"IBM Plex Sans",system-ui,sans-serif;font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased;
  background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);
  background-size:46px 46px;
}
.wrap{max-width:880px;margin:0 auto;padding:0 20px}
.mono{font-family:"IBM Plex Mono",monospace}

/* header */
header{padding:48px 0 8px}
.eyebrow{font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--signal-deep);display:flex;align-items:center;gap:9px;margin-bottom:16px}
.eyebrow::before{content:"";width:24px;height:2px;background:var(--signal)}
h1{font-family:"Space Grotesk",sans-serif;font-weight:700;font-size:clamp(30px,5.5vw,46px);line-height:1.05;letter-spacing:-.02em}
h1 .u{color:var(--signal)}
.lede{color:var(--muted);font-size:17px;max-width:600px;margin-top:14px}

/* suite nav */
.suite-nav{display:flex;gap:7px;flex-wrap:wrap;margin-top:20px}
.suite-nav a{font-family:"Space Grotesk";font-weight:600;font-size:13px;text-decoration:none;color:var(--muted);padding:8px 14px;border:1px solid var(--line);border-radius:22px;background:var(--surface);display:inline-flex;align-items:center;gap:7px;transition:border-color .15s,color .15s,background .15s}
.suite-nav a:hover{border-color:var(--signal);color:var(--ink)}
.suite-nav a.active{background:var(--signal-soft);color:var(--signal-deep);border-color:#F0D3AE}
.suite-nav a .step{font-family:"IBM Plex Mono";font-size:10px;opacity:.7}

/* calculator card */
.calc{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-top:24px;box-shadow:0 1px 2px rgba(20,30,40,.03),0 8px 24px rgba(20,30,40,.04)}
.calc-head{padding:16px 24px;border-bottom:1px solid var(--line);background:var(--surface-2);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.calc-head .ct{font-family:"Space Grotesk";font-weight:600;font-size:15px}
.calc-head .badge{font-family:"IBM Plex Mono";font-size:11px;color:var(--steel);background:var(--steel-soft);padding:4px 9px;border-radius:3px;letter-spacing:.03em}
.calc-body{display:grid;grid-template-columns:1fr 1fr;gap:0}
.inputs{padding:24px;border-right:1px solid var(--line)}
.results{padding:24px;background:var(--surface-2)}
.field{margin-bottom:16px}
.field:last-child{margin-bottom:0}
.field label{display:block;font-size:13px;font-weight:500;color:var(--ink);margin-bottom:5px}
.field label .unit{color:var(--muted-2);font-weight:400;font-family:"IBM Plex Mono";font-size:11px}
.field input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:6px;font-family:"IBM Plex Mono";font-size:15px;color:var(--ink);background:var(--surface);transition:border-color .15s,box-shadow .15s}
.field input:focus{outline:none;border-color:var(--signal);box-shadow:0 0 0 3px var(--signal-soft)}
.field input.prefilled{border-color:#BFE3D4;background:var(--go-soft)}
.field .hint{font-size:11px;color:var(--muted-2);margin-top:4px}
.field .hint.from{color:var(--go)}
.btn{width:100%;margin-top:6px;padding:12px;border:none;border-radius:6px;background:var(--signal-deep);color:#fff;font-family:"Space Grotesk";font-weight:600;font-size:15px;cursor:pointer;transition:background .15s}
.btn:hover{background:#8F480C}
.err{display:none;margin-top:12px;padding:10px 12px;background:#FBE9E6;border:1px solid #E8A99F;border-radius:6px;color:#A23B2B;font-size:13px}
.err.show{display:block}

/* results */
.res-primary{text-align:center;padding:8px 0 18px;border-bottom:1px dashed var(--line);margin-bottom:18px}
.res-primary .rl{font-family:"IBM Plex Mono";font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2);margin-bottom:6px}
.res-primary .rv{font-family:"Space Grotesk";font-weight:700;font-size:46px;line-height:1;color:var(--signal-deep)}
.res-primary .ru{font-size:13px;color:var(--muted);margin-top:6px}
.res-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:7px;overflow:hidden}
.rc{background:var(--surface);padding:13px 14px}
.rc.wide{grid-column:1/-1}
.rc .l{font-size:11px;color:var(--muted);font-family:"IBM Plex Mono";letter-spacing:.02em}
.rc .v{font-family:"Space Grotesk";font-weight:600;font-size:19px;color:var(--ink);margin-top:3px}
.res-placeholder{color:var(--muted-2);text-align:center;padding:40px 10px;font-size:14px}

/* breakdown strip (cycle + safety = ROP, etc.) */
.vs-strip{margin-top:18px;background:var(--steel-soft);border:1px solid var(--tint-border);border-radius:7px;padding:14px 16px}
.vs-strip .vt{font-family:"IBM Plex Mono";font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--steel);margin-bottom:8px}
.vs-row{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;padding:3px 0}
.vs-row .k{color:var(--muted)}
.vs-row .n{font-family:"IBM Plex Mono";font-weight:500;color:var(--ink)}
.vs-row .n.good{color:var(--go)}
.vs-row.total{border-top:1px solid var(--tint-border);margin-top:6px;padding-top:8px}
.vs-row.total .k{font-weight:600;color:var(--ink)}
.vs-row.total .n{font-weight:700;color:var(--signal-deep)}

/* continue / hand-off button */
.handoff{margin-top:18px;display:flex;flex-direction:column;gap:8px}
.btn-next{appearance:none;text-decoration:none;display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--go);background:var(--go-soft);color:var(--go);font-family:"Space Grotesk";font-weight:600;font-size:14px;padding:12px 16px;border-radius:8px;cursor:pointer;transition:background .15s,color .15s}
.btn-next:hover{background:var(--go);color:#fff}
.btn-next .arr{font-size:17px}
.btn-sec{appearance:none;text-decoration:none;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-family:"Space Grotesk";font-weight:600;font-size:13px;padding:8px 14px;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:border-color .15s,background .15s}
.btn-sec:hover{border-color:var(--signal);background:var(--surface-2)}

/* content / SEO */
section.content{margin-top:40px}
section.content h2{font-family:"Space Grotesk";font-weight:700;font-size:24px;letter-spacing:-.01em;margin:32px 0 12px}
section.content h3{font-family:"Space Grotesk";font-weight:600;font-size:17px;margin:22px 0 8px}
section.content p{color:var(--body-text);margin-bottom:14px}
.formula{background:var(--ink);color:#E8EDF1;border-radius:8px;padding:20px 22px;font-family:"IBM Plex Mono";font-size:15px;margin:16px 0;overflow-x:auto;line-height:1.5}
.formula .var{color:var(--signal)}
.formula .sub{font-size:12px;color:#9AA7B2;display:block;margin-top:10px;line-height:1.8}
.callout{border-left:3px solid var(--steel);background:var(--steel-soft);padding:14px 18px;border-radius:0 6px 6px 0;margin:16px 0;font-size:14.5px}

/* faq */
.faq{margin-top:8px}
.faq details{border:1px solid var(--line);border-radius:8px;margin-bottom:10px;background:var(--surface);overflow:hidden}
.faq summary{padding:15px 18px;font-family:"Space Grotesk";font-weight:500;font-size:15px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:"IBM Plex Mono";color:var(--signal);font-size:20px}
.faq details[open] summary::after{content:"\2212"}
.faq .fa{padding:0 18px 16px;color:var(--body-text);font-size:14.5px}

.badges{margin-top:44px;display:flex;align-items:center;flex-wrap:wrap;gap:14px}
.badges:empty{display:none}
.badges-label{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2)}
.badges img{height:40px;width:auto;opacity:.9;transition:opacity .15s}
.badges a:hover img{opacity:1}
footer{margin-top:48px;padding:28px 0 60px;border-top:1px solid var(--line);color:var(--muted-2);font-size:13px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
footer .mono{font-size:12px}

/* P2 — share link + monetization */
.share-row{display:flex;justify-content:flex-end;margin-top:14px}
.cta-erp{margin-top:20px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--signal);border-radius:8px;padding:14px 18px}
.cta-tx{display:flex;flex-direction:column;gap:2px}
.cta-tx b{font-family:"Space Grotesk";font-weight:600;font-size:15px;color:var(--ink)}
.cta-tx span{font-size:13px;color:var(--muted)}
.cta-btn{appearance:none;text-decoration:none;white-space:nowrap;border:1px solid var(--signal);background:var(--surface);color:var(--signal-deep);font-family:"Space Grotesk";font-weight:600;font-size:13px;padding:9px 15px;border-radius:7px;cursor:pointer;transition:background .15s,color .15s}
.cta-btn:hover{background:var(--signal);color:#fff}
/* method / assumptions note — small E-E-A-T trust line under the calculator */
.method{margin-top:14px;font-family:"IBM Plex Mono";font-size:11.5px;line-height:1.55;color:var(--muted-2)}
.method b{color:var(--steel);font-weight:500}

/* F6 — trust / credibility strip under the header (E-E-A-T + privacy signal, all pages) */
.trust{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:18px;padding:11px 16px;background:var(--surface);border:1px solid var(--line);border-radius:8px}
.trust:empty{display:none}
.trust span{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted)}
.trust span::before{content:"\2713";color:var(--go);font-weight:700;font-family:"IBM Plex Mono";font-size:12px}

/* F2 — related-tools cluster: a REAL topical link module (the giants link to random calculators; we cross-link the suite) */
.related{margin-top:44px}
.related:empty{display:none}
.related .rh{font-family:"IBM Plex Mono";font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2);margin-bottom:12px}
.related .rgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.related a{text-decoration:none;border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:15px 17px;display:block;transition:border-color .15s,transform .15s,box-shadow .15s}
.related a:hover{border-color:var(--signal);transform:translateY(-2px);box-shadow:0 6px 18px rgba(20,30,40,.06)}
.related .rt{font-family:"Space Grotesk";font-weight:600;font-size:15px;color:var(--ink);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.related .rt .st{font-family:"IBM Plex Mono";font-size:10px;font-weight:400;color:var(--signal-deep);background:var(--signal-soft);padding:2px 7px;border-radius:20px}
.related .rd{font-size:12.5px;color:var(--muted);margin-top:5px;line-height:1.5}
.related .rarr{color:var(--signal);font-family:"IBM Plex Mono";font-size:12px;margin-top:9px;display:inline-block}

@media(max-width:680px){
  .calc-body{grid-template-columns:1fr}
  .inputs{border-right:none;border-bottom:1px solid var(--line)}
  .res-grid{grid-template-columns:1fr 1fr}
  .related .rgrid{grid-template-columns:1fr}
  .cta-erp{flex-direction:column;align-items:stretch}
  .cta-btn{text-align:center}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
