/* ============================================================
   Бумажная дизайн-система дневника.
   Оформление документа, а не интерфейса программы: бумага, линовка,
   типографская краска, ручка ученика и ручка учителя.

   Контрасты выверены: линовка и служебные подписи в версии 1 не
   проходили порог (линовка давала 1.70:1, номера уроков и время
   звонков — 2.04:1 при том, что несут смысл). Здесь основная линия 3.59:1,
   линовка строк 3.26:1, служебное набрано основной краской 4.9:1
   и выше, красная 4.9:1. Числа проверены расчётом на живой странице,
   а не на глаз.
   ============================================================ */

/* ---------- шрифты, всё своё, ни одного запроса наружу ---------- */
@font-face{
  font-family:"PT Sans Narrow"; font-style:normal; font-weight:400; font-display:swap;
  src:url("../fonts/pt-sans-narrow-400-cyrillic.woff2") format("woff2");
}
@font-face{
  font-family:"PT Sans Narrow"; font-style:normal; font-weight:700; font-display:swap;
  src:url("../fonts/pt-sans-narrow-700-cyrillic.woff2") format("woff2");
}
@font-face{
  font-family:"PT Serif"; font-style:normal; font-weight:400; font-display:swap;
  src:url("../fonts/pt-serif-400-cyrillic.woff2") format("woff2");
}
@font-face{
  font-family:"PT Serif"; font-style:normal; font-weight:700; font-display:swap;
  src:url("../fonts/pt-serif-700-cyrillic.woff2") format("woff2");
}
@font-face{
  font-family:"Caveat"; font-style:normal; font-weight:400 700; font-display:swap;
  src:url("../fonts/caveat-cyrillic.woff2") format("woff2");
}

/* ---------- палитра ---------- */
:root{
  --desk:#B9AE93;
  --paper:#E9E3D0; --paper-edge:#DCD4BC; --paper-deep:#DFD8C1;
  --rule:#7E7460; --rule-soft:#857B65;
  --ink:#2F3C57; --ink-soft:#55607A;
  --hand:#26348C; --red:#8E2318;
  --cover:#6E4232; --cover-2:#5A3427; --gold:#B08A4A;
  --ok:#2F5C3C; --warn:#6E5310;
  --shadow:rgba(58,44,26,.22);
  --focus:#8E2318;

  --f-narrow:"PT Sans Narrow","Arial Narrow",system-ui,sans-serif;
  --f-serif:"PT Serif",Georgia,"Times New Roman",serif;
  --f-hand:"Caveat","Segoe Script","Comic Sans MS",cursive;

  --tap:48px;            /* минимальная цель нажатия */
  --scale:1;             /* ползунок «крупнее» */
  --tracking:0em;        /* ползунок «буквы просторнее» */
  --leading:1.24;        /* ползунок «строки просторнее» */
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --desk:#100E0B;
    --paper:#241F17; --paper-edge:#2E2820; --paper-deep:#2A241B;
    --rule:#8A8470; --rule-soft:#77705E;
    --ink:#E3DCC4; --ink-soft:#B3AB93;
    --hand:#A9BEEC; --red:#E8897A;
    --cover:#3A241C; --cover-2:#2A1912; --gold:#C9A566;
    --ok:#8CC29A; --warn:#DCBA6C;
    --shadow:rgba(0,0,0,.6);
    --focus:#E8897A;
  }
}
:root[data-theme="dark"]{
  --desk:#100E0B;
  --paper:#241F17; --paper-edge:#2E2820; --paper-deep:#2A241B;
  --rule:#8A8470; --rule-soft:#77705E;
  --ink:#E3DCC4; --ink-soft:#B3AB93;
  --hand:#A9BEEC; --red:#E8897A;
  --cover:#3A241C; --cover-2:#2A1912; --gold:#C9A566;
  --ok:#8CC29A; --warn:#DCBA6C;
  --shadow:rgba(0,0,0,.6);
  --focus:#E8897A;
}

