:root{
  --red:#D81E34; --red-d:#A31527; --red-head:#C8102E;
  --yellow:#FFCE00; --yellow-s:#FFF4CE;
  --ink:#1A1A1A; --mute:#5C5C5C; --line:#E6DFD0; --bg:#FFFCF5; --card:#FFFFFF;
  --track:#F1ECE1; --chip:#F4EFE4; --tile:#FBF7EE;
  --shifted:#D81E34; --death:#6B2737; --absent:#E07B29; --duplicate:#8A6D00; --others:#78706A;
  --r:14px; --shadow:0 1px 2px rgba(0,0,0,.03);
}
html[data-theme="dark"]{
  --red:#FF5F72; --red-d:#FF8A97; --red-head:#7E1220;
  --yellow:#FFD32E; --yellow-s:#3A2F12;
  --ink:#F3EEE6; --mute:#A79E92; --line:#332C26; --bg:#141110; --card:#1D1917;
  --track:#2A2422; --chip:#241F1D; --tile:#221D1B;
  --shifted:#FF5F72; --death:#C98A99; --absent:#F2994A; --duplicate:#D8B62B; --others:#9A9189;
  --shadow:0 1px 2px rgba(0,0,0,.4);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;background:var(--bg)}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font:400 16px/1.5 "Helvetica Neue",Helvetica,Arial,sans-serif;
}
body.kn{font-family:"Noto Sans Kannada","Helvetica Neue",Helvetica,Arial,sans-serif}
.wrap{max-width:760px;margin:0 auto;padding:0 16px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;background:var(--card);padding:8px;z-index:9;border-radius:8px}

