/* MyFastCalcTools V17.14 — ordered bundle. Source files remain in assets for future maintenance. */

/* SOURCE: hub.css */
/* MyFastCalcTools V16 — elastic constellation, stable central calculator. */
:root{--hub-ink:#203c2c;--hub-green:#23533b;--hub-muted:#65776b;--hub-line:#d5e0d5;--hub-warm:#fafbf7;--hub-ease:cubic-bezier(.2,.8,.24,1)}
.hub-entry{display:flex;align-items:end;gap:30px;justify-content:space-between;padding:30px 0 18px}
.hub-entry h1{font:500 clamp(1.35rem,2.15vw,1.77rem)/1.15 'Source Serif 4',Georgia,serif;letter-spacing:-.03em;margin:0;color:#20382a}
.hub-entry p{font-size:.82rem;color:var(--hub-muted);margin:6px 0 0}
.hub-search{position:relative;flex:0 1 390px;min-width:240px;z-index:30}
.hub-search-field{height:46px;display:flex;align-items:center;gap:10px;padding:0 12px;background:#fff;border:1px solid #b9cbbd;border-radius:12px;box-shadow:0 2px 5px #27463007;transition:border-color .18s,box-shadow .18s}
.hub-search-field:focus-within{border-color:#477c60;box-shadow:0 0 0 3px #d7e9d9}
.hub-search-field svg{flex-shrink:0;color:#718575}
.hub-search-field input{background:transparent;border:0;outline:0;box-shadow:none;min-width:0;flex:1;font:400 .87rem 'IBM Plex Sans',sans-serif;padding:8px 0;color:#243c2e}
.hub-search-shortcut{font-size:.72rem;border:1px solid #dce4dd;border-radius:5px;min-width:22px;text-align:center;color:#778879}
.hub-search-results[hidden],.hub-tool-panel[hidden],.hub-ws-answer[hidden],.hub-ws-full[hidden],#hub-ws-form[hidden]{display:none!important}
.hub-search-results{position:absolute;top:calc(100% + 7px);inset-inline:0;max-height:340px;overflow-y:auto;background:white;border:1px solid #cfddcf;border-radius:13px;box-shadow:0 18px 34px #1739221b;padding:4px}
.hub-search-results>p{padding:12px;font-size:.84rem;color:var(--hub-muted)}
.hub-search-result{display:flex;gap:4px;align-items:center;border-bottom:1px solid #f0f2ed}.hub-search-result:last-child{border-bottom:0}
.hub-search-result button{flex:1;min-width:0;display:flex;flex-direction:column;align-items:start;text-align:left;background:transparent;border:0;border-radius:8px;padding:9px 12px;cursor:pointer;color:#264331}
.hub-search-result button strong{font-size:.84rem;font-weight:600}.hub-search-result button span{font-size:.69rem;color:#819283}
.hub-search-result button:hover,.hub-search-result button:focus-visible{background:#f0f6ef;outline:0}
.hub-search-result a{font-size:.72rem;white-space:nowrap;color:#2c6647;padding:10px 8px;text-decoration:none}.hub-search-result a:hover{text-decoration:underline}
.hub-shell{border:1px solid #d7e2d5;border-radius:24px;background:#edf2eb;position:relative;padding:14px 20px 13px;isolation:isolate;box-shadow:inset 0 1px 0 #ffffff82}
.hub-meta,.hub-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;position:relative;z-index:3}
.hub-meta span:first-child{color:#5e7664;letter-spacing:.10em;font-size:.65rem;font-weight:700}.hub-meta span:last-child{color:#718574;font-size:.72rem}

/* V16 interaction geometry: category anchors never become a dock. */
.hub-map{height:650px;position:relative;isolation:isolate;container-type:inline-size;--sheet-top:160px}
.hub-track{position:absolute;left:50%;top:49%;width:550px;height:470px;max-width:95%;transform:translate(-50%,-50%);border:1px solid rgba(69,115,82,.11);border-radius:50%;pointer-events:none}
.hub-track::before{content:'';position:absolute;inset:46px 56px;border:1px solid rgba(69,115,82,.07);border-radius:50%}
.hub-topics{position:absolute;inset:0;z-index:6;pointer-events:none}
.hub-topic{position:absolute;pointer-events:auto;left:calc(var(--hx) + var(--elastic-x,0px));top:calc(var(--hy) + var(--elastic-y,0px));transform:translate(-50%,-50%);width:99px;height:99px;padding:10px 5px;display:flex;flex-direction:column;gap:5px;align-items:center;justify-content:center;text-align:center;border-radius:50%;border:1px solid #c4d5c4;background:#fcfdf9;color:#31543e;box-shadow:0 4px 13px #1837240c,inset 0 1px 0 #fff;cursor:pointer;transition:background-color .34s ease,border-color .34s ease,box-shadow .38s ease,color .34s ease}
.hub-topic:hover,.hub-topic[aria-expanded=true]{border-color:#739983;background:#fff;box-shadow:0 7px 19px #1c52351c,0 0 0 3px #d2e2d257}
.hub-topic[aria-pressed=true]{background:#234f37;border-color:#234f37;color:#fff;box-shadow:0 7px 19px #14392220}
.hub-map.is-expanded .hub-topic[aria-pressed=true]:not([aria-expanded=true]){background:#fcfdf9;color:#31543e;border-color:#9bb9a4;box-shadow:0 3px 11px #18372409}
.hub-map.is-expanded .hub-topic[aria-expanded=true]{background:#234f37;color:#fff;border-color:#234f37;box-shadow:0 8px 24px #214f3725}
.hub-topic[aria-expanded=true]{outline:2px solid #a5bea8;outline-offset:3px}
.hub-topic:focus-visible{outline:3px solid #aa774e;outline-offset:4px}
.hub-icon{display:grid;place-items:center;width:24px;height:24px;line-height:1}
.hub-icon svg{width:22px;height:22px;transition:transform .27s ease}
.hub-label{font-size:.77rem;line-height:1.17;max-width:80px;font-weight:600;letter-spacing:-.015em}
.hub-workspace{position:absolute;left:50%;top:48.4%;transform:translate(-50%,-50%);z-index:3;width:370px;min-height:390px;padding:24px 25px 21px;background:#fffefa;border:1px solid #cbd9cd;border-radius:19px;box-shadow:0 17px 38px #1c46241a,0 2px 5px #2e49230a;transition:box-shadow .6s ease}
.hub-map.is-expanded .hub-workspace{box-shadow:0 19px 43px #1c46241c,0 2px 5px #2e49230a}
.hub-workspace:focus{outline:0}.hub-workspace:focus-visible{outline:3px solid #ad8c68;outline-offset:4px}
.hub-ws-overline{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#5b7663;font-size:.72rem;line-height:1.4}
.hub-ws-kind{color:#39684b;font:600 .64rem 'IBM Plex Mono',monospace;letter-spacing:.02em;white-space:nowrap;border:1px solid #d3e2d2;padding:4px 5px;border-radius:5px}
.hub-workspace h2{font:600 1.34rem/1.2 'IBM Plex Sans',sans-serif;letter-spacing:-.035em;color:#213b2b;margin:13px 0 5px}
.hub-ws-description{margin:0 0 18px;color:#708173;font-size:.78rem;line-height:1.4;min-height:1.3em}
.hub-ws-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.hub-ws-fields label{display:flex;flex-direction:column;min-width:0;gap:5px;color:#4f6555;font-size:.76rem;line-height:1.3}
.hub-ws-fields label:first-child:nth-last-child(3),.hub-ws-fields label:only-child{grid-column:1/-1}
.hub-ws-fields input{display:block;width:100%;min-width:0;height:43px;border:1px solid #cbd8cb;border-radius:9px;background:#f8faf6;color:#1c3726;outline:none;box-shadow:none;font:500 1rem 'IBM Plex Sans',sans-serif;padding:8px 11px;transition:border-color .16s,background-color .16s,box-shadow .16s}
.hub-ws-fields input:focus{border-color:#4c8760;box-shadow:0 0 0 3px #dbeadd;background:#fff}
.hub-ws-fields input[aria-invalid=true]{border-color:#bd6d57}
.hub-ws-fields input[aria-invalid=true]:focus{box-shadow:0 0 0 3px #f5dcd5}
.hub-ws-answer{margin-top:17px;padding:14px 15px 12px;background:#eff4ec;border-radius:11px;display:flex;flex-direction:column;gap:3px}
#hub-ws-answer-label{font-size:.71rem;color:#59715c}#hub-ws-answer-value{font:600 clamp(1.65rem,2.1vw,2rem)/1.12 'IBM Plex Sans',sans-serif;color:#1f5335;letter-spacing:-.035em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}#hub-ws-answer-note{font-size:.68rem;line-height:1.4;color:#708174}#hub-ws-answer-note.error{color:#a44136}
.hub-ws-full{background:#f1f5ef;border:1px solid #e0e9dd;border-radius:11px;padding:16px;margin:15px 0 0}.hub-ws-full p{font-size:.82rem;color:#566e5c;margin:0;line-height:1.55}
.hub-ws-link{display:flex;align-items:center;justify-content:space-between;gap:10px;text-decoration:none;background:#22563d;color:#fff;border-radius:9px;padding:11px 14px;margin-top:13px;font-size:.83rem;font-weight:600;transition:background-color .2s ease,transform .22s var(--hub-ease)}
.hub-ws-link:hover,.hub-ws-link:focus-visible{background:#163d2b;color:#fff;transform:translateY(-1px)}.hub-ws-link span{font-size:1.07rem}

/* A full-size, transparent interaction layer: tool pills are individually positioned in the orbit. */
.hub-tool-panel{position:absolute;inset:0;z-index:7;border:0;padding:0;background:transparent;box-shadow:none;pointer-events:none;opacity:0;transition:opacity .54s ease}
.hub-map.is-expanded .hub-tool-panel{opacity:1}
.hub-panel-head{position:static;margin:0;padding:0}
.hub-panel-eyebrow,.hub-panel-head h3{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#hub-panel-close{position:absolute;left:var(--close-x,50%);top:var(--close-y,10%);transform:translate(-50%,-50%);width:30px;height:30px;border-radius:50%;border:1px solid #c9dcca;background:#fff;color:#41694e;cursor:pointer;font-size:1.05rem;display:grid;place-items:center;pointer-events:auto;box-shadow:0 3px 9px #23442e13}
#hub-panel-close:hover{background:#edf4eb}#hub-panel-close:focus-visible{outline:3px solid #b48867;outline-offset:2px}
.hub-panel-list{display:contents}
.hub-tool-option{position:absolute;left:var(--tool-x,50%);top:var(--tool-y,50%);transform:translate(-50%,calc(-50% + 10px)) scale(.95);width:148px;height:44px;min-height:44px;border:1px solid #d8e5d6;background:#fffefa;border-radius:999px;display:flex;align-items:center;gap:6px;padding:7px 12px;text-align:left;color:#2c4c34;cursor:pointer;box-shadow:0 4px 12px #183a2110;pointer-events:auto;opacity:0;transition:background-color .24s ease,border-color .24s ease,box-shadow .24s ease,opacity .32s ease,transform .38s cubic-bezier(.17,.78,.25,1);transition-delay:0ms,0ms,0ms,calc(var(--order)*25ms + 75ms),calc(var(--order)*25ms + 75ms)}
.hub-map.is-expanded .hub-tool-option{opacity:1;transform:translate(-50%,-50%) scale(1)}
.hub-tool-option::before{content:"";width:6px;height:6px;border:1px solid #9dbba5;background:#e5f0e5;border-radius:50%;flex:none}
.hub-tool-option:hover,.hub-tool-option:focus-visible{background:#edf5ec;border-color:#8db699;box-shadow:0 6px 16px #163d2415;outline:none}
.hub-tool-option:focus-visible{outline:2px solid #49795a;outline-offset:2px}
.hub-tool-option[aria-pressed=true]{border-color:#94bca1;background:#edf5eb}
.hub-tool-option-label{flex:1;font-size:.78rem;font-weight:600;line-height:1.18;min-width:0}
.hub-tool-option-kind{display:none}
.hub-tool-option-arrow{font-size:.85rem;color:#6e9678}

.hub-bottom{margin-top:0;padding:7px 1px 1px;font-size:.72rem;color:#748674}
.hub-bottom a{color:#2f6745;text-decoration:none;font-weight:600}.hub-bottom a:hover{text-decoration:underline}
@media(max-width:1099px){
 .hub-shell{padding:14px 14px 13px}.hub-track{display:none}
 .hub-map{height:auto;min-height:0;display:flex;flex-direction:column;gap:12px;margin-top:12px;container-type:normal}
 .hub-topics{position:static;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;pointer-events:auto;order:0}
 .hub-topic{position:static;left:auto;top:auto;transform:none;width:100%;height:76px;border-radius:13px;gap:3px;padding:7px 4px}
 .hub-icon svg{width:19px;height:19px}.hub-icon{height:19px}.hub-label{font-size:.73rem;max-width:none}
 .hub-workspace{position:static;left:auto;top:auto;transform:none;order:2;width:100%;min-height:0;padding:19px 20px;border-radius:15px;box-shadow:0 6px 17px #1839250d}
 .hub-ws-description{min-height:0}
 .hub-map.is-expanded .hub-workspace{opacity:.65;pointer-events:none}
 .hub-tool-panel{position:absolute;inset:auto 5px auto;top:var(--sheet-top,160px);width:calc(100% - 10px);max-height:min(64vh,370px);overflow-y:auto;background:#fafcf7;border:1px solid #c9dccb;border-radius:17px;padding:12px 13px 14px;box-shadow:0 16px 35px #173c2524;transform:translateY(-12px) scale(.985);transition:opacity .32s ease,transform .38s cubic-bezier(.18,.72,.22,1);pointer-events:none}
 .hub-map.is-expanded .hub-tool-panel{transform:translateY(0) scale(1);pointer-events:auto}
 .hub-panel-head{position:relative;display:flex;align-items:center;gap:6px;padding:0 42px 10px 3px}
 .hub-panel-head h3{position:static;clip-path:none;overflow:visible;width:auto;height:auto;white-space:normal;font:500 1rem 'Source Serif 4',Georgia,serif;margin:0;color:#234d35}
 .hub-panel-eyebrow{display:none}
 #hub-panel-close{left:auto;top:0;right:0;transform:none;width:34px;height:34px}
 .hub-panel-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .hub-tool-option{position:static;left:auto;top:auto;transform:translateY(7px) scale(.98);width:100%;height:auto;min-height:47px;opacity:0;border-radius:11px;padding:9px 10px}
 .hub-map.is-expanded .hub-tool-option{transform:translateY(0) scale(1)}
 .hub-tool-option-label{font-size:.77rem}
}
@media(max-width:760px){
 .hub-entry{padding:16px 0 13px;display:block}.hub-entry h1{font-size:1.3rem}.hub-entry p{font-size:.76rem;margin-top:3px}.hub-search{margin-top:13px;max-width:none}.hub-search-field{height:43px}.hub-search-shortcut{display:none}
 .hub-shell{border-radius:17px;padding:11px 10px 12px}.hub-meta span:last-child{font-size:.65rem}.hub-meta span:first-child{font-size:.6rem}
 .hub-map{margin-top:11px;gap:9px}.hub-topics{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
 .hub-topic{height:64px;border-radius:12px;gap:3px;padding:5px 2px}.hub-topic:nth-child(n+5){height:61px}
 .hub-icon{height:16px}.hub-icon svg{width:17px;height:17px}.hub-label{font-size:.72rem;line-height:1.14}
 .hub-workspace{padding:15px 15px 14px}.hub-workspace h2{margin-top:10px;font-size:1.2rem}.hub-ws-description{font-size:.76rem;margin-bottom:12px}.hub-ws-fields input{height:42px}.hub-ws-fields{gap:9px}.hub-ws-fields label{font-size:.75rem}
 .hub-ws-answer{margin-top:12px;padding:11px 12px}.hub-ws-link{padding:10px 13px;margin-top:10px}
 .hub-tool-panel{padding:12px}.hub-panel-list{gap:6px}.hub-tool-option{min-height:44px;padding:8px 9px}.hub-tool-option-label{font-size:.75rem}.hub-tool-option-arrow{font-size:.8rem}
 .hub-bottom{font-size:.7rem;padding-top:10px}
}
@media(max-width:370px){.hub-entry h1{font-size:1.2rem}.hub-label{font-size:.69rem}.hub-tool-option-label{font-size:.7rem}}
@media(prefers-reduced-motion:reduce){.hub-map *,.hub-map *::before,.hub-map *::after{transition-duration:0ms!important;animation:none!important;scroll-behavior:auto!important}}

/* V15.2 — warm micro-interactions. The circles remain anchored and legible. */
@media (hover:hover) and (pointer:fine){
  .hub-topic:hover .hub-icon svg{transform:translateY(-1px) rotate(-4deg)}
  .hub-topic:hover .hub-label{color:inherit}
  .hub-tool-option:hover .hub-tool-option-arrow{transform:translateX(3px)}
  .hub-tool-option:hover::before{background:#bbdcc0;box-shadow:0 0 0 4px #eaf4e9}
}
.hub-topic .hub-icon svg,.hub-tool-option-arrow{transform-origin:center;transition:transform .24s var(--hub-ease)}
.hub-tool-option::before{transition:background-color .23s ease,box-shadow .23s ease}
.hub-tool-option:active{background:#e5efe4;border-color:#82ae8f}
.hub-topic:active .hub-icon{transform:scale(.95)}
.hub-icon{transition:transform .18s ease}
/* Lower-page editorial content: useful context, not an obstacle to calculating. */
.home-story{border-top:1px solid #e1e7df;padding:34px 0 31px;margin-top:35px}
.home-story .story-eyebrow{font:600 .68rem 'IBM Plex Mono',monospace;letter-spacing:.06em;color:#65816c;text-transform:uppercase}
.home-story h2{font:500 clamp(1.36rem,2.6vw,1.95rem)/1.18 'Source Serif 4',Georgia,serif;letter-spacing:-.025em;margin:9px 0 12px;color:#233f2d}
.home-story h3{font:600 .95rem/1.35 'IBM Plex Sans',sans-serif;letter-spacing:-.012em;color:#2f503a;margin:0 0 9px}
.home-story p,.home-story li{font-size:.88rem;line-height:1.7;color:#52675a}
.home-story p{margin:0 0 12px;max-width:70ch}
.home-story-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr);gap:48px;align-items:start}
.home-story-side{border-left:1px solid #d5e2d4;padding:6px 0 5px 22px}
.home-story ul{margin:8px 0;padding-left:19px}.home-story li+li{margin-top:7px}
.home-story a{color:#24583d;text-decoration-thickness:1px;text-underline-offset:3px}
.home-story a:hover{text-decoration-thickness:2px}
.home-story-note{border-top:1px solid #e3ebe0;margin-top:17px;padding-top:16px;max-width:82ch}
@media(max-width:760px){.home-story{padding:26px 0 23px;margin-top:23px}.home-story-grid{grid-template-columns:1fr;gap:11px}.home-story-side{padding:11px 0 0;border-left:0;border-top:1px solid #e0e8dd}.home-story p,.home-story li{font-size:.84rem}.home-story h2{font-size:1.48rem}}
@media(prefers-reduced-motion:reduce){.hub-topic .hub-icon svg,.hub-tool-option-arrow,.hub-tool-option::before,.hub-icon{transition:none!important}}

/* Collapsed directory, retained as the accessible alternative to the orbit. */
.v10-all-tools{margin-top:22px;margin-bottom:14px;padding:0}
.v10-all-tools-summary{list-style:none;cursor:pointer;background:#fafbf8;border:1px solid #dce5dc;border-radius:12px;padding:13px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#234531;transition:background-color .18s}
.v10-all-tools-summary::-webkit-details-marker{display:none}
.v10-all-tools-summary:hover{background:#f1f6f0}
.v10-all-tools-summary:focus-visible{outline:3px solid #b87f57;outline-offset:2px}
.v10-all-tools-summary>span:first-child{display:flex;flex-direction:column;gap:3px}
.v10-all-tools-summary strong{font:600 .9rem 'IBM Plex Sans',sans-serif}
.v10-all-tools-summary small{font-size:.73rem;color:#768979}
.v10-summary-kicker{font-size:.61rem;font-weight:700;letter-spacing:.09em;color:#718875}
.v10-summary-arrow{border:1px solid #c5d4c6;width:30px;height:30px;border-radius:50%;font-size:1.13rem;line-height:28px;text-align:center;color:#477151;flex-shrink:0;transition:transform .18s}
.v10-all-tools[open] .v10-summary-arrow{transform:rotate(45deg)}
.v10-all-tools #calculators{padding:17px 0!important;width:100%;max-width:100%}
.v9-directory-controls{max-width:590px;margin:0 0 13px}
.v9-directory-controls>label{display:block;font-size:.77rem;font-weight:600;margin-bottom:7px}
.v9-search-field{position:relative;display:flex;align-items:center}
.v9-search-field>span{position:absolute;left:13px;color:#6d7d6f;font-size:1.22rem;pointer-events:none}
.v9-search-field input{min-height:44px;width:100%;border:1px solid #c3d0c3;border-radius:9px;background:#fff;padding:9px 12px 9px 40px;font-size:.87rem;color:#244334}
.v9-search-field input:focus{outline:2px solid #82aa8c;outline-offset:1px}
.v9-directory .tool-count{margin:8px 0}.v9-directory .tools-grid{margin-top:9px}
.v9-directory .tool-card.index-row{border-bottom:1px solid #e5ebe4;min-height:62px}
.v9-directory .index-title{font-size:.94rem;font-weight:600}.v9-directory .index-description{font-size:.75rem!important}
.v9-directory .tool-card.index-row:hover{background:#f1f6ef}
@media(max-width:760px){.v10-all-tools{margin-top:16px}.v10-all-tools-summary{padding:11px 13px}.v10-all-tools-summary strong{font-size:.87rem}.v10-all-tools-summary small{font-size:.68rem}}

/* V16.1: final interaction refinements — same constellation, less decoration. */
@media(min-width:1100px){
 #hub-panel-close{display:none}
 .hub-track::before{display:none}
 .hub-topic{box-shadow:0 3px 11px #173d290b,inset 0 1px 0 #fff}
 .hub-topic[aria-pressed=true]{box-shadow:0 4px 13px #163a2517}
 .hub-map.is-expanded .hub-topic[aria-pressed=true]:not([aria-expanded=true]){
  background:#ecf4eb;border-color:#84a991;color:#28563a;box-shadow:inset 0 0 0 1px #d5e6d8
 }
 .hub-map.is-expanded .hub-topic[aria-expanded=true]{box-shadow:0 5px 17px #214f371c;outline:none}
}
/* A small second line makes each destination clear before selecting it. */
.hub-tool-option{height:48px;display:grid;grid-template-columns:7px minmax(0,1fr) 10px;grid-template-rows:auto auto;column-gap:6px;row-gap:1px;padding:5px 11px}
.hub-tool-option::before{grid-column:1;grid-row:1/3;align-self:center}
.hub-tool-option-label{grid-column:2;grid-row:1;font-size:.75rem;line-height:1.08;align-self:end}
.hub-tool-option-kind{display:block;grid-column:2;grid-row:2;font-size:.61rem;line-height:1.1;white-space:nowrap;color:#728677;align-self:start}
.hub-tool-option-arrow{grid-column:3;grid-row:1/3;align-self:center}
.hub-tool-option[aria-pressed=true] .hub-tool-option-kind{color:#426b4c}
.hub-map.is-expanded .hub-ws-overline #hub-ws-category::before{content:'CURRENT · ';font-weight:700;letter-spacing:.035em;font-size:.65rem;color:#72907a}
@media(max-width:1099px){
 .hub-map.is-expanded::after{content:'';position:absolute;inset:0;border-radius:14px;background:rgba(249,251,247,.86);z-index:5;pointer-events:none}
 .hub-map.is-expanded .hub-workspace{opacity:0;visibility:hidden;pointer-events:none}
 .hub-tool-panel{z-index:7;background:#fbfdf9;box-shadow:0 14px 32px #183e2520}
 .hub-tool-option{height:auto;min-height:51px;grid-template-columns:7px minmax(0,1fr) 10px}
 .hub-topics{z-index:6}
}
@media(prefers-reduced-motion:reduce){
 .hub-map.is-expanded .hub-workspace{transition:none!important}
}

/* Mobile: the chooser temporarily replaces the workspace, instead of floating
   above it or leaving a large blank placeholder. */
@media(max-width:1099px){
 .hub-map.is-expanded::after{display:none}
 .hub-map.is-expanded .hub-workspace{display:none}
 .hub-tool-panel{position:relative;inset:auto;top:auto;width:100%;max-height:none;overflow:visible;order:2;transform:translateY(6px);margin:0}
 .hub-map.is-expanded .hub-tool-panel{transform:translateY(0)}
 .hub-panel-list{align-items:stretch}
}

/* V16.2 stabilization: explicit states and helpful, unobtrusive feedback. */
.hub-ws-answer.is-stale{border:1px solid #d5b9a6;background:#f9f3ed}
.hub-map[data-phase="exploring"] .hub-topic[aria-pressed=true]:not([aria-expanded=true]){box-shadow:none}
.hub-tool-option:focus-visible{outline:3px solid #a27e53;outline-offset:3px}
@media(prefers-reduced-motion:reduce){.hub-ws-answer{transition:none!important}}

.hub-search-result>a:first-child{flex:1;display:flex;flex-direction:column;align-items:start;text-align:left;background:transparent;border:0;border-radius:8px;padding:9px 12px;color:#264331;min-width:0;text-decoration:none}
.hub-search-result>a:first-child:hover,.hub-search-result>a:first-child:focus-visible{background:#f0f6ef;outline:3px solid #add2b2;outline-offset:0}
.hub-search-result>a:first-child strong{font-size:.84rem;font-weight:600}.hub-search-result>a:first-child span{font-size:.69rem;color:#819283}


/* SOURCE: hub-v17.css */
/* V17: full shared calculators inside the central constellation. */
.hub-workspace{max-height:585px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c6d8c6 transparent}
.hub-ws-content{min-width:0}
.hub-ws-fields{align-items:start}
.hub-ws-fields label{font-size:.76rem;line-height:1.35;overflow-wrap:anywhere}
.hub-ws-fields select{display:block;width:100%;min-width:0;height:43px;border:1px solid #cbd8cb;border-radius:9px;background:#f8faf6;color:#1c3726;font:500 .85rem 'IBM Plex Sans',sans-serif;padding:8px 11px}
.hub-ws-fields input:focus-visible,.hub-ws-fields select:focus-visible{outline:2px solid #6e9e77;outline-offset:1px}
.hub-ws-fields select[aria-invalid=true]{border-color:#bd6d57}
.hub-ws-advanced{border-top:1px solid #e0e8df;margin-top:13px;padding-top:10px}
.hub-ws-advanced[hidden]{display:none!important}
.hub-ws-advanced>summary,.hub-ws-breakdown>summary{cursor:pointer;font-size:.77rem;line-height:1.4;font-weight:600;color:#2f6143;list-style-position:inside;padding:4px 0}
.hub-ws-advanced-count{font-size:.69rem;line-height:1.45;color:#657868;margin:3px 0 11px}
.hub-ws-advanced-grid{grid-template-columns:1fr 1fr;gap:10px}
.hub-ws-breakdown{margin-top:10px;border-top:1px solid #e2e9e0;padding-top:7px}
.hub-ws-result-rows{margin-top:8px;display:grid;gap:0}
.hub-ws-result-rows>div{display:flex;justify-content:space-between;align-items:baseline;gap:10px;border-bottom:1px solid #e8eee6;padding:7px 0;font-size:.68rem;line-height:1.45;color:#617063}
.hub-ws-result-rows strong{color:#254b34;font-size:.72rem;text-align:right;font-variant-numeric:tabular-nums}
.hub-ws-result-assumptions{margin:9px 0 0;color:#718276;font-size:.68rem;line-height:1.55}
.hub-ws-kind{font-size:.57rem;letter-spacing:.03em}
#hub-ws-answer-note{font-size:.69rem;line-height:1.5}
.hub-tool-option-kind{font-size:.63rem}
@media(max-width:1099px){.hub-workspace{overflow:visible;max-height:none;}.hub-ws-advanced-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.hub-ws-fields select{height:42px}}
@media(max-width:430px){.hub-ws-advanced-grid{grid-template-columns:1fr 1fr;gap:9px}.hub-ws-result-rows>div{font-size:.7rem}}
@media(prefers-reduced-motion:reduce){.hub-workspace{scroll-behavior:auto!important}}

/* Advanced editing stays within the constellation and keeps the true result in view. */
@media(min-width:1100px){
 .hub-workspace{top:46%;}
 .hub-workspace:has(#hub-ws-advanced[open]){z-index:9;box-shadow:0 20px 50px #173d2935,0 3px 9px #163b2515}
 .hub-workspace:has(#hub-ws-advanced[open]) .hub-ws-answer{position:sticky;top:0;z-index:2;box-shadow:0 4px 10px #173d2910}
}

/* V17.1 refinement: legible supporting information and intentional keyboard focus. */
.hub-ws-result-rows>div{font-size:.76rem;line-height:1.48}
.hub-ws-result-rows strong{font-size:.76rem}
.hub-ws-result-assumptions{font-size:.73rem;line-height:1.55}
.hub-ws-advanced-count{font-size:.73rem}
.hub-ws-advanced>summary:focus-visible,.hub-ws-breakdown>summary:focus-visible{outline:2px solid #7b9d81;outline-offset:3px;border-radius:3px}
.hub-ws-answer.is-stale #hub-ws-answer-value{color:#816149}

/* V17.9: supporting text remains quiet, but legible on dense calculator panels. */
@media(min-width:1100px){.hub-ws-kind{font-size:.68rem}.hub-ws-advanced-count{font-size:.76rem}.hub-ws-result-assumptions{font-size:.76rem}#hub-ws-answer-note{font-size:.76rem}.hub-tool-option-kind{font-size:.69rem}}


/* SOURCE: hub-scalable.css */
/* V17.2 extensibility: zero changes to the established seven-category scene. */
.hub-extra-topics:empty{display:none}
.hub-extra-topics{display:flex;flex-wrap:wrap;gap:7px;align-items:center;justify-content:center;padding:10px 4px 1px;margin:0 auto}
.hub-extra-topic{border:1px solid #c6dac8;border-radius:99px;background:#fdfef9;color:#2d543c;font:600 .75rem 'IBM Plex Sans',sans-serif;min-height:40px;padding:8px 14px;cursor:pointer;transition:background-color .2s,border-color .2s}
.hub-extra-topic:hover,.hub-extra-topic[aria-expanded=true]{background:#e3f0e3;border-color:#78a488}
.hub-extra-topic:focus-visible{outline:3px solid #b17e59;outline-offset:3px}
/* A populated category with 6+ tools gets a compact, scrollable central chooser.
   No arbitrary number of floating pills can collide with neighboring bubbles. */
@media(min-width:1100px){
 .hub-map.is-catalog-menu .hub-workspace{visibility:hidden;pointer-events:none}
 .hub-map.is-catalog-menu .hub-tool-panel{inset:auto;left:50%;top:46%;transform:translate(-50%,-50%);width:min(440px,calc(100% - 24px));max-height:475px;overflow-y:auto;padding:21px 20px 20px;background:#fffefa;border:1px solid #c9daca;border-radius:18px;box-shadow:0 20px 45px #16372324;pointer-events:auto}
 .hub-map.is-catalog-menu .hub-panel-head{position:relative;display:flex;justify-content:space-between;align-items:center;margin:0 0 14px;padding:0 38px 0 1px;min-height:31px}
 .hub-map.is-catalog-menu .hub-panel-eyebrow{display:none}
 .hub-map.is-catalog-menu .hub-panel-head h3{position:static;width:auto;height:auto;clip-path:none;overflow:visible;white-space:normal;font:500 1.14rem 'Source Serif 4',Georgia,serif;color:#244731;margin:0}
 .hub-map.is-catalog-menu #hub-panel-close{display:grid;position:absolute;right:0;top:0;left:auto;transform:none;width:32px;height:32px}
 .hub-map.is-catalog-menu .hub-panel-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .hub-map.is-catalog-menu .hub-tool-option{position:static;inset:auto;transform:none!important;opacity:1;width:100%!important;height:auto;min-height:56px;border-radius:11px;transition:background .25s,border-color .25s,box-shadow .25s}
 .hub-map.is-catalog-menu .hub-tool-option-label{font-size:.78rem;overflow-wrap:anywhere}
}
/* On phones and tablets, any number of tools remains within the viewport. */
@media(max-width:1099px){
 .hub-map.is-expanded .hub-tool-panel{max-height:min(64dvh,450px);overflow-y:auto;overscroll-behavior:contain}
}
@media(max-width:410px){
 .hub-map.is-expanded .hub-panel-list{grid-template-columns:repeat(2,minmax(0,1fr))}
 .hub-map.is-expanded .hub-tool-option{min-width:0}
 .hub-map.is-expanded .hub-tool-option-label{overflow-wrap:anywhere;white-space:normal}
}
@media(prefers-reduced-motion:reduce){.hub-extra-topic{transition:none}}


/* SOURCE: hub-layout.css */
/* V17.6 — Collision-safe, content-aware constellation.
   At desktop sizes the map owns sufficient vertical space for both the full
   calculator and every category. The 7th bubble is inside the scene, not
   hanging over the legend. Below the desktop breakpoint natural flow wins. */
@media (min-width:1100px) {
  .hub-map {
    height: var(--hub-scene-height, 790px);
  }
  .hub-workspace {
    top: 42%;
    /* Keep a sensible internal scroll region for long, optional assumptions. */
    max-height: min(640px, max(410px, calc(100dvh - 128px)));
    min-height: min(390px, calc(100dvh - 160px));
    overscroll-behavior: contain;
  }
  .hub-track { top: 47%; }
  .hub-map.is-catalog-menu .hub-tool-panel { top: 42%; }
}
/* Responsive fallback for browsers without dynamic viewport units. */
@supports not (height:100dvh) {
  @media(min-width:1100px) {
    .hub-workspace { max-height:640px; min-height:390px; }
  }
}
@media(max-width:1099px) {
  .hub-map {height:auto!important}
  .hub-workspace {min-height:0;max-height:none;overflow:visible}
}


/* V17.7 — mobile refinement, not a second visual system.
   Compact screens preserve the same calculator hierarchy with deliberate
   touch targets, readable helper text and calm category transitions. */
@media (max-width:1099px) {
  .hub-tool-panel {
    transition: opacity .28s ease-out,
                transform .36s cubic-bezier(.22,.75,.20,1);
  }
  .hub-tool-option {
    min-height:56px;
    transition: background-color .20s ease,border-color .20s ease,
                box-shadow .20s ease,opacity .24s ease-out,
                transform .34s cubic-bezier(.22,.78,.20,1);
    transition-delay:0ms,0ms,0ms,
                     calc(var(--order)*24ms + 40ms),
                     calc(var(--order)*24ms + 40ms);
  }
  .hub-panel-head { min-height:44px; padding:0 50px 8px 2px; }
  .hub-panel-head h3 { font-size:1.12rem;line-height:1.26; }
  #hub-panel-close { width:44px;height:44px;right:0;top:0; }
  .hub-tool-option-label {font-size:.84rem;line-height:1.2}
  .hub-tool-option-kind {font-size:.73rem;line-height:1.25}
  .hub-tool-panel .hub-panel-list {gap:9px}
  .hub-workspace {box-shadow:0 4px 13px #1839250c;}
  .hub-ws-overline {font-size:.78rem;line-height:1.4;flex-wrap:wrap;}
  .hub-ws-kind {font-size:.65rem;line-height:1.3;letter-spacing:.005em;padding:4px 7px;}
  .hub-ws-description {font-size:.84rem;line-height:1.48;margin-bottom:14px}
  .hub-ws-fields label {font-size:.82rem;line-height:1.36}
  .hub-ws-fields input,.hub-ws-fields select {min-height:46px;font-size:16px}
  .hub-ws-answer {padding:13px 14px}
  #hub-ws-answer-note {font-size:.80rem;line-height:1.47}
  .hub-ws-result-rows>div,.hub-ws-result-rows strong {font-size:.80rem}
  .hub-ws-result-assumptions {font-size:.79rem;line-height:1.5}
  .hub-ws-advanced-count {font-size:.80rem}
  .hub-ws-advanced>summary,.hub-ws-breakdown>summary {
    display:flex;align-items:center;min-height:44px;
    padding:10px 1px;font-size:.83rem;line-height:1.3;
    touch-action:manipulation;
  }
  .hub-ws-link {min-height:48px;line-height:1.35}
  .hub-bottom {display:none}
  .hub-search-field input,.v9-search-field input,
  .hub-search input[type="search"] {font-size:16px}
  /* Center an odd final tool in a two-column chooser; keep it a normal,
     half-width choice rather than a giant full-width button. */
  .hub-panel-list:has(>.hub-tool-option:nth-child(3):last-child),
  .hub-panel-list:has(>.hub-tool-option:nth-child(5):last-child) {
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  .hub-panel-list:has(>.hub-tool-option:nth-child(3):last-child)>.hub-tool-option,
  .hub-panel-list:has(>.hub-tool-option:nth-child(5):last-child)>.hub-tool-option {
    grid-column:span 2;
  }
  .hub-panel-list:has(>.hub-tool-option:nth-child(3):last-child)>.hub-tool-option:last-child,
  .hub-panel-list:has(>.hub-tool-option:nth-child(5):last-child)>.hub-tool-option:last-child {
    grid-column:2/span 2;
  }
}
@media(max-width:760px) {
  .hub-entry {padding:17px 0 11px}
  .hub-entry h1 {font-size:clamp(1.3rem,5.5vw,1.5rem);line-height:1.17}
  .hub-entry p {font-size:.81rem;line-height:1.43;margin-top:5px}
  .hub-search {margin-top:12px}
  .hub-search-field {height:46px}
  .hub-shell {padding:12px 11px 13px}
  .hub-meta span:first-child {font-size:.66rem}
  .hub-meta span:last-child {font-size:.71rem}
  .hub-map {margin-top:11px;gap:10px}
  .hub-topic {height:66px;min-height:66px;padding:7px 3px 6px}
  .hub-topic:nth-child(n+5) {height:66px;min-height:66px}
  .hub-icon {height:19px}
  .hub-icon svg {width:19px;height:19px}
  .hub-label {font-size:clamp(.70rem,3.2vw,.77rem);line-height:1.18}
  /* Only the original seven-topic arrangement uses a centered 4+3 pattern.
     New catalog sizes continue using the ordinary auto-flow grid. */
  .hub-topics:has(>.hub-topic:nth-child(7):last-child) {
    grid-template-columns:repeat(8,minmax(0,1fr));
  }
  .hub-topics:has(>.hub-topic:nth-child(7):last-child)>.hub-topic {
    grid-column:span 2;
  }
  .hub-topics:has(>.hub-topic:nth-child(7):last-child)>.hub-topic:nth-child(5) {
    grid-column:2/span 2;
  }
  .hub-workspace {padding:17px 15px 16px;border-radius:15px}
  .hub-workspace h2 {font-size:1.28rem;margin-top:10px}
  .hub-ws-fields {gap:10px}
  .hub-ws-answer {margin-top:13px}
  .hub-ws-link {font-size:.86rem;padding:12px 13px}
  .hub-tool-panel {padding:13px}
  .hub-tool-option {padding:9px 10px;min-height:58px}
}
@media(max-width:350px) {
  .hub-shell {padding:11px 8px 12px}
  .hub-topics {gap:5px}
  .hub-topic {padding-left:2px;padding-right:2px}
  .hub-workspace {padding:15px 12px 15px}
  .hub-ws-fields {gap:8px}
  .hub-ws-fields label {font-size:.80rem}
  .hub-tool-panel {padding:10px}
  .hub-panel-list {gap:6px}
  .hub-tool-option {padding:8px 7px}
  .hub-tool-option-label {font-size:.79rem}
}
@media(prefers-reduced-motion:reduce) {
  .hub-tool-panel,.hub-tool-option {transition:none!important}
}

/* Preserve an unmistakable disclosure indicator even when summaries
   become full-size touch targets (display:flex hides native markers). */
@media(max-width:1099px) {
  .hub-ws-advanced>summary::marker,
  .hub-ws-breakdown>summary::marker {content:""}
  .hub-ws-advanced>summary::-webkit-details-marker,
  .hub-ws-breakdown>summary::-webkit-details-marker {display:none}
  .hub-ws-advanced>summary::before,
  .hub-ws-breakdown>summary::before {
    content:"";
    display:inline-block;
    flex:none;width:0;height:0;
    border-top:5px solid transparent;
    border-bottom:5px solid transparent;
    border-left:6px solid currentColor;
    margin:0 9px 0 2px;
    transition:transform .28s cubic-bezier(.2,.7,.2,1);
  }
  .hub-ws-advanced[open]>summary::before,
  .hub-ws-breakdown[open]>summary::before {transform:rotate(90deg)}
}
@media(prefers-reduced-motion:reduce) {
  .hub-ws-advanced>summary::before,
  .hub-ws-breakdown>summary::before {transition:none!important}
}
/* V17.9: on phone-sized headers (64px high), leave 12px breathing room
   when scrolling the selected calculator into view. */
@media(max-width:640px){html{scroll-padding-top:76px}}

/* V17.10 — clearer active/question states without altering constellation geometry. */
.hub-map[data-phase="resting"] .hub-topic[aria-pressed="true"] {box-shadow:0 4px 14px #173f2923}
.hub-next-tool[hidden] {display:none!important}
.hub-next-tool {margin:14px 0 0;padding:11px 0 2px;border-top:1px solid #e2e9df}
.hub-next-kicker {display:block;font:600 .61rem 'IBM Plex Mono',monospace;letter-spacing:.065em;color:#738777;margin-bottom:6px}
.hub-next-tool button {width:100%;min-height:45px;display:flex;align-items:center;justify-content:space-between;gap:9px;padding:7px 9px;border:1px solid #d9e5d7;border-radius:10px;background:#f8fbf6;color:#245039;text-align:left;cursor:pointer}
.hub-next-tool button:hover {background:#eff6ed;border-color:#8db39a}
.hub-next-tool button:focus-visible {outline:3px solid #b38b62;outline-offset:2px}
.hub-next-tool button>span:first-child {display:flex;flex-direction:column;gap:2px;min-width:0}
.hub-next-tool strong {font:600 .81rem/1.25 'IBM Plex Sans',sans-serif}
.hub-next-tool small {font-size:.7rem;line-height:1.25;color:#718474}
.hub-next-tool button>span:last-child {font-size:1rem;flex-shrink:0}
.hub-panel-hint {display:none}
@media(min-width:1100px) {
 .hub-tool-option-label {font-size:.73rem;line-height:1.13;align-self:center;grid-row:1/3;overflow-wrap:normal}
 .hub-tool-option-kind {display:none}
 .hub-map.is-catalog-menu .hub-tool-option-label {font-size:.77rem}
 .hub-map.is-catalog-menu .hub-tool-option-kind {display:block;font-size:.67rem}
}
@media(max-width:1099px) {
 .hub-panel-hint {display:block;margin:0 0 11px;color:#64796b;font-size:.78rem;line-height:1.4}
 .hub-tool-option {align-items:center}
 .hub-tool-option-label {font-size:.84rem;line-height:1.25;overflow-wrap:anywhere}
 .hub-tool-option-kind {font-size:.72rem}
 .hub-next-tool {margin-top:12px}
}
@media(prefers-reduced-motion:reduce) {.hub-next-tool button {transition:none!important}}


/* SOURCE: hub-dot-dock.css */
/* V17.11 — one shared landing place for every category's tools.
   The original category constellation is retained; only the choice UI moves.
   All selectors are scoped to the dot-mode scene to avoid altering other pages. */
.hub-map.is-dot-mode .hub-workspace{isolation:isolate}
.hub-map.is-dot-mode .hub-tool-panel,
.hub-map.is-dot-mode.is-catalog-menu .hub-tool-panel{
 position:sticky;inset:auto;top:-24px;left:auto;right:auto;
 display:block;overflow:visible;max-height:none;flex:none;
 width:calc(100% + 50px);margin:-24px -25px 18px;
 padding:12px 15px 10px;
 background:#f2f7f0;border:0;border-bottom:1px solid #dfebde;
 border-radius:18px 18px 0 0;box-shadow:none;
 opacity:1;transform:none;z-index:8;pointer-events:auto;
 transition:none;
}
.hub-map.is-dot-mode .hub-tool-panel[hidden]{display:none!important}
.hub-map.is-dot-mode .hub-panel-head{
 position:relative;display:flex;align-items:center;justify-content:space-between;
 margin:0 0 7px;padding:0 38px 0 2px;min-height:25px;
}
.hub-map.is-dot-mode .hub-panel-eyebrow{display:none}
.hub-map.is-dot-mode .hub-panel-head h3{
 position:static;width:auto;height:auto;clip-path:none;overflow:visible;white-space:normal;
 color:#55735c;font:600 .67rem/1.3 'IBM Plex Sans',sans-serif;
 letter-spacing:.025em;margin:0;
}
.hub-map.is-dot-mode #hub-panel-close,
.hub-map.is-dot-mode.is-catalog-menu #hub-panel-close{
 display:grid;position:absolute;inset:0 0 auto auto;
 transform:none;width:27px;height:27px;min-width:27px;
 border-radius:50%;box-shadow:none;color:#53745c;
}
.hub-map.is-dot-mode .hub-panel-list,
.hub-map.is-dot-mode.is-catalog-menu .hub-panel-list{
 display:flex;align-items:flex-start;justify-content:safe center;
 gap:3px;overflow-x:auto;overflow-y:hidden;max-width:100%;
 padding:2px 0 3px;scrollbar-width:thin;scrollbar-color:#c1d4c2 transparent;
 overscroll-behavior-x:contain;
}
.hub-map.is-dot-mode .hub-tool-option,
.hub-map.is-dot-mode.is-catalog-menu .hub-tool-option{
 position:relative;inset:auto;left:auto;top:auto;
 flex:0 0 74px;width:74px!important;min-width:0;
 height:82px;min-height:82px;padding:5px 4px 6px;
 display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
 gap:8px;border:1px solid transparent;border-radius:16px;
 background:linear-gradient(180deg,#f9fcf8 0%,#f2f7f1 100%);
 box-shadow:0 5px 14px rgba(24,58,33,.06), inset 0 1px 0 rgba(255,255,255,.95);
 color:#486353;
 transform:none!important;opacity:1;pointer-events:auto;
 transition:transform .24s ease,background .24s ease,color .24s ease,border-color .24s ease,box-shadow .24s ease;
}
.hub-map.is-dot-mode .hub-tool-option::before{display:none}
.hub-map.is-dot-mode .hub-tool-option-icon{
 display:grid;place-items:center;flex:none;align-self:center;
 width:34px;height:34px;margin-top:2px;border-radius:50%;
 color:#355844;
 background:linear-gradient(180deg,#ffffff 0%,#ecf5ea 100%);
 border:1px solid #d4e4d2;
 box-shadow:0 6px 14px rgba(34,77,53,.08), inset 0 1px 0 rgba(255,255,255,.95);
 transition:transform .24s ease,background .24s ease,border-color .24s ease,color .24s ease,box-shadow .24s ease;
}
.hub-map.is-dot-mode .hub-tool-option-icon svg{
 width:18px;height:18px;display:block;
}
.hub-map.is-dot-mode .hub-tool-option:hover,
.hub-map.is-dot-mode .hub-tool-option:focus-visible{
 background:linear-gradient(180deg,#f7fbf6 0%,#eaf3e8 100%);
 border-color:#d1e1cf;color:#244a32;box-shadow:0 8px 18px rgba(24,58,33,.09), inset 0 1px 0 rgba(255,255,255,.95);outline:none;
 transform:translateY(-1px)!important;
}
.hub-map.is-dot-mode .hub-tool-option:focus-visible{outline:2px solid #9c764b;outline-offset:2px}
.hub-map.is-dot-mode .hub-tool-option:hover .hub-tool-option-icon,
.hub-map.is-dot-mode .hub-tool-option:focus-visible .hub-tool-option-icon{
 color:#234b34;border-color:#c7ddc5;background:linear-gradient(180deg,#ffffff 0%,#e2efe1 100%);
 box-shadow:0 9px 18px rgba(34,77,53,.11), inset 0 1px 0 rgba(255,255,255,.95);
 transform:translateY(-1px) scale(1.04);
}
.hub-map.is-dot-mode .hub-tool-option[aria-pressed=true]{
 color:#173f2a;background:linear-gradient(180deg,#edf5ec 0%,#dfeee0 100%);
 border-color:#cfe1ce;box-shadow:0 8px 18px rgba(24,58,33,.08), inset 0 1px 0 rgba(255,255,255,.9);
}
.hub-map.is-dot-mode .hub-tool-option[aria-pressed=true] .hub-tool-option-icon{
 color:#ffffff;border-color:#24563a;
 background:linear-gradient(180deg,#2f6a47 0%,#244f37 100%);
 box-shadow:0 8px 16px rgba(20,57,34,.16), inset 0 1px 0 rgba(255,255,255,.16);
}
.hub-map.is-dot-mode .hub-tool-option-label,
.hub-map.is-dot-mode.is-catalog-menu .hub-tool-option-label{
 display:block;flex:none;align-self:center;
 width:100%;min-width:0;max-width:100%;
 font:600 .65rem/1.15 'IBM Plex Sans',sans-serif;
 letter-spacing:.01em;
 text-align:center;color:inherit;overflow-wrap:anywhere;word-break:normal;
 display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.hub-map.is-dot-mode .hub-tool-option-kind,.hub-map.is-dot-mode .hub-tool-option-arrow{display:none}
.hub-map.is-dot-mode .hub-panel-list.is-travelling>.hub-tool-option{opacity:0}
.hub-flying-dot{
 position:fixed;left:0;top:0;width:10px;height:10px;z-index:9999;
 pointer-events:none;border:1px solid #759c80;border-radius:50%;
 background:#76a886;box-shadow:0 0 0 3px #dfece0;
 will-change:transform,opacity;
}
/* On tablet and phone the choices live inside the card, never replace it. */
@media(max-width:1099px){
 .hub-map.is-dot-mode.is-expanded .hub-workspace{
  display:block;opacity:1;visibility:visible;pointer-events:auto;
 }
 .hub-map.is-dot-mode.is-expanded::after{display:none}
 .hub-map.is-dot-mode .hub-tool-panel,
 .hub-map.is-dot-mode.is-catalog-menu .hub-tool-panel{
  top:-19px;width:calc(100% + 40px);margin:-19px -20px 15px;
  padding:11px 11px 9px;border-radius:15px 15px 0 0;
 }
 .hub-map.is-dot-mode .hub-tool-option,
 .hub-map.is-dot-mode.is-catalog-menu .hub-tool-option{
  flex-basis:72px;width:72px!important;height:80px;min-height:80px;
 }
 .hub-map.is-dot-mode .hub-tool-option-label{font-size:.66rem}
}
@media(max-width:760px){
 .hub-map.is-dot-mode .hub-tool-panel,
 .hub-map.is-dot-mode.is-catalog-menu .hub-tool-panel{
  top:-17px;width:calc(100% + 30px);margin:-17px -15px 13px;
  padding:10px 8px 8px;
 }
 .hub-map.is-dot-mode .hub-tool-option,
 .hub-map.is-dot-mode.is-catalog-menu .hub-tool-option{
  flex:0 0 68px;width:68px!important;height:76px;min-height:76px;
 }
 .hub-map.is-dot-mode .hub-panel-head{margin-bottom:5px}
}
@media(max-width:350px){
 .hub-map.is-dot-mode .hub-tool-panel,
 .hub-map.is-dot-mode.is-catalog-menu .hub-tool-panel{
  top:-15px;width:calc(100% + 24px);margin:-15px -12px 12px;padding:9px 7px 7px;
 }
}

@media(max-width:760px){
 .hub-map.is-dot-mode .hub-tool-option-icon{width:31px;height:31px}
 .hub-map.is-dot-mode .hub-tool-option-icon svg{width:17px;height:17px}
}
@media(max-width:420px){
 .hub-map.is-dot-mode .hub-tool-option-icon{width:29px;height:29px}
 .hub-map.is-dot-mode .hub-tool-option-icon svg{width:16px;height:16px}
 .hub-map.is-dot-mode .hub-tool-option-label{font-size:.62rem;line-height:1.12}
}
@media(prefers-reduced-motion:reduce){
 .hub-map.is-dot-mode .hub-tool-option,
 .hub-map.is-dot-mode .hub-tool-option-icon{transition:none!important}
 .hub-flying-dot{display:none!important}
}


/* V17.16 — premium calculator chooser: motion, compact controls, touch navigation.
   All new styles are restricted to dot-mode; formulas and other pages untouched. */
.hub-map.is-dot-mode .hub-tool-panel,
.hub-map.is-dot-mode.is-catalog-menu .hub-tool-panel{
 background:linear-gradient(180deg,#f3f8f0 0%,#edf5eb 100%);
 border-bottom:1px solid #d5e5d2;
 box-shadow:inset 0 1px 0 rgba(255,255,255,.85);
}
.hub-map.is-dot-mode .hub-panel-head,
.hub-map.is-dot-mode.is-catalog-menu .hub-panel-head{
 display:flex;align-items:center;justify-content:space-between;gap:8px;
 position:relative;min-height:46px;margin:0 0 3px;
 padding:0 0 0 2px;
}
.hub-map.is-dot-mode .hub-panel-heading{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}
.hub-map.is-dot-mode .hub-panel-eyebrow,
.hub-map.is-dot-mode.is-catalog-menu .hub-panel-eyebrow{
 display:block;position:static;clip-path:none;overflow:visible;white-space:nowrap;
 width:auto;height:auto;font:700 .55rem/1.2 'IBM Plex Sans',sans-serif;
 letter-spacing:.115em;color:#7b937e;
}
.hub-map.is-dot-mode .hub-panel-title-row{display:flex;align-items:center;gap:7px;min-width:0;flex-wrap:wrap}
.hub-map.is-dot-mode .hub-panel-head h3,
.hub-map.is-dot-mode.is-catalog-menu .hub-panel-head h3{
 position:static;clip-path:none;overflow:visible;min-width:0;max-width:100%;width:auto;height:auto;
 margin:0;font:600 .84rem/1.24 'IBM Plex Sans',sans-serif;
 letter-spacing:-.022em;color:#254b36;white-space:normal;
}
.hub-map.is-dot-mode .hub-panel-count{
 display:inline-flex;align-items:center;flex:none;min-height:18px;padding:2px 6px;
 border:1px solid #d3e4d0;border-radius:999px;background:#fbfef9;
 color:#61816b;font:600 .58rem/1 'IBM Plex Sans',sans-serif;
 white-space:nowrap;
}
.hub-map.is-dot-mode .hub-panel-actions{display:flex;align-items:center;gap:6px;flex:none}
.hub-map.is-dot-mode .hub-panel-arrows{display:flex;gap:3px;align-items:center}
.hub-map.is-dot-mode .hub-panel-arrows[hidden],
.hub-map.is-dot-mode .hub-panel-progress[hidden]{display:none!important}
.hub-map.is-dot-mode .hub-panel-nav,
.hub-map.is-dot-mode #hub-panel-close,
.hub-map.is-dot-mode.is-catalog-menu #hub-panel-close{
 position:relative;inset:auto;top:auto;left:auto;right:auto;
 transform:none;display:grid;place-items:center;flex:0 0 32px;
 width:32px;height:32px;min-width:32px;padding:0;
 border-radius:11px;border:1px solid #cfdfcf;
 background:linear-gradient(180deg,#fff 0%,#f5faf4 100%);
 color:#4c7058;box-shadow:0 2px 7px rgba(25,60,36,.055),inset 0 1px 0 #fff;
 transition:background .22s ease,color .22s ease,border-color .22s ease,box-shadow .22s ease,transform .22s ease;
 cursor:pointer;pointer-events:auto;
}
.hub-map.is-dot-mode .hub-panel-nav svg{width:16px;height:16px}
.hub-map.is-dot-mode #hub-panel-close,
.hub-map.is-dot-mode.is-catalog-menu #hub-panel-close{
 flex-basis:34px;width:34px;height:34px;min-width:34px;border-radius:50%;
 color:#45664e;
}
.hub-map.is-dot-mode #hub-panel-close svg{width:15px;height:15px;transition:transform .26s cubic-bezier(.2,.8,.2,1)}
.hub-map.is-dot-mode .hub-panel-nav:hover:not(:disabled),
.hub-map.is-dot-mode #hub-panel-close:hover{
 background:#e1f0e0;border-color:#a7c5aa;color:#235038;
 box-shadow:0 5px 11px rgba(25,60,36,.11);
 transform:translateY(-1px);
}
.hub-map.is-dot-mode #hub-panel-close:hover svg{transform:rotate(90deg)}
.hub-map.is-dot-mode .hub-panel-nav:disabled{opacity:.35;cursor:default;box-shadow:none}
.hub-map.is-dot-mode .hub-panel-nav:focus-visible,
.hub-map.is-dot-mode #hub-panel-close:focus-visible{
 outline:3px solid #aa8358;outline-offset:2px;
}
.hub-map.is-dot-mode .hub-panel-hint{
 display:block;margin:0 0 8px 2px;
 color:#6a826f;font:400 .67rem/1.3 'IBM Plex Sans',sans-serif;
 overflow-wrap:anywhere;
}
.hub-map.is-dot-mode .hub-panel-scroll-wrap{
 position:relative;isolation:isolate;min-width:0;
}
.hub-map.is-dot-mode .hub-panel-scroll-wrap::before,
.hub-map.is-dot-mode .hub-panel-scroll-wrap::after{
 content:"";position:absolute;z-index:2;top:0;bottom:0;width:15px;
 pointer-events:none;opacity:0;transition:opacity .2s ease;
}
.hub-map.is-dot-mode .hub-panel-scroll-wrap::before{
 left:0;background:linear-gradient(90deg,#eef5ec 0%,rgba(238,245,236,0) 100%);
}
.hub-map.is-dot-mode .hub-panel-scroll-wrap::after{
 right:0;background:linear-gradient(270deg,#eef5ec 0%,rgba(238,245,236,0) 100%);
}
.hub-map.is-dot-mode .hub-panel-scroll-wrap[data-can-left="true"]::before,
.hub-map.is-dot-mode .hub-panel-scroll-wrap[data-can-right="true"]::after{opacity:1}
.hub-map.is-dot-mode .hub-panel-list,
.hub-map.is-dot-mode.is-catalog-menu .hub-panel-list{
 display:flex;align-items:stretch;justify-content:flex-start;gap:7px;
 overflow-x:auto;overflow-y:hidden;max-width:100%;padding:4px 2px 7px;
 scroll-snap-type:x proximity;scroll-padding-inline:2px;
 overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;
 scrollbar-width:none;
}
.hub-map.is-dot-mode .hub-panel-list::-webkit-scrollbar{display:none}
.hub-map.is-dot-mode .hub-panel-list[data-scrollable="false"]{justify-content:center}
.hub-map.is-dot-mode .hub-tool-option,
.hub-map.is-dot-mode.is-catalog-menu .hub-tool-option{
 scroll-snap-align:start;overflow:visible;transition:transform .25s cubic-bezier(.2,.8,.24,1),background .24s,border-color .24s,color .24s,box-shadow .24s;
}
.hub-map.is-dot-mode .hub-tool-option-icon{position:relative;isolation:isolate}
.hub-map.is-dot-mode .hub-tool-option-ring{
 position:absolute;top:5px;left:50%;width:34px;height:34px;
 border:2px solid #77ad7f;border-radius:50%;pointer-events:none;
 transform:translateX(-50%) scale(.76);opacity:0;
}
.hub-map.is-dot-mode .hub-tool-option[aria-pressed="true"]::after{
 content:"";position:absolute;right:4px;top:4px;width:6px;height:6px;
 border-radius:50%;background:#397b52;box-shadow:0 0 0 2px #f1f8ef;
}
.hub-map.is-dot-mode .hub-panel-progress{
 height:2px;margin:3px 1px 1px;background:#dbe8d8;border-radius:3px;
 position:relative;overflow:hidden;
}
.hub-map.is-dot-mode .hub-panel-progress>span{
 position:absolute;top:0;left:0;height:100%;width:35%;border-radius:3px;
 background:#6c9c7b;transition:left .11s linear,width .11s linear;
}
/* A gentle confirmation on the active category (no endless motion). */
.hub-map.is-dot-mode .hub-topic[aria-expanded="true"]::after{
 content:"";position:absolute;inset:-7px;border:1px solid rgba(56,120,73,.35);
 border-radius:inherit;pointer-events:none;
 animation:wtm-topic-echo .56s ease-out both;
}
@keyframes wtm-topic-echo{
 from{opacity:.7;transform:scale(.94)}to{opacity:0;transform:scale(1.12)}
}
@media(max-width:1099px){
 .hub-map.is-dot-mode .hub-panel-head{min-height:45px}
 .hub-map.is-dot-mode .hub-panel-list{gap:7px}
 .hub-map.is-dot-mode .hub-panel-hint{font-size:.67rem}
}
@media(max-width:760px){
 .hub-map.is-dot-mode #hub-panel-close{width:36px;height:36px;min-width:36px;flex-basis:36px}
 .hub-map.is-dot-mode .hub-panel-nav{height:34px;width:34px;min-width:34px;flex-basis:34px}
 .hub-map.is-dot-mode .hub-tool-option-ring{top:5px;width:31px;height:31px}
 .hub-map.is-dot-mode .hub-panel-list{gap:7px;padding-bottom:8px}
}
@media(max-width:370px){
 .hub-map.is-dot-mode .hub-panel-head h3{font-size:.77rem}
 .hub-map.is-dot-mode .hub-panel-title-row{gap:4px}
 .hub-map.is-dot-mode .hub-panel-count{font-size:.55rem;padding:2px 5px}
 .hub-map.is-dot-mode .hub-panel-actions{gap:3px}
 .hub-map.is-dot-mode .hub-panel-arrows{gap:1px}
 .hub-map.is-dot-mode .hub-panel-nav{height:30px;width:30px;min-width:30px;flex-basis:30px}
 .hub-map.is-dot-mode #hub-panel-close{width:34px;height:34px;min-width:34px;flex-basis:34px}
}
@media(prefers-reduced-motion:reduce){
 .hub-map.is-dot-mode .hub-tool-option,
 .hub-map.is-dot-mode .hub-panel-progress>span,
 .hub-map.is-dot-mode .hub-panel-nav,
 .hub-map.is-dot-mode #hub-panel-close,
 .hub-map.is-dot-mode #hub-panel-close svg{transition:none!important}
 .hub-map.is-dot-mode .hub-topic[aria-expanded="true"]::after{animation:none;display:none}
 .hub-map.is-dot-mode .hub-panel-list{scroll-behavior:auto;scroll-snap-type:none}
}

.hub-map.is-dot-mode .hub-panel-list.is-travelling>.hub-tool-option{opacity:1}

/* Tool choices arrive as cards immediately; no decorative particles obscuring labels. */
.hub-map.is-dot-mode .hub-tool-option,
.hub-map.is-dot-mode.is-catalog-menu .hub-tool-option{
 animation:wtm-tool-chip-enter .38s cubic-bezier(.2,.8,.24,1) both;
 animation-delay:calc(var(--chooser-order,0)*38ms);
}
@keyframes wtm-tool-chip-enter{
 0%{opacity:.55;translate:0 6px}
 70%{opacity:1;translate:0 -1px}
 100%{opacity:1;translate:0 0}
}
@media(prefers-reduced-motion:reduce){
 .hub-map.is-dot-mode .hub-tool-option,
 .hub-map.is-dot-mode.is-catalog-menu .hub-tool-option{animation:none!important}
}
