/* Official-style school calendar sheet. Laid out at A3 portrait (297 x 420 mm = 1123 x 1587 CSS px).
   Shared by the editor preview and the PDF export page. */
.official-sheet{width:1123px;height:1587px;box-sizing:border-box;padding:34px 36px 18px;background:#fff;color:#1f1f1f;display:flex;flex-direction:column;
  font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC","Source Han Sans SC",Arial,sans-serif;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.official-sheet *{box-sizing:border-box}
.oc-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin-bottom:14px}
.oc-title{text-align:center}
.oc-title h1{margin:0;font-size:19px;font-weight:800;letter-spacing:.02em}
.oc-title p{margin:3px 0 0;font-size:17px;font-weight:700;font-family:"Courier New",Courier,"Noto Sans Mono",monospace;letter-spacing:.01em}
.oc-logo{display:flex;justify-content:flex-end}
.oc-logo img{height:54px;width:auto}

.oc-grid{display:flex;flex-direction:column;gap:12px;flex:1;min-height:0}
.oc-row{display:grid;grid-template-columns:1fr 1.06fr 10px 1.06fr 1fr;flex:1;min-height:0}
.oc-gap{width:10px}
.oc-notes{border:1px solid #9dc3e6;padding:7px 8px;font-size:9.6px;line-height:1.32;font-weight:700;overflow:hidden;min-height:0}
.oc-notes .oc-zh > div,.oc-notes .oc-en > div{margin:0}
.oc-notes .oc-en{margin-top:9px}

.oc-month{display:flex;flex-direction:column;border:1px solid #c9c9c9;min-height:0}
.oc-month-head{background:#3c3b2c;color:#fff;text-align:center;font-size:9px;letter-spacing:.06em;padding:4px 0;font-weight:500}
.oc-year{margin-left:.55em}
.oc-week,.oc-days{display:grid;grid-template-columns:repeat(7,1fr)}
.oc-week div{text-align:center;font-size:8.5px;padding:6px 0;border-right:1px solid #c9c9c9;border-bottom:1px solid #c9c9c9;background:#fff}
.oc-week div:first-child,.oc-week div:last-child{background:#d9d9d9}
.oc-week div:last-child{border-right:0}
.oc-days{grid-template-rows:repeat(6,1fr);flex:1}
.oc-day{display:flex;align-items:center;justify-content:center;font-size:8.5px;border-right:1px solid #c9c9c9;border-bottom:1px solid #c9c9c9;min-height:0}
.oc-day:nth-child(7n){border-right:0}
.oc-day:nth-last-child(-n+7){border-bottom:0}
.oc-day.oc-on-dark{color:#fff;font-weight:800}
.oc-day.oc-on-light{color:#1f1f1f;font-weight:800}

.oc-legend{display:grid;grid-template-columns:repeat(4,1fr);margin-top:16px;border-top:1px solid #444;border-left:1px solid #444}
.oc-legend-cell{display:grid;grid-template-columns:44px 1fr;align-items:stretch;min-height:44px;border-right:1px solid #444;border-bottom:1px solid #444}
.oc-legend-cell:empty{display:block}
.oc-swatch{display:block;border-right:1px solid #444}
.oc-legend-label{display:flex;align-items:center;padding:4px 8px;font-size:9px;line-height:1.3}

.oc-remarks{margin-top:10px;font-size:10px;line-height:1.5}
.oc-remarks b{display:block;margin-bottom:4px}
.oc-remarks p{margin:0}
.oc-remark-en{font-weight:700;font-size:9px}
.oc-stamp{margin-top:auto;padding-top:6px;font-size:7.5px;color:#444;font-family:"Courier New",Courier,monospace}
