:root{--ink:#23263a;--teal:#23263a;--teal2:#2a9d57;--sand:#f3f2fa;--gold:#3fbf62;--line:#e1e0ee;--muted:#5a6078;--good:#2fb36a;--mid:#ff8a3d;--low:#e5484d;--g1:#7ddc4b;--g2:#2fbf71;--peri:#c7cdff}
*{box-sizing:border-box}body{margin:0;font-family:"DM Sans",system-ui,-apple-system,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--sand);line-height:1.6}
h1,h2,h3{font-family:Outfit,Poppins,system-ui,sans-serif;font-weight:600;color:var(--teal);line-height:1.2}h1{font-size:clamp(2rem,5vw,3.2rem);margin:.2em 0}h2{font-size:2rem}h3{font-size:1.4rem;margin:0}
a{color:var(--teal2)}.wrap{max-width:1180px;margin:0 auto;padding:0 20px}.narrow{max-width:860px}
.site-header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.site-header .wrap{display:flex;justify-content:space-between;align-items:center;min-height:68px;flex-wrap:wrap;gap:8px}
.brand{font-family:Outfit,Poppins,system-ui,sans-serif;font-size:1.6rem;font-weight:600;color:var(--teal);text-decoration:none}.brand span{color:var(--gold)}
nav a{margin-left:22px;text-decoration:none;color:var(--ink);font-size:.92rem;letter-spacing:.04em;text-transform:uppercase}nav a:hover{color:var(--gold)}
.hero{background:linear-gradient(135deg,var(--teal),#14383a);color:#fff;padding:80px 0 70px}.hero h1{color:#fff;max-width:780px}.lede{max-width:680px;font-size:1.1rem;opacity:.9}
.eyebrow{text-transform:uppercase;letter-spacing:.2em;color:var(--gold);font-size:.8rem;margin:0}
.btn{display:inline-block;background:var(--gold);color:#fff;border:0;border-radius:40px;padding:12px 28px;font:600 .95rem "DM Sans",sans-serif;text-decoration:none;cursor:pointer}.btn:hover{background:#9a7a48}.btn.small{padding:6px 14px;font-size:.8rem}.btn.delete{background:var(--low)}.btn.approve{background:var(--good)}
.warning{background:#fff7e8;border-left:4px solid var(--gold);padding:14px 18px;margin:30px 0;border-radius:6px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:22px}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;display:flex;flex-direction:column;box-shadow:0 2px 10px rgba(30,77,79,.05)}
.card-top{display:flex;align-items:center;gap:12px}.card-top h3{flex:1}.card-top h3 a{text-decoration:none;color:var(--teal)}.rank{color:var(--gold);font-weight:600}
.overall{font-weight:700;font-size:1.3rem;border-radius:50%;width:54px;height:54px;display:flex;align-items:center;justify-content:center;color:#fff;flex:none}
.good{background:var(--good)}.mid{background:var(--mid)}.low{background:var(--low)}.na{background:var(--muted)}
.scores{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;margin:16px 0 8px}.scores div{border-bottom:1px dashed var(--line)}.scores dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.scores dd{margin:0;font-weight:600}
.notes{font-size:.9rem;color:#3c4649;flex:1}.card-foot{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:.85rem;align-items:center;border-top:1px solid var(--line);padding-top:12px}.more{margin-left:auto;font-weight:600}
.community,.muted{color:var(--muted)}.small{font-size:.8rem}
.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px 30px;margin:34px 0}.disclaimer{border-left:4px solid var(--low)}
.score-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:20px 0}.big{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;text-align:center}.big span{display:block;font-size:2.2rem;font-weight:700;font-family:Outfit,Poppins,system-ui,sans-serif}.big small{text-transform:uppercase;letter-spacing:.06em;font-size:.72rem}.big.good,.big.mid,.big.low{color:#fff}
.sources{font-size:.85rem;word-break:break-all}.review{border-top:1px solid var(--line);padding:10px 0}.stars{color:var(--gold)}
.review-form label{display:block;margin:12px 0;font-weight:500}.review-form input[type=text],.review-form input[type=password],.review-form textarea{display:block;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font:inherit;margin-top:4px}
fieldset{border:1px solid var(--line);border-radius:8px;margin:12px 0}.star{display:inline-block!important;margin:4px 12px 4px 0!important;font-weight:400}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.ok{color:var(--good);font-weight:600}.err{color:var(--low);font-weight:600}
.table-wrap{overflow-x:auto}table.admin{width:100%;border-collapse:collapse;background:#fff}table.admin th,table.admin td{border:1px solid var(--line);padding:8px;vertical-align:top;font-size:.88rem}.actions form{display:inline}
.site-footer{background:var(--teal);color:#d9e4e2;padding:30px 0;margin-top:50px;font-size:.88rem}
@media(max-width:640px){nav a{margin:0 12px 0 0;font-size:.8rem}.hero{padding:50px 0}.cards{grid-template-columns:1fr}.panel{padding:20px}}

/* vibrant restyle */
h1,h2,h3{font-weight:700;letter-spacing:-.01em}
.site-header{background:#23263a;border-bottom:0}.brand{color:#fff}.brand span{background:linear-gradient(90deg,var(--g1),var(--g2));-webkit-background-clip:text;background-clip:text;color:transparent}
nav a{color:#e6e8ff;font-weight:500}nav a:hover{color:var(--g1)}
.hero{background:radial-gradient(1200px 400px at 85% -10%,rgba(199,205,255,.35),transparent 60%),linear-gradient(120deg,#23263a 0%,#2e3a6e 55%,#2f9e6a 100%)}
.eyebrow{color:var(--g1);font-weight:700}
.btn{background:linear-gradient(90deg,var(--g1),var(--g2));border-radius:99px;box-shadow:0 6px 18px rgba(47,191,113,.35);color:#0f2a17}.btn:hover{filter:brightness(1.06);background:linear-gradient(90deg,var(--g1),var(--g2))}
.btn.delete{background:var(--low);color:#fff;box-shadow:none}.btn.approve{background:var(--good);color:#fff;box-shadow:none}
.warning{background:#fff4ea;border-left-color:var(--mid)}
.card{border-radius:10px;border:1px solid var(--line);box-shadow:0 8px 24px rgba(35,38,58,.07);transition:transform .15s,box-shadow .15s;border-top:4px solid transparent;border-image:linear-gradient(90deg,var(--g1),var(--g2),var(--peri)) 1 0 0 0}
.card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(35,38,58,.12)}
.card-top h3 a{color:var(--ink)}.rank{color:#5b63d6;font-family:Outfit,sans-serif;font-weight:700}
.overall{font-family:Outfit,sans-serif}.good{background:linear-gradient(135deg,var(--g1),var(--g2))}.mid{background:linear-gradient(135deg,#ffb347,var(--mid))}.low{background:linear-gradient(135deg,#ff7a7f,var(--low))}
.panel{border-radius:10px}#method{border-top:4px solid var(--peri)}.disclaimer{border-left-color:var(--low)}
.big{border-radius:10px}.big span{font-family:Outfit,sans-serif}.stars{color:#ff9f1a}
.site-footer{background:#23263a;color:#c7cdff}

/* v2 directory usability */
.directory-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:18px;background:white;border:1px solid var(--line);border-radius:12px;margin:16px 0 22px}
.directory-controls label{font-size:.85rem;font-weight:700}
.directory-controls input,.directory-controls select{border:1px solid #c4c7d4;border-radius:8px;padding:11px 12px;font:inherit;min-width:175px}
.directory-controls input{flex:1;min-width:220px}
#supplierCount{font-size:.85rem;color:var(--muted)}
.card[hidden]{display:none!important}
:focus-visible{outline:3px solid #5d72ed;outline-offset:3px}
@media(max-width:650px){.directory-controls input,.directory-controls select{width:100%}}
