/* Tools hub (D4). Same vocabulary as the homepage sheet (home.css): tokens only,
   card radius and shadow from the token sheet, 44 px targets, no colour typed here.
   The hub lives inside the live page's drawer (#drawer); the page shell styles everything else. */
#drawer *,#drawer *::before,#drawer *::after{box-sizing:border-box}
/* Drawer items carry the page's existing card class (.tcard) for its search and filter
   controls; the card box itself is the link inside, so the item wrapper draws nothing. */
#drawer li.tcard{display:block;background:none;border:0;border-radius:0;padding:0;gap:0;min-width:0}
#drawer .th-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}
#drawer .th-chips .tchip{min-height:var(--mbm-tap)}
.th-wrap{width:100%;max-width:72rem;margin-inline:auto;padding-inline:16px}
.th-kicker{margin:0 0 .25rem;font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--mbm-accent)}
.th-masthead{padding-block:2rem 1.5rem;background-color:var(--mbm-card);border-bottom:1px solid var(--mbm-primary)}
.th-masthead h1{margin:0;font-size:clamp(2rem,3vw + 1rem,2.75rem);line-height:1.1;letter-spacing:-.02em}
.th-descriptor{margin:.5rem 0 0;max-width:38rem;font-size:clamp(1.125rem,1vw + .9rem,1.375rem);line-height:1.35;font-weight:600}
.th-search{margin-top:1.25rem;max-width:38rem}
.th-search label{display:block;font-weight:700;margin-bottom:.35rem}
.th-search-row{display:flex;gap:.5rem;flex-wrap:wrap}
.th-search input{flex:1 1 14rem;min-width:0;min-height:var(--mbm-tap);padding:.5rem .875rem;font:inherit;font-size:1rem;color:var(--mbm-primary);background-color:var(--mbm-card);border:2px solid var(--mbm-primary);border-radius:var(--mbm-card-radius)}
.th-status{margin:.5rem 0 0;min-height:1.4em;font-size:.9375rem}
.th-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:var(--mbm-tap);padding-inline:1.25rem;padding-block:.5rem;border-radius:var(--mbm-card-radius);font:inherit;font-weight:700;text-decoration:none;border:2px solid transparent;cursor:pointer;transition:transform var(--mbm-motion-duration) var(--mbm-motion-ease)}
.th-btn-primary{background-color:var(--mbm-accent);color:var(--mbm-card);border-color:var(--mbm-accent);box-shadow:var(--mbm-card-shadow)}
.th-btn-outline{background-color:var(--mbm-card-raised);color:var(--mbm-primary);border-color:var(--mbm-primary)}
.th-btn:hover{transform:translateY(-1px)}
.th-shelf-nav{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.25rem}
.th-count{display:inline-flex;align-items:center;padding:.1rem .55rem;border-radius:var(--mbm-card-radius);background-color:var(--mbm-bg);font-size:.875rem;font-weight:700;font-variant-numeric:tabular-nums}
.th-facts{list-style:none;margin:1.5rem 0 0;padding:0;display:grid;gap:.75rem}
.th-facts li{display:grid;grid-template-columns:auto auto 1fr;gap:.6rem;align-items:center;font-size:.9375rem}
.th-facts b{text-transform:uppercase;letter-spacing:.05em;font-size:.8125rem}
.th-fact-icon,.th-group-icon,.th-card-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--mbm-accent)}
.th-section{padding-block:2rem}
.th-section + .th-section{border-top:1px solid var(--mbm-primary)}
.th-section-head{display:grid;gap:.4rem;margin-bottom:1.25rem}
.th-section-head h2{margin:0;font-size:clamp(1.5rem,1.2vw + 1rem,1.875rem);line-height:1.2;letter-spacing:-.015em}
.th-shelf-count{margin:0;font-size:1rem}
.th-shelf-count strong{font-variant-numeric:tabular-nums;font-size:1.25rem}
.th-lead{margin:0;max-width:40rem;font-size:1rem;line-height:1.5}
.th-group{margin-top:1.5rem}
.th-group h3{display:flex;align-items:center;gap:.5rem;margin:0 0 .75rem;font-size:1.125rem}
.th-grid{list-style:none;margin:0;padding:0;display:grid;gap:.875rem;grid-template-columns:minmax(0,1fr)}
.th-card{display:flex;align-items:flex-start;gap:.875rem;min-width:0;min-height:var(--mbm-tap);padding:1rem 1.125rem;background-color:var(--mbm-card);color:var(--mbm-primary);border:1px solid currentColor;border-radius:var(--mbm-card-radius);box-shadow:var(--mbm-card-shadow);text-decoration:none;transition:transform var(--mbm-motion-duration) var(--mbm-motion-ease)}
.th-card:hover{transform:translateY(-2px)}
.th-card-icon{flex-shrink:0;width:var(--mbm-tap);height:var(--mbm-tap);border-radius:var(--mbm-card-radius);background-color:var(--mbm-bg)}
.th-card-body{display:grid;gap:.2rem;min-width:0;flex:1 1 auto;overflow-wrap:anywhere}
.th-card-title{font-weight:700;font-size:1.0625rem;line-height:1.3;display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;min-width:0;overflow-wrap:anywhere}
.th-card-desc{font-size:.9375rem;line-height:1.45;min-width:0;overflow-wrap:anywhere}
.th-card-arrow{flex-shrink:0;align-self:center;color:var(--mbm-accent)}
.th-badge{display:inline-flex;padding:.05rem .5rem;border-radius:var(--mbm-card-radius);background-color:var(--mbm-accent);color:var(--mbm-card);font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.th-collections{margin-top:2rem}
.th-collections h3{margin:0 0 .5rem;font-size:1rem}
.th-collections ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.th-collections a,.th-elsewhere a{display:inline-flex;align-items:center;min-height:var(--mbm-tap);padding-inline:.875rem;border:1px solid currentColor;border-radius:var(--mbm-card-radius);color:var(--mbm-primary);background-color:var(--mbm-card);font-weight:600;text-decoration:none}
.th-empty{padding-block:1.5rem;font-weight:600}
.th-dock-list{list-style:none;margin:0 0 1.25rem;padding:0;display:grid;gap:.875rem;grid-template-columns:1fr}
.th-dock-list li{padding:1rem 1.125rem;background-color:var(--mbm-card);border:1px solid currentColor;border-radius:var(--mbm-card-radius)}
.th-dock-list h3{margin:0 0 .25rem;font-size:1rem}
.th-dock-list p{margin:0;font-size:.9375rem;line-height:1.45}
.th-maker-inner{display:grid;gap:1.25rem}
.th-quote{margin:0;padding:1.25rem 1.5rem;background-color:var(--mbm-card);border-left:4px solid var(--mbm-accent);border-radius:var(--mbm-card-radius)}
.th-quote p{margin:0;font-size:1.125rem;line-height:1.5}
.th-quote footer{margin-top:.6rem;font-weight:700}
.th-elsewhere{display:flex;flex-wrap:wrap;gap:.5rem;margin:0}
.th-card:focus-visible,.th-btn:focus-visible,.th-search input:focus-visible,.th-collections a:focus-visible,.th-elsewhere a:focus-visible{outline:3px solid var(--mbm-accent);outline-offset:2px}
[hidden]{display:none !important}
@media (min-width:48rem){.th-wrap{padding-inline:24px}.th-grid,.th-dock-list{grid-template-columns:repeat(2,minmax(0,1fr))}.th-facts{grid-template-columns:repeat(3,minmax(0,1fr))}.th-facts li{grid-template-columns:auto 1fr;grid-template-rows:auto auto}.th-facts li b{grid-column:2}.th-facts li span:last-child{grid-column:2}.th-facts .th-fact-icon{grid-row:1/3}}
@media (min-width:68rem){.th-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.th-dock-list{grid-template-columns:repeat(4,minmax(0,1fr))}.th-maker-inner{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:center}}
@supports (color: color-mix(in srgb, var(--mbm-primary), var(--mbm-card))){
.th-masthead{border-bottom-color:color-mix(in srgb,var(--mbm-primary) 12%,transparent);background-image:radial-gradient(50rem 24rem at 95% 0%,color-mix(in srgb,var(--mbm-accent) 14%,transparent),transparent 70%),linear-gradient(180deg,var(--mbm-card) 0%,color-mix(in srgb,var(--mbm-bg) 38%,var(--mbm-card)) 100%)}
.th-section + .th-section{border-top-color:color-mix(in srgb,var(--mbm-primary) 12%,transparent)}
.th-card,.th-dock-list li,.th-collections a,.th-elsewhere a{border-color:color-mix(in srgb,var(--mbm-primary) 18%,transparent)}
.th-card-icon{background-color:color-mix(in srgb,var(--mbm-accent) 12%,var(--mbm-bg))}
.th-btn-outline{border-color:color-mix(in srgb,var(--mbm-primary) 24%,transparent)}
.th-search input{border-color:color-mix(in srgb,var(--mbm-primary) 30%,transparent)}
}
@media (forced-colors:active){.th-card,.th-dock-list li,.th-btn,.th-quote,.th-collections a,.th-elsewhere a{border:1px solid CanvasText;box-shadow:none}.th-badge{border:1px solid CanvasText}}
@media (prefers-reduced-motion:reduce){.th-btn,.th-card{transition:none}.th-btn:hover,.th-card:hover{transform:none}}
@media print{.th-search,.th-shelf-nav,.th-dock,.th-elsewhere{display:none}.th-card{box-shadow:none;break-inside:avoid}}
