:root{--bg:#faf7f2;--card:#fff;--ink:#2b2633;--muted:#6f6878;--line:#e8e1d8;--acc:#7c5cbf;--accs:#efe8fb;
--g:#2f8f5b;--gs:#e1f3e8;--y:#a8770c;--ys:#fbf0d4;--o:#b5562f;--os:#fbe5da;--b:#3a6ea5;--bs:#e1ecf8;--p:#7a6d8a;--ps:#eeeaf3}
[data-theme=dark]{--bg:#17151c;--card:#211e28;--ink:#ece8f1;--muted:#a49cae;--line:#353040;--acc:#b49bf0;--accs:#2e2640;
--gs:#1d3528;--g:#7fd3a3;--ys:#3a3018;--y:#f0c867;--os:#3d241a;--o:#f3a07c;--bs:#1c2a3b;--b:#8fbbec;--ps:#2c2833;--p:#c3b8d0}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#17151c;--card:#211e28;--ink:#ece8f1;--muted:#a49cae;--line:#353040;--acc:#b49bf0;--accs:#2e2640;--gs:#1d3528;--g:#7fd3a3;--ys:#3a3018;--y:#f0c867;--os:#3d241a;--o:#f3a07c;--bs:#1c2a3b;--b:#8fbbec;--ps:#2c2833;--p:#c3b8d0}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.wrap{max-width:820px;margin:0 auto;padding:0 18px}
.top{background:linear-gradient(135deg,var(--accs),transparent);border-bottom:1px solid var(--line);padding:22px 0 18px}
.top .wrap{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.brand{display:flex;gap:14px;align-items:flex-start}.brand img{margin-top:4px;border-radius:9px}
h1{font-size:1.45rem;margin:0;line-height:1.25}.sub{margin:.3rem 0 0;color:var(--muted)}
h2{font-size:1.25rem}h3{font-size:1.05rem}
button,select,input{font:inherit;color:inherit}
.ghost{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:.45rem .8rem;cursor:pointer}
.ghost:disabled{opacity:.4;cursor:default}
.tools{margin:20px 0 8px}
#q{width:100%;padding:.75rem 1rem;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.chips button{border:1px solid var(--line);background:var(--card);border-radius:99px;padding:.3rem .85rem;font-size:.9rem;cursor:pointer}
.chips button.on{background:var(--acc);border-color:var(--acc);color:#fff}
.daynav{display:flex;gap:8px;align-items:center;margin:14px 0}
.daynav select{flex:1;padding:.45rem;border:1px solid var(--line);border-radius:10px;background:var(--card)}
.dayhead{margin:10px 0 4px;font-size:1.15rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px 20px;margin:14px 0;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.card h3{margin:.1rem 0 .5rem;font-size:1.08rem;line-height:1.35}
.num{display:inline-block;width:1.7em;height:1.7em;border-radius:50%;background:var(--accs);color:var(--acc);text-align:center;font-weight:700;font-size:.85rem;line-height:1.7em;margin-right:.4em}
.badges{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.badge{font-size:.75rem;font-weight:600;padding:.15rem .6rem;border-radius:99px;background:var(--ps);color:var(--p);white-space:nowrap}
.ev-vahva{background:var(--gs);color:var(--g)}.ev-kohtalainen{background:var(--bs);color:var(--b)}.ev-alustava{background:var(--ys);color:var(--y)}.ev-varhainen{background:var(--os);color:var(--o)}.ev-kesken{background:var(--ps);color:var(--p)}
.badge.eu{background:var(--accs);color:var(--acc)}
.lbl{font-weight:600;color:var(--muted);font-size:.85rem;text-transform:uppercase;letter-spacing:.03em;display:block;margin-top:.6rem}
.card p{margin:.2rem 0}
.links a{color:var(--acc);word-break:break-all;display:block;font-size:.92rem}
.notes{background:var(--accs);border-radius:14px;padding:12px 18px;margin:14px 0}
.notes p{margin:.35rem 0}.notes a{color:var(--acc);word-break:break-all;font-size:.9rem}
.info{margin:34px 0}.legend{list-style:none;padding:0}.legend li{margin:.45rem 0}.legend .badge{margin-right:.4rem}
.disclaimer{border-left:4px solid var(--o);background:var(--os);padding:14px 18px;border-radius:10px;margin:28px 0}
.archive{list-style:none;padding:0;columns:2;gap:20px}.archive a{color:var(--acc);text-decoration:none}.archive li{margin:.25rem 0;break-inside:avoid}
.muted{color:var(--muted)}.small{font-size:.85rem}
footer{padding:20px 18px 40px}
mark{background:var(--ys);color:inherit;border-radius:3px}
.hit-day{font-size:.85rem;color:var(--muted)}
@media (max-width:520px){h1{font-size:1.2rem}.archive{columns:1}.card{padding:15px}}
.daynav .ghost{white-space:nowrap}
