/* TechBullion Tools. Tokens on the September 2026 brand; type from the plugin's own fonts.css (2.4.0).
   Public pages are light only (brand rule WEB-1): the server prints data-theme="light" on every .tbt. */
.tbt{
  --hl:#22698F;
  --ground:#efefef;
  --paper:#FFFFFF;
  --field:#ffffff;
  --ink:#222222;
  --ink-2:#596672;
  --rule:#D2D9E1;
  --grid:#E4E8ED;
  --cobalt:#002F56;
  --cobalt-wash:#EFEFEF;
  --s-start:#002f56;
  --s-contrib:#66ccff;
  --s-growth:#ffc45c;
  --win:#16704A;
  --lose:#A52B22;
  --display:"Montserrat","Helvetica Neue",Arial,sans-serif;
  --serif:"Lato","Helvetica Neue",Arial,sans-serif;
  --mono:"Lato","Helvetica Neue",Arial,sans-serif;
}
.tbt[data-theme="dark"]{
  --hl:#FFC45C;--ground:#001a2e;--paper:#002f56;--field:#104561;--ink:#FFFFFF;--ink-2:#A9C1D6;--rule:#1F4A6E;--grid:#1F4A6E;
  --cobalt:#ffc45c;--cobalt-wash:rgba(255,196,92,.14);--s-start:#ffffff;--s-contrib:#66ccff;--s-growth:#ffc45c;--win:#5CC294;--lose:#E8837A;color-scheme:dark;
}
.tbt *{box-sizing:border-box}
.tbt body{background:var(--ground);color:var(--ink);font:17px/1.6 var(--serif);padding-inline:16px;padding-block:0 80px}
.tbt-page{max-width:1120px;margin:0 auto}
.tbt-crumbs-row{display:flex;justify-content:space-between;align-items:center;padding-top:24px;gap:12px}
.tbt-crumbs{font:500 12px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.tbt-crumbs span{color:var(--cobalt)}
.tbt header{padding-block:18px 28px;border-bottom:2px solid var(--ink);display:grid;grid-template-columns:1fr auto;gap:24px;align-items:end}
.tbt h1{font:800 clamp(40px,7vw,76px)/.92 var(--display);letter-spacing:-.035em;margin:0;text-wrap:balance}
.tbt-dek{margin:14px 0 0;max-width:52ch;color:var(--ink-2);font-size:18px}
.tbt-tag{font:500 12px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;background:var(--cobalt-wash);color:var(--cobalt);padding:8px 10px;border-radius:2px;white-space:nowrap}
.tbt /* Workbench: inputs left, .tbt result right */
.tbt-bench{display:grid;grid-template-columns:360px 1fr;gap:0;margin-top:32px;border:1px solid var(--ink);background:var(--paper)}
.tbt .inputs{padding:26px 24px 28px;border-right:1px solid var(--rule);display:flex;flex-direction:column;gap:18px}
.tbt .inputs h2{font:600 13px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin:0}
.tbt .field{display:flex;flex-direction:column;gap:6px}
.tbt .field label{font:600 15px/1.2 var(--display)}
.tbt .box{display:flex;align-items:stretch;border:1px solid var(--rule);background:var(--field);border-radius:3px}
.tbt .box:focus-within{border-color:var(--cobalt);box-shadow:0 0 0 3px var(--cobalt-wash)}
.tbt .box .pre, .tbt .box .suf{font:500 14px var(--mono);color:var(--ink-2);padding:0 10px;display:flex;align-items:center}
.tbt .box input, .tbt .box select{flex:1;min-width:0;border:0;background:transparent;color:var(--ink);font:500 17px var(--mono);padding:11px 10px;outline:none;font-variant-numeric:tabular-nums}
.tbt .box select{font-size:15px;cursor:pointer}
.tbt .box .pre + input{padding-left:0}
.tbt .pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,120px);gap:12px}
.tbt .box select{width:100%;min-width:0}
.tbt input[type=range]{width:100%;accent-color:var(--cobalt);margin:2px 0 0}
.tbt .hint{font:12px var(--mono);color:var(--ink-2)}
.tbt .reset{align-self:flex-start;font:500 13px var(--mono);color:var(--ink-2);background:none;border:1px solid var(--rule);border-radius:3px;padding:8px 12px;cursor:pointer}
.tbt .reset:hover, .tbt .reset:focus-visible{color:var(--ink);border-color:var(--ink);outline:none}
.tbt .result{padding:26px 28px 24px;display:flex;flex-direction:column;gap:20px;min-width:0}
.tbt .big-label{font:600 13px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.tbt .big{font:800 clamp(48px,8vw,88px)/.95 var(--display);letter-spacing:-.04em;margin:8px 0 0;font-variant-numeric:tabular-nums}
.tbt .big-sub{margin:8px 0 0;color:var(--ink-2);font-size:16px}
.tbt .big-sub b{color:var(--cobalt);font-weight:600}
.tbt .split{display:flex;height:14px;border-radius:2px;overflow:hidden;background:var(--grid)}
.tbt .split i{display:block;height:100%;transition:width .35s ease}
.tbt .legend{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.tbt .legend > div{border-top:3px solid;padding-top:8px}
.tbt .legend .k{font:500 12px var(--mono);color:var(--ink-2);letter-spacing:.04em}
.tbt .legend .v{font:600 22px/1.2 var(--display);font-variant-numeric:tabular-nums}
.tbt .legend .p{font:12px var(--mono);color:var(--ink-2)}
.tbt .chart{position:relative}
.tbt .chart svg{display:block;width:100%;height:auto;overflow:visible}
.tbt .chart .tick{font:11px var(--mono);fill:var(--ink-2)}
.tbt .chart .gl{stroke:var(--grid);stroke-width:1}
.tbt .tip{position:absolute;pointer-events:none;background:var(--ink);color:var(--paper);font:12px/1.5 var(--mono);padding:8px 10px;border-radius:3px;white-space:nowrap;transform:translate(-50%,-100%);opacity:0;transition:opacity .12s}
.tbt .tip b{font-weight:500;display:block;margin-bottom:2px}
.tbt /* Below the bench */
.tbt-below{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:48px}
.tbt h3{font:800 28px/1.05 var(--display);letter-spacing:-.02em;margin:0 0 14px}
.tbt .formula{font:15px/1.7 var(--mono);background:var(--paper);border:1px solid var(--rule);padding:16px 18px;overflow-x:auto;white-space:nowrap}
.tbt .below p{margin:12px 0 0;max-width:58ch}
.tbt .below ul{margin:12px 0 0;padding-left:20px}
.tbt .below li{margin:4px 0}
.tbt .table-wrap{margin-top:48px;border-top:1px solid var(--ink)}
.tbt details summary{cursor:pointer;list-style:none;padding:18px 0;display:flex;justify-content:space-between;align-items:baseline;font:800 28px/1 var(--display);letter-spacing:-.02em}
.tbt details summary::-webkit-details-marker{display:none}
.tbt details summary span{font:500 13px var(--mono);color:var(--cobalt);letter-spacing:.02em}
.tbt details[open] summary span .o{display:none}
.tbt details:not([open]) summary span .c{display:none}
.tbt .scroll{overflow-x:auto}
.tbt table{border-collapse:collapse;width:100%;min-width:560px;font:14px var(--mono);font-variant-numeric:tabular-nums}
.tbt th, .tbt td{padding:10px 12px;text-align:right;border-bottom:1px solid var(--rule)}
.tbt th{font-weight:500;color:var(--ink-2);font-size:12px;letter-spacing:.04em;text-transform:uppercase}
.tbt th:first-child, .tbt td:first-child{text-align:left}
.tbt td:last-child{color:var(--cobalt);font-weight:500}
.tbt .compare{margin-top:56px;border-top:2px solid var(--ink);padding-top:28px;display:grid;grid-template-columns:320px 1fr;gap:32px}
.tbt .compare p{margin:0 0 10px;color:var(--ink-2);font-size:16px}
.tbt .compare ul{margin:0;padding-left:20px;font-size:16px}
.tbt .compare li{margin:6px 0}
.tbt .compare figure{margin:0;border:1px solid var(--rule);background:var(--paper)}
.tbt .compare img{display:block;width:100%;height:auto}
.tbt .compare figcaption{font:12px var(--mono);color:var(--ink-2);padding:10px 12px;border-top:1px solid var(--rule)}
.tbt-fine{margin-top:40px;font:12px/1.6 var(--mono);color:var(--ink-2);max-width:90ch}

@media (max-width:900px){
.tbt-bench{grid-template-columns:1fr}
.tbt .inputs{border-right:0;border-bottom:1px solid var(--rule)}
.tbt .below, .tbt .compare{grid-template-columns:1fr}
.tbt header{grid-template-columns:1fr}
.tbt-tag{justify-self:start}
}
@media (max-width:480px){
.tbt .legend{grid-template-columns:1fr}
.tbt .result{padding:22px 16px}
.tbt .inputs{padding:22px 16px}
}
@media (prefers-reduced-motion:reduce){
.tbt .split i{transition:none}}
.tbt .mode{font:500 12px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:999px;padding:8px 12px;cursor:pointer}
.tbt .mode:hover, .tbt .mode:focus-visible{border-color:var(--cobalt);outline:none}
.tbt .big-sub b{color:var(--hl)}
.tbt .chart{touch-action:pan-y;cursor:ew-resize;border-radius:3px}
.tbt .chart:focus-visible{outline:2px solid var(--s-growth);outline-offset:6px}
.tbt .chart .mark{font:600 12px var(--display);fill:var(--s-growth)}
.tbt .chart .mark.sub{font:12px var(--mono);fill:var(--ink-2)}
.tbt .scrub-hint{margin:-8px 0 0;font:12px var(--mono);color:var(--ink-2)}
.tbt .big{transition:color .6s ease}
.tbt .big.up{color:var(--win);transition:color .12s}
.tbt .big.down{color:var(--lose);transition:color .12s}
.tbt .bench.scrubbing .split i{transition:none}
.tbt .cross-note{margin:0;padding:12px 14px;border-left:3px solid var(--s-growth);background:var(--cobalt-wash);font-size:15px;color:var(--ink)}
.tbt .cross-note b{color:var(--hl);font-weight:600}
.tbt .cross-note button{margin-left:6px;font:500 12px var(--mono);color:var(--ink);background:var(--paper);border:1px solid var(--s-growth);border-radius:999px;padding:4px 10px;cursor:pointer}
.tbt .cross-note button:hover, .tbt .cross-note button:focus-visible{background:var(--s-growth);color:var(--paper);outline:none}
.tbt .chart .mark-box{fill:var(--paper);stroke:var(--rule);stroke-width:1}
.tbt .chart .mark-edge{fill:var(--s-growth)}
.tbt .head-row{display:flex;justify-content:space-between;align-items:center;gap:12px}
.tbt .cur{display:flex;align-items:center;gap:8px}
.tbt .cur label{font:500 12px var(--mono);color:var(--ink-2);letter-spacing:.04em}
.tbt .cur .box select{font-size:13px;padding:6px 8px}
.tbt .top-row{display:grid;grid-template-columns:1fr 170px;gap:20px;align-items:end}
.tbt .mascot{position:relative;width:170px;cursor:pointer;outline:none;-webkit-tap-highlight-color:transparent}
.tbt .mascot:focus-visible svg{outline:2px solid var(--s-growth);outline-offset:4px;border-radius:6px}
.tbt .mascot svg{display:block;width:100%;height:auto;overflow:visible}
.tbt .bubble{position:absolute;right:100%;top:6px;margin-right:-18px;width:190px;background:var(--field);color:var(--ink);border:1px solid var(--rule);border-radius:10px;padding:9px 12px;font:13px/1.4 var(--display);box-shadow:0 6px 18px rgba(0,0,0,.08);transition:opacity .2s,transform .2s;z-index:2}
.tbt .bubble::after{content:"";position:absolute;right:-7px;top:22px;width:12px;height:12px;background:var(--field);border-right:1px solid var(--rule);border-top:1px solid var(--rule);transform:rotate(45deg)}
.tbt .bubble b{color:var(--hl);font-weight:600}
.tbt .bubble.pop{animation:pop .28s ease}
@keyframes pop{from{transform:scale(.92);opacity:.4}to{transform:none;opacity:1}}
.tbt .m-shadow{fill:var(--ink);opacity:.12}
.tbt .m-coin-side{fill:#c98a1c}
.tbt .m-coin-top{fill:#ffc45c;stroke:#b87a14;stroke-width:1}
.tbt .m-guy{transition:transform .35s cubic-bezier(.3,1.4,.5,1)}
.tbt .m-inner{animation:bob 2.6s ease-in-out infinite;transform-box:fill-box;transform-origin:center bottom;transition:transform .5s ease}
@keyframes bob{50%{transform:translateY(-3px)}}
.tbt .m-glow{fill:#ffc45c;opacity:0;transform-box:fill-box;transform-origin:center;transition:opacity .4s}
.tbt .m-hover{fill:#8a5a10;opacity:0;transform-box:fill-box;transform-origin:center;transition:opacity .4s}
.tbt .mascot.rest .m-inner{animation:float 3.2s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(-8px)}50%{transform:translateY(-16px)}}
.tbt .mascot.rest .m-glow{animation:glow 3.2s ease-in-out infinite}
@keyframes glow{0%,100%{opacity:.35;transform:scale(1.02)}50%{opacity:.95;transform:scale(1.16)}}
.tbt .mascot.rest .m-hover{animation:hover 3.2s ease-in-out infinite}
@keyframes hover{0%,100%{opacity:.35;transform:scale(1)}50%{opacity:.18;transform:scale(.72)}}
.tbt .m-rim{fill:#e9a93a;stroke:#8a5a10;stroke-width:2}
.tbt .m-face{fill:#ffc45c;stroke:#d9982b;stroke-width:1.5}
.tbt .m-shine{fill:none;stroke:#fff4cc;stroke-width:3;stroke-linecap:round;opacity:.9}
.tbt .m-eye{fill:#2a1a00;transition:transform .08s}
.tbt .m-glint{fill:#fff}
.tbt .m-line{fill:none;stroke:#2a1a00;stroke-width:2.6;stroke-linecap:round;transition:d .25s}
.tbt .m-line.open{fill:#2a1a00}
.tbt .m-blush{fill:#ff8a6b;opacity:0;transition:opacity .3s}
.tbt .m-limb{fill:none;stroke:#8a5a10;stroke-width:3.5;stroke-linecap:round;transition:d .3s}
.tbt .m-z text{font:700 16px var(--display);fill:var(--ink-2);animation:zz 2s ease-in-out infinite}
.tbt .m-z text:nth-child(2){font-size:12px;animation-delay:.5s}
@keyframes zz{0%{opacity:0;transform:translateY(4px)}50%{opacity:1}100%{opacity:0;transform:translateY(-6px)}}
.tbt .m-spark circle{fill:#ffc45c}
.tbt .mascot.jump .m-inner{animation:jump .6s cubic-bezier(.3,1.6,.5,1)}
.tbt .mascot.sleeping.rest .m-glow{animation:none;opacity:.15}
@keyframes jump{30%{transform:translateY(-22px) rotate(-8deg)}60%{transform:translateY(-10px) rotate(6deg)}}
.tbt .mascot.blink .m-eye{transform:scaleY(.12)}
@media (max-width:640px){
.tbt .top-row{grid-template-columns:1fr;justify-items:end}
.tbt .top-row > div:first-child{justify-self:stretch}
.tbt .mascot{width:140px}
}
@media (prefers-reduced-motion:reduce){
.tbt .m-inner, .tbt .m-z text, .tbt .mascot.rest .m-inner, .tbt .mascot.rest .m-glow, .tbt .mascot.rest .m-hover{animation:none}
.tbt .mascot.rest .m-glow{opacity:.6}
.tbt .mascot.jump .m-inner{animation:none}
.tbt .m-guy{transition:none}}
.tbt .below > div, .tbt .compare > div, .tbt .compare > figure, .tbt .result, .tbt .inputs{min-width:0}
.tbt /* ---- Polished input panel ---- */
.inputs{gap:12px}
.tbt .inputs .head-row{margin-bottom:4px}
.tbt .cur .box{border-radius:999px;padding-right:4px}
.tbt .cur .box select{padding:7px 10px 7px 12px;font-size:13px}
.tbt .tile{background:var(--field);border:1px solid var(--rule);border-radius:16px;padding:12px 14px 12px;transition:border-color .2s,box-shadow .2s}
.tbt .tile:hover{border-color:color-mix(in srgb,var(--cobalt) 45%,var(--rule))}
.tbt .tile:focus-within{border-color:var(--cobalt);box-shadow:0 0 0 4px var(--cobalt-wash)}
.tbt .t-lab{display:block;font:600 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.tbt .t-row{display:flex;justify-content:space-between;align-items:center;gap:10px}
.tbt .t-val{display:flex;align-items:baseline;gap:4px;margin-top:6px}
.tbt .t-val input{flex:1;min-width:0;border:0;background:transparent;color:var(--ink);font:800 30px/1.1 var(--display);letter-spacing:-.03em;padding:0;outline:none;font-variant-numeric:tabular-nums}
.tbt .t-sym{font:600 22px/1 var(--display);color:var(--ink-2)}
.tbt .t-val.sm{margin-top:0;flex:none}
.tbt .t-val.sm input{width:3.4ch;text-align:right;font-size:24px}
.tbt .t-suf{font:500 13px var(--mono);color:var(--ink-2)}
.tbt .t-ends{display:flex;justify-content:space-between;font:11px var(--mono);color:var(--ink-2);opacity:.75;margin-top:2px}
.tbt .tile input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:26px;margin:8px 0 0;background:transparent;cursor:pointer;--p:40%}
.tbt .tile input[type=range]:focus{outline:none}
.tbt .tile input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:linear-gradient(to right,var(--cobalt) var(--p),var(--grid) var(--p))}
.tbt .tile input[type=range]::-moz-range-track{height:6px;border-radius:3px;background:var(--grid)}
.tbt .tile input[type=range]::-moz-range-progress{height:6px;border-radius:3px;background:var(--cobalt)}
.tbt .tile input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;margin-top:-8px;border-radius:50%;background:#fff;border:3px solid var(--cobalt);box-shadow:0 2px 8px rgba(0,0,0,.25);transition:transform .15s}
.tbt .tile input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--cobalt);box-shadow:0 2px 8px rgba(0,0,0,.25)}
.tbt .tile input[type=range]:active::-webkit-slider-thumb{transform:scale(1.15)}
.tbt .tile input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 5px var(--cobalt-wash)}
.tbt .vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tbt .tbt-seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:3px;background:var(--paper);border:1px solid var(--rule);border-radius:12px;padding:3px;margin-top:10px}
.tbt .tbt-seg button{background:none;border:0;border-radius:9px;color:var(--ink-2);font:600 13px/1 var(--display);padding:9px 0;cursor:pointer;transition:background .18s,color .18s}
.tbt .tbt-seg button:hover{color:var(--ink)}
.tbt .tbt-seg button[aria-checked="true"]{background:var(--cobalt);color:var(--paper)}
.tbt .tbt-seg button:focus-visible{outline:2px solid var(--cobalt);outline-offset:1px}
.tbt .reset{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:9px 14px;margin-top:4px}
.tbt .reset svg{width:14px;height:14px}
@media (prefers-reduced-motion:reduce){
.tbt .tile, .tbt .tbt-seg button{transition:none}}
.tbt /* ---- Method and caveats cards ---- */
.tbt-below{gap:20px;align-items:stretch}
.tbt-card-block{background:var(--field);border:1px solid var(--rule);border-radius:20px;padding:24px 24px 22px;display:flex;flex-direction:column;min-width:0}
.tbt .card h3{margin:6px 0 18px}
.tbt-eyebrow{font:600 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--cobalt)}
.tbt-eq{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 10px;background:var(--paper);border:1px solid var(--rule);border-radius:14px;padding:18px 16px;font:500 17px/1.2 var(--mono);color:var(--ink);font-variant-numeric:tabular-nums}
.tbt .eq .op{color:var(--cobalt);font-weight:600}
.tbt .eq sup{font-size:.62em;margin-left:1px}
.tbt .frac{display:inline-flex;flex-direction:column;align-items:center;vertical-align:middle;margin-left:4px}
.tbt .frac > span:first-child{padding:0 4px 3px;border-bottom:1.5px solid var(--ink)}
.tbt .frac > span:last-child{padding-top:3px}
.tbt-vars{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin:18px 0 0}
.tbt-vars > div{display:flex;align-items:flex-start;gap:10px;min-width:0}
.tbt-vars .wide{grid-column:1/-1;padding-top:10px;border-top:1px solid var(--rule)}
.tbt-vars dt{flex:none;width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--cobalt-wash);color:var(--cobalt);font:600 15px/1 var(--mono);font-style:italic}
.tbt-vars dd{margin:0;font:14px/1.45 var(--display);color:var(--ink-2);padding-top:4px}
.tbt-vars dd sup{font-size:.7em}
.tbt-leaves{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}
.tbt-leaves li{display:flex;gap:14px;align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--rule)}
.tbt-leaves li:first-child{padding-top:0}
.tbt-leaves .ic{flex:none;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--cobalt-wash);color:var(--cobalt)}
.tbt-leaves .ic svg{width:18px;height:18px}
.tbt-leaves b{display:block;font:600 16px/1.25 var(--display);color:var(--ink)}
.tbt-leaves li span:not(.ic){display:block;font-size:15px;line-height:1.5;color:var(--ink-2);margin-top:2px}
.tbt .card .tbt-note{margin:auto 0 0;padding:14px 16px;border-radius:12px;background:var(--paper);border:1px solid var(--rule);font:13px/1.55 var(--mono);color:var(--ink-2);max-width:none}
.tbt-leaves + .note, .tbt-vars + .tbt-note{margin-top:auto}
.tbt .below .tbt-leaves, .tbt-vars{margin-bottom:18px!important}
.tbt .below .tbt-leaves{padding:0;margin:0}
.tbt .below .tbt-leaves li{margin:0}
.tbt .note.mine b{color:var(--ink);font-weight:500}
@media (max-width:480px){
.tbt-card-block{padding:20px 16px}
.tbt-vars{grid-template-columns:1fr}
.tbt-eq{font-size:15px}}
.tbt /* ---- Compact cards ---- */
.tbt-below{gap:16px;margin-top:40px}
.tbt-card-block{padding:18px 18px 16px;border-radius:16px}
.tbt .card h3{font-size:21px;margin:4px 0 12px}
.tbt-eyebrow{font-size:10px}
.tbt-eq{padding:12px 12px;font-size:14px;border-radius:11px;gap:4px 8px}
.tbt-vars{gap:6px 14px;margin-top:12px}
.tbt-vars dt{width:22px;height:22px;border-radius:6px;font-size:12px}
.tbt-vars dd{font-size:13px;padding-top:2px}
.tbt-vars .wide{padding-top:8px}
.tbt .below .tbt-leaves, .tbt-vars{margin-bottom:12px!important}
.tbt-leaves li{gap:12px;padding:9px 0}
.tbt-leaves .ic{width:28px;height:28px;border-radius:8px}
.tbt-leaves .ic svg{width:15px;height:15px}
.tbt-leaves b{font-size:14px}
.tbt-leaves li span:not(.ic){font-size:13px;line-height:1.45;margin-top:1px}
.tbt .card .tbt-note{padding:10px 12px;border-radius:10px;font-size:12px;line-height:1.5}
.tbt /* ================= TechBullion Tools suite additions ================= */
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tbt body.is-embed .tb-bar, .tbt body.is-embed .tbt-crumbs-row{display:none}
.tbt body.is-embed{background:transparent;padding:0}
.tbt body.is-embed .tbt-page{max-width:none}
.tbt .w-frame{width:100%;border:0;height:460px;display:block;background:#fff;border-radius:12px;border:1px solid #dfe5e9}
.tbt .ep-tabs{display:inline-grid;grid-auto-flow:column;margin:14px 0 0}
.tbt .ep-tabs button{padding:8px 14px}
.tbt-reads-head .src{color:var(--ink-2);letter-spacing:0;text-transform:none;font-family:var(--mono);font-size:10px}
.tbt /* about + faq */
.tbt-about{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;margin-top:34px;padding-top:24px;border-top:1px solid var(--rule)}
.tbt-about h3{margin:0 0 10px;font-size:22px}
.tbt-about p{margin:0 0 12px;color:var(--ink-2);max-width:66ch;font-size:15px;line-height:1.65}
.tbt-faq .tbt-eyebrow{margin-bottom:10px}
.tbt .fq{border-bottom:1px solid var(--rule)}
.tbt .fq summary{cursor:pointer;list-style:none;padding:12px 0;font:600 15px var(--display);display:flex;justify-content:space-between;gap:10px}
.tbt .fq summary::-webkit-details-marker{display:none}
.tbt .fq summary::after{content:"+";color:var(--cobalt);font-weight:700}
.tbt .fq[open] summary::after{content:"−"}
.tbt .fq p{margin:0 0 14px;font-size:14px;color:var(--ink-2);line-height:1.6}
.tbt .cap-consent{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:var(--ink-2);line-height:1.45;flex:1 1 100%}
.tbt .cap-consent input{margin-top:2px;accent-color:var(--cobalt)}
.tbt /* admin */
.adm{display:grid;grid-template-columns:1.25fr .75fr;gap:16px;margin-top:24px}
.tbt .adm-card{padding:18px 20px}
.tbt .adm-card h3{margin:4px 0 10px;font-size:20px}
.tbt .adm-side{display:flex;flex-direction:column;gap:16px}
.tbt .adm-wide{grid-column:1/-1}
.tbt .adm-note{font:13px/1.55 var(--serif);color:var(--ink-2);margin:0 0 12px}
.tbt .adm-list{display:grid;grid-template-columns:1fr 1fr;gap:6px;max-height:330px;overflow:auto;padding-right:4px}
.tbt .adm-row{display:flex;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--rule);border-radius:10px;background:var(--paper);cursor:pointer}
.tbt .adm-row input{accent-color:var(--cobalt);width:16px;height:16px}
.tbt .adm-row b{display:block;font:600 14px var(--display)}
.tbt .adm-row i{font:11px var(--mono);color:var(--ink-2);font-style:normal}
.tbt .adm-f{display:block;margin-bottom:12px}
.tbt .adm-f span{display:block;font:600 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);margin-bottom:5px}
.tbt .adm-f select, .tbt .adm-f input, .tbt .adm-f textarea{width:100%;background:var(--paper);border:1px solid var(--rule);border-radius:10px;padding:9px 11px;font:14px var(--serif);color:var(--ink)}
.tbt .adm-t{display:flex;gap:8px;align-items:center;font-size:14px;color:var(--ink-2)}
.tbt .adm-t input{accent-color:var(--cobalt)}
.tbt .adm-stat{margin-top:12px;border-top:1px solid var(--rule);padding-top:10px}
.tbt .adm-stat b{font:800 24px var(--display);color:var(--cobalt)}
.tbt .adm-stat span{font:12px var(--mono);color:var(--ink-2);margin-left:8px}
.tbt .adm-events{display:flex;flex-direction:column;gap:2px;max-height:260px;overflow:auto}
.tbt .ev{display:grid;grid-template-columns:70px 160px 1fr;gap:10px;padding:7px 8px;border-radius:8px;font:12px var(--mono)}
.tbt .ev:nth-child(odd){background:var(--paper)}
.tbt .ev i{color:var(--ink-2);font-style:normal}
.tbt .ev b{color:var(--cobalt);font-weight:500}
.tbt .ev span{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tbt a.tb-mock{text-decoration:none}
.tbt a.tb-mock:hover{color:#fff;border-color:#8a8a8a}
@media (max-width:900px){
.tbt-about, .tbt .adm{grid-template-columns:1fr}
.tbt .adm-list{grid-template-columns:1fr}}
.tbt /* hub hero */
.tbt-hero{display:grid;grid-template-columns:1.15fr .85fr;gap:32px;align-items:start;padding-block:36px 8px}
.tbt-hero-copy h1{font:800 clamp(38px,5.4vw,60px)/1 var(--display);letter-spacing:-.03em;margin:10px 0 0}
.tbt-hero-copy h1 span{display:block;color:var(--cobalt)}
.tbt .hero .tbt-dek{margin:16px 0 20px;max-width:46ch;font-size:17px}
.tbt .hero .tbt-search{max-width:440px}
.tbt-qs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:18px}
.tbt-qs-lab{font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);width:100%}
.tbt-chip{background:var(--field);border:1px solid var(--rule);border-radius:999px;padding:9px 14px;font:600 13px var(--display);color:var(--ink);text-decoration:none;transition:border-color .2s,color .2s}
.tbt-chip:hover, .tbt-chip:focus-visible{border-color:var(--cobalt);color:var(--cobalt);outline:none}
.tbt-hero-side{display:flex;flex-direction:column;gap:12px}
.tbt-sponsor.hero-sponsor{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 14px;background:transparent;border-style:dashed;text-align:left}
.tbt-sponsor.hero-sponsor .tbt-sponsor-lab{grid-column:1/-1}
.tbt-sponsor.hero-sponsor b{font-size:15px}
.tbt-sponsor.hero-sponsor > div{grid-column:1}
.tbt-sponsor.hero-sponsor .tbt-sponsor-cta{grid-column:2;grid-row:2;margin-left:0;white-space:nowrap}
.tbt-demo{background:var(--field);border:1px solid var(--rule);border-radius:20px;padding:18px 20px 20px;box-shadow:0 18px 40px rgba(0,0,0,.08)}
.tbt .hd-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--rule)}
.tbt .hd-head b{font:700 16px var(--display)}
.tbt .hd-head span{font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.tbt .hd-body{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.tbt .hd-f{display:flex;flex-direction:column;gap:4px;min-width:0}
.tbt .hd-f label, .tbt .hd-srow label{font:600 10px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.tbt .hd-in{display:flex;align-items:baseline;gap:4px;background:var(--paper);border:1px solid var(--rule);border-radius:10px;padding:9px 11px}
.tbt .hd-in:focus-within{border-color:var(--cobalt);box-shadow:0 0 0 3px var(--cobalt-wash)}
.tbt .hd-in i{font:600 14px var(--display);color:var(--ink-2);font-style:normal}
.tbt .hd-f input{flex:1;min-width:0;background:transparent;border:0;padding:0;font:700 18px var(--display);color:var(--ink);font-variant-numeric:tabular-nums;outline:none}
.tbt .hd-slider{grid-column:1/-1}
.tbt .hd-srow{display:flex;justify-content:space-between;align-items:baseline}
.tbt .hd-srow b{font:700 18px var(--display);font-variant-numeric:tabular-nums}
.tbt .hd-slider input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:24px;background:transparent;cursor:pointer;--p:23%}
.tbt .hd-slider input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:linear-gradient(to right,var(--cobalt) var(--p),var(--grid) var(--p))}
.tbt .hd-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;margin-top:-7px;border-radius:50%;background:#fff;border:3px solid var(--cobalt);box-shadow:0 2px 6px rgba(0,0,0,.2)}
.tbt .hd-slider input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--cobalt)}
.tbt .hd-out{margin-top:16px;padding-top:14px;border-top:1px solid var(--rule)}
.tbt .hd-out > span{font:500 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.tbt .hd-big{font:800 clamp(34px,4.4vw,46px)/1 var(--display);letter-spacing:-.03em;margin:6px 0 4px;font-variant-numeric:tabular-nums;color:var(--cobalt)}
.tbt .hd-sub{display:block;font-size:13px;color:var(--ink-2)}
.tbt .hd-sub b{color:var(--ink);font-weight:700}
.tbt .hd-go{display:inline-block;margin-top:14px;font:600 13px var(--display);color:var(--cobalt);text-decoration:none}
.tbt .hd-go:hover{text-decoration:underline}
.tbt /* sections */
.sec-title{display:flex;align-items:baseline;gap:12px;margin:0 0 14px;padding-top:10px;border-top:2px solid var(--ink)}
.tbt .sec-title h2{font:800 22px var(--display);letter-spacing:-.02em;margin:10px 0 0}
.tbt .sec-title span{font:12px var(--mono);color:var(--ink-2);margin-left:auto}
.tbt .feat{margin-top:34px}
.tbt .feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.tbt .fcard{position:relative;display:flex;flex-direction:column;background:var(--field);border:1px solid var(--rule);border-radius:18px;overflow:hidden;text-decoration:none;color:var(--ink);transition:border-color .2s,transform .2s}
.tbt .fcard:hover, .tbt .fcard:focus-visible{border-color:var(--cobalt);transform:translateY(-3px);outline:none}
.tbt .fc-top{padding:16px 18px 10px;display:flex;flex-direction:column;gap:6px}
.tbt .fc-top b{font:800 22px/1.1 var(--display);letter-spacing:-.02em}
.tbt .fc-dek{font-size:14px;color:var(--ink-2);line-height:1.45}
.tbt .fc-ex{display:flex;flex-direction:column;gap:2px;padding:0 18px 10px;margin-top:auto}
.tbt .fc-ex span{font:500 10px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.tbt .fc-ex b{font:800 26px var(--display);color:var(--cobalt);font-variant-numeric:tabular-nums}
.tbt .spark{display:block;width:100%;height:46px}
.tbt /* category rows */
.cat{margin-top:30px}
.tbt .rows{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tbt .row{position:relative;display:flex;align-items:center;gap:16px;background:var(--field);border:1px solid var(--rule);border-radius:14px;padding:14px 42px 14px 16px;text-decoration:none;color:var(--ink);transition:border-color .2s,transform .2s}
.tbt .row:hover, .tbt .row:focus-visible{border-color:var(--cobalt);transform:translateX(2px);outline:none}
.tbt .r-main{min-width:0;flex:1}
.tbt .r-main b{display:block;font:700 17px var(--display)}
.tbt .r-main span{display:block;font-size:13px;color:var(--ink-2);line-height:1.4;margin-top:2px}
.tbt .r-ex{text-align:right;flex:none;max-width:38%}
.tbt .r-ex span{display:block;font:500 9px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.tbt .r-ex b{display:block;font:700 17px var(--display);color:var(--cobalt);font-variant-numeric:tabular-nums}
.tbt .r-go{position:absolute;right:16px;color:var(--cobalt);font:600 16px var(--display)}
@media (max-width:1000px){
.tbt-hero{grid-template-columns:1fr}
.tbt .feat-grid{grid-template-columns:1fr}
.tbt .rows{grid-template-columns:1fr}}
@media (max-width:560px){
.tbt .r-ex{display:none}}
.tbt-reads{margin-top:40px;padding-top:24px;border-top:1px solid var(--rule)}
.tbt-reads-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap}
.tbt-reads-head h3{margin:4px 0 0;font-size:22px}
.tbt-reads-all{font:600 13px var(--display);color:var(--cobalt);text-decoration:none;white-space:nowrap}
.tbt-reads-all:hover{text-decoration:underline}
.tbt-reads-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px}
.tbt-read{display:flex;flex-direction:column;min-width:0;background:var(--field);border:1px solid var(--rule);border-radius:12px;overflow:hidden;text-decoration:none;color:var(--ink);transition:border-color .2s,transform .2s}
.tbt .tbt-read:hover,.tbt .tbt-read:focus-visible{border-color:var(--cobalt);transform:translateY(-2px);outline:2px solid transparent}
.tbt-read-media{display:block;width:100%;aspect-ratio:16/9;background:#eaf2f6;overflow:hidden}
.tbt-read-media img,.tbt-read-media svg{display:block;width:100%;height:100%}
.tbt-read-media img{object-fit:cover}
.tbt-read-media svg{object-fit:contain}
.tbt-read-fallback{padding:8px;background:#ecf4f8}
.tbt-read-body{display:flex;flex:1;flex-direction:column;align-items:flex-start;gap:9px;padding:15px 16px 16px;min-width:0}
.tbt-read-body b{font:700 16px/1.4 var(--display);overflow-wrap:anywhere;color:var(--ink)}
.tbt-read .tbt-go{position:static;align-self:flex-end;margin-top:auto;color:var(--cobalt);font:600 16px/1 var(--display)}
.tbt .chart .bar-hit{cursor:pointer}
.tbt .chart .bar-row.on rect{filter:brightness(1.12)}
.tbt .chart .bar-row.dim{opacity:.45}
@media (max-width:760px){
.tbt-reads-grid{grid-template-columns:1fr}}
.tbt /* site chrome */
.tb-bar{background:#444444;color:#fff;margin-inline:-16px;padding:0 16px;position:sticky;top:env(safe-area-inset-top,0px);z-index:20}
.tbt .tb-in{max-width:1120px;margin:0 auto;display:flex;align-items:center;gap:20px;height:54px}
.tbt .tb-logo{display:flex;align-items:center;gap:8px;color:#fff;text-decoration:none;font:700 19px var(--display);letter-spacing:-.01em}
.tbt .tb-logo b{font-weight:800}
.tbt .tb-word{white-space:nowrap}
.tbt .tb-t{display:grid;place-items:center;width:26px;height:26px;border-radius:5px;background:var(--cobalt);color:#fff;font:800 15px var(--display)}
.tbt .tb-nav{display:flex;gap:18px;margin-left:auto;flex-wrap:wrap}
.tbt .tb-nav a{color:#ffffff;text-decoration:none;font:500 12px var(--display);letter-spacing:.06em;text-transform:uppercase;padding:6px 0;border-bottom:2px solid transparent}
.tbt .tb-nav a:hover{color:#fff}
.tbt .tb-nav a.on{color:#fff;border-bottom-color:var(--cobalt)}
.tbt .tb-mock{font:500 10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#bbbbbb;border:1px solid #5d5d5d;border-radius:999px;padding:4px 8px}
@media (max-width:720px){
.tbt .tb-nav{display:none}
.tbt .tb-in{height:48px}}
.tbt /* product row */
.prod{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;margin-top:20px;align-items:start}
.tbt .pbtn{display:inline-flex;align-items:center;gap:8px;background:var(--field);border:1px solid var(--rule);border-radius:999px;color:var(--ink);font:600 13px var(--display);padding:10px 16px;cursor:pointer;transition:border-color .2s,color .2s}
.tbt .pbtn:hover, .tbt .pbtn:focus-visible{border-color:var(--cobalt);color:var(--cobalt);outline:none}
.tbt .pbtn svg{width:16px;height:16px}
.tbt .pbtn-note{font:12px var(--mono);color:var(--cobalt)}
.tbt .capture{background:var(--field);border:1px solid var(--rule);border-radius:16px;padding:16px 18px;display:flex;flex-direction:column;gap:12px}
.tbt .capture b{display:block;font:700 17px var(--display)}
.tbt .capture span{font-size:14px;color:var(--ink-2);line-height:1.5}
.tbt .cap-form{display:flex;gap:8px;flex-wrap:wrap}
.tbt .cap-form input{flex:1 1 200px;min-width:0;background:var(--paper);border:1px solid var(--rule);border-radius:10px;padding:11px 14px;font:15px var(--serif);color:var(--ink)}
.tbt .cap-form input:focus{outline:none;border-color:var(--cobalt);box-shadow:0 0 0 4px var(--cobalt-wash)}
.tbt .cap-form button{background:var(--cobalt);color:#fff;border:0;border-radius:10px;font:700 14px var(--display);padding:11px 18px;cursor:pointer}
.tbt .cap-form button:hover{filter:brightness(1.08)}
.tbt .cap-done{margin:0;font:13px var(--mono);color:var(--win)}
.tbt-sponsor{display:flex;flex-direction:column;gap:6px;background:var(--paper);border:1px dashed var(--rule);border-radius:16px;padding:16px 18px}
.tbt .hub-sponsor{margin-top:0;flex-direction:row;align-items:center;gap:16px;flex-wrap:wrap;flex:1 1 320px}
.tbt-sponsor-lab{font:500 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.tbt-sponsor b{display:block;font:700 16px var(--display)}
.tbt-sponsor span:not(.tbt-sponsor-lab):not(.tbt-sponsor-cta){font-size:13px;color:var(--ink-2)}
.tbt-sponsor-cta{font:600 13px var(--display);color:var(--cobalt);margin-left:auto}
.tbt /* embed panel */
.embed-panel{scroll-margin-top:70px;margin-top:20px;background:var(--field);border:1px solid var(--rule);border-radius:18px;padding:20px}
.tbt .ep-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.tbt .ep-head h3{margin:4px 0 0;font-size:22px}
.tbt .ep-dek{margin:10px 0 14px;color:var(--ink-2);font-size:15px;max-width:60ch}
.tbt .ep-code{margin:0 0 12px;background:var(--paper);border:1px solid var(--rule);border-radius:10px;padding:14px 16px;font:13px/1.6 var(--mono);color:var(--ink);overflow-x:auto;white-space:pre}
.tbt .ep-demo{margin-top:18px}
.tbt .ep-demo-lab{font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);margin-bottom:10px}
.tbt .ep-site{background:#fff;color:#222;border:1px solid var(--rule);border-radius:12px;padding:20px 22px;max-width:640px}
.tbt .ep-site-head b{display:block;font:700 13px var(--mono);color:#8a949b}
.tbt .ep-site-head span{display:block;font:700 22px/1.25 var(--display);margin-top:6px}
.tbt .ep-site-copy{font:15px/1.6 var(--serif);color:#444;margin:12px 0}
.tbt-widget{border:1px solid #dfe5e9;border-radius:12px;overflow:hidden;background:#fff}
.tbt .w-head{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#f4f7f9;padding:10px 14px;border-bottom:1px solid #dfe5e9}
.tbt .w-head b{font:700 13px var(--display);color:#222}
.tbt .w-head span{font:500 10px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#8a949b}
.tbt .w-body{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px}
.tbt .w-f{display:flex;flex-direction:column;gap:4px}
.tbt .w-f label{font:600 10px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#7a858d}
.tbt .w-f input,.tbt .w-f select{border:1px solid #dfe5e9;border-radius:8px;padding:8px 10px;font:700 15px var(--display);color:#222;background:#fff}
.tbt .w-f input:focus,.tbt .w-f select:focus{outline:none;border-color:#22698f}
.tbt .w-out{grid-column:1/-1;display:flex;align-items:baseline;justify-content:space-between;gap:10px;border-top:1px solid #eef2f5;padding-top:12px}
.tbt .w-out i{font:500 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#7a858d;font-style:normal}
.tbt .w-out b{font:800 26px var(--display);color:#22698f;font-variant-numeric:tabular-nums}
.tbt .w-mortgage-note{grid-column:1/-1;font:12px var(--mono);color:#465763;line-height:1.5}
.tbt .w-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 14px;border-top:1px solid #eef2f5;font:11px var(--mono);color:#8a949b}
.tbt .w-foot a{color:#22698f;text-decoration:none;font-weight:500}
@media (max-width:820px){
.tbt .prod{grid-template-columns:1fr}}
.tbt #partsWrap{display:flex;flex-direction:column;gap:20px}
.tbt .legend{grid-template-columns:repeat(var(--cols,3),minmax(0,1fr))}
@media (max-width:480px){
.tbt .legend{grid-template-columns:1fr 1fr}}
.tbt [hidden]{display:none!important}
.tbt-crumbs a{color:var(--ink-2);text-decoration:none}
.tbt-crumbs a:hover{color:var(--ink);text-decoration:underline}
.tbt .hub-head{margin-top:0}
.tbt-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:34px}
.tbt-search{flex:1 1 260px;display:flex;align-items:center;gap:10px;background:var(--field);border:1px solid var(--rule);border-radius:999px;padding:0 16px;transition:border-color .2s,box-shadow .2s}
.tbt-search:focus-within{border-color:var(--cobalt);box-shadow:0 0 0 4px var(--cobalt-wash)}
.tbt-search svg{width:18px;height:18px;color:var(--ink-2);flex:none}
.tbt-search input{flex:1;min-width:0;border:0;background:transparent;color:var(--ink);font:500 16px var(--display);padding:12px 0;outline:none}
.tbt-seg{display:flex;flex-wrap:wrap;margin-top:0;background:var(--field)}
.tbt-seg button{padding:9px 12px}
.tbt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;margin-top:20px}
.tbt-card{position:relative;display:flex;flex-direction:column;gap:6px;background:var(--field);border:1px solid var(--rule);border-radius:16px;padding:16px 18px 18px;text-decoration:none;color:var(--ink);transition:border-color .2s,transform .2s,box-shadow .2s}
.tbt-card:hover, .tbt-card:focus-visible{border-color:var(--cobalt);transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.12);outline:none}
.tbt-card b{font:700 20px/1.15 var(--display);letter-spacing:-.02em}
.tbt-card-dek{font-size:14px;line-height:1.45;color:var(--ink-2);padding-right:18px}
.tbt-go{position:absolute;right:16px;bottom:14px;font:600 18px var(--display);color:var(--cobalt);transition:transform .2s}
.tbt-card:hover .tbt-go{transform:translateX(3px)}
.tbt-empty{color:var(--ink-2);font:14px var(--mono);margin-top:20px}
.tbt .t-code select{width:100%;margin-top:6px;border:0;background:transparent;color:var(--ink);font:800 24px var(--display);letter-spacing:-.02em;padding:0;cursor:pointer;outline:none}
.tbt .stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}
.tbt .stats > div{background:var(--field);border:1px solid var(--rule);border-radius:12px;padding:10px 12px;min-width:0}
.tbt .stats span{display:block;font:500 11px var(--mono);letter-spacing:.04em;color:var(--ink-2)}
.tbt .stats b{display:block;font:700 18px/1.25 var(--display);letter-spacing:-.01em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.tbt .facts{background:var(--field);border:1px solid var(--rule);border-radius:16px;padding:16px}
.tbt .f-title{font:600 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--cobalt);margin-bottom:12px}
.tbt .f-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.tbt .f-grid > div{border-left:3px solid var(--s-growth);padding:2px 0 2px 12px;min-width:0;cursor:pointer;border-radius:0 8px 8px 0;transition:background .15s}
.tbt .f-grid > div:hover, .tbt .f-grid > div:focus-visible{background:var(--cobalt-wash);outline:none}
.tbt .f-grid span{display:block;font:12px var(--mono);color:var(--ink-2)}
.tbt .f-grid b{display:block;font:700 18px/1.3 var(--display);overflow-wrap:anywhere}
.tbt .ckeys{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:8px;font:12px var(--mono);color:var(--ink-2)}
.tbt .ckeys i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.tbt .ckeys i.ln{height:3px;border-radius:2px;vertical-align:3px;width:14px}
.tbt .chart .blab{font:500 13px var(--display);fill:var(--ink-2)}
.tbt .chart .blab.tot, .tbt .chart .bval.tot{fill:var(--ink);font-weight:700}
.tbt .chart .bval{font:500 12px var(--mono);fill:var(--ink)}
.tbt .eq .muted{color:var(--ink-2);font-size:.8em}
.tbt .eq sub{font-size:.62em}
.tbt .dotsep{opacity:.5;margin:0 2px}
.tbt-pager{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin-top:40px;padding-top:20px;border-top:1px solid var(--rule)}
.tbt-pager a{text-decoration:none;color:var(--ink);display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid var(--rule);border-radius:14px;background:var(--field);transition:border-color .2s}
.tbt-pager a:hover, .tbt-pager a:focus-visible{border-color:var(--cobalt);outline:none}
.tbt-pager a:last-child{text-align:right}
.tbt-pager span{font:500 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.tbt-pager b{font:600 16px var(--display)}
.tbt-pager .all{font:500 13px var(--mono);color:var(--cobalt);border-radius:999px;padding:10px 16px;text-align:center}
.tbt .cross-note button{margin-left:6px;font:500 12px var(--mono);color:var(--ink);background:var(--paper);border:1px solid var(--s-growth);border-radius:999px;padding:4px 10px;cursor:pointer}
@media (max-width:640px){
.tbt .f-grid{grid-template-columns:1fr}
.tbt-pager{grid-template-columns:1fr 1fr}
.tbt-pager .all{grid-column:1/-1;order:3}}

/* ===== TechBullion Tools 2.1 portfolio / enrichment ===== */
.tbt .tbt-quality-note{margin:16px 0 0;max-width:820px;padding:12px 15px;border:1px solid var(--rule);border-radius:10px;background:var(--field);font-size:14px;line-height:1.6;color:var(--ink-2)}
.tbt .tbt-related-tools{margin-top:60px}.tbt .tbt-grid-small{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.tbt .tbt-grid-small .tbt-card{min-height:190px}
.tbt .tbt-serp{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:20px;color:#202124}.tbt .tbt-serp-site{font:13px Arial,sans-serif;color:#202124;margin-bottom:6px}.tbt .tbt-serp-title{font:20px/1.3 Arial,sans-serif;color:#1a0dab;margin-bottom:5px}.tbt .tbt-serp-desc{font:14px/1.5 Arial,sans-serif;color:#4d5156}
@media(max-width:900px){.tbt .tbt-grid-small{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.tbt .tbt-grid-small{grid-template-columns:1fr}}

/* 2.1 category-hub enrichment */
.tbt-category-guide{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.9fr);gap:28px;align-items:start;margin:0 0 28px;padding:24px;border:1px solid var(--line,#e4e8ee);border-radius:20px;background:#fff}
.tbt-category-guide h2{margin:.25rem 0 0;font-size:clamp(1.25rem,2vw,1.65rem);line-height:1.2}
.tbt-category-guide ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.tbt-category-guide li{position:relative;padding:12px 14px 12px 38px;border-radius:14px;background:#f7f9fc;color:#263247}
.tbt-category-guide li:before{content:'✓';position:absolute;left:14px;top:11px;font-weight:800;color:#173b72}
@media(max-width:760px){.tbt-category-guide{grid-template-columns:1fr;padding:18px}}

/* Guide-approved calculator palette, geometry and keyboard focus. */
.tbt :where(.box,.reset,button:not(.tbt-theme-toggle)){border-radius:8px;box-shadow:none}
.tbt :where(a,button,input,select):focus-visible{outline:2px solid #22698f;outline-offset:2px}
.tbt[data-theme="dark"] :where(a,button,input,select):focus-visible{outline-color:#66ccff}
.tbt .big,.tbt .legend .v{font-variant-numeric:tabular-nums}

/* The headline figure inherited the page's text colour and went black on navy. Every figure takes the theme ink. */
.tbt{color:var(--ink)}

/* ------------------------------------------------------------------ tool cards, 2.3.0
   Approved 26 September 2026: Apple-style product cards. A pale panel holds the picture, then the
   category in Link Blue, the full title, the description at 8pt and an "Open" line. Borders, never
   shadows; gold appears only on the one value marker inside a drawing. */
.tbt .tbt-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.tbt .tbt-card{align-items:center;text-align:center;gap:0;padding:20px 20px 24px;background:#FFFFFF;border:1px solid var(--rule);border-radius:12px;color:#222222;transition:border-color .15s}
.tbt .tbt-card:hover,.tbt .tbt-card:focus-visible{border-color:#002F56;transform:none;box-shadow:none}
.tbt .tbt-card:focus-visible{outline:2px solid #22698F;outline-offset:2px}
.tbt .tbt-card-box{display:grid;place-items:center;width:100%;aspect-ratio:5/3;margin-bottom:18px;padding:18px 16px;background:#F3F6F8;border-radius:8px}
.tbt .tbt-illo{display:block;width:100%;max-width:300px;height:auto}
.tbt .tbt-illo text{font-family:"Montserrat","Helvetica Neue",Arial,sans-serif}
.tbt .tbt-card .tbt-eyebrow{margin:0 0 6px;font:600 11px/1.2 var(--display);letter-spacing:.08em;text-transform:uppercase;color:#22698F}
.tbt .tbt-card b{font:700 22px/1.15 var(--display);letter-spacing:-.02em;color:#222222;text-wrap:balance}
.tbt .tbt-card-dek{margin-top:10px;max-width:32ch;padding:0;font-size:8pt;line-height:1.55;color:#596672;text-wrap:balance}
.tbt .tbt-card-fig{margin-top:10px;font-size:8pt;color:#596672}
.tbt .tbt-card-fig b{font:700 8pt/1.4 var(--serif);letter-spacing:0;color:#002F56;font-variant-numeric:tabular-nums}
.tbt .tbt-card-more{margin-top:auto;padding-top:16px;font:600 14px/1 var(--display);color:#22698F}
.tbt .tbt-card:hover .tbt-card-more{text-decoration:underline}
.tbt .tbt-grid-small{grid-template-columns:repeat(3,minmax(0,1fr))}
.tbt .tbt-grid-small .tbt-card{min-height:0}
@media(max-width:1000px){.tbt .tbt-grid,.tbt .tbt-grid-small{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.tbt .tbt-grid,.tbt .tbt-grid-small{grid-template-columns:minmax(0,1fr)}}

/* Phones. A later ".tbt .tbt-bench" rule (360px 1fr) outranked the 900px breakpoint's ".tbt-bench",
   so on a phone the inputs kept 360px and the result column was squeezed to a few pixels (2.2.1). */
@media(max-width:900px){.tbt .tbt-bench{grid-template-columns:minmax(0,1fr)}}
/* The hub hero's single column was "1fr", which cannot shrink below its content (the demo's inputs),
   so the right-hand panels ran 60px past a phone screen. */
@media(max-width:1000px){.tbt-hero{grid-template-columns:minmax(0,1fr)}.tbt .tbt-hero-side,.tbt .tbt-demo{min-width:0}}
/* The hub's category filter was meant to wrap (".tbt-seg" above), but ".tbt .tbt-seg" (one grid row)
   outranked it, so nine buttons ran off a phone screen. */
.tbt .tbt-bar .tbt-seg{display:flex;flex-wrap:wrap;gap:3px}
.tbt .tbt-bar .tbt-seg button{padding:9px 12px}
.tbt .tbt-bar .tbt-seg button[aria-checked="true"]{box-shadow:none}
.tbt .hd-head{flex-wrap:wrap}

/* ------------------------------------------------------------------ 2.4.0: every tool on the bench
   Approved 26 September 2026: the tools that are not calculators use the calculator's bench as it is.
   These rules add only the parts the calculator has no need for. */
.tbt .t-val.txt input{font-size:19px;font-weight:700;letter-spacing:-.01em}
.tbt .t-area{display:block;width:100%;min-height:96px;margin-top:8px;padding:10px 12px;border:1px solid var(--rule);border-radius:8px;background:var(--paper);color:var(--ink);font:400 15px/1.55 var(--serif);resize:vertical}
.tbt .t-area:focus{outline:none;border-color:var(--cobalt)}
.tbt .inputs .tbt-note{margin:0;font-size:13px;line-height:1.5;color:var(--ink-2)}
.tbt .go{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 22px;border:0;border-radius:8px;background:var(--cobalt);color:#FFFFFF;font:700 15px/1 var(--display);text-decoration:none;cursor:pointer}
.tbt .go:hover{background:#104561}
.tbt .go[disabled]{opacity:.55;cursor:progress}
.tbt .inputs .go{align-self:stretch}
.tbt .top-row.withpic{grid-template-columns:minmax(0,1fr) 250px}
.tbt .pic{width:250px;min-width:0}
.tbt .pic svg,.tbt .pic canvas{display:block;width:100%;height:auto;overflow:visible}
.tbt .pic.qr canvas{width:150px;margin-left:auto;image-rendering:pixelated;border:1px solid var(--rule);border-radius:8px}
.tbt .pic svg text{font-family:"Montserrat","Helvetica Neue",Arial,sans-serif}
.tbt .big.long{font-size:clamp(30px,4.6vw,48px);line-height:1.05;letter-spacing:-.025em;overflow-wrap:anywhere}
.tbt .splitwrap{display:grid;gap:12px}
.tbt .legend .v{overflow-wrap:anywhere}
/* Block themes print "html :where([style^=border-color]){border-style:solid}", which drew a full box round every
   legend item (the calculators' too). Only the top rule is the design. */
.tbt .legend > div{border-style:solid none none;border-width:3px 0 0}
.tbt .linkbox{padding:14px 16px;background:var(--field);border:1px solid var(--rule);border-radius:12px;font:700 15px/1.6 var(--serif);color:var(--cobalt);overflow-wrap:anywhere}
.tbt .linkbox .q{color:var(--ink-2);font-weight:400}
.tbt .acts{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.tbt .ok{font:600 13px/1.3 var(--display);color:var(--win)}
.tbt .tbt-example{margin:0;padding:10px 12px;background:#FDF4E3;border-radius:10px;color:#8A5A00;font-size:14px}
.tbt .result > .tbt-note{margin:0;font-size:13px;line-height:1.55;color:var(--ink-2)}
.tbt .stats .is-good b{color:var(--win)}
.tbt .stats .is-warn b{color:#8A5A00}
.tbt .stats .is-bad b{color:var(--lose)}
.tbt .checks{list-style:none;margin:0;padding:0}
.tbt .checks li{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px;padding:10px 8px;margin-inline:-8px;border-radius:8px;border-top:1px solid var(--rule)}
.tbt .checks li:first-child{border-top:0}
.tbt .checks li.hl{background:#EFF4F8}
.tbt .checks b{font:700 15px/1.3 var(--display);overflow-wrap:anywhere}
.tbt .checks p{margin:2px 0 0;font-size:14px;color:var(--ink-2);overflow-wrap:anywhere;white-space:pre-line}
.tbt .checks a,.tbt .facts td a{color:#22698F;overflow-wrap:anywhere}
.tbt .tag{justify-self:start;align-self:start;padding:4px 8px;border-radius:4px;font:700 11px/1 var(--display)}
.tbt .tag.good{background:#EAF5EF;color:#16704A}.tbt .tag.warn{background:#FDF4E3;color:#8A5A00}.tbt .tag.bad{background:#FBEEED;color:#A52B22}.tbt .tag.info{background:#EFF4F8;color:#002F56}
.tbt .facts .scroll{overflow-x:auto}
.tbt .facts table{min-width:0;width:100%;border-collapse:collapse;font:400 14px/1.45 var(--serif)}
.tbt .facts th{text-align:left;padding:8px 6px;border-bottom:1px solid var(--rule);font:600 12px/1.2 var(--display);letter-spacing:0;text-transform:none;color:var(--ink-2)}
.tbt .facts td{text-align:left;padding:8px 6px;border-top:1px solid var(--rule);border-bottom:0;color:var(--ink);font-weight:400;overflow-wrap:anywhere;vertical-align:top}
.tbt .facts tr:first-child td{border-top:0}
.tbt .facts td.num{text-align:right;white-space:nowrap}
.tbt .facts tr.hl td{background:#EFF4F8}
.tbt .facts tr.sub td{color:var(--ink-2)}
.tbt .facts tr.sum td{font-weight:700;border-top:2px solid var(--ink)}
.tbt .inv-meta{margin:0 0 10px;color:var(--ink-2);font-size:14px}.tbt .inv-meta b{color:var(--ink)}
.tbt .items{display:grid;gap:6px;margin-top:8px}
.tbt .item{display:grid;grid-template-columns:minmax(0,1fr) 42px 74px 26px;gap:6px;align-items:center}
.tbt .item input{width:100%;min-width:0;height:34px;padding:0 8px;border:1px solid var(--rule);border-radius:7px;background:var(--paper);color:var(--ink);font:600 13px/1 var(--serif)}
.tbt .item.hl input{border-color:var(--cobalt)}
.tbt .item button{height:26px;border:0;border-radius:6px;background:none;color:var(--ink-2);font-size:16px;cursor:pointer}
.tbt .item button:hover{color:var(--lose)}
.tbt .add{margin-top:8px;padding:0;border:0;background:none;color:var(--cobalt);font:700 13px/1 var(--display);cursor:pointer}
.tbt .tbt-lens{transition:transform .35s ease}
.tbt .tbt-shackle{transition:transform .4s ease;transform:translateY(-14px)}
.tbt .tbt-shackle.shut{transform:none}
.tbt .tbt-scan{animation:tbt-scan 1.1s ease-in-out infinite alternate}
@keyframes tbt-scan{from{transform:translateY(0)}to{transform:translateY(147px)}}
@media (max-width:640px){.tbt .top-row.withpic{grid-template-columns:minmax(0,1fr)}.tbt .pic{width:200px;justify-self:end}.tbt .checks li{grid-template-columns:minmax(0,1fr);gap:6px}}
@media (prefers-reduced-motion:reduce){.tbt .tbt-scan{animation:none;opacity:.6}.tbt .tbt-lens,.tbt .tbt-shackle{transition:none}}
/* Invoice preview and its A4 print layout. Business and amount fields come only from the form. */
.tbt .invoice-sheet{width:100%;box-sizing:border-box;padding:28px;background:#fff;border:1px solid #dce4ea;border-radius:8px;color:#172536;font:400 13px/1.55 Arial,Helvetica,sans-serif;box-shadow:0 8px 28px rgba(0,47,86,.06);overflow-wrap:anywhere}
.tbt .invoice-sheet *{box-sizing:border-box}
.tbt .invoice-mast{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:22px;border-bottom:3px solid #002f56}
.tbt .invoice-sender{min-width:0;max-width:58%}
.tbt .invoice-logo{display:block;max-width:155px;max-height:68px;object-fit:contain;object-position:left center;margin-bottom:10px}
.tbt .invoice-brand{font-size:18px;font-weight:700;color:#002f56;line-height:1.2}
.tbt .invoice-mast-right{text-align:right;flex-shrink:0}
.tbt .invoice-mast-right h2{font:700 23px/1.2 Arial,Helvetica,sans-serif;letter-spacing:.08em;color:#002f56;margin:0 0 6px}
.tbt .invoice-mast-right p{margin:0;color:#4f5e6b}
.tbt .invoice-upper{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:24px 0 28px}
.tbt .invoice-upper section{min-width:0}
.tbt .invoice-upper h3,.tbt .invoice-extras h3{font:700 10px/1.4 Arial,Helvetica,sans-serif;letter-spacing:.11em;text-transform:uppercase;color:#5d7488;margin:0 0 8px}
.tbt .invoice-upper strong{display:block;font-size:13px;color:#172536}
.tbt .invoice-multiline{white-space:pre-line;overflow-wrap:anywhere;margin:5px 0 0;color:#485966}
.tbt .invoice-dates{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px 20px;border-top:1px solid #e3eaf0;padding-top:17px}
.tbt .invoice-dates h3{width:100%;margin:0}
.tbt .invoice-detail{margin:0;display:flex;gap:7px;flex-wrap:wrap}
.tbt .invoice-detail .invoice-caption{color:#697b89}
.tbt .invoice-detail strong{font-size:12px}
.tbt .invoice-lines{width:100%;border-collapse:collapse;table-layout:fixed;font:inherit}
.tbt .invoice-lines th{background:#002f56;color:#fff;padding:11px 8px;text-align:left;font-weight:700;letter-spacing:0;border:0}
.tbt .invoice-lines td{padding:11px 8px;border-bottom:1px solid #e3eaf0;vertical-align:top;overflow-wrap:anywhere}
.tbt .invoice-lines th:first-child{width:43%}
.tbt .invoice-lines th:nth-child(2){width:13%}
.tbt .invoice-lines th:nth-child(3),.tbt .invoice-lines th:nth-child(4){width:22%}
.tbt .invoice-lines th:not(:first-child),.tbt .invoice-lines td:not(:first-child){text-align:right}
.tbt .invoice-bottom{display:grid;grid-template-columns:1fr minmax(195px,48%);gap:22px;align-items:start;margin-top:25px}
.tbt .invoice-extras{min-width:0}
.tbt .invoice-extras h3:not(:first-child){margin-top:18px}
.tbt .invoice-totals{min-width:0}
.tbt .invoice-total-row,.tbt .invoice-total{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid #e3eaf0}
.tbt .invoice-total strong{text-align:right}
.tbt .invoice-total{font-size:15px;font-weight:700;border-top:2px solid #002f56;border-bottom:0;color:#002f56;padding-top:13px}
.tbt .invoice-sheet tr{break-inside:avoid;page-break-inside:avoid}
.tbt .invoice-sheet .invoice-mast,.tbt .invoice-sheet .invoice-upper,.tbt .invoice-sheet .invoice-bottom{break-inside:avoid;page-break-inside:avoid}
.tbt .inputs #i-logo{width:100%;font-size:13px}
.tbt .acts button:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:640px){.tbt .invoice-sheet{padding:18px 12px;font-size:11px}.tbt .invoice-mast-right h2{font-size:18px}.tbt .invoice-brand{font-size:15px}.tbt .invoice-upper{gap:12px}.tbt .invoice-lines th,.tbt .invoice-lines td{padding:8px 4px}.tbt .invoice-bottom{grid-template-columns:1fr}.tbt .invoice-dates{gap:5px 12px}}
@page{size:A4;margin:15mm}
@media print{
 html.tbt-print-invoice body *{visibility:hidden!important}
 html.tbt-print-invoice .tbt-utility .result .invoice-sheet,html.tbt-print-invoice .tbt-utility .result .invoice-sheet *{visibility:visible!important}
 html.tbt-print-invoice .tbt-utility .result .invoice-sheet{position:absolute;left:0;top:0;width:100%;min-width:0;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;font-size:10pt;overflow:visible}
 html.tbt-print-invoice .invoice-mast{padding-bottom:14pt}
 html.tbt-print-invoice .invoice-upper{padding:17pt 0 22pt}
 html.tbt-print-invoice .invoice-lines thead{display:table-header-group}
 html.tbt-print-invoice .invoice-lines th{background:#002f56!important;color:#fff!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}
 html.tbt-print-invoice .invoice-bottom{margin-top:17pt}
}

/* ------------------------------------------------------------------ 2.4.0: the hub, redesigned
   Approved 26 September 2026: no stat panel, one line of copy, brand corners (never pills), one chip
   style, a border not a shadow on the demo, sentence-case labels, and a count on every filter. */
.tbt-hero{align-items:center;gap:56px;padding-block:36px 40px}
.tbt-hero-copy .tbt-dek{font-size:18px;line-height:1.6;max-width:54ch}
.tbt-hero-copy .tbt-search{position:relative;display:flex;margin-top:28px;max-width:none;padding:0 18px;border-radius:9px;background:#FFFFFF;border:1px solid var(--rule)}
.tbt-hero-copy .tbt-search svg{width:20px;height:20px}
.tbt-hero-copy .tbt-search input{height:54px;padding:0;font:400 17px/1 var(--serif)}
.tbt-hero-copy .tbt-search:focus-within{border-color:#002F56;box-shadow:0 0 0 3px rgba(34,105,143,.18)}
.tbt-qs{margin-top:18px}
.tbt-qs-lab{width:auto;margin-right:6px;font:600 13px/1 var(--display);letter-spacing:0;text-transform:none;color:var(--ink-2)}
.tbt-chip{display:inline-flex;align-items:center;height:40px;padding:0 16px;border-radius:7px;background:#FFFFFF;color:#222222;font:600 14px/1 var(--display)}
.tbt-chip:hover,.tbt-chip:focus-visible{border-color:#002F56;color:#002F56}
.tbt-demo{background:#FFFFFF;border:1px solid var(--rule);border-radius:12px;padding:24px;box-shadow:none}
.tbt .hd-head span,.tbt .hd-f label,.tbt .hd-srow label,.tbt .hd-out > span{font:600 13px/1.2 var(--display);letter-spacing:0;text-transform:none;color:var(--ink-2)}
.tbt .hd-head span{color:#22698F}
.tbt .hd-slider input[type=range]::-webkit-slider-thumb{box-shadow:none}
.tbt .tbt-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;margin-top:8px;padding-top:28px;border-top:1px solid var(--rule)}
.tbt .tbt-bar-title{margin:0;font:700 22px/1.2 var(--display);letter-spacing:-.01em}
.tbt .tbt-bar .tbt-seg{margin:0;padding:0;background:none;border:0;border-radius:0;gap:6px}
.tbt .tbt-bar .tbt-seg button{height:36px;padding:0 13px;border:1px solid var(--rule);border-radius:6px;background:#FFFFFF;color:#222222;font:600 13px/1 var(--display)}
.tbt .tbt-bar .tbt-seg button small{margin-left:6px;font:600 12px/1 var(--display);color:var(--ink-2);font-variant-numeric:tabular-nums}
.tbt .tbt-bar .tbt-seg button[aria-checked="true"]{background:#002F56;border-color:#002F56;color:#FFFFFF}
.tbt .tbt-bar .tbt-seg button[aria-checked="true"] small{color:#A9C1D6}
.tbt .tbt-grid{margin-top:22px}
@media (max-width:600px){.tbt-hero-copy .tbt-dek{font-size:17px}.tbt-demo{padding:18px}}

/* ------------------------------------------------------------------ 2.4.0: calculator bench actions and the house
   Embed and Copy result link sit under "Reset to example", in the same style; corners are height/6, never pills. */
.tbt .inputs .reset,.tbt .bench-acts .pbtn{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 14px;border:1px solid var(--rule);border-radius:6px;background:#FFFFFF;color:var(--ink);font:600 13px/1 var(--display)}
.tbt .inputs .reset:hover,.tbt .bench-acts .pbtn:hover,.tbt .inputs .reset:focus-visible,.tbt .bench-acts .pbtn:focus-visible{border-color:#002F56;color:#002F56}
.tbt .bench-acts{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-top:-10px}
.tbt .bench-acts .pbtn-note{font:600 12px/1.3 var(--display);color:var(--win)}
.tbt .bench-acts .pbtn-note:empty{display:none}
.tbt .prod{grid-template-columns:minmax(0,1fr)}
/* The email box spans the bench's full width. The consent tick stays a 16px box beside its line: the
   field rule ".cap-form input{flex:1 1 200px}" was also catching the checkbox and centring it in 200px. */
.tbt .prod .capture{grid-column:1/-1;border-radius:12px;background:#FFFFFF;padding:18px 20px}
.tbt .cap-form input[type=email]{height:46px}
.tbt .cap-form button{height:46px;border-radius:8px}
.tbt .cap-consent{flex:1 1 100%;align-items:center;font-size:13px}
.tbt .cap-consent input[type=checkbox]{flex:none;width:16px;height:16px;margin:0;padding:0;border-radius:3px}
/* The email box: one plain line, no bold heading. */
.tbt .capture{gap:10px}
.tbt .capture .cap-line{margin:0;font:400 15px/1.4 var(--serif);color:var(--ink-2)}

/* ------------------------------------------------------------------ 2.4.0: "Put it to work"
   Approved 27 September 2026, replacing the practical-guide text: examples to load, what moves the
   result most, and the questions as one-line accordions. */
  
.tbt .tbt-use{margin-top:48px;padding-top:28px;border-top:1px solid var(--rule)}
.tbt .use-head h2{margin:6px 0 0;font:700 24px/1.2 var(--display);letter-spacing:-.015em}
.tbt .use-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:16px;margin-top:18px;align-items:start}
.tbt .use-panel{padding:18px;border:1px solid var(--rule);border-radius:12px;background:#FFFFFF;min-width:0}
.tbt .use-lab{margin:0;font:600 11px/1 var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.tbt .use-scen{display:grid;gap:8px;margin-top:12px}
.tbt .use-scen button{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 12px;width:100%;padding:12px 14px;border:1px solid var(--rule);border-radius:10px;background:#FFFFFF;text-align:left;cursor:pointer;color:var(--ink)}
.tbt .use-scen button:hover{border-color:#002F56}
.tbt .use-scen b{font:700 15px/1.2 var(--display)}
.tbt .use-scen small{grid-column:1;font:400 13px/1.35 var(--serif);color:var(--ink-2)}
.tbt .use-scen .pay{grid-row:1/span 2;grid-column:2;text-align:right;font:700 18px/1 var(--display);color:#002F56;font-variant-numeric:tabular-nums}
.tbt .use-row-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.tbt .use-now{font:600 13px/1 var(--display);color:var(--ink-2);font-variant-numeric:tabular-nums}
.tbt .use-sens{list-style:none;margin:10px 0 0;padding:0}
.tbt .use-sens li button{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) 92px;align-items:center;gap:12px;width:100%;padding:10px 8px;margin:0 -8px;width:calc(100% + 16px);border:0;border-top:1px solid var(--rule);border-radius:0;background:none;text-align:left;cursor:pointer;color:var(--ink)}
.tbt .use-sens li:first-child button{border-top:0}
.tbt .use-sens li button:hover{background:#F3F6F8;border-radius:8px}
.tbt .use-sens .what{font:600 14px/1.3 var(--display)}
.tbt .use-sens .bar{position:relative;height:8px;border-radius:4px;background:#E4E8ED;overflow:hidden}
.tbt .use-sens .bar i{position:absolute;top:0;bottom:0;border-radius:4px;transition:width .35s ease,left .35s ease}
.tbt .use-sens .bar::after{content:"";position:absolute;left:50%;top:-2px;bottom:-2px;width:1px;background:#596672}
.tbt .use-sens .d{text-align:right;font:700 15px/1 var(--display);font-variant-numeric:tabular-nums}
.tbt .use-sens .d.bad{color:#A52B22}.tbt .use-sens .d.good{color:#16704A}
.tbt .use-foot{margin:10px 0 0;font-size:13px;color:var(--ink-2)}
.tbt .use-faq{margin-top:16px}
.tbt .use-qs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}
.tbt .use-qs details{border:1px solid var(--rule);border-radius:10px;background:#FFFFFF}
.tbt .use-qs summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 14px;cursor:pointer;list-style:none;font:600 15px/1.3 var(--display);letter-spacing:0}
.tbt .use-qs summary::-webkit-details-marker{display:none}
.tbt .use-qs summary::after{content:"+";font:600 18px/1 var(--display);color:#22698F}
.tbt .use-qs details[open] summary::after{content:"\2212"}
.tbt .use-qs details p{margin:0;padding:0 14px 14px;font-size:14px;line-height:1.55;color:var(--ink-2)}
.tbt .tbt-bench.flash{outline:3px solid #66CCFF;outline-offset:4px;transition:outline-color .6s}
@media (max-width:760px){.tbt .use-grid,.tbt .use-qs{grid-template-columns:minmax(0,1fr)}.tbt .use-sens li button{grid-template-columns:minmax(0,1fr) 84px}.tbt .use-sens .bar{grid-column:1/-1;grid-row:2}}
@media (prefers-reduced-motion:reduce){.tbt .use-sens .bar i{transition:none}}
.tbt .use-panel[hidden]{display:none}
.tbt .use-sens .d:not(.bad):not(.good){color:#002F56}
.tbt .use-grid:has(> .use-panel[hidden]){grid-template-columns:minmax(0,1fr)}
/* Phones (2.4.0 audit): a long "What it leaves out" line and the hub demo's two input columns could not
   shrink below their content, so both ran a few pixels past a 375px screen. */
.tbt .tbt-leaves li{flex-wrap:wrap}
.tbt .tbt-leaves li>*{min-width:0;max-width:100%;overflow-wrap:anywhere}
.tbt .hd-body{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.tbt .tbt-demo,.tbt .tbt-hero-side{min-width:0;max-width:100%}
@media (max-width:600px){.tbt .hd-body{grid-template-columns:minmax(0,1fr)}}
/* The "hub hero" comment above sits after a stray ".tbt ", so the hero rule reads ".tbt .tbt-hero" and outranked the
   1000px one-column rule: on phones the demo was squeezed into a 47px second column. 14 such prefixes exist
   (an old scripted edit); removing them would change what those rules beat, so this matches it instead. */
@media(max-width:1000px){.tbt .tbt-hero{grid-template-columns:minmax(0,1fr);gap:32px}}
.tbt .tbt-tool-overview{margin:24px 0;gap:10px}
.tbt .tbt-tool-overview h2,.tbt .tbt-tool-overview h3,.tbt .tbt-tool-overview p{margin:0}
.tbt .tbt-tool-overview h2{font-size:23px;line-height:1.3}
.tbt .tbt-tool-overview h3{font-size:17px;line-height:1.4;margin-top:4px}
.tbt .tbt-tool-overview p{max-width:80ch;line-height:1.65}

/* Shared readability fixes for the hub, all calculators and all utilities.
   WordPress themes may add paragraph and heading margins to these components. */
.tbt .tbt-crumbs{display:block;margin:24px 0 0;line-height:1.5;overflow-wrap:anywhere}
.tbt .tbt-hero-copy h1{margin-top:0}
.tbt .tbt-eyebrow{display:block;margin:0 0 8px;line-height:1.35}
.tbt .tbt-reads-head{align-items:flex-start}
.tbt .tbt-reads-head .tbt-eyebrow{margin:0 0 8px}
.tbt .tbt-reads-head h2,.tbt .tbt-card-block > h2{margin:0 0 16px;font:700 clamp(19px,2.2vw,25px)/1.3 var(--display);letter-spacing:-.02em;overflow-wrap:anywhere}
.tbt .tbt-card-block > .tbt-eyebrow{margin:0 0 8px}
.tbt .tbt-card-block > .tbt-eq{max-width:100%;min-width:0;overflow-x:auto;overflow-wrap:anywhere;line-height:1.5}
.tbt .tbt-vars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;margin:18px 0 20px;padding:0}
.tbt .tbt-vars > div{display:flex;align-items:flex-start;gap:10px;min-width:0}
.tbt .tbt-vars dt{flex:0 0 auto;width:auto;min-width:28px;max-width:100%;height:auto;min-height:28px;padding:5px 8px;white-space:normal;overflow-wrap:anywhere;line-height:1.25;text-align:center}
.tbt .tbt-vars dd{flex:1 1 0;min-width:0;margin:0;padding:4px 0 0;overflow-wrap:anywhere;line-height:1.5}
.tbt .tbt-leaves{display:grid;gap:0;margin:0 0 20px;padding:0;list-style:none}
.tbt .tbt-leaves li{display:flex;flex-direction:column;align-items:stretch;gap:4px;margin:0;padding:12px 0;min-width:0}
.tbt .tbt-leaves li:first-child{padding-top:0}
.tbt .tbt-leaves b{display:block;margin:0;line-height:1.4;overflow-wrap:anywhere}
.tbt .tbt-leaves li span:not(.ic){display:block;margin:0;line-height:1.55;overflow-wrap:anywhere}
.tbt .tbt-card-block > .tbt-note{margin:12px 0 0;line-height:1.55}
.tbt .tile,.tbt .t-val{min-width:0}
.tbt .t-lab{line-height:1.4;overflow-wrap:anywhere}
.tbt .t-area,.tbt .tile input,.tbt .tile select{max-width:100%;min-width:0}
.tbt .t-area{box-sizing:border-box;line-height:1.55;overflow-wrap:anywhere}
@media(max-width:600px){.tbt .tbt-vars{grid-template-columns:minmax(0,1fr)}.tbt .tbt-reads-head h2,.tbt .tbt-card-block > h2{font-size:20px}}

/* 2.4.9: guidance panels */
.tbt .use-guidance{margin-top:18px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.tbt .use-guidance .use-panel{padding:22px 24px}
.tbt .use-guidance .use-lab{margin-bottom:12px}
.tbt .use-copy{margin:0;font-size:15px;line-height:1.7;color:var(--ink);max-width:56ch}
.tbt .use-list{margin:0;padding:0;list-style:none;font-size:15px;line-height:1.6;color:var(--ink)}
.tbt .use-list li{position:relative;padding-left:22px;margin:0 0 12px}
.tbt .use-list li:last-child{margin-bottom:0}
.tbt .use-list li::before{content:"";position:absolute;left:2px;top:.6em;width:8px;height:8px;border-radius:50%;background:var(--hl)}
@media(max-width:820px){.tbt .use-guidance{grid-template-columns:minmax(0,1fr)}}

/* 2.4.9: collapsible overview. Content stays in the DOM for crawlers; only the disclosure state changes. */
.tbt .tbt-more{margin-top:14px;border-top:1px solid var(--grid);padding-top:6px}
.tbt .tbt-more>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:8px;padding:8px 0;font:600 14px/1.2 var(--display);color:var(--hl);user-select:none}
.tbt .tbt-more>summary::-webkit-details-marker{display:none}
.tbt .tbt-more>summary::before{content:"";width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .15s ease}
.tbt .tbt-more[open]>summary::before{transform:rotate(-135deg) translateY(2px)}
.tbt .tbt-more>summary:hover{text-decoration:underline}
.tbt .tbt-more>summary:focus-visible{outline:2px solid var(--hl);outline-offset:3px;border-radius:4px}
.tbt .tbt-more .tbt-more-close{display:none}.tbt .tbt-more[open] .tbt-more-open{display:none}.tbt .tbt-more[open] .tbt-more-close{display:inline}
.tbt .tbt-more>h3:first-of-type{margin-top:10px}
@media print{.tbt .tbt-more{display:block}.tbt .tbt-more>summary{display:none}.tbt .tbt-more>*{display:block}}

.tbt .tbt-admin-note{margin-top:40px;padding:10px 14px;border:1px dashed var(--rule);border-radius:8px;color:var(--ink-2);font-size:13px}

/* 2.4.10: rhythm inside the About disclosure and the dek under the title. Appended so it wins on order. */
.tbt .tbt-head .tbt-dek{max-width:64ch;font-size:16px;line-height:1.65;margin:10px 0 0;color:var(--ink-2)}
.tbt .tbt-tool-overview{gap:14px}
.tbt .tbt-tool-overview .tbt-more{margin-top:6px}
.tbt .tbt-tool-overview .tbt-more>summary{font-size:15px;padding:10px 0}
.tbt .tbt-tool-overview .tbt-more>h3{margin:22px 0 8px;font-size:17px;line-height:1.35}
.tbt .tbt-tool-overview .tbt-more>summary+h3{margin-top:14px}
.tbt .tbt-tool-overview .tbt-more>p{margin:0;max-width:72ch;line-height:1.7}
.tbt .tbt-tool-overview .tbt-more>p+h3{margin-top:26px}
.tbt .tbt-tool-overview .tbt-more[open]{padding-bottom:6px}

.tbt .tbt-crumbs{margin-bottom:6px}.tbt .tbt-head h1{margin-top:4px}

/* ---- 2.6.0: print / save as PDF. The sheet is built from live state on click and only shown when printing. ---- */
.tbt .tbt-print{display:none}
@media print{
  @page{margin:16mm 14mm}
  html,body{background:#fff!important;color:#000!important}
  body *{visibility:hidden}
  #tbt-app,#tbt-app *{visibility:visible}
  #tbt-app{position:absolute;left:0;top:0;width:100%;margin:0;padding:0}
  .tbt .tbt-page{max-width:none;padding:0}
  .tbt .tbt-crumbs,.tbt .tbt-head,.tbt .tbt-bench,.tbt .tbt-prod,.tbt .tbt-sponsor,.tbt .tbt-tool-overview,.tbt .tbt-use,.tbt .tbt-related-tools,.tbt .tbt-reads,.tbt .tbt-pager,.tbt .tbt-fine,.tbt .tbt-noscript,#tbt-sr{display:none!important}
  .tbt .tbt-print{display:block;font:11pt/1.45 Georgia,"Times New Roman",serif;color:#000;margin-bottom:10mm}
  .tbt .tbt-print header{border-bottom:2px solid #002f56;padding-bottom:6px;margin-bottom:8mm}
  .tbt .tbt-print .tp-brand{font:700 9pt/1 Arial,Helvetica,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#002f56}
  .tbt .tbt-print h1{font:700 22pt/1.1 Arial,Helvetica,sans-serif;margin:6px 0 4px;color:#000}
  .tbt .tbt-print .tp-meta{margin:0;font:9.5pt/1.3 Arial,Helvetica,sans-serif;color:#444}
  .tbt .tbt-print .tp-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:8mm;align-items:start}
  .tbt .tbt-print table{border-collapse:collapse;width:100%;font-family:Arial,Helvetica,sans-serif;font-size:10pt}
  .tbt .tbt-print caption{text-align:left;font-weight:700;font-size:9pt;letter-spacing:.08em;text-transform:uppercase;color:#444;padding-bottom:4px}
  .tbt .tbt-print th,.tbt .tbt-print td{text-align:left;padding:4px 0;border-bottom:1px solid #ddd;vertical-align:top}
  .tbt .tbt-print td{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
  .tbt .tbt-print .tp-result{border:1px solid #002f56;border-radius:4px;padding:10px 12px}
  .tbt .tbt-print .tp-lab{font:700 9pt/1 Arial,Helvetica,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#444}
  .tbt .tbt-print .tp-big{font:700 26pt/1.1 Arial,Helvetica,sans-serif;color:#002f56;margin:6px 0;font-variant-numeric:tabular-nums}
  .tbt .tbt-print .tp-result p{margin:0 0 6px;font-size:10pt}
  .tbt .tbt-print .tp-result ul{margin:6px 0 0;padding-left:16px;font-size:9.5pt;font-family:Arial,Helvetica,sans-serif}
  .tbt .tbt-print footer{margin-top:8mm;padding-top:6px;border-top:1px solid #bbb;font:8.5pt/1.4 Arial,Helvetica,sans-serif;color:#444}
  .tbt .tbt-print footer p{margin:0 0 3px}
  .tbt .tbt-print .tp-url{word-break:break-all;color:#002f56}
  /* Method + limitations print below the sheet, in mono-tone */
  .tbt .tbt-below{display:grid!important;grid-template-columns:1fr 1fr;gap:8mm;page-break-inside:avoid}
  .tbt .tbt-below .tbt-card-block{border:1px solid #ccc;border-radius:4px;padding:8px 10px;background:#fff;box-shadow:none}
  .tbt .tbt-below h2{font-size:12pt;margin:2px 0 6px}.tbt .tbt-below .tbt-eyebrow{color:#444}
  .tbt .tbt-eq,.tbt .tbt-vars,.tbt .tbt-leaves{font-size:9.5pt;color:#000}
  .tbt .tbt-note{font-size:8.5pt;color:#444}
  .tbt .tbt-print .tp-h2{font:700 12pt/1.2 Arial,Helvetica,sans-serif;margin:8mm 0 3mm;color:#000}
  .tbt .tbt-print .tp-findings{margin:0;padding:0;list-style:none;font:9.5pt/1.4 Arial,Helvetica,sans-serif;columns:2;column-gap:8mm}
  .tbt .tbt-print .tp-findings li{break-inside:avoid;padding:3px 0 3px 10px;border-left:3px solid #bbb;margin-bottom:4px}
  .tbt .tbt-print .tp-findings li.tp-bad{border-color:#a52b22}.tbt .tbt-print .tp-findings li.tp-warn{border-color:#c98a00}.tbt .tbt-print .tp-findings li.tp-good{border-color:#16704a}
  a[href]::after{content:none!important}
}

/* ---- 2.7.0: scenario compare ---- */
.tbt .compare{margin-top:28px;padding:20px 22px;border:1px solid var(--rule);border-radius:12px;background:var(--paper)}
.tbt .compare-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:12px}
.tbt .compare-head h2{margin:4px 0 0;font:700 22px/1.2 var(--display);letter-spacing:-.015em}
.tbt .compare-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tbt #compareTable{width:100%;border-collapse:collapse;font-size:14px;min-width:420px}
.tbt #compareTable th,.tbt #compareTable td{padding:9px 12px;border-bottom:1px solid var(--grid);text-align:right;vertical-align:top;white-space:nowrap}
.tbt #compareTable th:first-child{text-align:left;color:var(--ink-2);font-weight:500;white-space:normal;min-width:140px}
.tbt #compareTable thead th{border-bottom:2px solid var(--ink);padding-bottom:10px}
.tbt #compareTable td{font-variant-numeric:tabular-nums lining-nums}
.tbt #compareTable .cmp-head td b{font:700 20px/1.1 var(--display);color:var(--cobalt)}
.tbt #compareTable .cmp-head th{font-weight:700;color:var(--ink)}
.tbt #compareTable .cmp-stat th{color:var(--ink-2);font-size:13px}.tbt #compareTable .cmp-stat td{font-size:13px}
.tbt #compareTable .cmp-same td{text-align:left;white-space:normal;color:var(--ink-2);font-size:12.5px;border-bottom:0;padding-top:12px}
.tbt #compareTable .cmp-same th{border-bottom:0;padding-top:12px;font-size:12.5px}
.tbt .cmp-load{font:600 13px/1 var(--display);color:var(--cobalt);background:var(--cobalt-wash);border:1px solid transparent;border-radius:999px;padding:7px 12px;cursor:pointer}
.tbt .cmp-load:hover{border-color:var(--cobalt)}
.tbt .cmp-x{margin-left:6px;width:26px;height:26px;border-radius:50%;border:1px solid var(--rule);background:var(--paper);color:var(--ink-2);font-size:16px;line-height:1;cursor:pointer;vertical-align:middle}
.tbt .cmp-x:hover{color:var(--lose);border-color:var(--lose)}
.tbt .compare-foot{margin:12px 0 0;font-size:12.5px;color:var(--ink-2)}
.tbt .pbtn-note a{color:var(--cobalt);font-weight:600}
@media(max-width:720px){.tbt .compare{padding:16px}.tbt .compare-head{flex-direction:column;align-items:flex-start}}
@media print{.tbt .compare{display:none!important}}

/* ---- 2.7.1: Executive Insights up to six. Tighter cards when a second row is present. ---- */
.tbt .tbt-reads-six .tbt-reads-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.tbt .tbt-reads-six .tbt-read-media{aspect-ratio:16/9}
.tbt .tbt-reads-six .tbt-read-body{padding:14px 16px 16px}
.tbt .tbt-reads-six .tbt-read-body b{font-size:15px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
@media(max-width:900px){.tbt .tbt-reads-six .tbt-reads-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.tbt .tbt-reads-six .tbt-reads-grid{grid-template-columns:minmax(0,1fr)}}

.tbt .compare{grid-column:1/-1;width:100%}
.tbt .cmp-live{display:inline-block;font:600 13px/1 var(--display);color:var(--ink-2);border:1px dashed var(--rule);border-radius:999px;padding:7px 12px}
.tbt #compareTable td:last-child{background:transparent}

/* 2.8.0: no empty chart box. */
.tbt .result{align-self:start}
.tbt .chart[hidden],.tbt .facts[hidden],.tbt #partsWrap[hidden]{display:none!important}

/* ---- 2.8.1: compare block is a plain stacked section, whatever the bench grid says ---- */
.tbt .compare{display:block!important;grid-column:1/-1;margin-top:28px}
.tbt .compare>*{grid-column:auto;width:auto}
.tbt .compare .compare-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin:0 0 12px}
.tbt .compare .compare-head .tbt-eyebrow{margin:0}
.tbt .compare .compare-foot{margin-top:12px}

/* ---- 2.8.1: print sheet, redrawn. Brand type, one clear hierarchy, quiet rules. ---- */
@media print{
  .tbt .tbt-print{font-family:"Lato",Arial,Helvetica,sans-serif;color:#111}
  .tbt .tbt-print header{display:flex;justify-content:space-between;align-items:flex-end;gap:12mm;border-bottom:1.5pt solid #002f56;padding-bottom:5mm;margin-bottom:7mm}
  .tbt .tbt-print .tp-mast{display:flex;align-items:center;gap:8px}
  .tbt .tbt-print .tp-logo{height:9mm;width:auto;display:block}
  .tbt .tbt-print .tp-word{font:800 16pt/1 "Montserrat",Arial,sans-serif;color:#002f56;letter-spacing:-.02em}
  .tbt .tbt-print .tp-tools{font:600 8.5pt/1 "Montserrat",Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#22698f;padding-left:8px;border-left:1pt solid #d2d9e1;margin-left:4px}
  .tbt .tbt-print .tp-title{text-align:right}
  .tbt .tbt-print h1{font:700 17pt/1.15 "Montserrat",Arial,sans-serif;margin:0;color:#111;letter-spacing:-.01em}
  .tbt .tbt-print .tp-meta{margin:2px 0 0;font:9pt/1.3 "Lato",Arial,sans-serif;color:#596672}
  .tbt .tbt-print .tp-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:10mm;align-items:start}
  .tbt .tbt-print table{border-collapse:collapse;width:100%;font-size:9.5pt}
  .tbt .tbt-print caption{text-align:left;font:600 8pt/1 "Montserrat",Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#596672;padding-bottom:6px}
  .tbt .tbt-print th,.tbt .tbt-print td{padding:5px 0;border-bottom:.5pt solid #d2d9e1;vertical-align:top;font-weight:400}
  .tbt .tbt-print th{text-align:left;color:#3d4b5c}
  .tbt .tbt-print td{text-align:right;font-variant-numeric:tabular-nums;color:#111;font-weight:600}
  .tbt .tbt-print .tp-result{border:0;border-left:3pt solid #002f56;border-radius:0;padding:2px 0 2px 6mm}
  .tbt .tbt-print .tp-lab{font:600 8pt/1 "Montserrat",Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#596672}
  .tbt .tbt-print .tp-big{font:800 30pt/1.05 "Montserrat",Arial,sans-serif;color:#002f56;margin:5px 0 6px;letter-spacing:-.025em;font-variant-numeric:tabular-nums}
  .tbt .tbt-print .tp-result p{margin:0;font-size:10pt;line-height:1.45;color:#3d4b5c}
  .tbt .tbt-print .tp-result p b{color:#111}
  .tbt .tbt-print .tp-result ul{margin:8px 0 0;padding:0;list-style:none;font-size:9.5pt;columns:2;column-gap:6mm}
  .tbt .tbt-print .tp-result li{break-inside:avoid;padding:3px 0;border-top:.5pt solid #e4e8ed;color:#3d4b5c}
  .tbt .tbt-print footer{margin-top:8mm;padding-top:4mm;border-top:.5pt solid #d2d9e1;display:grid;grid-template-columns:1fr 1fr;gap:8mm;font:8.5pt/1.4 "Lato",Arial,sans-serif;color:#596672}
  .tbt .tbt-print footer div{display:block}
  .tbt .tbt-print .tp-k{display:block;font:600 7.5pt/1 "Montserrat",Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#596672;margin-bottom:3px}
  .tbt .tbt-print .tp-url{word-break:break-all;color:#002f56}
  .tbt .tbt-below{margin-top:8mm}
  .tbt .tbt-below .tbt-card-block{border:0;border-top:.5pt solid #d2d9e1;border-radius:0;padding:5mm 0 0}
  .tbt .tbt-below h2{font:700 11pt/1.2 "Montserrat",Arial,sans-serif;color:#111}
  .tbt .tbt-below .tbt-eyebrow{font:600 7.5pt/1 "Montserrat",Arial,sans-serif;letter-spacing:.12em;color:#596672}
  .tbt .tbt-eq,.tbt .tbt-vars,.tbt .tbt-leaves{font-size:9pt;line-height:1.45;color:#3d4b5c}
  .tbt .tbt-leaves b{color:#111}
  .tbt .tbt-print .tp-h2{font:700 11pt/1.2 "Montserrat",Arial,sans-serif;margin:8mm 0 3mm;color:#111}
  .tbt .tbt-print .tp-findings{font:9pt/1.4 "Lato",Arial,sans-serif}
}

.tbt .compare-how{margin:0 0 14px;padding:0 0 0 22px;font-size:14px;line-height:1.55;color:var(--ink)}
.tbt .compare-how li{margin:0 0 6px}
.tbt .compare-how b{color:var(--cobalt);font-weight:600}
.tbt .compare .compare-foot{font-size:13px;color:var(--ink-2)}

.tbt .compare-how{list-style:decimal;margin-top:22px;padding-left:24px}
.tbt .compare-how li::marker{color:var(--cobalt);font-weight:700}
.tbt .compare-scroll{margin-bottom:6px}
@media(min-width:900px){.tbt .compare-how{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding-left:0;list-style:none;counter-reset:step}.tbt .compare-how li{counter-increment:step;position:relative;padding-left:34px}.tbt .compare-how li::before{content:counter(step);position:absolute;left:0;top:-1px;width:24px;height:24px;border-radius:50%;background:var(--cobalt);color:#fff;font:700 13px/24px var(--display);text-align:center}}

/* ---- 2.9.0 ---- */
.tbt .big{overflow-wrap:anywhere;max-width:100%}
.tbt .top-row>div:first-child{min-width:0;flex:1 1 auto}
.tbt .compare.has-two .compare-how{display:none}
.tbt .cmp-name{margin-left:4px;width:26px;height:26px;border-radius:50%;border:1px solid transparent;background:transparent;color:var(--ink-2);font-size:13px;cursor:pointer;vertical-align:middle}
.tbt .cmp-name:hover{color:var(--cobalt);border-color:var(--cobalt)}
.tbt .cmp-edit{width:9.5em;max-width:100%;text-align:right;font:inherit;font-variant-numeric:tabular-nums;color:var(--ink);background:transparent;border:1px solid transparent;border-bottom:1px dashed var(--cobalt);border-radius:4px 4px 0 0;padding:3px 6px;cursor:text}
.tbt .cmp-edit:hover{border-color:var(--rule)}
.tbt .cmp-edit:focus{outline:none;border-color:var(--cobalt);background:var(--paper)}
.tbt .tbt-serp-facts{margin:12px 0 0;padding-left:18px;font-size:13px;color:var(--ink-2);line-height:1.5}
.tbt .tbt-serp-facts li{margin:3px 0}
.tbt .tbt-serp .tbt-serp-title{order:0}
@media print{
  .tbt .tbt-print .tp-grid{grid-template-columns:1fr;gap:6mm}
  .tbt .tbt-print .tp-result{display:grid;grid-template-columns:auto 1fr;gap:2mm 8mm;align-items:center;padding:6mm 8mm;border-width:1.5pt}
  .tbt .tbt-print .tp-result .tp-lab{grid-column:1/-1}
  .tbt .tbt-print .tp-result .tp-big{font-size:34pt;line-height:1;margin:0;white-space:nowrap;position:static;transform:none}
  .tbt .tbt-print .tp-result .tp-big::before,.tbt .tbt-print .tp-result .tp-big::after{content:none!important}
  .tbt .tbt-print .tp-result p{margin:0;font-size:10.5pt;color:#333}
  .tbt .tbt-print .tp-inputs{max-width:100%}
  .tbt .tbt-print .tp-inputs th{width:60%}
  .tbt .tbt-print .tp-findings{columns:1}
  .tbt .tbt-print .tp-findings li{padding:5px 0 5px 12px;margin-bottom:6px;font-size:10pt;line-height:1.45}
  .tbt .tbt-print .tp-findings li b{display:block;margin-bottom:1px}
  .tbt .tbt-print footer p{word-break:normal;overflow-wrap:anywhere}
}


/* ---- 2.10.2: compare — show the saving ---- */
.tbt #compareTable .cmp-head td .cmp-sub{display:block;font:500 11px/1.3 var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2);margin-top:3px;white-space:normal}
.tbt #compareTable .cmp-diff th{font-weight:700;color:var(--ink)}
.tbt #compareTable .cmp-diff th,.tbt #compareTable .cmp-diff td{background:var(--cobalt-wash)}
.tbt #compareTable .cmp-diff td{font-size:15px}
.tbt #compareTable .cmp-diff td b{font-family:var(--display);font-weight:700}
.tbt #compareTable .cmp-diff .cmp-pct{font-weight:500;color:var(--ink-2);font-size:13px}
.tbt #compareTable .cmp-diff .cmp-base{font:500 11px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.tbt #compareTable .is-worse b,.tbt #compareTable .cmp-delta.is-worse{color:var(--lose)}
.tbt #compareTable .is-better b,.tbt #compareTable .cmp-delta.is-better{color:var(--win)}
.tbt #compareTable .cmp-delta{display:block;font-size:11.5px;margin-top:2px;font-weight:600}
.tbt #compareTable .cmp-delta .cmp-pct{font-weight:500;opacity:.8}