/* ---------- основа ---------- */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--desk);
  background-image:repeating-linear-gradient(92deg,transparent 0 38px,rgba(0,0,0,.035) 38px 39px);
  color:var(--ink);
  font-family:var(--f-serif);
  font-size:calc(16px * var(--scale));
  line-height:1.5;
  letter-spacing:var(--tracking);
  -webkit-font-smoothing:antialiased;
  overscroll-behavior-y:contain;
}
:focus-visible{outline:3px solid var(--focus); outline-offset:2px; border-radius:2px}
@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}

.wrap{max-width:1180px;margin:0 auto;padding:16px 12px calc(var(--tap) * 2 + 24px)}
.sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
    clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- обложка ---------- */
.cover{
  background:linear-gradient(160deg,var(--cover),var(--cover-2));
  background-image:
    linear-gradient(160deg,rgba(255,255,255,.05),rgba(0,0,0,.25)),
    repeating-linear-gradient(45deg,rgba(0,0,0,.05) 0 2px,transparent 2px 4px),
    repeating-linear-gradient(-45deg,rgba(255,255,255,.03) 0 2px,transparent 2px 4px);
  border-radius:3px 8px 8px 3px;
  padding:26px 22px 22px;
  box-shadow:0 10px 26px var(--shadow), inset 0 0 0 1px rgba(0,0,0,.35);
  position:relative; overflow:hidden;
}
.cover::before{content:"";position:absolute;inset:0 auto 0 0;width:14px;
  background:linear-gradient(90deg,rgba(0,0,0,.4),rgba(0,0,0,0))}
.emboss{
  font-family:var(--f-narrow); text-transform:uppercase; color:var(--gold);
  text-shadow:0 1px 0 rgba(0,0,0,.55), 0 -1px 0 rgba(255,255,255,.14);
}
.cover h1{margin:0;font-size:clamp(30px,7vw,54px);letter-spacing:.3em;font-weight:700}
.cover .sub{font-size:12px;letter-spacing:.3em;margin-top:6px;opacity:.8}
.cover .rule{border-top:2px double var(--gold);opacity:.5;margin:16px 0}

