/* FilamentSettings — site styles. Hand-written; not generated. */
:root{
  --bg:#0f1115; --panel:#171a21; --panel-2:#1e222b; --line:#2a2f3a;
  --ink:#e8eaf0; --ink-2:#aab0bd; --ink-3:#7b8290;
  --brand:#ff6a3d; --brand-ink:#fff; --accent:#36c5a8;
  --pla:#36c5a8; --petg:#4aa8ff; --abs:#ff6a3d; --asa:#f7b733; --tpu:#c77dff; --nylon:#9aa0ad;
  --yes:#36c5a8; --warn:#f7b733; --no:#ff6a6a;
  --radius:12px; --maxw:1080px;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);
  font:16px/1.6 system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 18px}
a{color:var(--petg);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{line-height:1.2;margin:0 0 .5em}
h1{font-size:clamp(1.55rem,4vw,2.3rem)}
h2{font-size:clamp(1.25rem,3vw,1.7rem);margin-top:1.6em}
h3{font-size:1.12rem}
p{margin:0 0 1em}
small,.small{font-size:.85rem;color:var(--ink-2)}
.muted{color:var(--ink-3)}
code,kbd{font-family:var(--mono);font-size:.92em}

/* header / footer */
.site-head{border-bottom:1px solid var(--line);background:rgba(15,17,21,.9);
  position:sticky;top:0;z-index:20;backdrop-filter:saturate(140%) blur(8px)}
.site-head .wrap{display:flex;align-items:center;gap:14px 18px;min-height:62px;flex-wrap:wrap;padding-top:8px;padding-bottom:8px}
.logo{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-weight:700;font-size:1.12rem}
.logo b{color:var(--brand)}
.nav{display:flex;gap:16px;margin-left:auto;flex-wrap:wrap}
.nav a{color:var(--ink-2);font-size:.95rem}
.nav a:hover{color:var(--ink)}
.site-foot{border-top:1px solid var(--line);margin-top:56px;background:var(--panel)}
.site-foot .wrap{display:grid;grid-template-columns:1.4fr 1fr;gap:28px;padding:30px 18px}
.foot-disc{font-size:.82rem;color:var(--ink-3);margin:.4em 0}
.site-foot a{color:var(--ink-2)}

/* hero */
.hero{padding:38px 0 8px}
.hero p.lede{font-size:1.12rem;color:var(--ink-2);max-width:60ch}
.crumbs{font-size:.85rem;color:var(--ink-3);margin:18px 0 0}
.crumbs a{color:var(--ink-2)}

/* badges & pills */
.badge{display:inline-block;padding:.12em .6em;border-radius:999px;font-size:.78rem;font-weight:600;
  border:1px solid var(--line);background:var(--panel-2);color:var(--ink-2);white-space:nowrap}
.mat-pla{color:var(--pla);border-color:color-mix(in srgb,var(--pla) 45%,transparent)}
.mat-petg{color:var(--petg);border-color:color-mix(in srgb,var(--petg) 45%,transparent)}
.mat-abs{color:var(--abs);border-color:color-mix(in srgb,var(--abs) 45%,transparent)}
.mat-asa{color:var(--asa);border-color:color-mix(in srgb,var(--asa) 45%,transparent)}
.mat-tpu{color:var(--tpu);border-color:color-mix(in srgb,var(--tpu) 45%,transparent)}
.mat-nylon{color:var(--nylon);border-color:color-mix(in srgb,var(--nylon) 45%,transparent)}
.dot-yes{color:var(--yes);font-weight:600}
.dot-warn{color:var(--warn);font-weight:600}
.dot-no{color:var(--no);font-weight:600}
.grade{font-family:var(--mono);font-size:.72rem;padding:.05em .4em;border-radius:5px;border:1px solid var(--line);color:var(--ink-3)}
.grade-A{color:var(--yes);border-color:color-mix(in srgb,var(--yes) 40%,transparent)}
.grade-B{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,transparent)}
.grade-C{color:var(--ink-3)}
/* per-row provenance badge: source date always visible */
.src-cell{white-space:nowrap}
.src-date{display:block;font-size:.72rem;color:var(--ink-3);margin-top:2px;font-variant-numeric:tabular-nums}

/* cards */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin:18px 0}
.card{display:block;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:16px;color:var(--ink);transition:border-color .15s,transform .15s}
.card:hover{border-color:var(--brand);transform:translateY(-2px);text-decoration:none}
.card h3{margin:.1em 0 .3em}
.card .mini{font-size:.85rem;color:var(--ink-2)}
.card-mat{border-left:4px solid var(--line)}

