.mlfs-tool{
  --ground:#FAF8FD; --panel:#FFFFFF; --sunk:#F3EFFA;
  --ink:#1A0B32; --body:#3A2E4D; --muted:#6B5F80;
  --line:#E4DDF0; --line-strong:#CFC3E4;
  --accent:#8448ef; --accent-ink:#FFFFFF; --signal:#ffde59;
  --good:#2E8B6F; --warn:#D98324; --crit:#C4384F;
  --heat:132,72,239;      /* accent as rgb, for heat cells */
  --shadow:0 1px 2px rgba(26,11,50,.06), 0 8px 24px -12px rgba(26,11,50,.18);
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
}
@media (prefers-color-scheme:dark){.mlfs-tool:not([data-theme="light"]){
    --ground:#140823; --panel:#1E1033; --sunk:#170C29;
    --ink:#F6F2FE; --body:#CDC1E2; --muted:#9587B0;
    --line:#33224F; --line-strong:#462F6B;
    --accent:#A277F5; --accent-ink:#15071F;
    --good:#4FB894; --warn:#E9A24A; --crit:#E86A80; --heat:162,119,245;
    --shadow:0 1px 2px rgba(0,0,0,.4), 0 10px 30px -14px rgba(0,0,0,.7);
  }}
.mlfs-tool :root[data-theme="dark"]{
  --ground:#140823; --panel:#1E1033; --sunk:#170C29;
  --ink:#F6F2FE; --body:#CDC1E2; --muted:#9587B0;
  --line:#33224F; --line-strong:#462F6B;
  --accent:#A277F5; --accent-ink:#15071F;
  --good:#4FB894; --warn:#E9A24A; --crit:#E86A80; --heat:162,119,245;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 10px 30px -14px rgba(0,0,0,.7);
}
.mlfs-tool *{box-sizing:border-box}
.mlfs-tool{margin:0; background:var(--ground); color:var(--body);
  font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:15px; line-height:1.55; -webkit-font-smoothing:antialiased}
.mlfs-tool h1, .mlfs-tool h2, .mlfs-tool h3{font-family:"Bricolage Grotesque",Inter,system-ui,sans-serif;
  color:var(--ink); text-wrap:balance; margin:0}
.mlfs-tool .wrap{max-width:1220px; margin:0 auto; padding:32px 24px 96px}
.mlfs-tool .eyebrow{font-size:11px; letter-spacing:.13em; text-transform:uppercase; color:var(--muted); font-weight:600}
.mlfs-tool .masthead{padding-bottom:18px; border-bottom:2px solid var(--ink); margin-bottom:24px}
.mlfs-tool .masthead h1{font-size:clamp(25px,3.6vw,35px); font-weight:800; letter-spacing:-.02em; margin-top:4px}
.mlfs-tool .masthead p{margin:8px 0 0; color:var(--muted); max-width:64ch; font-size:14px}
.mlfs-tool .panel{background:var(--panel); border:1px solid var(--line); border-radius:5px;
  padding:20px; box-shadow:var(--shadow); margin-bottom:14px}
.mlfs-tool .panel h2{font-size:16px; font-weight:600; margin-bottom:4px}
.mlfs-tool .panel .sub{font-size:13px; color:var(--muted); margin-bottom:14px}
.mlfs-tool .slots{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:12px}
.mlfs-tool .slot{border:1px dashed var(--line-strong); border-radius:4px; padding:14px; background:var(--sunk)}
.mlfs-tool .slot.you{border-style:solid; border-color:var(--accent); border-width:2px}
.mlfs-tool .slot .tag{font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  color:var(--muted)}
.mlfs-tool .slot.you .tag{color:var(--accent)}
.mlfs-tool .slot input[type=text]{font:inherit; font-size:13.5px; width:100%; margin:7px 0 9px;
  background:var(--panel); border:1px solid var(--line-strong); border-radius:3px;
  padding:7px 9px; color:var(--ink)}
.mlfs-tool .slot .state{font-size:12px; color:var(--muted); min-height:34px}
.mlfs-tool .slot .state b{color:var(--ink)}
.mlfs-tool label.file{display:inline-flex; align-items:center; gap:7px; font-size:12.5px; font-weight:600;
  color:var(--ink); border:1px solid var(--line-strong); background:var(--panel);
  padding:6px 11px; border-radius:3px; cursor:pointer}
.mlfs-tool label.file:hover{border-color:var(--accent); color:var(--accent)}
.mlfs-tool input[type=file]{position:absolute; width:1px; height:1px; opacity:0}
.mlfs-tool button{font:inherit; font-weight:600; font-size:13.5px; cursor:pointer; border:1px solid var(--ink);
  background:var(--ink); color:var(--ground); padding:9px 15px; border-radius:3px; transition:opacity .15s}