/* корешки: несколько дневников на одном устройстве */
.spines{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.spine{
  font-family:var(--f-narrow);font-size:14px;letter-spacing:.08em;
  min-height:var(--tap);padding:10px 16px;cursor:pointer;
  background:rgba(0,0,0,.28);color:#EFE4CE;
  border:1px solid rgba(255,255,255,.22);border-radius:3px;
}
.spine[aria-current="true"]{background:var(--gold);color:#2A1912;font-weight:700;border-color:var(--gold)}
.spine.add{background:transparent;border-style:dashed}

/* ---------- лист ---------- */
.page{
  background:var(--paper);
  border:1px solid var(--rule-soft);
  border-radius:0 4px 4px 0;
  box-shadow:0 8px 22px var(--shadow);
  padding:18px 16px 22px;
  position:relative;
  margin-top:14px;
}
.pagehead{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;
  justify-content:space-between;border-bottom:2px solid var(--ink);padding-bottom:6px}
.pagehead h2{font-family:var(--f-narrow);text-transform:uppercase;letter-spacing:.18em;
  font-size:calc(17px * var(--scale));margin:0;font-weight:700}
.pagehead .meta{font-family:var(--f-narrow);font-size:13px;letter-spacing:.06em;color:var(--ink-soft)}

/* ---------- разворот ---------- */
.spread{display:grid;grid-template-columns:1fr 1fr;margin-top:14px;position:relative}
.spread::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:24px;
  transform:translateX(-50%);opacity:.4;pointer-events:none;
  background:linear-gradient(90deg,rgba(0,0,0,0),var(--shadow),rgba(0,0,0,0))}
.leaf{padding:0 14px;min-width:0}
.leaf:first-child{border-right:1px solid var(--rule-soft)}

/* На узком экране разворот не схлопывается в ленту — он листается
   постранично, как настоящий. Лента в одну колонку это ровно то,
   на что жалуются в электронных дневниках. */
@media (max-width:760px){
  .spread{
    grid-template-columns:100% 100%;
    overflow-x:auto; scroll-snap-type:x mandatory;
    scrollbar-width:none;
  }
  .spread::-webkit-scrollbar{display:none}
  .spread::before{display:none}
  .leaf{scroll-snap-align:start;padding:0 4px}
  .leaf:first-child{border-right:none}
}

/* половины разворота: нужны только там, где он листается */
.halves{display:none;gap:6px;margin-top:12px}
.half{
  flex:1 1 0;font-family:var(--f-narrow);text-transform:uppercase;letter-spacing:.12em;
  font-size:12.5px;min-height:var(--tap);padding:10px;cursor:pointer;
  background:var(--paper-deep);border:1px solid var(--rule);color:var(--ink);border-radius:2px;
}
.half[aria-pressed="true"]{background:var(--ink);color:var(--paper);font-weight:700;border-color:var(--ink)}
@media (max-width:760px){ .halves{display:flex} }

/* ---------- день ---------- */
.day{margin:0 0 20px}
.day[data-on="false"]{opacity:.42}
.dayhead{display:flex;align-items:baseline;justify-content:space-between;gap:8px;
  border-bottom:1px solid var(--ink);padding-bottom:2px}
.dayname{
  font-family:var(--f-narrow);text-transform:uppercase;letter-spacing:.2em;
  font-size:calc(14px * var(--scale));font-weight:700;
  background:none;border:none;color:var(--ink);cursor:pointer;
  padding:8px 2px;min-height:var(--tap);text-align:left;
}
.daydate{font-family:var(--f-narrow);font-size:12px;color:var(--ink-soft);letter-spacing:.05em}
.daynote{font-family:var(--f-hand);font-size:calc(18px * var(--scale));color:var(--red);
  margin:4px 0 4px;line-height:1.2}

table.grid{width:100%;border-collapse:collapse;table-layout:fixed}
table.grid caption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
table.grid th{
  font-family:var(--f-narrow);font-weight:400;font-size:10.5px;text-transform:uppercase;
  letter-spacing:.1em;color:var(--ink-soft);text-align:left;padding:4px 4px;
  border-bottom:1px solid var(--rule);
}
table.grid td{border-bottom:1px solid var(--rule-soft);padding:2px 4px;vertical-align:top}
.c-n{width:22px;text-align:center;font-family:var(--f-narrow);font-size:12px;
     color:var(--ink);padding-top:12px}
.c-subj{width:32%}
.c-mark{width:52px;text-align:center}

/* урок, убранный из расписания, не исчезает из заполненной недели,
   а зачёркивается — страницы дневника нумеровали, чтобы нельзя было
   вырвать лист с двойкой */
tr.struck .subj, tr.struck .task{text-decoration:line-through; opacity:.55}
tr.struck .subj::after{
  content:" убран из расписания"; text-decoration:none; display:block;
  font-family:var(--f-serif);font-style:italic;font-size:10.5px;color:var(--ink-soft);
}

/* ---------- клетки ---------- */
.subj{
  font-family:var(--f-narrow);font-size:calc(14px * var(--scale));font-weight:700;
  line-height:var(--leading);min-height:var(--tap);padding:12px 4px;
  background:none;border:none;color:var(--ink);text-align:left;width:100%;cursor:pointer;
}
.subj:empty::before, .subj.empty::before{
  content:"—";color:var(--ink-soft);font-weight:400;
}
.time{font-family:var(--f-narrow);font-size:10.5px;color:var(--ink);letter-spacing:.04em;
      display:block;padding:0 4px 6px}
.task{
  font-family:var(--f-hand);font-size:calc(19px * var(--scale));line-height:var(--leading);
  color:var(--hand);min-height:var(--tap);outline:none;padding:10px 4px;border-radius:2px;
  white-space:pre-wrap;word-break:break-word;
}
.task:focus{background:rgba(38,52,140,.10);box-shadow:inset 0 0 0 2px var(--hand)}
.task:empty::before{content:attr(data-ph);color:var(--ink-soft);font-family:var(--f-serif);
  font-size:12.5px;font-style:italic}
.cell-demo{opacity:.75}
.tag{font-family:var(--f-narrow);font-size:10px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--red);display:block}

