@page { size: A4 portrait; margin: 14mm; }
body { font-family: "DejaVu Sans", sans-serif; font-size: 11pt; line-height: 1.4; color: #111; }
h1 { font-size: 19pt; margin: 0 0 4pt; border-bottom: 2px solid #333; padding-bottom: 4pt; }
.sub { color: #555; font-size: 10.5pt; margin-bottom: 12pt; }
h2 { font-size: 14pt; margin: 16pt 0 6pt; padding: 3pt 8pt; background: #eee; border-left: 5px solid #444; page-break-after: avoid; }
h3 { font-size: 12pt; margin: 10pt 0 4pt; page-break-after: avoid; }
p { margin: 4pt 0; } ul, ol { margin: 3pt 0 6pt 20pt; } li { margin-bottom: 3pt; }
table { border-collapse: collapse; width: 100%; margin: 6pt 0 10pt; }
th, td { border: 1px solid #888; padding: 5pt 7pt; vertical-align: top; text-align: left; }
th { background: #e6e6e6; }
.box { border: 1px solid #999; border-left: 4px solid #1a4d8f; padding: 6pt 10pt; margin: 8pt 0; background: #f7f9fc; page-break-inside: avoid; }
.say { font-style: italic; color: #333; }
.tag { display: inline-block; background: #444; color: #fff; font-size: 9pt; padding: 1pt 6pt; border-radius: 3pt; margin-right: 4pt; }
a { color: #1a4d8f; word-break: break-all; }
.small { font-size: 9.5pt; color: #444; }
.pb { page-break-before: always; }
.show { border: 2px solid #b5651d; background: #fff4e6; padding: 6pt 10pt 6pt 44pt; margin: 8pt 0; font-weight: bold; color: #5a3000; position: relative; page-break-inside: avoid; }
.show:before { content: "\25B6"; position: absolute; left: 10pt; top: 4pt; font-size: 15pt; color: #b5651d; }
.show span { font-weight: normal; }

/* ---- сайт ---- */
body { font-family: "DejaVu Sans", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; background: #fff; margin: 0; }
.page { max-width: 880px; margin: 0 auto; padding: 12px 20px 40px; }
.site-header { display: flex; justify-content: space-between; align-items: center; max-width: 880px; margin: 0 auto; padding: 10px 20px; border-bottom: 1px solid #ddd; gap: 12px; flex-wrap: wrap; }
.site-nav { display: flex; flex-wrap: wrap; gap: 4px 14px; }
.site-nav a { text-decoration: none; color: #1a4d8f; font-size: 10.5pt; white-space: nowrap; }
.site-nav a.brand { font-weight: bold; color: #222; }
.tools { margin-left: auto; }
.tools .tool { font-size: 9pt; color: #999; text-decoration: none; margin-left: 10px; letter-spacing: .04em; text-transform: lowercase; border-bottom: 1px dotted #ccc; }
.tools .tool:hover { color: #1a4d8f; border-bottom-color: #1a4d8f; }
.crumbs { font-size: 9pt; color: #777; margin: 4px 0 0; }
.crumbs a { color: #1a4d8f; text-decoration: none; }
.lessonnav { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 10px; font-size: 9.5pt; margin: 6px 0 14px; padding: 6px 0; border-bottom: 1px dotted #ccc; }
.lessonnav > a:last-child { text-align: right; }
.lessonnav .mid { text-align: center; color: #666; white-space: nowrap; }
.lessonnav a { text-decoration: none; color: #1a4d8f; }
.lessonnav a.btn { display: inline-block; border: 1px solid #1a4d8f; border-radius: 3pt; padding: 1pt 7pt; }
main .lessonnav:last-child { border-top: 1px dotted #ccc; border-bottom: 0; margin-top: 20px; }
.datenote { font-size: 9pt; color: #777; background: #fafafa; border-left: 3px solid #ddd; padding: 3pt 8pt; margin: 6pt 0 10pt; }
.box.prihod { border-left-color: #b5651d; background: #fffaf3; }
.box.prihod ul { margin-top: 4pt; }
a.xref { color: #1a4d8f; text-decoration: none; border-bottom: 1px dotted #1a4d8f; }
.sub a { color: inherit; text-decoration: none; border-bottom: 1px dotted #999; }
a { word-break: normal; overflow-wrap: break-word; }
td a[href^="http"], li a[href^="http"] { word-break: break-all; }
table.year { table-layout: fixed; }
table.year th, table.year td { overflow-wrap: anywhere; }
table.year .blk { width: 34%; }
table.year .per { width: 20%; }
table.year .cnt { width: 12%; }
table.plan .num { width: 1%; }
table.plan .when { width: 22%; }
table.plan .mat { width: 1%; white-space: nowrap; font-size: 9.5pt; line-height: 1.5; }
table.plan a, table a { text-decoration: none; }
.site-footer { max-width: 880px; margin: 0 auto; padding: 16px 20px 40px; border-top: 1px solid #ddd; font-size: 9pt; color: #666; }
.pb { border-top: 1px dashed #bbb; margin-top: 24px; padding-top: 12px; }
svg { max-width: 100%; height: auto; }
@media (max-width: 640px) {
  body { font-size: 10.5pt; }
  table { font-size: 9pt; }
  th, td { padding: 3pt 4pt; }
  .site-nav { gap: 2px 10px; }
  table.year .blk { width: 32%; }
  table.year .per { width: 22%; }
  table.year .cnt { width: 14%; }
  table.plan .when { width: 18%; }
  table.plan .mat { width: 28%; white-space: normal; font-size: 8.5pt; }
  .lessonnav { font-size: 9pt; grid-template-columns: 1fr; }
  .lessonnav > a:last-child { text-align: left; }
  .lessonnav .mid { text-align: left; white-space: normal; }
}
@media print {
  .site-header, .site-footer, .lessonnav, .tools, .noprint, .crumbs { display: none !important; }
  .page { max-width: none; padding: 0; }
  body { margin: 0; }
  .datenote { background: none; border: 0; padding: 0; }
  .pb { border: 0; page-break-before: always; }
  a, a.xref, .sub a { border: 0; color: inherit; text-decoration: none; }
}
