:root {
  --bg: #f1f5ee;
  --card: #ffffff;
  --ink: #23342a;
  --muted: #566c5d;
  --line: #d3dfcf;
  --accent: #467352;
  --accent-dark: #2f5a3d;
  --soft: #e3ecdd;
  --male: #dfeaf2;
  --female: #f3e6ea;
  --danger: #a33a3a;
  --ok: #2e6b3a;
  --radius: 20px;
  --pill: 999px;
  --ring: 0 1px 2px rgba(35,52,42,.06), 0 4px 14px rgba(35,52,42,.06);
  --fs: 19px;
}
* { box-sizing: border-box; }
html { font-size: var(--fs); }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif; line-height: 1.5; }
h1 { font-size: 1.8rem; margin: 0 0 .6rem; line-height: 1.2; font-weight: 700; letter-spacing: -.01em; }
h2 { font-size: 1.3rem; margin: 1.6rem 0 .6rem; color: var(--accent-dark); }
h3 { font-size: 1.1rem; margin: 1.2rem 0 .4rem; }
a { color: var(--accent); }
p { margin: 0 0 .7rem; }

/* ---- header ---- */
.top { background: var(--soft); position: sticky; top: 0; z-index: 20; box-shadow: 0 1px 0 rgba(35,52,42,.08); }
.top-in { max-width: none; margin: 0; padding: .6rem clamp(1rem, 2.5vw, 3rem); display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.brand { font-weight: 700; font-size: 1.2rem; color: var(--accent-dark); text-decoration: none; margin-right: .8rem; display: inline-flex; align-items: center; gap: .45rem; }
.brand svg { width: 1.5rem; height: 1.5rem; flex: none; }
.nav { display: flex; gap: .3rem; flex-wrap: wrap; flex: 1; }
.nav a { padding: .55rem 1.05rem; border-radius: var(--pill); text-decoration: none; color: var(--ink); font-weight: 600; min-height: 44px; display: inline-flex; align-items: center; }
.nav a:hover { background: rgba(255,255,255,.7); }
.nav a.on { background: var(--accent); color: #fff; }
.who { color: var(--muted); font-size: .85rem; }
main { max-width: none; margin: 0; padding: 1rem max(3.4rem, 2.5vw) 6rem clamp(1rem, 2.5vw, 3rem); } /* full width; the right gutter leaves room for the side feedback button */

/* ---- buttons and fields ---- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; min-height: 48px; padding: .55rem 1.3rem; border-radius: var(--pill); border: 2px solid var(--accent); background: var(--accent); color: #fff; font: inherit; font-weight: 600; cursor: pointer; text-decoration: none; }
.btn:hover { background: var(--accent-dark); border-color: var(--accent-dark); }
.btn.sec { background: #fff; color: var(--accent); }
.btn.sec:hover { background: var(--soft); border-color: var(--accent-dark); }
.btn.danger { background: #fff; color: var(--danger); border-color: var(--danger); }
.btn.danger:hover { background: #f8e8e8; border-color: var(--danger); }
.btn.small { min-height: 44px; padding: .3rem .9rem; font-size: 1rem; }
.btn[disabled] { opacity: .5; cursor: not-allowed; }
label { display: block; font-weight: 600; margin: .8rem 0 .25rem; }
input[type=text], input[type=password], input[type=date], textarea, select { width: 100%; font: inherit; padding: .65rem .8rem; border: 2px solid var(--line); border-radius: 14px; background: #fff; color: var(--ink); min-height: 48px; }
input:hover, textarea:hover, select:hover { border-color: #b9ccb5; }
input:focus, textarea:focus, select:focus, .btn:focus-visible, a:focus-visible, button:focus-visible { outline: 3px solid #f2b84b; outline-offset: 2px; }
textarea { resize: vertical; min-height: 7rem; }
.check { display: flex; align-items: center; gap: .6rem; font-weight: 500; margin: .4rem 0; }
.check input { width: 24px; height: 24px; }
.row { display: flex; gap: .6rem; flex-wrap: wrap; align-items: center; }
.grow { flex: 1; min-width: 180px; }
.err { color: var(--danger); font-weight: 600; margin: .6rem 0; }
.hint { color: var(--muted); font-size: .9rem; }

.card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.1rem 1.4rem; margin-bottom: 1rem; box-shadow: var(--ring); }
.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1rem; }
.bigcard { display: block; text-decoration: none; color: var(--ink); background: var(--card); border: 2px solid var(--line); border-radius: 24px; padding: 1.4rem; box-shadow: var(--ring); transition: border-color .15s, transform .15s; }
.bigcard:hover { border-color: var(--accent); transform: translateY(-2px); }
.bigcard b { display: block; font-size: 1.25rem; color: var(--accent-dark); margin-bottom: .3rem; }

/* ---- login ---- */
.login { max-width: 420px; margin: 8vh auto; padding: 0 1rem; }
.login .card { padding: 1.6rem; }
.login h1 { text-align: center; }
.login .btn { width: 100%; margin-top: 1.2rem; font-size: 1.1rem; }

/* ---- tree ---- */
.tree-tools { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; margin-bottom: .8rem; }
.tree-wrap { overflow: auto; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.2rem; min-height: max(280px, calc(100vh - 19rem)); box-shadow: var(--ring); }
.ped-zoom { width: max-content; min-width: 100%; }
.legend .sibsw { width: 14px; height: 10px; border: 1.5px solid #8da2bd; background: #f3f6fa; }
.pbox { width: 200px; border: 2px solid var(--line); border-radius: 18px; padding: .5rem .8rem; background: #fff; cursor: pointer; text-align: left; font: inherit; color: var(--ink); display: block; }
.pbox:hover, .pbox.sel { box-shadow: 0 0 0 3px #f2b84b; }
.pbox b { display: block; font-size: .92rem; line-height: 1.25; }
.pbox span { color: var(--muted); font-size: .8rem; }
.pbox.focus { box-shadow: 0 0 0 3px var(--accent-dark); }
.st-init { border-color: #7fa3cf !important; background: #e9f1fb !important; }
.st-found { border-color: #6fb585 !important; background: #e5f4e9 !important; }
.st-maybe { border-color: #d4a93a !important; background: #fbf3d9 !important; border-style: dashed !important; }
.sibs { max-width: 200px; font-size: .75rem; color: var(--muted); }
.chip { display: inline-block; border: 1.5px solid; border-radius: 99px; padding: .05rem .5rem; margin: .12rem .1rem 0 0; font: inherit; font-size: .72rem; line-height: 1.3; cursor: pointer; color: var(--ink); }
.legend { display: flex; gap: 1rem; flex-wrap: wrap; font-size: .85rem; color: var(--muted); margin: 0 0 .5rem; }
.legend .sw { display: inline-block; width: 18px; height: 12px; border-radius: 3px; border: 2px solid; vertical-align: -1px; margin-right: .35rem; }
.fam-sec { margin-top: 1.2rem; }
.fam-sec .chips { display: flex; flex-wrap: wrap; gap: .6rem; }
.fam-sec .pbox { width: 210px; }
.gen-hint { color: var(--muted); font-size: .85rem; margin: 0 0 .5rem; }

.popup { position: fixed; z-index: 50; width: min(320px, calc(100vw - 20px)); background: #fff; border: 2px solid var(--accent); border-radius: 22px; padding: 1rem 1.2rem; box-shadow: 0 10px 30px rgba(35,52,42,.22); font-size: .95rem; }
.popup[hidden], .toast[hidden] { display: none; }
.popup h4 { margin: 0 0 .3rem; font-size: 1.05rem; }
.popup .kv { margin: .15rem 0; }
.popup .kv b { color: var(--muted); font-weight: 600; }
.popup .btn { margin-top: .6rem; width: 100%; }
.popup .btn + .btn { margin-top: .4rem; }

.bio figure { margin: .8rem 0; } .bio figure img { margin: 0; } .bio figcaption { font-size: .85rem; color: var(--muted); margin-top: .25rem; }
.bio ul { padding-left: 1.3rem; } .bio li { margin-bottom: .45rem; }
.bio .tag.ok { background: #e5f4e9; color: #2e6b3a; } .bio .tag.fam { background: #e9f1fb; color: #3d5a80; }
.bio .tag.maybe { background: #f6efd9; color: #7a5d0c; } .bio .tag.no { background: #f5e3e3; color: #a33a3a; } .bio .tag.todo { background: #eee; color: #555; }
.badge { display: inline-block; font-size: .8rem; font-weight: 700; padding: .1rem .6rem; border-radius: 99px; border: 2px solid; }

/* ---- people / lists ---- */
.plist { list-style: none; margin: 0; padding: 0; }
.plist li a { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem .9rem; border-bottom: 1px solid var(--line); text-decoration: none; color: var(--ink); min-height: 48px; align-items: center; }
.plist li a:hover { background: var(--soft); }
.plist { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; box-shadow: var(--ring); }
.plist li:last-child a { border-bottom: 0; }
.plist .meta { color: var(--muted); font-size: .88rem; text-align: right; }
.tag { display: inline-block; font-size: .75rem; font-weight: 700; padding: .05rem .5rem; border-radius: 99px; background: var(--soft); color: var(--accent-dark); margin-left: .4rem; }

/* ---- person page ---- */
.dl { display: grid; grid-template-columns: max-content 1fr; gap: .35rem 1.2rem; margin: 0; }
.dl dt { color: var(--muted); font-weight: 600; }
.dl dd { margin: 0; }
.gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: .8rem; }
.gallery figure { margin: 0; }
.gallery img { width: 100%; height: 160px; object-fit: cover; border-radius: 16px; border: 1px solid var(--line); cursor: zoom-in; display: block; }
.gallery figcaption { font-size: .85rem; color: var(--muted); margin-top: .25rem; }
.bio img { max-width: 100%; border-radius: 16px; border: 1px solid var(--line); cursor: zoom-in; margin: .4rem 0; }
.bio blockquote { margin: .6rem 0; padding: .4rem 1rem; border-left: 4px solid var(--line); color: var(--muted); }
.srcs { font-size: .9rem; color: var(--muted); padding-left: 1.2rem; }
.lightbox { position: fixed; inset: 0; background: rgba(0,0,0,.85); z-index: 100; display: flex; align-items: center; justify-content: center; padding: 1rem; cursor: zoom-out; }
.lightbox img { max-width: 100%; max-height: 100%; border-radius: 12px; }

/* ---- report ---- */
.report { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--ring); padding: 1.4rem 1.7rem; font-family: Georgia, "Times New Roman", serif; line-height: 1.55; overflow-x: auto; }
.report h2 { font-family: "Segoe UI", system-ui, sans-serif; border-bottom: 1px solid var(--line); padding-bottom: .3rem; }
.report table { border-collapse: collapse; width: 100%; font-size: .9rem; margin: .6rem 0; }
.report th, .report td { text-align: left; vertical-align: top; padding: .4rem .5rem; border-bottom: 1px solid var(--line); }
.report th { font-family: sans-serif; font-size: .78rem; text-transform: uppercase; color: var(--muted); }
.report img { max-width: 100%; border: 1px solid var(--line); border-radius: 4px; cursor: zoom-in; }
.report .sub, .report .small, .report .legend { color: var(--muted); font-size: .88rem; }
.report .lead, .report .doc, .report .q, .report .tree { background: var(--soft); border-left: 4px solid var(--accent); border-radius: 0 14px 14px 0; padding: .7rem 1.1rem; margin: .8rem 0; font-family: "Segoe UI", system-ui, sans-serif; font-size: .92rem; }
.report .tag { margin: 0 .2rem; }
.report .tag.ok { background: #e3f1e6; color: var(--ok); } .report .tag.maybe { background: #f6efd9; color: #7a5d0c; }
.report .tag.no { background: #f5e3e3; color: var(--danger); } .report .tag.fam { background: #e6edf5; color: #3d5a80; }
.report .two { display: flex; gap: .8rem; flex-wrap: wrap; } .report figure { margin: .6rem 0; } .report figcaption { font-size: .85rem; color: var(--muted); }

/* ---- what's new ---- */
.entry { border-left: 4px solid var(--accent); background: var(--card); border-radius: 0 var(--radius) var(--radius) 0; box-shadow: var(--ring); padding: .8rem 1.2rem; margin: 0 0 1.2rem; }
.entry time { color: var(--muted); font-size: .9rem; font-weight: 600; }
.entry h3 { margin: .1rem 0 .3rem; }
.tabs { display: flex; gap: .4rem; margin-bottom: 1rem; flex-wrap: wrap; }

/* ---- admin area ---- */
table.adm { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; font-size: .95rem; }
table.adm th, table.adm td { padding: .6rem .7rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
table.adm th { font-size: .78rem; text-transform: uppercase; color: var(--muted); }
.scroll-x { overflow-x: auto; }
.pw { font: 700 1.5rem ui-monospace, Consolas, monospace; background: var(--soft); padding: .7rem 1rem; border-radius: 14px; letter-spacing: .05em; user-select: all; word-break: break-all; }
.toolbar { display: flex; gap: .3rem; flex-wrap: wrap; margin: .4rem 0; }
.thumbs { display: flex; gap: .8rem; flex-wrap: wrap; }
.thumb { width: 150px; } .thumb img { width: 100%; height: 110px; object-fit: cover; border-radius: 14px; border: 1px solid var(--line); }
.thumb .btn { width: 100%; margin-top: .3rem; }
.rel { display: flex; justify-content: space-between; align-items: center; gap: .5rem; padding: .35rem 0; border-bottom: 1px solid var(--line); }

/* ---- modal windows, tooltips, the side button ---- */
.modal-bg { position: fixed; inset: 0; background: rgba(20,30,40,.55); z-index: 90; display: flex; align-items: center; justify-content: center; padding: 1rem; }
.modal { background: #fff; border-radius: 26px; padding: 1.6rem; width: min(520px, 100%); max-height: 92vh; overflow: auto; }
.modal h2 { margin-top: 0; }
.modal .row { justify-content: flex-end; margin-top: 1rem; }
.toast { position: fixed; left: 50%; bottom: 1.2rem; transform: translateX(-50%); background: var(--accent-dark); color: #fff; padding: .85rem 1.5rem; border-radius: var(--pill); z-index: 120; font-weight: 600; max-width: 90vw; }
.fb-tab { position: fixed; right: 0; top: 50%; transform: translateY(-50%); z-index: 30; writing-mode: vertical-rl; background: #c9822b; color: #fff; border: 0; border-radius: 22px 0 0 22px; padding: 1.2rem .8rem; font: inherit; font-weight: 700; cursor: pointer; box-shadow: -2px 2px 8px rgba(0,0,0,.2); letter-spacing: .03em; }
.fb-tab:hover { background: #a96a1c; }
.loading { color: var(--muted); padding: 2rem 0; text-align: center; }

@media (max-width: 640px) {
  :root { --fs: 18px; }
  .top { position: static; }
  .top-in { padding: .4rem .7rem; gap: .3rem .5rem; }
  .brand { flex: 1; font-size: 1.05rem; margin: 0; }
  .nav { order: 3; width: 100%; flex: none; flex-wrap: nowrap; overflow-x: auto; gap: .2rem; padding-bottom: .2rem; -webkit-overflow-scrolling: touch; }
  .nav a { white-space: nowrap; padding: .45rem .6rem; min-height: 44px; font-size: .92rem; }
  .who { display: none; }
  main { padding: .8rem .8rem 5.5rem; }
  h1 { font-size: 1.4rem; }
  .pbox, .fam-sec .pbox { width: 170px; }
  .dl { grid-template-columns: 1fr; } .dl dt { margin-top: .5rem; }
  .tree-tools { gap: .35rem; }
  .tree-tools .btn { flex: 1 1 auto; min-height: 44px; padding: .25rem .7rem; font-size: .95rem; }
  .legend { font-size: .75rem; gap: .2rem .8rem; }
  .gen-hint { font-size: .8rem; }
  .tree-wrap { padding: .6rem; }
  .fb-tab { writing-mode: horizontal-tb; top: auto; bottom: 10px; left: 10px; right: 10px; transform: none; border-radius: var(--pill); padding: .85rem 1rem; text-align: center; box-shadow: 0 2px 10px rgba(0,0,0,.25); }
  .modal { padding: 1rem; }
  .modal .row .btn { flex: 1; }
  .scroll-x { overflow: visible; }
  table.adm, table.adm tbody, table.adm tr, table.adm td { display: block; width: 100%; }
  table.adm thead { display: none; }
  table.adm tr { border-bottom: 3px solid var(--line); padding: .3rem 0; }
  table.adm td { border: 0; padding: .3rem .8rem; display: flex; justify-content: space-between; align-items: center; gap: .6rem; }
  table.adm td[data-label]::before { content: attr(data-label); color: var(--muted); font-weight: 600; font-size: .88rem; }
  .report { padding: .8rem; }
  .gallery { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
}
@media print { .top, .fb-tab, .tree-tools, .btn { display: none !important; } }


/* ---- "ancestors" mode (as in the PDF): the selected person on the left, ancestors go to the right ---- */
.ped, .pn { display: flex; align-items: center; }
.pn .pbox { width: 236px; cursor: pointer; }
.pbox .s { margin-top: .35rem; font-size: .74rem; color: var(--muted); line-height: 1.5; }
.pbox .s .chip { font-size: .72rem; text-align: left; background-color: transparent; }
.pbox .more { display: block; margin-top: .3rem; font-size: .8rem; }
.par { display: flex; flex-direction: column; position: relative; margin-left: 26px; }
.par::before { content: ''; position: absolute; left: -26px; top: 50%; width: 26px; border-top: 2px solid #a3bba9; }
.par > .pn { position: relative; padding-left: 26px; margin: 7px 0; }
.par > .pn::before { content: ''; position: absolute; left: 0; top: 50%; width: 26px; border-top: 2px solid #a3bba9; }
.par > .pn::after { content: ''; position: absolute; left: 0; border-left: 2px solid #a3bba9; }
.par > .pn:first-child::after { top: 50%; bottom: -7px; }
.par > .pn:last-child::after { top: -7px; height: calc(50% + 7px); }
.par > .pn:only-child::after { display: none; }
@media (max-width: 640px) { .pn .pbox { width: 200px; } }

/* ---- "whole family": generations in rows, lines drawn in SVG ---- */
.fe { position: relative; }
.fe svg { position: absolute; left: 0; top: 0; pointer-events: none; }
.fe svg path { fill: none; stroke: #94ad9a; stroke-width: 2; stroke-linejoin: round; }
.fe .fe-node { position: absolute; margin: 0; display: flex; flex-direction: column; justify-content: center; overflow: hidden; width: auto; }
.fe svg path.m { stroke-width: 4; stroke: #6f9079; }
.fe .fe-big b { -webkit-line-clamp: 3 !important; font-size: .82rem; }
.fe .fe-node b { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: .86rem; line-height: 1.2; }
.fe .fe-small { padding: .15rem .45rem; border-width: 1.5px; border-radius: 12px; }
.fe .fe-small b { font-size: .72rem; font-weight: 600; }
.fe .fe-small span { font-size: .68rem; }
.fe .fe-big { padding: .25rem .5rem; }
.fe .fe-node.focus { box-shadow: 0 0 0 3px var(--accent-dark); }

/* ---- spacing: buttons and rows above cards must not stick to them ---- */
main > * + .card, main > * + .report, main > * + .cards, main > * + .tree-wrap, main > * + .plist { margin-top: 1rem; }
main > .row + h2, main > .row + .row { margin-top: 1rem; }
main > p + .card { margin-top: 1rem; }
.actions { display: flex; gap: .6rem; flex-wrap: wrap; align-items: center; margin: 1.2rem 0; }

/* ---- person photo ---- */
.person-head { display: flex; gap: 1.2rem; align-items: flex-start; flex-wrap: wrap; margin-bottom: 1rem; }
.person-head .grow { flex: 1; min-width: 220px; }
.avatar { width: 150px; height: 190px; object-fit: cover; border-radius: 24px; border: 2px solid var(--line); cursor: zoom-in; background: #fff; display: block; }
.popup .ph { float: right; width: 56px; height: 70px; object-fit: cover; border-radius: 8px; margin: 0 0 .3rem .6rem; border: 1px solid var(--line); }
.photo-edit { display: flex; gap: 1.2rem; align-items: flex-start; flex-wrap: wrap; }
.photo-edit .avatar { cursor: default; }
.thumb .badge { margin: .3rem 0; display: block; text-align: center; }

/* ---- mark buttons in the editor ---- */
.tagbtn { border: 1.5px solid; border-radius: 99px; padding: .25rem .8rem; font: inherit; font-size: 1rem; font-weight: 700; cursor: pointer; min-height: 44px; }
.tagbtn.ok { background: #e5f4e9; color: #2e6b3a; border-color: #2e6b3a; }
.tagbtn.fam { background: #e9f1fb; color: #3d5a80; border-color: #3d5a80; }
.tagbtn.maybe { background: #f6efd9; color: #7a5d0c; border-color: #a07c14; }
.tagbtn.no { background: #f5e3e3; color: #a33a3a; border-color: #a33a3a; }
.helpbox { background: var(--soft); border-left: 4px solid var(--accent); padding: .7rem 1.1rem; border-radius: 0 14px 14px 0; font-size: .92rem; margin: .5rem 0; }

.hist { list-style: none; margin: 0; padding: 0; }
.hist li { padding: .5rem 0; border-bottom: 1px solid var(--line); font-size: .93rem; }
.hist li:last-child { border-bottom: 0; }

.pager { display: flex; align-items: center; justify-content: space-between; gap: .6rem; flex-wrap: wrap; margin: 1rem 0; }
.pager-info { color: var(--muted); font-size: .92rem; text-align: center; flex: 1; min-width: 180px; }
.btn.disabled { opacity: .45; pointer-events: none; }

/* ---- collapsible blocks (register data) ---- */
details.fold summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: .6rem; min-height: 44px; }
details.fold summary::-webkit-details-marker { display: none; }
details.fold summary::before { content: '▸'; color: var(--accent); font-size: 1.2rem; }
details.fold[open] summary::before { content: '▾'; }
details.fold summary h2 { margin: 0; }
.docs { list-style: none; margin: 0; padding: 0; }
.docs li { padding: .8rem 0; border-top: 1px solid var(--line); }
.docs li:first-child { border-top: 0; }
.docs p { margin: .3rem 0; }
.docs .tag { margin: 0 .3rem .2rem 0; }

.item { border: 1px solid var(--line); border-radius: 16px; padding: .9rem 1.1rem; margin: 0 0 .8rem; background: #fbfdf9; }
.item label { font-weight: 600; font-size: .92rem; }

/* ---- "to the top / to the bottom" buttons in the card editor ---- */
.jump { position: fixed; right: 14px; bottom: 18px; z-index: 25; display: flex; flex-direction: column; gap: .5rem; }
.jump .btn { width: 52px; min-height: 52px; padding: 0; font-size: 1.5rem; line-height: 1; background: var(--card); box-shadow: var(--ring); }
@media (max-width: 640px) { .jump { right: 10px; bottom: 78px; } .jump .btn { width: 48px; min-height: 48px; } }
@media print { .jump { display: none !important; } }

/* ---- wide screens: the whole width is used ---- */
.pcols { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 0 1.5rem; align-items: start; } /* person page: story on the left, family and register on the right */
.ecols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 1.5rem; align-items: start; } /* card editor: two columns */
@media (max-width: 1100px) { .pcols, .ecols { grid-template-columns: minmax(0, 1fr); } }
.entry { max-width: 90rem; }
.report { max-width: 110rem; }
