/* RapidShips Freight Cost Intelligence (Day 6): /freight-cost/ hub accents, the Freight Cost Calculator and
   the Freight Scope Builder. Loaded after site.css and tools.css (tools) or knowledge.css (hub); uses the
   site theme tokens, so light and dark themes come for free. No infinite animations. */

/* ---------- hub ---------- */
.cx-herocta{display:flex;flex-wrap:wrap;gap:.6rem;margin:1.2rem 0 0}
.cx-herophone{margin:.8rem 0 0;font-size:.92rem;color:var(--muted)}
.cx-herophone a{color:var(--deep);font-weight:700}
.cx-kcomps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;align-items:start}
.cx-kcomp .pn-need-q{display:flex;flex-direction:column;gap:.15rem}
.cx-kcomp .pn-need-q small{font:500 .86rem/1.4 var(--body);color:var(--muted)}
.cx-rq{flex:none;margin-left:auto;padding:.18rem .55rem;border-radius:999px;border:1px solid var(--line);background:var(--mist);font:700 .7rem/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.cx-klist{margin:.1rem 0 .8rem;padding-left:1.2rem}
.cx-klist li{margin:.15rem 0}
.cx-klearn{margin:0!important;font-size:.92rem}
.cx-hub .pn-stack th a,.cx-hub .pn-stack td a{display:inline-block;padding:.45rem 0}
@media(max-width:760px){.cx-kcomps{grid-template-columns:1fr}.cx-rq{display:none}}

/* ---------- tools: shared form controls ---------- */
.cx [hidden]{display:none!important}
.cx .tl-hero h1{max-width:18ch}
.cx-opt{font:600 .7rem var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-left:.25rem}
.cx-f{margin:0 0 1rem;min-width:0}
.cx-sel,.cx-in input,.cx-in textarea{width:100%;min-height:52px;padding:.7rem .9rem;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);color:var(--ink);font:500 1.02rem/1.35 var(--body);-webkit-appearance:none;appearance:none;transition:border-color .15s,box-shadow .15s}
.cx-in textarea{min-height:92px;resize:vertical}
.cx-sel{padding-right:2.6rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='18' height='18' fill='none' stroke='%237b8a80' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .8rem center;background-size:18px 18px;cursor:pointer}
.cx-sel:hover,.cx-in input:hover,.cx-in textarea:hover{border-color:rgba(22,163,74,.45)}
.cx-sel:focus,.cx-in input:focus,.cx-in textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 4px rgba(22,163,74,.18)}
[data-theme="dark"] .cx-sel:focus,[data-theme="dark"] .cx-in input:focus,[data-theme="dark"] .cx-in textarea:focus{box-shadow:0 0 0 4px rgba(62,240,127,.18)}
.cx-in input[type="date"]{min-height:52px}
.cx .tl-field.is-err .cx-in input,.cx .tl-field.is-err .cx-in textarea{border-color:var(--danger);box-shadow:0 0 0 3px rgba(185,28,28,.12)}
.cx .tl-in input{padding-right:3.2rem}
.cx-wrow{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
.cx-wrow .tl-in{flex:1 1 160px}
.cx-dims{border:0;padding:0}
.cx-dims legend,.cx-checks legend,.cx .tl-picks legend{padding:0;margin-bottom:.45rem;font:700 .86rem var(--display);color:var(--ink)}
.cx-dims .tl-row{grid-template-columns:repeat(3,minmax(0,1fr))}
.cx-dims .tl-field>label{font:600 .8rem var(--body);color:var(--muted)}
.cx-checks{border:0;padding:0}
.cx-checkgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.1rem 1rem}
.cx-checks .tl-check{padding:.45rem .6rem;border-radius:10px;transition:background .15s}
.cx-checks .tl-check:hover{background:var(--mist)}
.cx-checks .tl-check span{display:block;font-weight:600}
.cx-checks .tl-check small{font-weight:500}
.cx-sm .tl-pick span{min-height:44px;padding:.3rem .8rem;font-size:.86rem}
.cx-urg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}
.cx-urg legend{grid-column:1/-1}
.cx-urg .tl-pick,.cx-urg .tl-pick span{width:100%}
.cx-urg .tl-pick small{margin-top:.1rem}
.cx-urg .tl-pick input[value="emergency"]:checked+span{border-color:var(--danger);background:var(--danger-bg);box-shadow:inset 0 0 0 1px var(--danger)}
.cx-note{margin:-.3rem 0 1rem;padding:.7rem .9rem;border-left:3px solid var(--green);border-radius:0 10px 10px 0;background:var(--mist);font-size:.9rem;line-height:1.5;color:var(--muted)}
.cx-cond{padding:.8rem .9rem .1rem;margin:0 0 1rem;border:1px dashed var(--line);border-radius:14px;background:var(--surface-2)}
.cx-linkbtn{display:inline-flex;align-items:center;min-height:44px;padding:0 .2rem;border:0;background:none;color:var(--deep);font:700 .92rem var(--body);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.cx-linkbtn:hover{color:var(--green)}
.cx-linkbtn:focus-visible,.cx-sit:focus-visible,.cx-sn:focus-visible,.cx-next:focus-visible,.cx-back:focus-visible{outline:3px solid var(--green);outline-offset:2px}
.cx-links{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:.3rem 0 0;padding:0}
.cx-links a{display:inline-flex;align-items:center;min-height:40px;padding:.2rem .75rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--deep);font:600 .84rem var(--body);text-decoration:none}
.cx-links a:hover{border-color:var(--green)}
.cx-nojs{padding:1rem;border:1px solid var(--line);border-radius:14px;background:var(--mist)}
.cx-muted{color:var(--muted);font-size:.94rem;margin:.2rem 0 1rem}

