:root{--bg:#0f1115;--panel:#171a21;--panel-2:#1e222b;--border:#2a2f3a;--text:#e6e9ef;--muted:#9aa3b2;--accent:#6ea8fe;--accent-soft:#21324f;--chip:#2a3140;--shadow:0 10px 40px rgba(0,0,0,.45)}@media (prefers-color-scheme:light){:root{--bg:#f6f7f9;--panel:#fff;--panel-2:#f0f2f5;--border:#e2e6ec;--text:#1b1f27;--muted:#5b6472;--accent:#2f6fed;--accent-soft:#e2ecff;--chip:#eef1f6;--shadow:0 10px 30px rgba(20,30,60,.12)}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.wrap{max-width:980px;margin:0 auto;padding:32px 20px 80px}header h1{margin:0 0 6px;font-size:26px;letter-spacing:-.01em}header p{margin:0;color:var(--muted)}.nav{margin-top:26px;display:flex;align-items:center;gap:10px}.navbtn{border:1px solid var(--border);background:var(--panel-2);color:var(--text);width:40px;height:40px;border-radius:10px;font-size:20px;line-height:1;cursor:pointer}.navbtn:disabled{opacity:.35;cursor:default}.navbtn:hover:not(:disabled){border-color:var(--accent)}.picker{flex:1 1;height:40px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);border-radius:10px;padding:0 12px;font-size:15px;font-weight:600;cursor:pointer}#month{margin-top:14px}.month{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:18px 18px 22px}.grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px}.dow{text-align:center;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding-bottom:4px}.cell{aspect-ratio:1/1;border:1px solid var(--border);border-radius:10px;background:var(--panel-2);padding:8px;position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:56px}.cell.empty{background:transparent;border-color:transparent}.cell .num{font-size:13px;color:var(--muted)}.cell.has{cursor:pointer;border-color:var(--accent);background:var(--accent-soft);transition:transform .08s ease,box-shadow .08s ease}.cell.has:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.cell.has .num{color:var(--text);font-weight:600}.pill{align-self:flex-start;font-size:11px;font-weight:600;color:var(--accent);background:rgba(110,168,254,.14);border-radius:999px;padding:2px 8px}.backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:none;align-items:flex-start;justify-content:center;padding:6vh 16px;z-index:50}.backdrop.open{display:flex}.modal{border:1px solid var(--border);border-radius:16px;width:100%;max-width:720px;max-height:86vh;overflow:auto;box-shadow:var(--shadow)}.modal,.modal-head{background:var(--panel)}.modal-head{position:-webkit-sticky;position:sticky;top:0;border-bottom:1px solid var(--border);padding:18px 22px;display:flex;align-items:center;justify-content:space-between}.modal-head h3{margin:0;font-size:17px}.modal-head .count{color:var(--muted);font-size:13px;font-weight:400;margin-left:8px}.x{border:0;background:var(--chip);color:var(--text);width:32px;height:32px;border-radius:8px;font-size:18px;cursor:pointer;line-height:1}.modal-body{padding:10px 22px 22px}.art{padding:16px 0;border-bottom:1px solid var(--border)}.art:last-child{border-bottom:0}.art .meta{display:flex;gap:8px;align-items:center;margin-bottom:6px}.chip{font-size:11px;color:var(--muted);background:var(--chip);border-radius:999px;padding:2px 9px}.art a.title{font-size:16px;font-weight:600;color:var(--text);text-decoration:none}.art a.title:hover{color:var(--accent);text-decoration:underline}.art p{margin:8px 0 0;color:var(--text)}.empty-note,footer{color:var(--muted)}footer{margin-top:36px;font-size:12px;text-align:center}