/* отметка: настоящая кнопка, цвет всегда дублируется формой */
.mark{
  font-family:var(--f-hand);font-size:calc(27px * var(--scale));font-weight:700;
  color:var(--red);background:none;border:none;cursor:pointer;
  width:100%;min-height:var(--tap);line-height:1;padding:6px 0;
}
.mark[data-empty="true"]{color:var(--ink-soft);font-size:calc(18px * var(--scale));
  font-family:var(--f-narrow)}
.mark[data-mark="2"]{text-decoration:underline;text-decoration-thickness:2px}

/* галочка в графе-галочке */
.c-check{width:44px;text-align:center}
.check{
  font-family:var(--f-hand);font-size:calc(24px * var(--scale));color:var(--red);
  background:none;border:none;cursor:pointer;width:100%;min-height:var(--tap);padding:6px 0;
}
.check.off{color:var(--ink-soft);font-family:var(--f-narrow);font-size:calc(16px * var(--scale))}

/* название графы — тоже кнопка: тап открывает, что с ней сделать */
th.th-col{cursor:pointer}
th.th-col:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}

/* «+ урок» и «⋯» */
.rowtool{
  font-family:var(--f-narrow);font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  background:none;border:none;color:var(--ink-soft);cursor:pointer;
  min-height:var(--tap);padding:8px 10px;
}
.rowtool:hover{color:var(--ink)}
.c-more{width:34px;text-align:center}

/* ---------- лист снизу ---------- */
dialog.sheet{
  border:none;padding:0;background:transparent;max-width:100%;width:100%;
  margin:auto auto 0;
}
dialog.sheet::backdrop{background:rgba(20,16,10,.55)}
.sheet-paper{
  background:var(--paper);border-top:3px solid var(--ink);
  border-radius:6px 6px 0 0;padding:14px 14px calc(14px + env(safe-area-inset-bottom));
  max-height:78vh;overflow:auto;box-shadow:0 -10px 30px var(--shadow);
}
.sheet h3{font-family:var(--f-narrow);text-transform:uppercase;letter-spacing:.16em;
  font-size:13px;margin:0 0 10px;color:var(--ink-soft);font-weight:400}
.sheet-list{display:flex;flex-direction:column;gap:6px}
.sheet-item{
  font-family:var(--f-narrow);font-size:calc(17px * var(--scale));text-align:left;
  min-height:var(--tap);padding:12px 14px;cursor:pointer;color:var(--ink);
  background:var(--paper-deep);border:1px solid var(--rule-soft);border-radius:3px;
}
.sheet-item:hover{border-color:var(--ink)}
.sheet-item[aria-pressed="true"]{background:var(--ink);color:var(--paper);font-weight:700}
.sheet-item.danger{color:var(--red);border-color:var(--red)}
.sheet-row{display:flex;gap:6px;flex-wrap:wrap}
.sheet-row .sheet-item{flex:1 1 auto}
.marks-row{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.marks-row .sheet-item{
  text-align:center;font-family:var(--f-hand);font-size:calc(30px * var(--scale));
  font-weight:700;min-height:64px;color:var(--red);
}
.marks-row .sheet-item[aria-pressed="true"]{color:var(--paper)}

/* ---------- издания: выбор по картинке разворота ---------- */
.cover-btn{
  margin-top:12px;background:rgba(0,0,0,.28);color:#EFE4CE;
  border-color:rgba(255,255,255,.22);
}
.cover-btn:hover{background:rgba(0,0,0,.4);border-color:var(--gold)}

.sheet-item.preset{display:flex;gap:12px;align-items:center;text-align:left}
.preview{
  flex:0 0 auto;display:flex;gap:3px;align-items:flex-start;position:relative;
  background:var(--paper);border:1px solid var(--rule);padding:5px;border-radius:2px;
  width:78px;min-height:52px;
}
.preview-day{display:flex;flex-direction:column;gap:2px;flex:1 1 0}
.preview-line{height:3px;background:var(--rule-soft);border-radius:1px}
.preview-line.filled{background:var(--hand)}
.preview-mark{
  position:absolute;right:3px;bottom:1px;font-family:var(--f-hand);
  font-size:15px;font-weight:700;color:var(--red);line-height:1;
}
.preset-text{min-width:0}
.preset-name{font-family:var(--f-narrow);font-weight:700;font-size:calc(16px * var(--scale))}
.preset-about{font-family:var(--f-serif);font-size:12.5px;font-style:italic;color:var(--ink-soft)}

.sheet-item.what{cursor:default;font-family:var(--f-serif);font-size:14px}
.whatlist{margin:6px 0 0;padding-left:20px}
.whatlist li{margin-bottom:3px}

/* ---------- лента подсказок над клавиатурой ---------- */
.chips{
  position:fixed;left:0;right:0;bottom:0;z-index:40;
  background:var(--paper);border-top:2px solid var(--ink);
  padding:8px 8px calc(8px + env(safe-area-inset-bottom));
  display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;
  box-shadow:0 -6px 18px var(--shadow);
}
.chips::-webkit-scrollbar{display:none}
.chips[hidden]{display:none}
.chip{
  flex:0 0 auto;font-family:var(--f-narrow);font-size:calc(15px * var(--scale));
  min-height:var(--tap);padding:10px 14px;cursor:pointer;color:var(--ink);
  background:var(--paper-deep);border:1px solid var(--rule);border-radius:2px;
}
.chip.next{background:var(--ink);color:var(--paper);font-weight:700;border-color:var(--ink)}

/* ---------- тост отмены ---------- */
.toast{
  position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--tap) + 26px);
  z-index:50;background:var(--ink);color:var(--paper);
  font-family:var(--f-narrow);font-size:14px;letter-spacing:.04em;
  padding:10px 12px;border-radius:3px;display:flex;align-items:center;gap:12px;
  box-shadow:0 6px 20px rgba(0,0,0,.35);max-width:92vw;
}
.toast[hidden]{display:none}
.toast button{
  font-family:var(--f-narrow);font-size:14px;text-transform:uppercase;letter-spacing:.1em;
  background:none;border:1px solid var(--paper);color:var(--paper);
  min-height:38px;padding:6px 12px;border-radius:2px;cursor:pointer;
}