/* Port Newark panel */
.cx-port{margin:0 0 1rem;padding:1rem;border:1px solid rgba(22,163,74,.35);border-radius:14px;background:var(--green-soft)}
.cx-port-h{margin:0 0 .9rem;font-size:.94rem;line-height:1.5;color:var(--ink)}
.cx-port-l{margin:.2rem 0 .2rem;font:600 .72rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.cx-port .cx-sel,.cx-port .cx-in input{background:var(--surface)}
.cx-port .tl-hint{color:var(--muted)}

/* emergency chooser + panel */
.cx-emq{margin:0 0 1.2rem;border:1px solid rgba(185,28,28,.28);border-radius:14px;background:var(--danger-bg)}
.cx-emq>summary{display:flex;align-items:center;gap:.6rem;min-height:52px;padding:.6rem 1rem;cursor:pointer;list-style:none;font:700 .95rem var(--display);color:var(--danger)}
.cx-emq>summary::-webkit-details-marker{display:none}
.cx-emq>summary::before{content:"!";flex:none;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--danger);color:#fff;font:800 .8rem var(--body)}
.cx-emq>summary{position:relative;padding-right:2.6rem}
.cx-emq>summary::after{content:"+";position:absolute;right:1rem;top:50%;transform:translateY(-50%);font:700 1.1rem var(--body)}
.cx-emq[open]>summary::after{content:"\2212"}
.cx-emq>summary:focus-visible{outline:3px solid var(--danger);outline-offset:2px}
.cx-emq>p{margin:0;padding:0 1rem .6rem;font-size:.9rem;color:var(--ink)}
.cx-sits{display:flex;flex-wrap:wrap;gap:.45rem;list-style:none;margin:0;padding:0 1rem 1rem}
.cx-sit{min-height:44px;padding:.35rem .85rem;border:1px solid rgba(185,28,28,.35);border-radius:999px;background:var(--surface);color:var(--ink);font:600 .86rem var(--body);cursor:pointer}
.cx-sit:hover{border-color:var(--danger)}
.cx-em{margin:0 0 1.2rem;padding:clamp(1.1rem,3vw,1.6rem);border-radius:16px;background:linear-gradient(160deg,#2a0d0d,#150707);color:#fde8e8;border:1px solid rgba(248,113,113,.4)}
.cx-em:focus{outline:3px solid #f87171;outline-offset:2px}
.cx-em-k{margin:0;font:700 .7rem var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#fca5a5}
.cx-em h2{margin:.35rem 0 .5rem;font:800 clamp(1.3rem,3vw,1.7rem)/1.2 var(--display);color:#fff}
.cx-em>p{margin:0 0 .8rem;color:#f5d0d0;line-height:1.55}
.cx-em-ctas{display:flex;flex-wrap:wrap;gap:.6rem}
.cx-em-ctas .btn{gap:.5rem}
.cx-em-ctas .btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.cx-em-ctas .btn:first-child{background:#dc2626;border-color:#dc2626}
.cx-em-ctas .btn:first-child:hover{background:#b91c1c}
.cx-em-ctas .ghost{background:transparent;border:1px solid rgba(255,255,255,.35);color:#fff}
.cx-em-ctas a:focus-visible{outline:3px solid #fca5a5;outline-offset:2px}
.cx-em-q{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.14)}
.cx-em-q legend,.cx-em-q label{color:#fff!important}
.cx-em-q .tl-pick span{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.2);color:#fff}
.cx-em-q .tl-pick input:checked+span{background:rgba(248,113,113,.2);border-color:#f87171;box-shadow:inset 0 0 0 1px #f87171}
.cx-em-q .cx-in input{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.22);color:#fff}
.cx-em-q .tl-hint,.cx-em-q .cx-opt{color:#f5c6c6}
.cx-em-note{margin:.4rem 0 .4rem;font-size:.9rem;color:#f5d0d0}
.cx-em-alt{display:flex;flex-wrap:wrap;gap:.2rem 1rem;margin:0}
.cx-em .cx-linkbtn{color:#fecaca}
.cx-em .cx-quote{margin-top:1rem;color:var(--ink)}

/* ---------- calculator ---------- */
.cx-calc .tl-out{position:static;min-height:0}
.cx-chip{padding:.2rem .6rem;border:1px solid rgba(62,240,127,.4);border-radius:999px;font:700 .7rem/1.5 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ops-neon)}
.cx-sum{margin:0 0 .9rem;font:600 .98rem/1.5 var(--body);color:var(--ops-ink)}
.cx-comps{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
.cx-comp{padding:.7rem .8rem;border:1px solid var(--ops-line);border-radius:12px;background:rgba(255,255,255,.02);transition:border-color .2s,background .2s}
.cx-comp[data-state="applies"]{border-color:rgba(62,240,127,.4);background:rgba(62,240,127,.06)}
.cx-comp[data-state="possible"]{border-color:rgba(251,191,36,.35);background:rgba(251,191,36,.05)}
.cx-comp-top{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .5rem}
.cx-comp-n{flex:1 1 auto;font:800 .98rem var(--display);color:#fff}
.cx-comp[data-state="off"] .cx-comp-n{color:var(--ops-mute)}
.cx-apply,.cx-price{padding:.12rem .5rem;border-radius:999px;font:700 .7rem/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.cx-apply{border:1px solid var(--ops-line);color:var(--ops-mute)}
.cx-comp[data-state="applies"] .cx-apply{border-color:var(--ops-neon);color:var(--ops-neon)}
.cx-comp[data-state="possible"] .cx-apply{border-color:#fbbf24;color:#fbbf24}
.cx-price{background:rgba(231,243,236,.1);color:var(--ops-ink)}
.cx-drivers{margin:.45rem 0 0;padding-left:1.1rem;font-size:.88rem;line-height:1.45;color:var(--ops-ink)}
.cx-drivers:empty{display:none}
.cx-drivers li{margin:.1rem 0}
.cx-why{margin-top:.35rem}
.cx-why summary{display:inline-flex;align-items:center;gap:.4rem;min-height:36px;cursor:pointer;list-style:none;font:600 .72rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ops-mute)}
.cx-why summary::-webkit-details-marker{display:none}
.cx-why summary::before{content:"+";display:grid;place-items:center;width:18px;height:18px;border:1px solid var(--ops-line);border-radius:5px;font:700 .8rem var(--body)}
.cx-why[open] summary::before{content:"\2212"}
.cx-why summary:focus-visible{outline:3px solid var(--ops-neon);outline-offset:2px;border-radius:6px}
.cx-why-b{padding:.3rem 0 .2rem;font-size:.88rem;line-height:1.55;color:var(--ops-ink)}
.cx-why-b p{margin:.3rem 0}
.cx-why-b ul{margin:.2rem 0;padding-left:1.1rem}
.cx-why-b a{color:var(--ops-neon);text-decoration:underline;text-underline-offset:2px}
.cx-scen .tl-head{max-width:760px}
.cx-scen-t{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface);font-size:.92rem}
.cx-scen-t caption{caption-side:top;text-align:left;padding:0 0 .6rem;font:600 .72rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.cx-scen-t th,.cx-scen-t td{padding:.7rem .85rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);line-height:1.45;color:var(--ink)}
.cx-scen-t thead th{background:var(--mist);font:800 .9rem var(--display)}
.cx-scen-t tbody th{width:22%;font:700 .88rem var(--display);color:var(--muted)}
.cx-scen-t tbody tr:last-child>*{border-bottom:0}
.cx-scen-t tr[data-row="added"] td{font-weight:600;color:var(--deep)}
@media(max-width:760px){
  .cx-scen .table-scroll{overflow:visible}
  .cx-scen-t,.cx-scen-t tbody,.cx-scen-t tr,.cx-scen-t th,.cx-scen-t td{display:block;width:auto;min-width:0!important}
  .cx-scen-t thead{display:none}
  .cx-scen-t tbody tr{border-bottom:1px solid var(--line);padding:.4rem 0}
  .cx-scen-t tbody th{width:auto;padding:.5rem .85rem .2rem;border:0;color:var(--ink)}
  .cx-scen-t td{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:.6rem;padding:.25rem .85rem;border:0}
  .cx-scen-t td::before{content:attr(data-label);font:600 .78rem var(--body);color:var(--muted)}
}
.cx-scen .table-scroll{margin-top:1rem}

/* ---------- scope builder ---------- */
.cx-app-sec{padding:clamp(1.2rem,3vw,2.2rem) 0 clamp(2rem,5vw,3rem)}
.cx-app{display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-template-areas:"nav nav" "main side";gap:1rem clamp(1rem,2.4vw,1.6rem);align-items:start}
.cx-steps{grid-area:nav;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem}
.cx-steps ol{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:0;padding:0}
.cx-sn{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:.3rem .9rem .3rem .35rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font:700 .88rem var(--display);cursor:pointer}
.cx-sn-n{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--mist);font:700 .82rem var(--mono);color:var(--muted)}
.cx-sn.is-past .cx-sn-n{background:var(--green-soft);color:var(--deep)}
.cx-sn[aria-current="step"]{border-color:var(--green);color:var(--ink);box-shadow:inset 0 0 0 1px var(--green)}
.cx-sn[aria-current="step"] .cx-sn-n{background:var(--btn-bg);color:#fff}
.cx-prog{margin:0;font:600 .72rem var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.cx-main{grid-area:main;min-width:0;padding:clamp(1.1rem,2.6vw,1.7rem);border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:0 26px 60px -44px var(--shadow-c)}
.cx-step>h2{margin:0 0 1.1rem;font:800 clamp(1.3rem,2.6vw,1.6rem)/1.2 var(--display);letter-spacing:-.01em;color:var(--ink)}
.cx-step>h2:focus{outline:none}
.cx-step>h2:focus-visible{outline:none;box-shadow:none}
.cx-em:focus-visible{box-shadow:none}
.cx-carry{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem .6rem;margin:0 0 1rem;padding:.6rem .9rem;border-radius:12px;background:var(--green-soft);font-size:.92rem;color:var(--ink)}
.cx-bar{display:flex;gap:.6rem;justify-content:flex-end;margin-top:1.2rem;padding-top:1rem;border-top:1px solid var(--line)}
.cx-back{min-height:48px;padding:0 1.2rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font:700 .95rem var(--display);cursor:pointer}
.cx-back:hover{border-color:var(--green)}
.cx-next{min-height:48px;min-width:10rem}
.cx-side{grid-area:side;position:sticky;top:96px;padding:1.1rem;border:1px solid rgba(62,240,127,.2);border-radius:var(--r);background:radial-gradient(420px 200px at 100% 0,rgba(62,240,127,.10),transparent 70%),linear-gradient(160deg,#08120c,#0e1c14);color:#eef7f1}
.cx-side h2{margin:0;font:800 1.05rem var(--display);color:#fff}
.cx-rd-n{margin:.25rem 0 .7rem;font:600 .72rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#3ef07f}
.cx-rd{list-style:none;margin:0;padding:0;display:grid;gap:.3rem;font-size:.86rem;line-height:1.4}
.cx-rd li{display:flex;gap:.5rem;align-items:flex-start;color:#a7bcaf}
.cx-rd li.is-done{color:#eef7f1}
.cx-rd-i{flex:none;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;font:700 .72rem/1 var(--body);border:1px solid rgba(231,243,236,.3)}
.cx-rd li.is-done .cx-rd-i{background:#3ef07f;border-color:#3ef07f;color:#08120c}
.cx-rd li.is-miss .cx-rd-i{border-color:#fbbf24;color:#fbbf24}
.cx-route{margin:1rem 0 0;padding:.8rem .9rem;border:1px solid rgba(231,243,236,.14);border-radius:12px}
.cx-route-k{margin:0;font:600 .7rem var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#a7bcaf}
.cx-route-v{margin:.15rem 0 .2rem;font:800 1.1rem var(--display);color:#fff}
.cx-side[data-route="emergency"] .cx-route-v{color:#fca5a5}
.cx-side[data-route="urgent"] .cx-route-v{color:#fbbf24}
.cx-route-r{margin:0;font-size:.82rem;line-height:1.45;color:#a7bcaf}
.cx-side-note{margin:.8rem 0 0;font-size:.78rem;color:#a7bcaf}
.cx-rev{display:grid;gap:.8rem}
.cx-card{padding:1rem 1.1rem;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
.cx-card h3{margin:0 0 .5rem;font:800 1.02rem var(--display);color:var(--ink)}
.cx-card p{margin:.3rem 0 .6rem;line-height:1.55}
.cx-card a{color:var(--deep);font-weight:600}
.cx-ul{white-space:normal}
.cx-dlist{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.cx-dlist li{padding:.6rem .75rem;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.cx-dlist li.is-applies{border-left:3px solid var(--green)}
.cx-dlist li.is-possible{border-left:3px solid #d97706}
.cx-dl-top{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem .5rem;margin:0!important}
.cx-dl-top b{flex:1 1 auto;font:800 .95rem var(--display)}
.cx-dlist .cx-apply{border:1px solid var(--line);color:var(--muted)}
.cx-dlist li.is-applies .cx-apply{border-color:var(--green);color:var(--deep)}
.cx-dlist .cx-price{background:var(--mist);color:var(--muted)}
.cx-dl-d{margin:.3rem 0 0!important;font-size:.9rem;color:var(--muted)}
.cx-miss{margin:.2rem 0 0;padding-left:1.1rem}
.cx-ok{padding:.6rem .8rem;border-radius:10px;background:var(--green-soft);color:var(--ink)}
.cx-summary{padding:1rem 1.1rem;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
.cx-sumh{margin:0 0 .6rem;font:700 .74rem var(--mono);letter-spacing:.14em;color:var(--deep)}
.cx-sumdl{display:grid;grid-template-columns:minmax(120px,.3fr) 1fr;gap:.45rem 1rem;margin:0}
.cx-sumdl div{display:contents}
.cx-sumdl dt{font:700 .86rem var(--display);color:var(--ink)}
.cx-sumdl dd{margin:0;font-size:.92rem;line-height:1.5;color:var(--ink);overflow-wrap:anywhere}
.cx-sumdl ul{margin:0;padding-left:1.05rem}
.cx-sumact{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0 0}
.cx-sumact .tl-btn,.cx-app .tl-btn{border-color:var(--line);background:var(--surface);color:var(--ink)}
.cx-sumact .tl-btn:hover:not(:disabled){border-color:var(--green);color:var(--ink)}
.cx-sumact .tl-btn.primary{background:var(--btn-bg);border-color:var(--btn-bg);color:#fff}
.cx-sumact .tl-btn:focus-visible{outline:3px solid var(--green)}
.cx-app .tl-status{color:var(--muted)}
.cx-quote{margin-top:1.6rem;padding:clamp(1rem,2.6vw,1.4rem);border:1px solid rgba(22,163,74,.35);border-radius:16px;background:var(--surface)}
.cx-quote h3{margin:0 0 .4rem;font:800 1.2rem var(--display);color:var(--ink)}
.cx-qlead{margin:0 0 1rem;color:var(--muted);line-height:1.55}
.cx-files input[type="file"]{display:block;width:100%;min-height:52px;padding:.6rem;border:1px dashed var(--line);border-radius:12px;background:var(--surface-2);color:var(--ink);font:500 .95rem var(--body);cursor:pointer}
.cx-files input[type="file"]:focus-visible{outline:3px solid var(--green);outline-offset:2px}
.cx-filelist{list-style:none;margin:.5rem 0 0;padding:0;display:grid;gap:.3rem}
.cx-filelist li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.4rem;padding:.2rem .7rem;border:1px solid var(--line);border-radius:10px;font-size:.9rem;overflow-wrap:anywhere}
.cx-filelist:empty{display:none}
.cx-hp{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}
.cx-consent{margin:.4rem 0 .8rem;font-size:.84rem;color:var(--muted)}
.cx-consent a{color:var(--deep)}
.cx-qstat{margin:0 0 .8rem;font-weight:600;line-height:1.5}
.cx-qstat:empty{display:none}
.cx-qstat.ok{padding:.7rem .9rem;border-radius:10px;background:var(--green-soft);color:var(--ink)}
.cx-qstat.bad{padding:.7rem .9rem;border-radius:10px;background:var(--danger-bg);color:var(--danger)}
.cx-qstat:focus{outline:none}
.cx-send{min-height:52px;width:100%;justify-content:center}
.cx-send:disabled{opacity:.6;cursor:progress}

.cx-jump{display:none}
@media(max-width:900px){.cx-jump{display:flex;position:sticky;bottom:calc(.8rem + env(safe-area-inset-bottom));z-index:5;justify-self:center;width:min(100%,420px);justify-content:center;box-shadow:0 14px 30px -12px rgba(8,18,12,.55)}.cx-jump.is-off{visibility:hidden}}
/* Off-screen parts of the long calculator skip layout until they are scrolled near (fewer startup style and layout costs). */
.cx-grp+.cx-grp{content-visibility:auto;contain-intrinsic-size:auto 700px}
@media(max-width:900px){.cx-calc .tl-out{content-visibility:auto;contain-intrinsic-size:auto 1500px}}
/* ---------- responsive ---------- */
@media(max-width:1020px){.cx-app{grid-template-columns:minmax(0,1fr) 260px}}
@media(max-width:900px){
  .cx-app{grid-template-columns:1fr;grid-template-areas:"nav" "main"}
  .cx-side{display:none}
  .cx-urg{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cx-steps ol{flex-wrap:nowrap;gap:.3rem;width:100%}
  .cx-steps li{flex:1 1 0;min-width:0}
  .cx-sn{width:100%;justify-content:center;padding:.3rem}
  .cx-sn .cx-sn-t{display:none}
  .cx-sn[aria-current="step"] .cx-sn-t{display:none}
  .cx-bar{position:sticky;bottom:0;z-index:5;margin:1rem calc(-1*clamp(1.1rem,2.6vw,1.7rem)) calc(-1*clamp(1.1rem,2.6vw,1.7rem));padding:.7rem clamp(1.1rem,2.6vw,1.7rem) calc(.7rem + env(safe-area-inset-bottom));background:var(--surface);border-radius:0 0 var(--r) var(--r);box-shadow:0 -12px 24px -20px var(--shadow-c)}
  .cx-next{flex:1}
}
@media(max-width:640px){
  .cx .tl-form-head .tl-tag{display:none}
  .cx-emq>summary{min-height:66px;line-height:1.3}
  .cx-checkgrid{grid-template-columns:1fr}
  .cx-sumdl{grid-template-columns:1fr;gap:.1rem}
  .cx-sumdl dd{margin-bottom:.5rem}
  .cx-em-ctas .btn{flex:1 1 100%;justify-content:center}
  .cx-sumact .tl-btn{flex:1 1 auto}
}
@media(max-width:380px){.cx-urg{grid-template-columns:1fr}.cx-dims .tl-row{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.cx-comp,.cx-sel,.cx-in input,.cx-in textarea{transition:none}}

/* ---------- print: only the summary (scope builder) or the breakdown (calculator) ---------- */
@media print{
  .cx .cx-steps,.cx .cx-side,.cx .cx-bar,.cx .cx-quote,.cx .cx-sumact,.cx .cx-carry,.cx .cx-em,.cx .cx-emq,.cx .tl-status,.cx .cx-why,.cx .cx-muted,.cx noscript{display:none!important}
  .cx .cx-step:not([data-step="5"]){display:none!important}
  .cx>.content,.cx .cx-scen,.cx .cx-jump,.cx .tl-disclaimer+*{display:none!important}
  .cx-step>h2{outline:0!important;box-shadow:none!important;border:0!important;background:none!important}
  .cx .cx-step[data-step="5"]{display:block!important}
  .cx-app{display:block!important}
  .cx-main{border:0!important;box-shadow:none!important;padding:0!important;background:#fff!important}
  .cx-summary{border:1px solid #999!important;background:#fff!important}
  .cx-summary *{color:#000!important}
  .cx-app-sec{padding:0!important}
  .cx-comp{break-inside:avoid;background:#fff!important;border-color:#bbb!important}
  .cx-apply,.cx-price{border:1px solid #999!important;background:#fff!important}
}
/* phones/tablets: the tool's own sticky bar replaces the floating WhatsApp/chat buttons so nothing covers Continue */
@media(max-width:960px){body:has(.cx-bar) :is(.whatsapp-float,.chat-float-btn,.rs-top),body:has(.cx-jump) :is(.whatsapp-float,.chat-float-btn,.rs-top){display:none!important}}
