:root{--navy:#023057;--cream:#fbf6ea;--ink:#1a1a1a;--muted:#5b5b5b;--line:#ddd3bd;--hi:#fff;--x:#9a2b2b}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:Georgia,"Times New Roman",serif;color:var(--ink);background:var(--cream);line-height:1.5;font-size:17px}
main{max-width:760px;margin:0 auto;padding:18px 16px 60px}
a{color:var(--navy)}
h1{font-size:1.6rem;line-height:1.2;color:var(--navy);margin:.2em 0 .3em}
h2{font-size:1.2rem;color:var(--navy);margin:1.6em 0 .5em}
.series{margin:0;color:var(--muted);font-size:.95rem}
.ui,button,input,.btn{font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.hero{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.hero img{width:130px;height:auto;border-radius:3px;box-shadow:0 2px 10px rgba(0,0,0,.25)}
.hero div{flex:1 1 240px}
.cases{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.cases a{display:block;padding:13px 16px;background:var(--hi);border:1px solid var(--line);border-radius:8px;text-decoration:none;color:var(--ink)}
.cases a b{color:var(--navy)}
.cases small{display:block;color:var(--muted);font-family:system-ui,sans-serif;font-size:.85rem}
.prog{float:right;font-family:system-ui,sans-serif;font-size:.8rem;color:var(--muted)}
.btn{display:inline-block;padding:11px 16px;background:var(--navy);color:#fff;text-decoration:none;border-radius:6px;font-weight:600;border:0;font-size:1rem;cursor:pointer}
.btn.alt{background:#fff;color:var(--navy);border:1px solid var(--navy)}
.btns{display:flex;gap:10px;flex-wrap:wrap;margin:.6em 0}
.top{display:flex;justify-content:space-between;align-items:center;gap:10px;font-family:system-ui,sans-serif;font-size:.9rem}
.card{background:var(--hi);border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin:10px 0}
.clue{display:flex;gap:10px;align-items:flex-start;padding:8px 2px;border-bottom:1px solid #eee}
.clue:last-child{border-bottom:0}
.clue input{width:24px;height:24px;flex:0 0 24px;margin-top:1px;accent-color:var(--navy)}
.clue.done span{color:var(--muted);text-decoration:line-through}
.cp{background:#eef3f8;border-radius:6px;padding:8px 10px;margin:6px 0;font-family:system-ui,sans-serif;font-size:.95rem;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.cp input[type=number]{width:90px;padding:6px;font-size:1rem}
label.f{display:block;font-family:system-ui,sans-serif;font-size:.9rem;margin:6px 0}
input[type=text],input[type=search],input[type=number]{font-size:16px;padding:9px 10px;border:1px solid #bbb;border-radius:6px;width:100%;background:#fff}
.ans{display:grid;grid-template-columns:1fr 2fr;gap:8px}
.sticky{position:sticky;top:0;z-index:5;background:var(--cream);padding:8px 0 6px;border-bottom:1px solid var(--line)}
.count{font-family:system-ui,sans-serif;font-weight:700;color:var(--navy);font-size:1.05rem}
.opts{display:flex;gap:14px;flex-wrap:wrap;font-family:system-ui,sans-serif;font-size:.88rem;margin-top:6px;align-items:center}
.opts select{font-size:.9rem;padding:4px}
.lp{font-family:system-ui,sans-serif;font-weight:700;color:var(--navy);margin:14px 0 4px;font-size:.95rem;scroll-margin-top:120px}
.rows{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.r{display:grid;grid-template-columns:28px 54px 1fr;column-gap:8px;padding:7px 10px;border-bottom:1px solid #eee;cursor:pointer;user-select:none;-webkit-tap-highlight-color:rgba(2,48,87,.12)}
.r:nth-child(5n){border-bottom:2px solid #d9cfb6}
.r .rn{color:var(--muted);font-family:system-ui,sans-serif;font-size:.85rem;padding-top:2px}
.r .ref{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.95rem;padding-top:1px}
.r .nm{font-weight:bold}
.r .d{grid-column:3;font-family:system-ui,sans-serif;font-size:.8rem;color:var(--muted);line-height:1.35}
.r.x .nm,.r.x .ref{text-decoration:line-through;text-decoration-color:var(--x);text-decoration-thickness:2px;color:#a39d90}
.r.x .d{color:#b5afa2}
.r.x{background:#f6f2e8}
.hide-x .r.x{display:none}
.kgrid{display:grid;grid-template-columns:auto 1fr 1.5fr;gap:6px 8px;align-items:center;font-family:system-ui,sans-serif;font-size:.9rem}
.note{font-size:.9rem;color:var(--muted)}
footer{margin-top:2.5em;font-size:.82rem;color:var(--muted);border-top:1px solid var(--line);padding-top:1em}
@media (min-width:640px){.r{grid-template-columns:30px 60px 210px 1fr}.r .d{grid-column:4;padding-top:2px}}