/* ---------- полоса примера ---------- */
.demobar{
  display:flex;gap:10px;align-items:center;flex-wrap:wrap;
  background:var(--paper-deep);border:1px dashed var(--red);
  padding:10px 12px;margin:12px 0 0;border-radius:3px;
}
.demobar p{margin:0;font-size:13.5px;font-style:italic;color:var(--ink);flex:1 1 200px}
.btn{
  font-family:var(--f-narrow);text-transform:uppercase;letter-spacing:.11em;
  font-size:12.5px;background:var(--paper-deep);border:1px solid var(--rule);
  color:var(--ink);min-height:var(--tap);padding:10px 14px;border-radius:2px;cursor:pointer;
}
.btn:hover{background:var(--paper-edge);border-color:var(--ink)}
.btn.primary{background:var(--ink);color:var(--paper);border-color:var(--ink);font-weight:700}
.btn.danger{color:var(--red);border-color:var(--red)}

.bar{display:flex;gap:6px;flex-wrap:wrap;margin-top:16px;padding-top:12px;
     border-top:1px solid var(--rule-soft)}
.hint{font-size:12.5px;color:var(--ink-soft);font-style:italic;margin:10px 0 0;max-width:66ch}
.status{font-family:var(--f-narrow);font-size:11.5px;letter-spacing:.06em;color:var(--ink-soft)}

/* ---------- раздать расписание и подписать неделю ---------- */
.sheet-item.linkbox{
  cursor:text;user-select:all;font-family:ui-monospace,Consolas,monospace;
  font-size:12px;word-break:break-all;color:var(--ink);background:var(--paper);
  line-height:1.4;
}
.parsed-plain{font-family:var(--f-narrow);font-size:14px;color:var(--ink);padding:2px 0}
.btn.signed{background:var(--ink);color:var(--paper);border-color:var(--ink);font-weight:700}

/* ---------- вставка расписания текстом ---------- */
.paste-area{
  width:100%;min-height:150px;font-family:var(--f-serif);font-size:15px;
  background:var(--paper);color:var(--ink);border:1px solid var(--rule);
  border-radius:2px;padding:10px;resize:vertical;line-height:1.4;
}
.paste-area:focus{outline:3px solid var(--focus);outline-offset:1px}

