*{box-sizing:border-box}body{margin:0;background:#edf2f5;color:#142c3c;font:14px/1.5 Arial,sans-serif}.print-toolbar{max-width:1000px;margin:24px auto;padding:24px;background:white;border:1px solid #d5dee4;border-radius:12px}.print-toolbar h1{font-size:23px}.print-toolbar form{display:flex;align-items:end;gap:16px;flex-wrap:wrap}.print-toolbar label{display:grid;gap:5px;font-size:13px}.print-toolbar label.checkbox{display:flex;align-items:center;align-self:center}.print-toolbar input[type=number]{width:95px}.print-toolbar input,.print-toolbar select,.print-toolbar button{font:inherit;padding:9px;border:1px solid #96a8b4;border-radius:6px}.print-toolbar input[type=checkbox]{width:18px;height:18px}.print-toolbar button{cursor:pointer;background:#102d40;color:white}.print-toolbar p{font-size:13px;color:#506470}.print-toolbar a{color:#076d64}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #078477;outline-offset:3px}.sheets{overflow:auto;padding:0 16px 24px}.print-sheet{width:210mm;height:296mm;padding:12mm;margin:20px auto;background:white;color:#111;display:flex;flex-direction:column;gap:5mm;box-shadow:0 1px 9px #102d4022}.sheet-heading{height:14mm;flex:none;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #333}.sheet-heading h2{font-size:25pt;line-height:1;margin:0;letter-spacing:-1px}.sheet-heading span{font-size:9pt}.months{flex:1;min-height:0;display:grid;grid-template-columns:repeat(var(--columns),minmax(0,1fr));grid-template-rows:repeat(var(--rows),minmax(0,1fr));gap:5mm}.print-month{min-height:0;display:flex;flex-direction:column}.print-month h3{margin:0 0 2mm;font-size:14pt;line-height:1.2}.print-month table{width:100%;border-collapse:collapse;table-layout:fixed;flex:1;height:100%;font-size:10pt}.print-month thead{height:6mm}.print-month th,.print-month td{border:1px solid #adb4ba;text-align:center;padding:1mm;line-height:1.1}.print-month thead th{font-size:8pt;font-weight:600;border-color:#adb4ba}.print-month tr>:first-child{width:8mm;font-size:8pt;color:#555;background:#f3f4f5}.print-month tbody tr{height:16.666%}.print-month td{position:relative}.print-month .weekend{background:#f2f3f4}.print-month .empty-cell{background:#fafafa}.print-month time{font-variant-numeric:tabular-nums}.with-notes td{vertical-align:top;text-align:left}.with-notes .writing-line{position:absolute;bottom:20%;left:10%;right:10%;border-bottom:1px solid #d1d5d8}.sheet-footer{height:9mm;flex:none;display:flex;justify-content:space-between;align-items:center;font-size:8pt;border-top:1px solid #333;padding-top:2mm}.sheet-footer a{display:flex;align-items:center;gap:2mm;color:#111;text-decoration:none}.sheet-footer img{width:6mm;height:6mm}.compact{gap:4mm}.compact .months{gap:4mm}.compact .print-month h3{font-size:10pt;margin-bottom:1.5mm}.compact .print-month table{font-size:8pt}.compact .print-month th,.compact .print-month td{padding:.6mm}.compact .print-month thead th,.compact .print-month tr>:first-child{font-size:6.5pt}.compact .print-month tr>:first-child{width:6mm}
@media screen and (max-width:760px){.print-toolbar{margin:12px;padding:18px}.print-toolbar h1{font-size:20px}.print-toolbar form{align-items:stretch}.print-toolbar form>label{max-width:100%}.print-toolbar select{max-width:100%}.print-sheet{margin-left:0;margin-right:0}}
@media print{@page{size:A4 portrait;margin:0}html,body{margin:0;background:white;color:#111}.print-toolbar{display:none!important}.sheets{padding:0;overflow:visible}.print-sheet{margin:0;box-shadow:none;break-after:page;break-inside:avoid;page-break-after:always;print-color-adjust:exact;-webkit-print-color-adjust:exact}.print-sheet:last-child{break-after:auto;page-break-after:auto}}
/* Separate borders remain visible over shaded weekend cells in browser PDFs. */
.print-month table{border-collapse:separate;border-spacing:0;border-right:1px solid #adb4ba;border-bottom:1px solid #adb4ba}.print-month th,.print-month td{border:0;border-top:1px solid #adb4ba;border-left:1px solid #adb4ba}

/* Draw the outside frame inside the table bounds, clear of page edges. */
.print-month table{border-right:0;border-bottom:0;outline:1px solid #adb4ba;outline-offset:-1px}
/* The last cells own the outside lines so table painting cannot cover them. */
.print-month table{outline:0}.print-month tr>:last-child{border-right:1px solid #adb4ba}.print-month tbody tr:last-child>*{border-bottom:1px solid #adb4ba}

/* Allocate a separate row for each month title. Calendar rows cannot enlarge the month. */
.print-month{display:grid;grid-template-rows:max-content minmax(0,1fr);row-gap:2mm;min-width:0}
.print-month h3{margin:0;min-height:0}
.print-month table{display:grid;grid-template-columns:8mm repeat(7,minmax(0,1fr));grid-template-rows:6mm repeat(6,minmax(0,1fr));height:auto;min-height:0;align-self:stretch;flex:none}
.print-month thead,.print-month tbody,.print-month tr{display:contents}
.print-month th,.print-month td{min-width:0;min-height:0;display:flex;align-items:center;justify-content:center}
.print-month tr>:first-child{width:auto}
.with-notes td{align-items:flex-start;justify-content:flex-start}
.compact .print-month{row-gap:1.5mm}.compact .print-month h3{margin:0}
.compact .print-month table{grid-template-columns:6mm repeat(7,minmax(0,1fr));grid-template-rows:5mm repeat(6,minmax(0,1fr))}
.compact .print-month tr>:first-child{width:auto}
