.pc-controls { display:grid; grid-template-columns:1fr 1fr 1fr auto; gap:10px; align-items:end; }
.pc-controls .qr-field { min-width:0; margin:4px 0; }
.pc-controls select,.pc-controls input { width:100%; }
.pc-actions { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0; }
.pc-actions .btn { flex:1 1 100px; }
.pc-title { text-align:center; font-size:1.3rem; }
#pc-error { color:var(--bad); }
.pc-legend { font-size:.9rem; }
.pc-grid { width:100%; border-collapse:collapse; table-layout:fixed; }
.pc-grid th { background:var(--soft); padding:6px 0; border:1px solid var(--line); font-size:.95rem; }
.pc-grid td { padding:0; border:1px solid var(--line); vertical-align:top; }
.pc-grid .pc-wkh { color:var(--bad); }
.pc-grid .pc-out { background:#fafafa; }
.pc-day { display:block; width:100%; min-height:100px; height:100%; margin:0; padding:5px 2px; border:0; border-radius:0; background:transparent; color:inherit; font:inherit; text-align:center; cursor:pointer; overflow-wrap:anywhere; }
.pc-day:focus-visible { outline:3px solid var(--brand); outline-offset:-3px; }
.pc-number { display:block; font-size:1.15rem; font-weight:700; line-height:1.3; }
.pc-lunar,.pc-term,.pc-festival { display:block; font-size:.72rem; line-height:1.4; }
.pc-lunar { color:var(--muted); }.pc-term { color:var(--ok); font-weight:700; }.pc-festival { margin-top:3px; font-weight:600; }
.pc-grid .pc-wk { background:#f1f2f4; }.pc-wk .pc-number { color:#6b7280; }
.pc-grid .pc-hol { background:#fee2e2; }.pc-hol .pc-number,.pc-hol .pc-festival { color:var(--bad); }
.pc-grid .pc-mk { background:#ffedd5; }.pc-mk .pc-number,.pc-mk .pc-festival { color:#9a3412; }
.pc-grid .pc-wd { background:#dbeafe; }.pc-wd .pc-number,.pc-wd .pc-festival { color:var(--brand-dark); }
.pc-grid .pc-today { box-shadow:inset 0 0 0 3px var(--brand); }.pc-selected .pc-day { outline:2px dashed var(--brand-dark); outline-offset:-5px; }
.pc-detail { border:1px solid var(--line); border-radius:10px; margin-top:16px; padding:12px; overflow-wrap:anywhere; }
.pc-detail dl { display:grid; grid-template-columns:6em 1fr; gap:8px; }.pc-detail dt { font-weight:700; }.pc-detail dd { margin:0; }
@media(max-width:480px) { .pc-controls { grid-template-columns:1fr 1fr; }.pc-day { min-height:85px; padding:4px 1px; }.pc-number { font-size:1rem; }.pc-lunar,.pc-term,.pc-festival { font-size:.68rem; }.pc-detail dl { grid-template-columns:1fr; gap:4px; }.pc-detail dd { margin-bottom:8px; } }
@page { size:A4 portrait; margin:10mm; }
@media print {
  .site-header,.site-footer,.breadcrumb,main > *:not(#pc-tool),.pc-controls,.pc-actions,#pc-error,#pc-status,.pc-note,.pc-detail { display:none !important; }
  #pc-tool { border:0; padding:0; margin:0; }.pc-grid { break-inside:avoid; }.pc-grid td { height:27mm; }.pc-day { min-height:0; padding:2mm 1mm; }.pc-number { font-size:14pt; }.pc-lunar,.pc-term,.pc-festival { font-size:9pt; }.pc-title { font-size:18pt; }
  .pc-grid td { print-color-adjust:exact; -webkit-print-color-adjust:exact; }.pc-selected .pc-day { outline:0; }
}