.sheet-item.verdict{
  cursor:default;font-family:var(--f-serif);font-size:15px;
  background:var(--paper);border-left:4px solid var(--red);
}
.parsed-day{border:1px solid var(--rule);background:var(--paper);
  border-radius:2px;padding:8px 10px;margin-bottom:6px}
.parsed-dayhead{display:flex;justify-content:space-between;align-items:center;
  gap:8px;border-bottom:1px solid var(--rule);padding-bottom:4px;margin-bottom:6px}
.parsed-dayname{font-family:var(--f-narrow);text-transform:uppercase;
  letter-spacing:.16em;font-weight:700;font-size:13px}
.parsed-count{font-family:var(--f-narrow);font-size:11.5px;color:var(--ink-soft)}
.day-pick{
  font-family:var(--f-narrow);font-size:14px;min-height:var(--tap);
  background:var(--paper-deep);color:var(--ink);border:2px solid var(--red);
  border-radius:2px;padding:6px 8px;
}
.parsed-lesson{display:flex;align-items:center;gap:6px;padding:3px 0}
.parsed-num{font-family:var(--f-narrow);font-size:12px;color:var(--ink-soft);
  min-width:16px;text-align:center}
.parsed-name{
  flex:1 1 auto;min-width:0;font-family:var(--f-narrow);font-size:15px;
  background:transparent;color:var(--ink);border:none;
  border-bottom:1px solid var(--rule-soft);padding:8px 2px;min-height:40px;
}
.parsed-name:focus{outline:none;border-bottom:2px solid var(--hand);background:rgba(38,52,140,.06)}
.parsed-name.unknown{border-bottom-style:dashed;border-bottom-color:var(--red)}
.parsed-meta{font-family:var(--f-serif);font-size:11.5px;font-style:italic;
  color:var(--ink-soft);flex:0 0 auto;max-width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.parsed-del{
  flex:0 0 auto;background:none;border:none;color:var(--ink-soft);cursor:pointer;
  font-size:20px;line-height:1;min-width:36px;min-height:40px;
}
.parsed-del:hover{color:var(--red)}

.sheet-item.unparsed{cursor:default;background:var(--paper-deep);border-style:dashed}
.unparsed-head{font-family:var(--f-narrow);font-size:12px;text-transform:uppercase;
  letter-spacing:.1em;color:var(--red);margin-bottom:5px}
.unparsed-line{font-family:ui-monospace,Consolas,monospace;font-size:12px;
  color:var(--ink-soft);white-space:pre-wrap;word-break:break-word;padding:1px 0}
.sheet-item:disabled{opacity:.5;cursor:not-allowed}

/* ---------- контрольная линейка ---------- */
.ruler-page{display:none}
.ruler{
  width:100mm;height:14mm;margin:8mm 0 2mm;
  border:1px solid #000;border-top:none;
  display:flex;justify-content:space-between;align-items:flex-end;
  font-family:var(--f-narrow);font-size:10pt;
}
.ruler-tick{padding:0 1mm 1mm}
.ruler-note{font-family:var(--f-narrow);font-size:9pt;color:#444}

/* ---------- печать ---------- */
@media print{
  @page{size:A4 landscape;margin:12mm}
  body{background:#fff}
  .chips,.toast,.bar,.demobar,.hint,.cover,.spines,.rowtool,.halves,dialog{display:none!important}
  .page{box-shadow:none;border:none;padding:0;background:#fff}
  .spread{grid-template-columns:1fr 1fr;overflow:visible}
  .leaf{scroll-snap-align:none}
  .day{break-inside:avoid}
  .task{min-height:0}
  tr.struck .subj::after{content:" (убран)"}

  /* линейка печатается одна, без дневника */
  body.printing-ruler .wrap{display:none!important}
  body.printing-ruler .ruler-page{display:block}
  .ruler-page h2{font-family:var(--f-narrow);text-transform:uppercase;letter-spacing:.16em;font-size:12pt}
  .ruler-page p{font-family:var(--f-serif);font-size:11pt;max-width:120mm}
}
