/* FIRE interactive tools. Every rule is scoped to .fire-tool[data-tool] (the [fire_tool] container).
   Palette: navy #00309A, deep #0B1F5C, lime #C1FF72 (never text on white), text #1B2333. Mobile first. */

.fire-tool[data-tool] {
  --ft-navy: #00309A; --ft-deep: #0B1F5C; --ft-lime: #C1FF72; --ft-text: #1B2333; --ft-muted: #45506A;
  --ft-bg: #F6F8FB; --ft-soft: #EEF2FA; --ft-line: #C9D2E3; --ft-card: #FFFFFF;
  --ft-ok: #0B6B3A; --ft-ok-bg: #E7F6EC; --ft-miss: #8A3B00; --ft-miss-bg: #FFF2E5; --ft-part-bg: #F3F0FF;
  --ft-radius: 18px; --ft-font: "Plus Jakarta Sans", Inter, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --ft-body: Inter, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-family: var(--ft-body); font-size: 1rem; line-height: 1.6; color: var(--ft-text);
  margin: 1.5rem 0; display: block; overflow-wrap: break-word;
}
.fire-tool[data-tool] *, .fire-tool[data-tool] *::before, .fire-tool[data-tool] *::after { box-sizing: border-box; }
.fire-tool[data-tool] .fire-tool__card { background: var(--ft-card); border: 1px solid var(--ft-line); border-radius: var(--ft-radius); padding: 1.1rem; box-shadow: 0 8px 28px rgba(11, 31, 92, .07); }
.fire-tool[data-tool] h2, .fire-tool[data-tool] h3, .fire-tool[data-tool] h4, .fire-tool[data-tool] h5 { font-family: var(--ft-font); color: var(--ft-deep); line-height: 1.3; margin: 1.4rem 0 .5rem; }
.fire-tool[data-tool] h2 { font-size: 1.5rem; margin-top: .2rem; color: var(--ft-navy); }
.fire-tool[data-tool] h3 { font-size: 1.2rem; }
.fire-tool[data-tool] h4 { font-size: 1.05rem; }
.fire-tool[data-tool] h5 { font-size: .95rem; margin-top: .9rem; }
.fire-tool[data-tool] p { margin: 0 0 .8rem; }
.fire-tool[data-tool] ul, .fire-tool[data-tool] ol { margin: 0 0 1rem; padding-left: 1.3rem; }
.fire-tool[data-tool] li { margin-bottom: .3rem; }
.fire-tool[data-tool] a { color: var(--ft-navy); text-decoration: underline; text-underline-offset: 2px; overflow-wrap: anywhere; }
.fire-tool[data-tool] a:hover { color: var(--ft-deep); }

/* focus: navy outline with a lime halo, visible on white and on navy */
.fire-tool[data-tool] :focus { outline: none; }
.fire-tool[data-tool] :focus-visible { outline: 3px solid var(--ft-navy); outline-offset: 2px; box-shadow: 0 0 0 6px var(--ft-lime); border-radius: 6px; }
.fire-tool[data-tool] [tabindex="-1"]:focus-visible { box-shadow: none; outline: 2px dashed var(--ft-navy); }

