/* CanadaECU FDCT EEPROM Repair. Scoped to .cefdct; inherits the theme's body font.
   Colours match the canadaecu.com Astra dark theme (bg #0B0D10, accent #E31E24). */
.cefdct{
	--cf-ink:#E8EAED; --cf-muted:#9AA3AD; --cf-faint:#5E6873; --cf-line:#262B33;
	--cf-surface:#14171C; --cf-sunk:#0F1216;
	--cf-accent:#E31E24; --cf-accent-ink:#FFFFFF; --cf-accent-soft:rgba(227,30,36,.12);
	--cf-ok:#4CC08A; --cf-ok-soft:#12291F; --cf-warn:#E6AA4E; --cf-warn-soft:#2E2412; --cf-crit:#FF5A55; --cf-crit-soft:#2C1417;
	--cf-cell:#1C2128; --cf-marker:#4A535E; --cf-rec:#8C98A6; --cf-rec2:#B9C2CC; --cf-bad:#E31E24;
	--cf-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Consolas,monospace;
	color:var(--cf-ink); display:flex; flex-direction:column; gap:20px; max-width:1120px; margin:0 auto;
}
.cefdct *{box-sizing:border-box}
.cefdct h1,.cefdct h2,.cefdct h3,.cefdct h4,.cefdct b,.cefdct strong,.cefdct dd,.cefdct td,.cefdct label,.cefdct li b{color:var(--cf-ink)}
.cefdct p,.cefdct li{color:inherit}
.cefdct a:not(.cefdct-btn){color:var(--cf-accent)}
.cefdct code{background:transparent;color:var(--cf-ink);padding:0}
.cefdct code,.cefdct .cefdct-mono{font-family:var(--cf-mono)}
.cefdct-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 24px;border-bottom:2px solid var(--cf-ink);padding-bottom:14px}
.cefdct-eyebrow{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--cf-muted);margin:0 0 4px;font-weight:600}
.cefdct-title{margin:0;font-size:clamp(28px,5vw,42px);line-height:1.05;text-wrap:balance}
.cefdct-lead{margin:8px 0 0;color:var(--cf-muted);max-width:62ch}
.cefdct-balance{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cefdct-balance span{font-size:13px;color:var(--cf-muted)}
.cefdct-balance b{font-family:var(--cf-mono);font-size:22px;min-width:1.5em;text-align:center}
.cefdct-grid{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:20px;align-items:start}
@media (max-width:860px){.cefdct-grid{grid-template-columns:minmax(0,1fr)}}
.cefdct-panel{background:var(--cf-surface);border:1px solid var(--cf-line);border-radius:6px;padding:20px;display:flex;flex-direction:column;gap:14px;min-width:0}
.cefdct-panel h3{margin:0;font-size:18px}
.cefdct-drop{border:1.5px dashed var(--cf-faint);border-radius:6px;background:var(--cf-sunk);padding:26px 16px;text-align:center;display:flex;flex-direction:column;gap:6px;cursor:pointer}
.cefdct-drop:hover,.cefdct-drop.is-over{border-color:var(--cf-accent);background:var(--cf-accent-soft)}
.cefdct-drop:focus-visible,.cefdct-btn:focus-visible{outline:2px solid var(--cf-accent);outline-offset:2px}
.cefdct-drop span{font-size:13px;color:var(--cf-muted)}
.cefdct-drop code{font-size:12px}
.cefdct-steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--cf-muted)}
.cefdct-steps b{color:var(--cf-ink)}
.cefdct-btn{display:inline-flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;line-height:1;border-radius:5px;padding:11px 16px;border:1px solid var(--cf-line);background:var(--cf-surface);color:var(--cf-ink)!important;text-decoration:none!important;cursor:pointer}
.cefdct-btn:hover{border-color:var(--cf-ink)}
.cefdct-primary{background:var(--cf-accent);border-color:var(--cf-accent);color:var(--cf-accent-ink)!important}
.cefdct-primary:hover{filter:brightness(1.08);border-color:var(--cf-accent)}
.cefdct-btn:disabled{opacity:.45;cursor:not-allowed;filter:none}
.cefdct-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.cefdct-msg{margin:0;font-size:14px;min-height:1.3em}
.cefdct-msg.is-err{color:var(--cf-crit)}.cefdct-msg.is-ok{color:var(--cf-ok)}
.cefdct-empty{padding:28px 16px;text-align:center;color:var(--cf-muted);background:var(--cf-sunk);border-radius:6px;font-size:14px}
#cefdct-diag{display:flex;flex-direction:column;gap:14px}
#cefdct-diag[hidden],.cefdct [hidden]{display:none!important}
.cefdct-verdict{display:flex;gap:14px;align-items:flex-start;padding:14px 16px;border-radius:6px;background:var(--cf-sunk);border-left:4px solid var(--cf-faint)}
.cefdct-verdict.is-crit{background:var(--cf-crit-soft);border-left-color:var(--cf-crit)}
.cefdct-verdict.is-warn{background:var(--cf-warn-soft);border-left-color:var(--cf-warn)}
.cefdct-verdict.is-ok{background:var(--cf-ok-soft);border-left-color:var(--cf-ok)}
.cefdct-verdict h4{margin:0;font-size:16px}
.cefdct-verdict p{margin:4px 0 0;font-size:14px;color:var(--cf-muted)}
.cefdct-chip{font-family:var(--cf-mono);font-size:11px;font-weight:600;letter-spacing:.08em;padding:4px 8px;border-radius:3px;white-space:nowrap;background:var(--cf-faint);color:#fff}
.is-crit .cefdct-chip{background:var(--cf-crit)}.is-warn .cefdct-chip{background:var(--cf-warn)}.is-ok .cefdct-chip{background:var(--cf-ok)}
.cefdct-ids{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1px;background:var(--cf-line);border:1px solid var(--cf-line);border-radius:5px;overflow:hidden;margin:0}
.cefdct-ids div{background:var(--cf-surface);padding:10px 12px;min-width:0}
.cefdct-ids dt{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--cf-muted);font-weight:600}
.cefdct-ids dd{margin:0;font-family:var(--cf-mono);font-size:14px;font-weight:500;word-break:break-all}
.cefdct-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}
.cefdct-stats span{display:block;font-size:12px;color:var(--cf-muted)}
.cefdct-stats b{font-family:var(--cf-mono);font-size:18px;font-variant-numeric:tabular-nums}
#cefdct-map{display:flex;flex-direction:column;gap:14px}
.cefdct-bank{display:flex;flex-direction:column;gap:6px}
.cefdct-bankinfo{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;font-size:13px}
.cefdct-cells{display:grid;grid-template-columns:repeat(64,1fr);gap:1px}
.cefdct-cells i,.cefdct-legend i{display:block;aspect-ratio:1;background:var(--cf-cell);border-radius:1px}
.cefdct-cells i.m,.cefdct-legend i.m{background:var(--cf-marker)}
.cefdct-cells i.a,.cefdct-legend i.a{background:var(--cf-rec)}
.cefdct-cells i.b,.cefdct-legend i.b{background:var(--cf-rec2)}
.cefdct-cells i.x,.cefdct-legend i.x{background:var(--cf-bad)}
.cefdct-axis{display:flex;justify-content:space-between;font-family:var(--cf-mono);font-size:10px;color:var(--cf-faint)}
.cefdct-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--cf-muted)}
.cefdct-legend span{display:inline-flex;align-items:center;gap:4px}
.cefdct-legend i{width:10px;height:10px}
.cefdct-note{margin:0;font-size:14px;color:var(--cf-muted);max-width:75ch}
.cefdct-ack{display:flex;gap:10px;align-items:flex-start;font-size:14px}
.cefdct-ack input{margin-top:4px;accent-color:var(--cf-accent)}
.cefdct-checks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:14px}
.cefdct-checks li{display:grid;grid-template-columns:18px 1fr;gap:8px}
.cefdct-checks li::before{content:"✓";color:var(--cf-ok);font-weight:700}
.cefdct-checks li.is-no::before{content:"✕";color:var(--cf-crit)}
.cefdct-tbl{overflow-x:auto;border:1px solid var(--cf-line);border-radius:5px}
.cefdct-tbl table{border-collapse:collapse;width:100%;margin:0;font-size:13px;font-variant-numeric:tabular-nums}
.cefdct-tbl th,.cefdct-tbl td{padding:8px 10px;text-align:left;border:0;border-bottom:1px solid var(--cf-line);white-space:nowrap}
.cefdct-tbl th{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--cf-muted);background:var(--cf-sunk)}
.cefdct-tbl tr:last-child td{border-bottom:0}
.cefdct-file{max-width:240px;overflow:hidden;text-overflow:ellipsis}
.cefdct-muted{color:var(--cf-muted)}
.cefdct-guest p{margin:0;color:var(--cf-muted)}
.cefdct-foot{font-size:13px;color:var(--cf-muted);border-top:1px solid var(--cf-line);padding-top:14px}
.cefdct-foot p{margin:0 0 6px;max-width:90ch}
@media (prefers-reduced-motion:reduce){.cefdct *{transition:none!important}}
/* Neutralise theme margins (Astra .entry-content p/ol/ul) inside the tool. */
.cefdct .cefdct-panel > *,.cefdct .cefdct-head p,.cefdct .cefdct-head h1,.cefdct .cefdct-head h2{margin-top:0;margin-bottom:0}
.cefdct .cefdct-lead{margin-top:8px}
.cefdct .cefdct-verdict p{margin:4px 0 0}
.cefdct .cefdct-foot p{margin:0 0 6px}
.cefdct .cefdct-steps,.cefdct .cefdct-checks{margin:0}
