/* Shared save controls, including static vendor and price pages. */
.favorite{border:1px solid var(--line-strong);border-radius:7px;background:var(--panel);color:var(--ink);padding:4px 7px;font:inherit;font-size:12px;cursor:pointer;text-decoration:none;white-space:nowrap}
.favorite:hover{border-color:var(--glass)}
.favorite[aria-pressed=true]{color:var(--glass);background:var(--glass-soft);border-color:var(--glass)}
.saved-filter{display:flex;align-items:center;gap:6px;white-space:nowrap}
.c-list .favorite{margin-top:6px}
.wb-status{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:1000;background:var(--panel);color:var(--ink);border:1px solid var(--line-strong);border-radius:8px;padding:10px 18px;box-shadow:0 4px 20px #0002;max-width:90vw}

/* The same measured width, icon accents and heading rhythm as Trials. */
#tools{max-width:1280px;margin:0 auto;padding:28px 40px 56px;box-sizing:border-box}
#tools .wb-hero{margin:0 0 22px!important}
#tools .wb-hero h1,#tools .wb-hero h2{font:800 clamp(36px,4.6vw,56px)/1.05 "Bricolage Grotesque",sans-serif;letter-spacing:-.025em;margin:0 0 16px}
.wb-eyebrow{color:var(--glass);font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;margin:0 0 10px}
.wb-intro{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--glass);border-radius:10px;padding:16px 20px;font-size:17px;line-height:1.65;max-width:86ch;margin:0}
.wb-icon{display:block;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.wb-iconbox{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:color-mix(in srgb,var(--tool-accent,var(--glass)) 12%,var(--panel));color:var(--tool-accent,var(--glass));flex-shrink:0}
.wb-directory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 32px}
.wb-directory a{display:flex;align-items:flex-start;gap:12px;position:relative;background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:18px 16px;color:var(--ink);text-decoration:none;min-width:0;transition:border-color .15s,box-shadow .15s,transform .15s}
.wb-directory a:hover{border-color:var(--tool-accent);box-shadow:0 5px 16px color-mix(in srgb,var(--tool-accent) 9%,transparent);transform:translateY(-2px)}
.wb-directory b{display:block;font-size:16px;font-weight:700;line-height:1.35;margin:1px 0 5px}
.wb-directory small{display:block;color:var(--muted);font-size:12.5px;line-height:1.55;max-width:28ch}
.wb-card-arrow{margin:auto 0 auto auto;color:var(--tool-accent);padding-left:2px}.wb-card-arrow .wb-icon{width:17px;height:17px}
.wb-group-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:30px 0 14px}
#tools .wb-group-heading h3{font:700 23px "Bricolage Grotesque",sans-serif;margin:0;letter-spacing:-.01em}
.wb-group-heading p{color:var(--muted);font-size:13px;margin:0}
#tools .wb-partner{display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--panel-2);margin:0 0 28px}
#tools .wb-partner h3{font:700 23px "Bricolage Grotesque",sans-serif;margin:0 0 8px}
.wb-partner .wb-eyebrow{margin:0 0 8px}
.wb-partner-description{font-size:14px;color:var(--muted);margin:0;line-height:1.6}
.wb-partner .wb-primary-link{flex-shrink:0;white-space:nowrap}
.wb-partner-art{display:block;flex:0 0 240px;width:240px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#EEF2F4}
.wb-partner-art img{display:block;width:100%;height:auto}
.wb-partner>div{flex:1;min-width:0}
@media(max-width:900px){#tools .wb-partner{flex-direction:column;align-items:flex-start;gap:16px}.wb-partner-art{flex:auto;width:100%;max-width:480px}}
#tools .tools{gap:18px}
#tools .tool{padding:24px;border-radius:12px;margin-top:0}
#tools .wb-designed{border-top:3px solid color-mix(in srgb,var(--tool-accent) 60%,var(--line));scroll-margin-top:88px}
.wb-tools{margin-bottom:30px}
.wb-tool-heading{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.wb-tool-heading .wb-iconbox{width:42px;height:42px}
.wb-kicker{display:block;font-size:10px;letter-spacing:.11em;text-transform:uppercase;font-weight:700;color:var(--tool-accent);margin-bottom:3px}
#tools .wb-tool-heading h3{font:700 22px/1.2 "Bricolage Grotesque",sans-serif;margin:0;letter-spacing:-.015em}
#tools .tool>.lede{font-size:14px;line-height:1.65;color:var(--muted);max-width:85ch;margin:0 0 22px}
.wb-editor{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:28px;align-items:start}
.wb-fields,.wb-label-output,.wb-stock-output{min-width:0}
#tools .tgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
#tools .tgrid label{font-size:12px;line-height:1.5;color:var(--muted);font-weight:500}
#tools .tgrid input,#tools .tgrid select{width:100%;box-sizing:border-box;font:400 14px "Public Sans",sans-serif;color:var(--ink);background:var(--panel);border:1px solid var(--line-strong);border-radius:7px;padding:10px 11px;min-width:0;min-height:43px}
#tools .tgrid input::placeholder{color:var(--muted);opacity:.75}
#tools .tgrid label:has(#label-url){grid-column:1/-1}
#tools .tgrid .pair select{width:auto}
#tools input:focus-visible,#tools select:focus-visible,#tools a:focus-visible,#tools button:focus-visible{outline:2px solid var(--glass);outline-offset:3px}
.wb-output-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px;font-size:12px;font-weight:700}
.wb-output-heading small{color:var(--muted);font-size:11px;font-weight:400}
.wb-label-output,.wb-stock-output{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:20px}
.wb-preview{padding:0;border:0;margin:0 0 16px;background:none}
.wb-preview canvas{display:block;width:100%;height:auto;background:white;border:1px solid #b9c6cf;box-sizing:border-box;box-shadow:0 6px 16px #13233a0a}
.wb-preview[hidden],.wb-label-empty[hidden]{display:none}
.wb-label-empty{display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center;gap:10px;min-height:180px;background:var(--panel);border:1px dashed var(--line-strong);border-radius:8px;padding:16px;box-sizing:border-box}
.wb-label-empty>.wb-icon{width:35px;height:35px;color:var(--glass);margin-bottom:3px}
.wb-label-empty b,.wb-stock-empty b{font-size:15px}
.wb-label-empty span{font-size:12px;line-height:1.6;max-width:28ch;color:var(--muted)}
.wb-note{font-size:12px;color:var(--muted);line-height:1.65;margin:12px 0 0}
#label-source{border-left:2px solid var(--line-strong);padding-left:12px;margin-top:20px}
#label-message{min-height:38px}
.wb-error{color:var(--rose)}
.wb-actions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0}
.wb-actions button{border:1px solid var(--line-strong);border-radius:7px;background:var(--panel);color:var(--ink);padding:10px 12px;font:600 12px "Public Sans",sans-serif;cursor:pointer;min-height:40px}
.wb-actions button:hover{border-color:var(--tool-accent,var(--glass))}
.wb-actions button:disabled{opacity:.45;cursor:default}
#label-download,#stock-plan{color:var(--panel);background:var(--glass);border-color:var(--glass)}
#stock-plan{background:var(--c-gh);border-color:var(--c-gh);color:var(--panel)}
.wb-stock-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:200px;padding:10px}
.wb-stock-empty>.wb-icon{color:var(--c-gh);width:38px;height:38px;margin-bottom:16px}
.wb-stock-empty .wb-note{max-width:33ch}
.wb-result{font-size:14px;line-height:1.6}
.wb-coverage-number>span{font-size:12px;color:var(--muted);display:block;margin-bottom:8px}
.wb-coverage-number>b{font:800 40px/1.2 "Bricolage Grotesque",sans-serif;color:var(--c-gh);letter-spacing:-.02em}
.wb-coverage-number small{font:500 16px "Public Sans",sans-serif;color:var(--muted)}
.wb-coverage-track{height:10px;background:var(--line);border-radius:99px;overflow:hidden;margin:18px 0 8px}
.wb-coverage-track i{height:100%;background:var(--c-gh);border-radius:99px;display:block}
.wb-coverage-key{display:flex;justify-content:space-between;gap:10px;font-size:10px;color:var(--muted)}
.wb-stock-stats{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0 16px}
.wb-stock-stats div+div{border-left:1px solid var(--line);padding-left:16px}
.wb-stock-stats b{display:block;font:700 22px "Bricolage Grotesque",sans-serif}
.wb-stock-stats span{font-size:11px;color:var(--muted)}
.wb-stock-gap{border-top:1px solid var(--line);padding-top:14px;margin:0;font-size:13px}.wb-stock-gap b{color:var(--c-gh)}
.wb-list{list-style:none;padding:0;margin:14px 0 0}
.wb-list li{display:flex;flex-wrap:wrap;align-items:center;gap:10px;justify-content:space-between;border-top:1px solid var(--line);padding:12px 0;font-size:13px}
.wb-list a{color:var(--glass)}
#watchlist h4{font-size:13px;margin:24px 0 0;padding-top:18px;border-top:1px solid var(--line)}
.wb-primary-link{display:inline-flex;align-items:center;padding:10px 14px!important;background:var(--glass-soft);color:var(--glass);border-color:transparent!important;font-weight:600;font-size:13px}
#tools .wb-calculators #recon>.tgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
#tools .wb-reference{background:var(--panel-2);padding:20px 24px}
#tools .wb-reference h3{font-size:17px;margin:0 0 8px}
#tools .wb-reference .lede{font-size:13px;margin:0;max-width:none}
#tools .glist{gap:18px 28px}
#tools .glist>div{border-top:1px solid var(--line);padding-top:12px}
#tools .tnote{font-size:12px;line-height:1.65}
#tools .tout{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:16px;margin-top:18px}
@media(min-width:1001px){#recon .span2{grid-column:auto}}
@media(max-width:1000px){
  #tools{padding:24px 24px 48px}.wb-directory{grid-template-columns:repeat(2,minmax(0,1fr))}
  .wb-editor{grid-template-columns:1fr;gap:20px}.wb-label-output{max-width:none}
  .wb-label-output .wb-preview canvas{max-width:600px;margin:auto}
  .wb-card-arrow{display:none}#tools .wb-calculators #recon>.tgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  #tools{padding:22px 16px 40px}.wb-group-heading{margin-top:26px}.wb-group-heading p{max-width:40ch}
  #tools .wb-designed{scroll-margin-top:180px}#tools .tool{padding:20px}
  .wb-intro{font-size:14px;padding:14px 16px}.wb-directory{gap:10px;margin-bottom:26px}
  .wb-directory a{padding:14px;gap:10px;flex-direction:column}.wb-directory b{font-size:15px}.wb-directory small{font-size:12px}
  .wb-directory .wb-iconbox{width:34px;height:34px}.wb-directory .wb-icon{width:21px;height:21px}
  #tools .wb-tool-heading h3{font-size:21px}.wb-label-output,.wb-stock-output{padding:16px}
  #tools .tools{grid-template-columns:1fr}#tools .tgrid{gap:14px 12px}
  #tools .tool>.lede{font-size:13px;margin-bottom:18px}.wb-coverage-number>b{font-size:36px}
}
@media(max-width:380px){#tools .tgrid,#tools .wb-calculators #recon>.tgrid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.wb-directory a{transition:none}.wb-directory a:hover{transform:none}}
.wb-directory-links{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:-18px 0 30px;font-size:12px;color:var(--muted)}.wb-directory-links a{color:var(--glass);font-weight:600;text-decoration:none}.wb-directory-links a:hover{text-decoration:underline}#tools .wb-reference{scroll-margin-top:88px}@media(max-width:760px){#tools .wb-reference{scroll-margin-top:180px}.wb-directory-links{font-size:11px;gap:8px;margin-top:-12px}}
