*{box-sizing:border-box}body{margin:0;font-family:system-ui,"Segoe UI",Tahoma,Arial,sans-serif;background:#f7f6f2;color:#1d2230;line-height:1.8}a{color:#7a4b00}
header{background:#2b2147;color:#fff}header .w{display:flex;flex-wrap:wrap;align-items:center;gap:12px;justify-content:space-between}.logo{color:#fff;text-decoration:none;font-weight:800;font-size:1.2rem}.logo span{color:#f5c65b}
nav{display:flex;overflow-x:auto;max-width:100%;gap:4px}nav a{color:#e9e2ff;text-decoration:none;margin-inline-start:12px;font-size:.92rem;white-space:nowrap}.w{max-width:960px;margin:auto;padding:14px 16px}h1{font-size:1.6rem;margin:.4em 0}
.card{background:#fff;border-radius:14px;box-shadow:0 2px 10px #0001;padding:18px;margin:16px 0}label{display:block;font-weight:600;margin-top:10px}input,select{width:100%;padding:11px;border:1px solid #d5d0e0;border-radius:10px;font-size:1rem;margin-top:4px}
button{margin-top:14px;background:#2b2147;color:#fff;border:0;border-radius:10px;padding:12px 18px;font-size:1rem;cursor:pointer;width:100%}.res{background:#fff6dd;border-radius:10px;padding:12px;margin-top:14px;font-size:1.05rem;min-height:2em}
.today{font-size:1.25rem;font-weight:700;color:#2b2147}.cd{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;text-align:center;margin:12px 0}.cd div{background:#2b2147;color:#fff;border-radius:12px;padding:10px 4px}.cd b{display:block;font-size:2rem;color:#f5c65b;font-variant-numeric:tabular-nums}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.tile{display:block;background:#fff;border-radius:14px;padding:14px;text-decoration:none;color:#1d2230;box-shadow:0 2px 8px #0001}.tile b{color:#2b2147}.tile .n{font-size:1.6rem;color:#7a4b00;font-weight:800}
.note{font-size:.85rem;color:#5d6270}footer{background:#2b2147;color:#ddd;margin-top:30px}footer a{color:#ddd;margin-inline-end:12px}table{border-collapse:collapse;width:100%;font-size:.95rem}td,th{border:1px solid #e3e0ea;padding:6px;text-align:center}
.tag{font-size:.75rem;border-radius:6px;padding:1px 6px;background:#e7f6ec;color:#17643a}.tag.x{background:#fdeccf;color:#7a4b00}.row2{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}