/* head */
.fire-tool[data-tool] .fire-tool__kicker { display: inline-block; background: var(--ft-lime); color: var(--ft-deep); font-weight: 700; font-size: .78rem; letter-spacing: .04em; text-transform: uppercase; border-radius: 999px; padding: .2rem .7rem; margin-bottom: .6rem; }
.fire-tool[data-tool] .fire-tool__intro { font-size: 1.05rem; }
.fire-tool[data-tool] .fire-tool__privacy { display: flex; gap: .6rem; align-items: flex-start; background: var(--ft-soft); border-radius: 12px; padding: .7rem .9rem; font-size: .95rem; }
.fire-tool[data-tool] .fire-tool__ico { flex: 0 0 1.4rem; width: 1.4rem; height: 1.4rem; color: var(--ft-navy); margin-top: .1rem; }
.fire-tool[data-tool] .fire-tool__ico svg { width: 100%; height: 100%; display: block; }
.fire-tool[data-tool] .fire-tool__sr { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* buttons */
.fire-tool[data-tool] .fire-tool__btn { font: 600 1rem/1.2 var(--ft-font); border-radius: 999px; padding: .75rem 1.25rem; min-height: 44px; border: 2px solid var(--ft-navy); background: var(--ft-card); color: var(--ft-navy); cursor: pointer; }
.fire-tool[data-tool] .fire-tool__btn:hover { background: var(--ft-soft); }
.fire-tool[data-tool] .fire-tool__btn.is-primary { background: var(--ft-navy); color: #fff; }
.fire-tool[data-tool] .fire-tool__btn.is-primary:hover { background: var(--ft-deep); border-color: var(--ft-deep); }
.fire-tool[data-tool] .fire-tool__btn.is-clear { border-color: var(--ft-miss); color: var(--ft-miss); }
.fire-tool[data-tool] .fire-tool__btn.is-chip { padding: .5rem .9rem; font-size: .92rem; }
.fire-tool[data-tool] .fire-tool__btn.is-link { border: 0; background: none; padding: .4rem 0; text-decoration: underline; min-height: 0; }
.fire-tool[data-tool] .fire-tool__btn[disabled] { opacity: .55; cursor: not-allowed; }
.fire-tool[data-tool] .fire-tool__actions { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; margin: 1rem 0; }
.fire-tool[data-tool] .fire-tool__presets { display: flex; flex-wrap: wrap; gap: .4rem; margin: -.2rem 0 .8rem; }

/* fields */
.fire-tool[data-tool] .fire-tool__field { margin: 0 0 .9rem; }
.fire-tool[data-tool] .fire-tool__field label, .fire-tool[data-tool] legend { display: block; font-weight: 600; margin-bottom: .3rem; color: var(--ft-text); }
.fire-tool[data-tool] .fire-tool__hint { color: var(--ft-muted); font-size: .92rem; margin: 0 0 .4rem; }
.fire-tool[data-tool] input[type="text"], .fire-tool[data-tool] input[type="date"], .fire-tool[data-tool] textarea, .fire-tool[data-tool] select {
  width: 100%; font: inherit; color: var(--ft-text); background: #fff; border: 2px solid var(--ft-line); border-radius: 10px; padding: .6rem .75rem; min-height: 44px;
}
.fire-tool[data-tool] input[type="text"]:hover, .fire-tool[data-tool] textarea:hover, .fire-tool[data-tool] select:hover { border-color: #8E9BB8; }
.fire-tool[data-tool] input:focus-visible, .fire-tool[data-tool] textarea:focus-visible, .fire-tool[data-tool] select:focus-visible { border-color: var(--ft-navy); border-radius: 10px; }
.fire-tool[data-tool] textarea { resize: vertical; }
.fire-tool[data-tool] ::placeholder { color: #6B7489; opacity: 1; }
.fire-tool[data-tool] .fire-tool__euro { display: flex; align-items: center; gap: .4rem; }
.fire-tool[data-tool] .fire-tool__euro span { font-weight: 700; color: var(--ft-navy); }
.fire-tool[data-tool] .fire-tool__euro input { text-align: right; max-width: 12rem; }
.fire-tool[data-tool] .fire-tool__field.is-inline { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; }
.fire-tool[data-tool] .fire-tool__field.is-inline select { width: auto; min-width: 12rem; }
.fire-tool[data-tool] fieldset { border: 0; padding: 0; margin: 0 0 1rem; min-width: 0; }
.fire-tool[data-tool] .fire-tool__group { border: 1px solid var(--ft-line); border-radius: 14px; padding: .9rem; margin: 0 0 1rem; background: var(--ft-card); }
.fire-tool[data-tool] .fire-tool__group > legend { font-family: var(--ft-font); font-size: 1.1rem; color: var(--ft-deep); padding: 0 .3rem; }
.fire-tool[data-tool] .fire-tool__group > h3:first-child { margin-top: 0; }

/* choice options (radio / checkbox as large tappable rows or chips) */
.fire-tool[data-tool] .fire-tool__choices > legend { font-weight: 600; margin-bottom: .45rem; }
.fire-tool[data-tool] .fire-tool__opts { display: grid; gap: .4rem; }
.fire-tool[data-tool] .fire-tool__opt { display: flex; align-items: flex-start; gap: .6rem; border: 2px solid var(--ft-line); border-radius: 12px; padding: .6rem .75rem; cursor: pointer; background: #fff; min-height: 44px; font-weight: 400; }
.fire-tool[data-tool] .fire-tool__opt:hover { border-color: #8E9BB8; }
.fire-tool[data-tool] .fire-tool__opt input { width: 1.2rem; height: 1.2rem; margin: .15rem 0 0; flex: 0 0 auto; accent-color: var(--ft-navy); }
.fire-tool[data-tool] .fire-tool__opt:has(input:checked) { border-color: var(--ft-navy); background: var(--ft-soft); box-shadow: inset 4px 0 0 var(--ft-lime); }
.fire-tool[data-tool] .fire-tool__opt:has(input:focus-visible) { outline: 3px solid var(--ft-navy); outline-offset: 2px; }
.fire-tool[data-tool] .fire-tool__opt:has(input:disabled) { cursor: default; opacity: .85; }
.fire-tool[data-tool] .is-chips .fire-tool__opts, .fire-tool[data-tool] .is-row .fire-tool__opts { display: flex; flex-wrap: wrap; }
.fire-tool[data-tool] .is-chips .fire-tool__opt, .fire-tool[data-tool] .is-row .fire-tool__opt { border-radius: 999px; padding: .5rem .9rem; align-items: center; }
.fire-tool[data-tool] .is-chips .fire-tool__opt input, .fire-tool[data-tool] .is-row .fire-tool__opt input { margin: 0; }
.fire-tool[data-tool] .is-scale .fire-tool__opts { grid-template-columns: 1fr 1fr; }
.fire-tool[data-tool] .is-scale > legend { font-weight: 500; }
.fire-tool[data-tool] .fire-tool__check label, .fire-tool[data-tool] .fire-tool__checklist label, .fire-tool[data-tool] .fire-tool__remember label { display: flex; gap: .6rem; align-items: flex-start; cursor: pointer; font-weight: 400; }
.fire-tool[data-tool] .fire-tool__checklist { list-style: none; padding: 0; }
.fire-tool[data-tool] .fire-tool__checklist li { margin-bottom: .45rem; }
.fire-tool[data-tool] .fire-tool__checklist input, .fire-tool[data-tool] .fire-tool__check input, .fire-tool[data-tool] .fire-tool__remember input { width: 1.25rem; height: 1.25rem; margin-top: .15rem; flex: 0 0 auto; accent-color: var(--ft-navy); }

/* notes, results, feedback */
.fire-tool[data-tool] .fire-tool__note { background: var(--ft-soft); border-left: 5px solid var(--ft-navy); border-radius: 12px; padding: .8rem 1rem; margin: 1rem 0; }
.fire-tool[data-tool] .fire-tool__note.is-warm { border-left-color: var(--ft-miss); background: var(--ft-miss-bg); }
.fire-tool[data-tool] .fire-tool__note > :last-child { margin-bottom: 0; }
.fire-tool[data-tool] .fire-tool__note h3, .fire-tool[data-tool] .fire-tool__note h4 { margin-top: 0; }
.fire-tool[data-tool] .fire-tool__result { margin: 1rem 0; }
.fire-tool[data-tool] .fire-tool__result:not(:empty) { border-top: 3px solid var(--ft-lime); padding-top: .6rem; }
.fire-tool[data-tool] .fire-tool__feedback:not(:empty) { border-radius: 12px; padding: .8rem 1rem; margin: .6rem 0 1rem; background: var(--ft-soft); }
.fire-tool[data-tool] .fire-tool__feedback.is-ok { background: var(--ft-ok-bg); border-left: 5px solid var(--ft-ok); }
.fire-tool[data-tool] .fire-tool__feedback.is-miss { background: var(--ft-miss-bg); border-left: 5px solid var(--ft-miss); }
.fire-tool[data-tool] .fire-tool__feedback.is-part { background: var(--ft-part-bg); border-left: 5px solid #5B3FB5; }
.fire-tool[data-tool] .fire-tool__fb { list-style: none; padding: 0; }
.fire-tool[data-tool] .fire-tool__fb li { padding: .5rem .7rem; border-radius: 10px; margin-bottom: .4rem; background: #fff; }
.fire-tool[data-tool] .fire-tool__fb li.is-ok strong { color: var(--ft-ok); }
.fire-tool[data-tool] .fire-tool__fb li.is-miss strong { color: var(--ft-miss); }
.fire-tool[data-tool] .fire-tool__fb li.is-extra { color: var(--ft-muted); }
.fire-tool[data-tool] .fire-tool__case { background: var(--ft-bg); border-radius: 12px; padding: .9rem 1rem; margin: 0 0 1rem; font-size: 1.05rem; border: 0; }
.fire-tool[data-tool] blockquote.fire-tool__case { border-left: 5px solid var(--ft-lime); }
.fire-tool[data-tool] .fire-tool__progress { display: inline-block; font-size: .8rem; font-weight: 700; background: var(--ft-deep); color: #fff; border-radius: 999px; padding: .1rem .6rem; vertical-align: middle; }
.fire-tool[data-tool] .fire-tool__rating { color: var(--ft-deep); }
.fire-tool[data-tool] .fire-tool__big { font-family: var(--ft-font); font-size: 1.15rem; font-weight: 600; color: var(--ft-deep); }
.fire-tool[data-tool] .fire-tool__big.is-over, .fire-tool[data-tool] .is-over dd { color: var(--ft-miss); }
.fire-tool[data-tool] .fire-tool__details { border: 1px solid var(--ft-line); border-radius: 12px; padding: .5rem .9rem; margin: .8rem 0; }
.fire-tool[data-tool] .fire-tool__details summary { cursor: pointer; font-weight: 600; color: var(--ft-navy); min-height: 32px; padding: .2rem 0; }
.fire-tool[data-tool] .fire-tool__details dt { font-weight: 700; margin-top: .5rem; }
.fire-tool[data-tool] .fire-tool__details dd { margin: 0 0 .3rem; }
.fire-tool[data-tool] .fire-tool__emergency { background: var(--ft-deep); color: #fff; border-radius: 12px; padding: .7rem 1rem; font-weight: 600; }

/* chips / links */
.fire-tool[data-tool] .fire-tool__chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.fire-tool[data-tool] .fire-tool__chip { display: inline-flex; align-items: center; min-height: 36px; border-radius: 999px; padding: .3rem .8rem; font-size: .9rem; background: var(--ft-soft); color: var(--ft-navy); text-decoration: none; border: 1px solid var(--ft-line); }
.fire-tool[data-tool] a.fire-tool__chip:hover { background: var(--ft-lime); color: var(--ft-deep); }
.fire-tool[data-tool] .fire-tool__chip.is-plain { color: var(--ft-text); }
.fire-tool[data-tool] .fire-tool__chip.is-file::before { content: "\2193"; margin-right: .35rem; font-weight: 700; }
.fire-tool[data-tool] .fire-tool__links h3, .fire-tool[data-tool] .fire-tool__links h4 { font-size: 1rem; margin: 1rem 0 .4rem; }

/* bottom bar */
.fire-tool[data-tool] .fire-tool__bar { display: flex; flex-direction: column; gap: .8rem; border-top: 1px solid var(--ft-line); margin-top: 1.4rem; padding-top: 1rem; }
.fire-tool[data-tool] .fire-tool__remember .fire-tool__hint { margin: .2rem 0 0 1.85rem; }

/* help contacts */
.fire-tool[data-tool] .fire-tool__help { border: 2px solid var(--ft-deep); border-radius: var(--ft-radius); padding: 1rem; margin: 1.2rem 0; }
.fire-tool[data-tool] .fire-tool__help > h3 { margin-top: 0; }
.fire-tool[data-tool] .fire-tool__services { list-style: none; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: .7rem; }
.fire-tool[data-tool] .fire-tool__service { min-width: 0; overflow-wrap: anywhere; border: 1px solid var(--ft-line); border-radius: 14px; padding: .8rem 1rem; background: #fff; }
.fire-tool[data-tool] .fire-tool__service h4 { margin: 0 0 .3rem; }
.fire-tool[data-tool] .fire-tool__service p { margin-bottom: .35rem; }
.fire-tool[data-tool] .fire-tool__phone a { font-size: 1.2rem; font-weight: 700; }
.fire-tool[data-tool] .fire-tool__badges { display: flex; flex-wrap: wrap; gap: .3rem; }
.fire-tool[data-tool] .fire-tool__badge { background: var(--ft-lime); color: var(--ft-deep); border-radius: 999px; padding: .05rem .55rem; font-size: .8rem; font-weight: 700; }
.fire-tool[data-tool] .fire-tool__badge.is-warn { background: var(--ft-miss-bg); color: var(--ft-miss); }
.fire-tool[data-tool] .fire-tool__meta { font-size: .85rem; color: var(--ft-muted); }
.fire-tool[data-tool] .fire-tool__filters { display: grid; gap: .2rem; }
.fire-tool[data-tool] .fire-tool__type { border-top: 1px solid var(--ft-line); padding-top: .4rem; }
.fire-tool[data-tool] .fire-tool__right { border-left: 4px solid var(--ft-lime); padding-left: .9rem; margin: .8rem 0 1.2rem; }
.fire-tool[data-tool] .fire-tool__right h4 { margin-top: 0; }

/* bars and charts */
.fire-tool[data-tool] .fire-tool__bars { list-style: none; padding: 0; }
.fire-tool[data-tool] .fire-tool__bars > li { margin-bottom: .9rem; }
.fire-tool[data-tool] .fire-tool__bars h4 { margin: 0 0 .3rem; font-size: 1rem; }
.fire-tool[data-tool] .fire-tool__barrow { display: grid; grid-template-columns: 5.5rem 1fr; grid-template-areas: "lbl val" "bar bar"; gap: .15rem .6rem; align-items: center; margin-bottom: .35rem; font-size: .9rem; }
.fire-tool[data-tool] .fire-tool__barlbl { grid-area: lbl; color: var(--ft-muted); }
.fire-tool[data-tool] .fire-tool__barval { grid-area: val; text-align: right; font-weight: 600; }
.fire-tool[data-tool] .fire-tool__track { grid-area: bar; display: block; height: .9rem; border-radius: 999px; background: var(--ft-soft); overflow: hidden; border: 1px solid var(--ft-line); }
.fire-tool[data-tool] .fire-tool__fill { display: block; height: 100%; border-radius: 999px; background: var(--ft-navy); transition: width .3s ease; }
.fire-tool[data-tool] .fire-tool__fill.is-before, .fire-tool[data-tool] .fire-tool__fill.is-guide { background: repeating-linear-gradient(45deg, #8E9BB8 0 6px, #B9C3D8 6px 12px); }
.fire-tool[data-tool] .fire-tool__fill.is-want { background: #7A93D9; }
.fire-tool[data-tool] .fire-tool__fill.is-savings { background: var(--ft-lime); box-shadow: inset 0 0 0 1px #6E9A2E; }
.fire-tool[data-tool] .fire-tool__summary { background: var(--ft-bg); border-radius: var(--ft-radius); padding: 1rem; margin: 1rem 0; }
.fire-tool[data-tool] .fire-tool__summary h3 { margin-top: 0; }
.fire-tool[data-tool] .fire-tool__sumgrid { display: grid; gap: 1rem; align-items: center; }
.fire-tool[data-tool] .fire-tool__totals { display: grid; gap: .5rem; margin: 0; }
.fire-tool[data-tool] .fire-tool__totals > div { background: #fff; border-radius: 12px; padding: .6rem .8rem; display: flex; justify-content: space-between; gap: .6rem; flex-wrap: wrap; border: 1px solid var(--ft-line); }
.fire-tool[data-tool] .fire-tool__totals dt { color: var(--ft-muted); }
.fire-tool[data-tool] .fire-tool__totals dd { margin: 0; font: 700 1.2rem/1.2 var(--ft-font); color: var(--ft-deep); }
.fire-tool[data-tool] .fire-tool__totals .is-zero { box-shadow: inset 4px 0 0 var(--ft-lime); }
.fire-tool[data-tool] .fire-tool__donutwrap { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }
.fire-tool[data-tool] .fire-tool__donut { width: 9rem; height: 9rem; flex: 0 0 auto; }
.fire-tool[data-tool] .fire-tool__legend { list-style: none; padding: 0; margin: 0; font-size: .92rem; }
.fire-tool[data-tool] .fire-tool__sw { display: inline-block; width: .9rem; height: .9rem; border-radius: 3px; margin-right: .45rem; vertical-align: -2px; border: 1px solid rgba(11, 31, 92, .35); }
.fire-tool[data-tool] .fire-tool__tabs { display: grid; gap: .4rem; margin: 1rem 0 0; }
.fire-tool[data-tool] .fire-tool__tab { text-align: left; font: inherit; background: #fff; border: 2px solid var(--ft-line); border-radius: 12px; padding: .6rem .8rem; cursor: pointer; color: var(--ft-text); display: flex; flex-direction: column; min-height: 44px; }
.fire-tool[data-tool] .fire-tool__tab strong { font-family: var(--ft-font); color: var(--ft-deep); }
.fire-tool[data-tool] .fire-tool__tab span { font-size: .88rem; color: var(--ft-muted); }
.fire-tool[data-tool] .fire-tool__tab[aria-selected="true"] { border-color: var(--ft-navy); background: var(--ft-soft); box-shadow: inset 0 -4px 0 var(--ft-lime); }
.fire-tool[data-tool] .fire-tool__panel { border: 2px solid var(--ft-navy); border-radius: 14px; padding: 1rem; margin-top: .5rem; }
.fire-tool[data-tool] .fire-tool__table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.fire-tool[data-tool] .fire-tool__table th, .fire-tool[data-tool] .fire-tool__table td { text-align: left; padding: .45rem .5rem; border-bottom: 1px solid var(--ft-line); }
.fire-tool[data-tool] .fire-tool__table td { text-align: right; white-space: nowrap; }
.fire-tool[data-tool] .fire-tool__table thead th { color: var(--ft-muted); font-weight: 600; }
.fire-tool[data-tool] .fire-tool__table thead th + th { text-align: right; }
.fire-tool[data-tool] .fire-tool__timeline { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.fire-tool[data-tool] .fire-tool__timeline li { background: var(--ft-soft); border-radius: 12px; padding: .4rem .7rem; font-size: .92rem; }

/* debt plan */
.fire-tool[data-tool] .fire-tool__debt { border: 1px solid var(--ft-line); border-radius: 14px; padding: .8rem; display: grid; gap: 0 .8rem; }
.fire-tool[data-tool] .fire-tool__debt > legend { font-family: var(--ft-font); font-weight: 700; color: var(--ft-deep); padding: 0 .3rem; }
.fire-tool[data-tool] .fire-tool__compare { display: grid; gap: .8rem; }
.fire-tool[data-tool] .fire-tool__method { border: 2px solid var(--ft-line); border-radius: 14px; padding: .9rem; }
.fire-tool[data-tool] .fire-tool__method h4 { margin-top: 0; }
.fire-tool[data-tool] .fire-tool__letter { white-space: pre-wrap; font-family: var(--ft-body); font-size: .95rem; background: var(--ft-bg); border: 1px solid var(--ft-line); border-radius: 12px; padding: 1rem; margin: 0 0 1rem; max-height: 28rem; overflow: auto; }
.fire-tool[data-tool] .fire-tool__section { border-top: 1px solid var(--ft-line); margin-top: 1.4rem; }

/* skills routes, cards */
.fire-tool[data-tool] .fire-tool__qlist { padding-left: 1.4rem; }
.fire-tool[data-tool] .fire-tool__qlist > li::marker { font-weight: 700; color: var(--ft-navy); }
.fire-tool[data-tool] .fire-tool__route { border: 2px solid var(--ft-line); border-radius: var(--ft-radius); padding: 1rem; margin: 0 0 1rem; }
.fire-tool[data-tool] .fire-tool__route h4 { margin-top: 0; display: flex; gap: .6rem; align-items: center; }
.fire-tool[data-tool] .fire-tool__rank { display: inline-grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--ft-lime); color: var(--ft-deep); font-weight: 800; flex: 0 0 auto; }
.fire-tool[data-tool] .fire-tool__goalcard, .fire-tool[data-tool] .fire-tool__calmcard, .fire-tool[data-tool] .fire-tool__strcard { background: var(--ft-deep); color: #fff; border-radius: var(--ft-radius); padding: 1.1rem 1.2rem; border-top: 0; }
.fire-tool[data-tool] .fire-tool__goalcard h4, .fire-tool[data-tool] .fire-tool__calmcard h4, .fire-tool[data-tool] .fire-tool__strcard h4 { color: var(--ft-lime); margin: .8rem 0 .2rem; }
.fire-tool[data-tool] .fire-tool__goalcard .fire-tool__hint, .fire-tool[data-tool] .fire-tool__calmcard .fire-tool__hint, .fire-tool[data-tool] .fire-tool__strcard .fire-tool__hint { color: #D6DEF2; }
.fire-tool[data-tool] .fire-tool__footer { font-style: italic; margin-top: 1rem; }
.fire-tool[data-tool] .fire-tool__cards4 { list-style: none; padding: 0; display: grid; gap: .5rem; }
.fire-tool[data-tool] .fire-tool__cards4 li { background: var(--ft-soft); border-radius: 12px; padding: .7rem .9rem; display: flex; flex-direction: column; }
.fire-tool[data-tool] .fire-tool__cards4 strong { color: var(--ft-deep); }
.fire-tool[data-tool] .fire-tool__ground { list-style: none; padding: 0; }
.fire-tool[data-tool] .fire-tool__ground li { display: flex; gap: .8rem; align-items: center; margin-bottom: .5rem; }
.fire-tool[data-tool] .fire-tool__num { display: inline-grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 50%; background: var(--ft-navy); color: #fff; font: 800 1.2rem/1 var(--ft-font); flex: 0 0 auto; }
.fire-tool[data-tool] .fire-tool__ideas { columns: 1; }

/* breathing circle: grows on "in", stays on "hold", shrinks on "out"; durations set from the pattern by JS */
.fire-tool[data-tool] .fire-tool__breath-stage { display: flex; flex-wrap: wrap; gap: 1.2rem; align-items: center; justify-content: center; background: var(--ft-bg); border-radius: var(--ft-radius); padding: 1.2rem; }
.fire-tool[data-tool] .fire-tool__breath-circle { width: 11rem; height: 11rem; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #DFFFB8, var(--ft-lime) 55%, #A6E35A); border: 6px solid var(--ft-navy); display: grid; place-items: center; transform: scale(.6); transition-property: transform; transition-timing-function: ease-in-out; transition-duration: 1s; }
.fire-tool[data-tool] .fire-tool__breath-circle.is-in, .fire-tool[data-tool] .fire-tool__breath-circle.is-hold { transform: scale(1); }
.fire-tool[data-tool] .fire-tool__breath-circle.is-out { transform: scale(.6); }
.fire-tool[data-tool] .fire-tool__breath-count { font: 800 2.4rem/1 var(--ft-font); color: var(--ft-deep); }
.fire-tool[data-tool] .fire-tool__breath-phase { font: 700 1.35rem/1.3 var(--ft-font); color: var(--ft-deep); min-height: 1.8rem; margin-bottom: .3rem; }

/* wider screens */
@media (min-width: 640px) {
  .fire-tool[data-tool] .fire-tool__card { padding: 1.6rem 1.8rem; }
  .fire-tool[data-tool] .is-scale .fire-tool__opts { grid-template-columns: repeat(4, 1fr); }
  .fire-tool[data-tool] .fire-tool__bar { flex-direction: row; justify-content: space-between; align-items: flex-start; }
  .fire-tool[data-tool] .fire-tool__filters { grid-template-columns: 1fr 1fr; gap: 1rem; }
  .fire-tool[data-tool] .fire-tool__tabs { grid-template-columns: repeat(3, 1fr); }
  .fire-tool[data-tool] .fire-tool__debt { grid-template-columns: 1fr 1fr; }
  .fire-tool[data-tool] .fire-tool__cards4 { grid-template-columns: 1fr 1fr; }
  .fire-tool[data-tool] .fire-tool__ideas { columns: 2; column-gap: 2rem; }
  .fire-tool[data-tool] .fire-tool__barrow { grid-template-columns: 6rem 1fr 9rem; grid-template-areas: "lbl bar val"; }
}
@media (min-width: 900px) {
  .fire-tool[data-tool] .fire-tool__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.2rem; align-items: start; }
  .fire-tool[data-tool] .fire-tool__sumgrid { grid-template-columns: 1fr 1.2fr; }
  .fire-tool[data-tool] .fire-tool__compare { grid-template-columns: 1fr 1fr; }
  .fire-tool[data-tool] .fire-tool__services { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* reduced motion: no growing circle, the text countdown carries the rhythm */
@media (prefers-reduced-motion: reduce) {
  .fire-tool[data-tool] .fire-tool__breath-circle { transition: none !important; transform: none !important; }
  .fire-tool[data-tool] .fire-tool__fill { transition: none; }
}

/* high contrast / forced colours */
@media (forced-colors: active) {
  .fire-tool[data-tool] .fire-tool__fill { background: Highlight; forced-color-adjust: none; }
  .fire-tool[data-tool] .fire-tool__opt:has(input:checked) { outline: 2px solid Highlight; }
}

/* quick exit (added only when the page has none) */
.fire-tool.fire-tool--exit[data-tool] { position: fixed; top: .75rem; right: .75rem; z-index: 99999; margin: 0; background: var(--ft-deep, #0B1F5C); color: #fff; font: 700 .95rem/1.2 "Plus Jakarta Sans", Inter, system-ui, sans-serif; text-decoration: none; padding: .7rem 1rem; border-radius: 999px; border: 3px solid #C1FF72; box-shadow: 0 6px 18px rgba(0, 0, 0, .25); min-height: 44px; display: inline-flex; align-items: center; }
.fire-tool.fire-tool--exit[data-tool]:hover { background: #00309A; }
.fire-tool.fire-tool--exit[data-tool]:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }

/* print container lives directly in <body> and is shown only while printing */
.fire-tool.fire-tool--print[data-tool] { display: none; }
.fire-tool[data-tool] .fire-tool__doc .fire-tool__done, .fire-tool--print .fire-tool__done { list-style: none; padding-left: 0; }
.fire-tool--print .fire-tool__done li::before { content: "\2610\00a0\00a0"; }
.fire-tool--print .fire-tool__done li.is-on::before { content: "\2611\00a0\00a0"; }

@media print {
  body.fire-tool-printing > *:not(.fire-tool--print) { display: none !important; }
  body.fire-tool-printing .fire-tool.fire-tool--print[data-tool] { display: block !important; margin: 0; font-size: 11pt; color: #000; }
  .fire-tool--print h1 { font-family: "Plus Jakarta Sans", Inter, sans-serif; color: #00309A; font-size: 18pt; margin: 0 0 8pt; }
  .fire-tool--print h2 { font-size: 13pt; color: #0B1F5C; border-bottom: 2pt solid #C1FF72; padding-bottom: 2pt; margin: 12pt 0 4pt; page-break-after: avoid; }
  .fire-tool--print table { border-collapse: collapse; width: 100%; }
  .fire-tool--print td, .fire-tool--print th { border: 1px solid #999; padding: 3pt 5pt; text-align: left; }
  .fire-tool--print .fire-tool__letter { white-space: pre-wrap; font-family: inherit; }
  .fire-tool--print a { color: #000; text-decoration: none; }
  /* Ctrl+P without the Print button: show the tool content, hide controls */
  .fire-tool[data-tool] .fire-tool__noprint, .fire-tool[data-tool] .fire-tool__bar, .fire-tool[data-tool] button, .fire-tool.fire-tool--exit[data-tool] { display: none !important; }
  .fire-tool[data-tool] .fire-tool__card { box-shadow: none; border: 0; padding: 0; }
  .fire-tool[data-tool] .fire-tool__goalcard, .fire-tool[data-tool] .fire-tool__calmcard, .fire-tool[data-tool] .fire-tool__strcard { background: none; color: #000; border: 2px solid #0B1F5C; }
  .fire-tool[data-tool] .fire-tool__goalcard h4, .fire-tool[data-tool] .fire-tool__calmcard h4, .fire-tool[data-tool] .fire-tool__strcard h4 { color: #0B1F5C; }
  .fire-tool[data-tool] .fire-tool__fill, .fire-tool[data-tool] .fire-tool__badge, .fire-tool[data-tool] .fire-tool__kicker { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
@media (max-width: 480px) {
  .fire-tool.fire-tool--exit[data-tool] { top: .5rem; right: .5rem; padding: .5rem .8rem; font-size: .85rem; }
}