.mlfs-tool button.accent{background:var(--accent); border-color:var(--accent); color:var(--accent-ink)}
.mlfs-tool button.ghost{background:transparent; color:var(--ink)}
.mlfs-tool button:disabled{opacity:.45; cursor:not-allowed}
.mlfs-tool button:hover:not(:disabled){opacity:.88}
.mlfs-tool button:focus-visible{outline:2px solid var(--accent); outline-offset:2px}
.mlfs-tool .actions{display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top:16px}
.mlfs-tool .hint{color:var(--muted); font-size:12.5px}
.mlfs-tool .keynote{background:var(--sunk); border-left:3px solid var(--accent); padding:11px 14px;
  border-radius:0 3px 3px 0; font-size:12.5px; margin-top:12px}
.mlfs-tool .tiles{display:grid; grid-template-columns:repeat(auto-fit,minmax(158px,1fr)); gap:12px; margin-bottom:14px}
.mlfs-tool .tile{background:var(--panel); border:1px solid var(--line); border-radius:5px; padding:16px;
  box-shadow:var(--shadow); border-top:3px solid var(--lvl,var(--accent))}
.mlfs-tool .tile .k{font-size:11.5px; color:var(--muted); font-weight:600; letter-spacing:.04em; text-transform:uppercase}
.mlfs-tool .tile .v{font-family:"Bricolage Grotesque",sans-serif; font-weight:800; font-size:29px; color:var(--ink);
  line-height:1.1; margin-top:6px; font-variant-numeric:tabular-nums}
.mlfs-tool .tile .d{font-size:12px; color:var(--muted); margin-top:3px}
.mlfs-tool .filters{display:flex; gap:6px; flex-wrap:wrap; margin-bottom:12px; align-items:center}
.mlfs-tool .filters button{background:transparent; border:1px solid var(--line-strong); color:var(--muted);
  font-size:12.5px; padding:6px 12px}
.mlfs-tool .filters button[aria-pressed=true]{background:var(--ink); border-color:var(--ink); color:var(--ground)}
.mlfs-tool .tablewrap{overflow-x:auto; border:1px solid var(--line); border-radius:5px; background:var(--panel)}
.mlfs-tool table{border-collapse:collapse; width:100%; font-size:13px}
.mlfs-tool th{text-align:left; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted);
  font-weight:700; padding:11px 12px; border-bottom:1px solid var(--line-strong);
  background:var(--sunk); white-space:nowrap}
.mlfs-tool th.site{text-align:center}
.mlfs-tool td{padding:0; border-bottom:1px solid var(--line); vertical-align:middle}
.mlfs-tool td.name{padding:9px 12px; font-weight:500; color:var(--ink); max-width:290px}
.mlfs-tool td.name .forms{display:block; font-size:11.5px; color:var(--muted); font-weight:400; margin-top:2px}
.mlfs-tool td.cell{text-align:center; font-variant-numeric:tabular-nums; font-size:12px;
  color:var(--ink); border-left:1px solid var(--line); min-width:82px; padding:9px 8px}
.mlfs-tool td.cell.empty{color:var(--line-strong)}
.mlfs-tool td.verdict{padding:9px 12px; border-left:1px solid var(--line)}
.mlfs-tool .v-tag{font-size:10.5px; font-weight:700; letter-spacing:.05em; padding:2px 7px; border-radius:2px;
  color:#fff; text-transform:uppercase; white-space:nowrap}
.mlfs-tool .v-tag.missing{background:var(--crit)}
.mlfs-tool .v-tag.shared{background:var(--good)}
.mlfs-tool .v-tag.unique{background:var(--accent)}
.mlfs-tool .v-tag.thin{background:var(--warn)}
.mlfs-tool .section-head{display:flex; align-items:baseline; justify-content:space-between; gap:16px;
  margin:34px 0 13px; flex-wrap:wrap}
.mlfs-tool .section-head h2{font-size:21px; font-weight:600}
.mlfs-tool .legend{display:flex; gap:14px; flex-wrap:wrap; font-size:12px; color:var(--muted); align-items:center}
.mlfs-tool .swatch{display:inline-block; width:11px; height:11px; border-radius:2px; vertical-align:-1px; margin-right:5px}
.mlfs-tool footer{margin-top:52px; padding-top:18px; border-top:1px solid var(--line); color:var(--muted);
  font-size:12.5px; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap}
@media (prefers-reduced-motion:reduce){.mlfs-tool *{transition:none !important}}