/* ---------------- header ---------------- */
.top{background:var(--red-head);color:#fff;padding:11px 0;position:sticky;top:0;z-index:6}
.top-in{display:flex;align-items:center;justify-content:space-between;gap:10px}
.brand{display:flex;align-items:center;gap:10px;min-width:0}
/* Karnataka mark: the Kannada letter ka, red on the state yellow */
.mark{width:32px;height:32px;flex:0 0 auto;border-radius:8px;background:var(--yellow);
  display:flex;align-items:center;justify-content:center;color:#B01023;
  font-family:"Noto Sans Kannada",serif;font-weight:700;font-size:20px;line-height:1;
  padding-bottom:2px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.brand-tx{display:flex;flex-direction:column;min-width:0}
.brand-tx strong{font-size:.95rem;font-weight:700;letter-spacing:.1px;line-height:1.2}
.brand-tx small{font-size:.72rem;opacity:.85}
.hdr-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto}
.lang{display:flex;background:rgba(0,0,0,.22);border-radius:999px;padding:3px}
.lang button{border:0;background:none;color:#fff;font:inherit;font-size:.78rem;
  padding:6px 10px;border-radius:999px;cursor:pointer;min-height:32px}
.lang button.on{background:#fff;color:#A31527;font-weight:700}
.theme{border:0;background:rgba(0,0,0,.22);color:#fff;width:38px;height:38px;border-radius:999px;
  cursor:pointer;font-size:16px;line-height:1;display:flex;align-items:center;justify-content:center}
.theme:hover{background:rgba(0,0,0,.34)}

/* ---------------- nav ---------------- */
.mainnav{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:54px;z-index:5;
  overflow-x:auto;-webkit-overflow-scrolling:touch}
.mainnav-in{display:flex;gap:2px;min-width:max-content}
.mainnav button{flex:1 0 auto;border:0;background:none;font:inherit;font-size:.86rem;font-weight:600;
  color:var(--mute);padding:13px 14px;cursor:pointer;border-bottom:3px solid transparent;
  min-height:46px;white-space:nowrap}
.mainnav button.on{color:var(--red-d);border-bottom-color:var(--red)}
.view{display:none}
.view.on{display:block}

/* ---------------- cards ---------------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:18px 16px;margin:16px 0;box-shadow:var(--shadow)}
h1{font-size:1.3rem;margin:0 0 6px;line-height:1.3}
h2{font-size:1.05rem;margin:0 0 12px}
h3{font-size:.95rem;margin:0 0 8px}
.lede{color:var(--mute);font-size:.87rem;margin:0 0 14px}
.hint{color:var(--mute);font-size:.8rem;margin:10px 0 0}
.notice{background:var(--yellow-s);border:1px solid var(--yellow);border-radius:var(--r);
  padding:13px 15px;margin:16px 0 0;font-size:.86rem;line-height:1.45}
.notice strong{display:block;margin-bottom:3px}

/* ---------------- forms ---------------- */
.tabs{display:flex;gap:6px;background:var(--chip);padding:4px;border-radius:10px;margin:0 0 16px}
.tabs button{flex:1;border:0;background:none;font:inherit;font-size:.88rem;padding:10px 6px;
  border-radius:8px;cursor:pointer;color:var(--mute);min-height:44px}
.tabs button.on{background:var(--card);color:var(--ink);font-weight:700;box-shadow:var(--shadow)}
.pane{display:none}
.pane.on{display:block}
.lbl{display:block;font-size:.8rem;font-weight:700;margin:12px 0 6px;color:var(--mute)}
.lbl:first-child{margin-top:0}
.row{display:flex;gap:8px}
input,select{width:100%;font:inherit;padding:12px;border:1.5px solid var(--line);
  border-radius:10px;background:var(--card);color:var(--ink);min-height:48px}
input:focus,select:focus{outline:3px solid var(--yellow);outline-offset:1px;border-color:var(--red)}
#epic{text-transform:uppercase;letter-spacing:.08em;font-weight:600}
.row button{flex:0 0 auto;padding:0 20px;border:0;border-radius:10px;background:var(--red);
  color:#fff;font:inherit;font-weight:700;cursor:pointer;min-height:48px}
html[data-theme="dark"] .row button{color:#2A0910}
.row button:disabled{background:var(--track);color:var(--mute);cursor:not-allowed}

/* ---------------- results ---------------- */
.result:empty{display:none}
.result{margin-top:16px}
.verdict{border-radius:12px;padding:14px;border:1.5px solid}
.verdict.bad{background:color-mix(in srgb,var(--red) 10%,var(--card));border-color:var(--red)}
.verdict.none{background:var(--tile);border-color:var(--line)}
.verdict h3{margin:0 0 6px;font-size:1rem}
.verdict p{margin:0;font-size:.87rem;color:var(--mute)}
.kv{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:.85rem}
.kv dt{color:var(--mute)}
.hits{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.hit{border:1px solid var(--line);border-radius:10px;padding:11px 12px;background:var(--card)}
.hit .nm{font-weight:700;font-size:.95rem}
.hit .mt{color:var(--mute);font-size:.8rem;margin-top:3px}
.tag{display:inline-block;font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:999px;
  color:#fff;margin-left:6px;vertical-align:1px}
html[data-theme="dark"] .tag{color:#17110F}

/* ---------------- numbers ---------------- */
.big{font-size:2.6rem;font-weight:700;margin:0;line-height:1;letter-spacing:-1px}
.cats{list-style:none;padding:0;margin:16px 0 0;display:flex;flex-direction:column;gap:9px}
.cats li{display:grid;grid-template-columns:9px 1fr auto;gap:10px;align-items:center;font-size:.9rem}
.cats .sw{width:9px;height:9px;border-radius:2px}
.cats .n{font-variant-numeric:tabular-nums;font-weight:700}
.cats .n small{font-weight:400;color:var(--mute);font-size:.78em;margin-left:2px}
.bars{display:flex;flex-direction:column;gap:10px}
.bar{display:grid;grid-template-columns:64px 1fr auto;gap:10px;align-items:center;font-size:.85rem}
.bar .tr{display:block;background:var(--track);border-radius:4px;height:16px;overflow:hidden}
.bar .fl{display:block;height:100%;min-width:2px;background:var(--red);border-radius:4px}
.bar .n{font-variant-numeric:tabular-nums;color:var(--mute);min-width:62px;text-align:right}
.stats{display:flex;gap:10px;flex-wrap:wrap;margin:4px 0 14px}
.stat{flex:1 1 90px;background:var(--tile);border:1px solid var(--line);border-radius:10px;padding:11px 12px}
.stat .sv{display:block;font-size:1.35rem;font-weight:700;line-height:1.15;
  font-variant-numeric:tabular-nums;letter-spacing:-.3px}
.stat .sl{display:block;font-size:.72rem;color:var(--mute);margin-top:3px}

/* ---------------- lists ---------------- */
.list{margin-top:12px;display:flex;flex-direction:column;gap:2px;max-height:460px;overflow:auto}
.place{display:grid;grid-template-columns:1fr auto;gap:10px;padding:11px 4px;
  border-bottom:1px solid var(--line);align-items:baseline;width:100%;text-align:left;
  background:none;border-left:0;border-right:0;border-top:0;font:inherit;color:inherit}
button.place{cursor:pointer}
button.place:hover{background:var(--tile)}
.place .p1{font-weight:600;font-size:.92rem}
.place .p2{color:var(--mute);font-size:.76rem}
.place .n{font-variant-numeric:tabular-nums;font-weight:700;font-size:.92rem}

/* stacked reason bar */
.mix{display:flex;height:7px;border-radius:4px;overflow:hidden;margin-top:6px;background:var(--track)}
.mix span{display:block;height:100%}

/* ---------------- flags / stands out ---------------- */
.flags{display:flex;flex-direction:column;gap:8px;margin:12px 0 0}
.flag{border:1px solid var(--line);border-left:4px solid var(--yellow);border-radius:8px;
  padding:10px 12px;background:var(--tile);font-size:.85rem;line-height:1.45}
.flag b{font-weight:700}
.caveat{font-size:.8rem;color:var(--mute);border-top:1px solid var(--line);
  margin-top:14px;padding-top:12px}

/* ---------------- buttons ---------------- */
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.btn{border:1.5px solid var(--line);background:var(--card);color:var(--ink);font:inherit;
  font-size:.83rem;font-weight:600;padding:9px 14px;border-radius:9px;cursor:pointer;min-height:40px}
.btn:hover{border-color:var(--red);color:var(--red-d)}
.btn.ok{border-color:var(--red);color:var(--red-d)}

.foot{color:var(--mute);font-size:.8rem;padding:8px 0 40px}
.foot a{color:var(--red-d)}
.disclaimer{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.loading{color:var(--mute);font-size:.87rem;padding:10px 0}

@media (min-width:640px){
  h1{font-size:1.5rem}
  .card{padding:22px}
  .brand-tx strong{font-size:1.05rem}
}
@media (prefers-reduced-motion:no-preference){
  .fl{transition:width .4s ease}
}
@media print{
  .top,.mainnav,.actions,.tabs,.notice{display:none}
  .card{break-inside:avoid;border-color:#ccc;box-shadow:none}
  .list{max-height:none;overflow:visible}
}
body.kn .stat .sv{font-size:1.2rem}
body.kn .mainnav button{font-size:.8rem}
body.kn .big{font-size:2.4rem}
