/* 年間カレンダー（/calendar/○年/） */
.ynav{ display:flex; justify-content:space-between; gap:8px; margin:0 0 14px; }
.ctrl{ display:flex; flex-wrap:wrap; gap:10px 18px; align-items:center; margin-bottom:14px; font-size:14px; font-weight:700; color:#46566a; }
.ctrl input[type=checkbox]{ width:18px; height:18px; accent-color:var(--brand); vertical-align:-3px; }
.ctrl select{ font:inherit; font-size:15px; min-height:38px; margin-left:4px; }
.ctrl .sp{ flex:1; }
.yttl{ text-align:center; font-size:22px !important; margin:4px 0 12px !important; }
.ygrid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:14px 16px; }
@media (max-width:900px){ .ygrid{ grid-template-columns:repeat(3, 1fr); } }
@media (max-width:640px){ .ygrid{ grid-template-columns:repeat(2, 1fr); gap:10px; } }
@media (max-width:400px){ .ygrid{ grid-template-columns:1fr; } }
.mon h3{ font-size:16px; margin:0 0 4px; }
.mon h3 a{ color:var(--brand-dark); text-decoration:none; }
.mon table{ width:100%; border-collapse:collapse; table-layout:fixed; }
.mon th{ font-size:11px; font-weight:700; color:#6b7585; padding:2px 0; border-bottom:1px solid var(--line); }
.mon th.w0, .mon td.w0 b, .mon td.hol b{ color:#c0392b; }
.mon th.w6, .mon td.w6:not(.hol) b{ color:#2563eb; }
.mon td{ text-align:center; padding:2px 0 1px; vertical-align:top; height:30px; }
.mon td b{ display:block; font-size:13px; line-height:1.2; color:#1e2837; }
.mon td i{ display:block; font-style:normal; font-size:8.5px; color:#9aa0a8; line-height:1.2; }
.mon td.ta{ background:#fff7e0; }
.mon td.ta i{ color:#b45309; font-weight:700; }
.norok .mon td i{ display:none; }
.norok .mon td.ta{ background:none; }
.years{ display:grid; grid-template-columns:repeat(3, 1fr); gap:10px; }
.years a{ display:block; text-align:center; padding:14px 0; border:1px solid var(--line); background:#fff; text-decoration:none; color:#1e2837; }
.years a.now{ border-color:var(--brand); }
.years b{ display:block; font-size:18px; } .years small{ color:var(--muted); }

/* 月ごとの印刷（ふだんは隠す） */
.mprint{ display:none; }
.mbig{ page:land; break-after:page; }
.mbig h2{ font-size:20pt; margin:0 0 4mm; }
.mbig table{ width:100%; border-collapse:collapse; table-layout:fixed; }
.mbig th{ font-size:11pt; border:1px solid #999; padding:2mm 0; }
.mbig td{ border:1px solid #999; height:26mm; vertical-align:top; padding:1.5mm 2mm; }
.mbig td b{ font-size:16pt; display:block; }
.mbig td i{ font-style:normal; font-size:9pt; color:#555; display:block; }
.mbig td s{ text-decoration:none; font-size:8.5pt; color:#c0392b; display:block; }
.mbig .w0 b, .mbig .hol b{ color:#c0392b; } .mbig .w6:not(.hol) b{ color:#2563eb; }

@page{ size:A4 portrait; margin:10mm; }
@page land{ size:A4 landscape; margin:10mm; }
@media print{
  body{ background:#fff !important; }
  body > *:not(main), main > *:not(.stage:first-of-type), .noprint, .crumb{ display:none !important; }
  main{ max-width:none; padding:0; }
  .stage{ box-shadow:none; padding:0; }
  body.pY .ygrid{ grid-template-columns:repeat(3, 1fr); gap:3.5mm 7mm; }
  body.pY .mon td{ height:7mm; }
  body.pY .mon td b{ font-size:9.5pt; } body.pY .mon td i{ font-size:6pt; }
  body.pY .mon h3{ font-size:11pt; margin:0 0 1mm; }
  body.pY .yttl{ font-size:18pt !important; margin:0 0 4mm !important; }
  body.pM .ygrid, body.pM .yttl{ display:none; }
  body.pM .mprint{ display:block; }
}