/* tables */
.table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);margin:14px 0}
table.db{border-collapse:collapse;width:100%;min-width:680px;font-size:.93rem}
table.db th,table.db td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
table.db thead th{background:var(--panel-2);font-size:.8rem;text-transform:uppercase;
  letter-spacing:.03em;color:var(--ink-2);font-weight:700}
table.db-sticky thead th{position:sticky;top:62px;z-index:5}
table.db tbody tr:hover{background:var(--panel)}
table.db td.num{font-family:var(--mono);white-space:nowrap}
.name-cell{font-weight:600}
.name-cell .sub{display:block;font-size:.78rem;color:var(--ink-3);font-weight:400}
.np{color:var(--ink-3);font-style:italic}

/* spec sheet (filament page) */
.spec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:18px 0}
.spec{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}
.spec .k{font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-3)}
.spec .v{font-size:1.5rem;font-weight:700;font-family:var(--mono);margin-top:2px}
.spec .v small{font-size:.85rem;color:var(--ink-2);font-family:system-ui}
.spec .sub{font-size:.82rem;color:var(--ink-2);margin-top:4px}

.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;margin:16px 0}
.panel h2,.panel h3{margin-top:.2em}
.source-line{font-size:.85rem;color:var(--ink-2)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.two-col ul{margin:.2em 0;padding-left:1.1em}
.two-col li{margin:.2em 0}

/* picker */
.picker{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin:20px 0}
.picker label{display:block;font-size:.85rem;color:var(--ink-2);margin:0 0 6px;font-weight:600}
.picker .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.picker select{width:100%;padding:11px 12px;border-radius:9px;border:1px solid var(--line);
  background:var(--panel-2);color:var(--ink);font-size:1rem;appearance:none}
.picker select:focus{outline:2px solid var(--brand);outline-offset:1px}
#picker-result{margin-top:18px}
.result-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.flag{display:flex;gap:10px;align-items:flex-start;background:var(--panel-2);border:1px solid var(--line);
  border-left:4px solid var(--warn);border-radius:9px;padding:10px 14px;margin:10px 0;font-size:.92rem}
.flag.bad{border-left-color:var(--no)}
.flag.ok{border-left-color:var(--yes)}

/* buttons */
.btn{display:inline-block;padding:11px 16px;border-radius:9px;font-weight:600;font-size:.95rem;
  border:1px solid var(--line);cursor:pointer;min-height:44px;display:inline-flex;align-items:center}
.btn-primary{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
.btn-primary:hover{filter:brightness(1.07);text-decoration:none}
.btn-hero{font-size:1.05rem;padding:13px 22px;gap:6px}
.btn-ghost{background:transparent;color:var(--ink-2)}
.btn-ghost:hover{color:var(--ink);border-color:var(--ink-3);text-decoration:none}
.btn-row{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}
/* visible focus for all interactive elements */
.btn:focus-visible{outline:3px solid var(--brand);outline-offset:2px}
.related a:focus-visible{outline:2px solid var(--petg);outline-offset:2px}
.picker select:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
table.db tbody tr:focus-visible{outline:2px solid var(--petg);outline-offset:-2px}

/* disclaimer banner */
.disc{background:color-mix(in srgb,var(--warn) 12%,var(--panel));border:1px solid color-mix(in srgb,var(--warn) 35%,var(--line));
  border-radius:var(--radius);padding:12px 16px;font-size:.9rem;color:var(--ink-2);margin:16px 0}
.disc b{color:var(--ink)}

.faq-item{border-bottom:1px solid var(--line);padding:14px 0}
.faq-item:last-child{border-bottom:0}
.faq-item h3{margin:0 0 .3em;font-size:1.02rem}
.faq-item p{margin:0;color:var(--ink-2)}

.aff-card{background:var(--panel-2);border:1px dashed var(--line);border-radius:var(--radius);padding:14px 16px;margin:16px 0}
.aff-disc{font-size:.78rem;color:var(--ink-3);margin-top:8px}

.related{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0}
.related a{background:var(--panel-2);border:1px solid var(--line);border-radius:999px;padding:6px 13px;font-size:.88rem;color:var(--ink-2)}
.related a:hover{border-color:var(--brand);color:var(--ink);text-decoration:none}

@media (max-width:680px){
  .site-head{position:static}
  .site-head .wrap{height:auto}
  .nav{margin-left:0;gap:12px 14px;width:100%}
  .site-foot .wrap{grid-template-columns:1fr}
  .two-col{grid-template-columns:1fr}
  .picker .row{grid-template-columns:1fr}
  table.db-sticky thead th{top:0}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
