/* ── Tokens ──────────────────────────────────────────────────── */
:root {
    --paper:       #FFFFFF;   /* bílé pozadí: bílé reklamy splynou + pryč teplý „AI/Claude krém" */
    --paper-2:     #F6F5F2;   /* karty/panely — jen nepatrně odsazené od bílé (s vlasovou linkou) */
    --paper-3:     #FFFFFF;
    --ink:         #1B1814;
    --ink-2:       #4A453D;
    --ink-3:       #8A847A;
    --ink-4:       #B6AF9F;
    --rule:        #E4E1DB;   /* neutrální šedá linka (dřív béžová) */
    --rule-soft:   #EFEDE8;
    --link:        #2853C4;
    --link-hov:    #173694;
    --visited:     #6B3FA8;
    --accent:      #c04020;
    --accent-soft: #fceee9;
    --ok:          #1e7a3a;
    --warn:        #8a5a05;
    --err:         #a01b1b;

    /* Jen systémové fonty (žádné webfonty): nula stažených fontů, okamžité vykreslení,
       žádná 3rd-party (perf + GDPR). Vzhled lehce závisí na OS — to je záměr. */
    --font-display: Georgia, 'Times New Roman', Times, serif;
    --font-body:    system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    --font-mono:    ui-monospace, 'SFMono-Regular', Menlo, Consolas, 'Liberation Mono', monospace;

    --gut: 24px;
    --r: 3px;
    --shell-w: 960px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
a { color: var(--link); text-decoration: none; }
a:hover { color: var(--link-hov); text-decoration: underline; text-underline-offset: 2px; }
a:visited { color: var(--visited); }
img { max-width: 100%; height: auto; }
hr { border: 0; border-top: 1px solid var(--rule); margin: 1.2rem 0; }
button { font: inherit; color: inherit; cursor: pointer; }

/* ── Typography ──────────────────────────────────────────────── */
h1, h2, h3, h4 {
    font-family: var(--font-display);
    font-weight: 500;
    letter-spacing: -0.005em;
    margin: 0;
    text-wrap: balance;
}
h1 {
    font-family: var(--font-display);
    font-size: 32px; line-height: 1.1;
    font-weight: 400;
    color: var(--accent);
    letter-spacing: -0.005em;
    margin: 0.4rem 0 0.8rem;
    font-variation-settings: "opsz" 32;
}
h1 strong, h1 b { font-weight: 500; }
h2 {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 400;
    color: var(--ink);
    border-bottom: 1px solid var(--rule);
    padding-bottom: 6px;
    margin: 1.6rem 0 0.8rem;
    display: flex; align-items: baseline; justify-content: space-between;
    gap: 16px;
}
h3 { font-size: 16px; font-weight: 500; color: var(--ink); margin: 1.2rem 0 0.5rem; }
p, ul, ol, blockquote, table { margin: 0 0 1.1rem; }
ul, ol { padding-left: 1.4rem; }
blockquote {
    margin-left: 0;
    padding: 0.4rem 0 0.4rem 1rem;
    border-left: 3px solid var(--rule);
    color: var(--ink-2);
}
code {
    font-family: var(--font-mono);
    font-size: 0.92em;
    background: var(--rule-soft);
    padding: 0.1em 0.35em;
    border-radius: 4px;
}
.num   { font-variant-numeric: tabular-nums; }
.mono  { font-family: var(--font-mono); }
.muted { color: var(--ink-3); }
.tiny  { font-size: 12px; }

/* ── Topbar (paper strip) ────────────────────────────────────── */
.topbar {
    background: var(--paper-2);
    border-bottom: 1px solid var(--rule);
}
.topbar__inner {
    display: flex; align-items: center; justify-content: space-between;
    height: 44px;
    max-width: var(--shell-w);
    margin: 0 auto;
    padding: 0 var(--gut);
}
/* Brand: `zetlog / Nazev webu`. „zetlog" je tichá utilitarní značka (menší, šedá),
   název webu je hlavní identita (větší serif, tmavý). Oba klikatelné. */
.topbar__brand {
    display: inline-flex;
    align-items: baseline;
    gap: 8px;
    min-width: 0;
}
.brand {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.01em;
    color: var(--ink-3);
    text-decoration: none;
    flex: 0 0 auto;
}
.brand:visited { color: var(--ink-3); }
.brand:hover { text-decoration: none; color: var(--ink); }
/* Bez webu (hlavní strana / root) stojí „zetlog" samo → výrazné, tmavé. */
.brand--solo { font-size: 20px; font-weight: 600; color: var(--ink); }
.brand--solo:visited { color: var(--ink); }
.brand--solo:hover { color: var(--accent); }
.brand-sep { color: var(--ink-4); font-size: 15px; flex: 0 0 auto; }
.brand-web {
    font-family: var(--font-display);
    font-size: 22px;
    letter-spacing: -0.005em;
    color: var(--ink);
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}
.brand-web:visited { color: var(--ink); }
.brand-web:hover { text-decoration: none; color: var(--accent); }
.topbar-user {
    display: inline-flex; align-items: center; gap: 8px;
    font-family: var(--font-mono); font-size: 12px;
    color: var(--ink-2);
}
.topbar-user a { color: var(--ink-2); }
.topbar-user a:hover { color: var(--ink); text-decoration: none; }
.topbar-user__name {
    display: inline-flex; align-items: center; gap: 7px;
    padding: 4px 10px 4px 6px;
    border: 1px solid var(--rule);
    border-radius: 999px;
    font-family: var(--font-mono); font-size: 11px;
    color: var(--ink-2);
    text-decoration: none;
}
.topbar-user__name:hover { background: var(--rule-soft); text-decoration: none; }
.topbar-user__avatar {
    width: 20px; height: 20px;
    border-radius: 50%;
    background: linear-gradient(135deg, #C26B3A, var(--accent));
    color: #fff;
    font-size: 10px; font-weight: 600;
    font-family: var(--font-body);
    display: inline-flex; align-items: center; justify-content: center;
}
.topbar-sep { color: var(--ink-4); }
.inline-form { display: inline; margin: 0; padding: 0; }
.link-button {
    background: none; border: none;
    color: var(--ink-2);
    cursor: pointer;
    padding: 0;
    font: inherit;
    font-size: 11px;
    text-decoration: none;
}
.link-button:hover { color: var(--ink); text-decoration: underline; }

/* ── Shell (centered content) ────────────────────────────────── */
.content {
    max-width: var(--shell-w);
    margin: 0 auto;
    padding: 16px var(--gut) 40px;
    position: relative;
}

/* ── Web title + menu (page header for miniweb) ──────────────── */
.page-head {
    padding: 28px 0 6px;
    display: flex;
    align-items: baseline;
    gap: 14px;
    flex-wrap: wrap;
}
.page-head__left { flex: 1; min-width: 0; }
.page-head--bare {
    padding: 14px 0 0;
    justify-content: flex-end;
}
.page-head--bare .page-head__right {
    max-width: none;
    text-align: right;
}
.page-head__right {
    max-width: 360px;
    text-align: right;
    color: var(--ink-3);
    font-size: 12.5px;
    line-height: 1.4;
    display: flex; gap: 8px;
    justify-content: flex-end;
    flex-wrap: wrap;
    align-items: baseline;
}
.page-head__right .page-head__desc { flex: 1 0 100%; }

.web-menu {
    display: flex; align-items: center; gap: 0;
    margin: 11px 0 20px;
    border: 1px solid var(--rule);   /* uzavřený ze všech 4 stran (na bílém pozadí jinak levý/pravý okraj „plave") */
    background: var(--paper-2);
    overflow-x: auto;
}
.web-menu__link {
    font-family: var(--font-mono);
    font-size: 12px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 12px 16px;
    color: var(--ink-2);
    border-right: 1px solid var(--rule);
    text-decoration: none;
    white-space: nowrap;
    line-height: 1;
}
.web-menu__link:hover { background: var(--paper-3); color: var(--ink); text-decoration: none; }
.web-menu__link.is-active {
    background: var(--paper-3);
    color: var(--ink);
    font-weight: 600;
    box-shadow: inset 0 -2px 0 var(--accent);
}

.web-actions {
    margin-top: 2.2rem;
    padding-top: 0.8rem;
    border-top: 1px dashed var(--rule);
    color: var(--ink-3);
    font-family: var(--font-mono);
    font-size: 11.5px;
    letter-spacing: 0.03em;
}
.web-actions a { color: var(--ink-3); }
.web-actions a:hover { color: var(--ink); text-decoration: none; }

/* ── Admin overlay (edit/delete icons) ───────────────────────── */
/* ── Cards / records ─────────────────────────────────────────── */
.record {
    /* default: no card wrapper. Detail layouts (event/thread) render their own structure. */
}
.record--page {
    /* page records keep flowing layout, no padded card */
}

/* ── Event/thread detail layout ──────────────────────────────── */
/* Sjednocená hlavička detailu (galerie/akce/místo/vlákno): H1 vlevo + „✎ Upravit" vpravo
   na úrovni H1 (`__top` řádek), volitelný byline pod ním. */
.det-head { margin-top: 8px; padding-bottom: 16px; }
.det-head h1 { margin: 0; }   /* zbytek (velikost, barva, opsz) dědí z globálního h1 */
/* Proběhlý turnaj — titulek tlumený (--ink-2), ne accent: stejně jako místo/čas v kalendáři. */
.record--event.is-past .det-head h1 { color: var(--ink-2); }
.det-head__by {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 6px;   /* byline (autor · čas · Nahlásit) + edit jako řádek pod titulkem */
}
.det-head__by .post__head { margin-bottom: 0; }   /* byline je samostatný řádek, ne hlavička postu */

/* Akce úprav (🗑⚙✎) vpravo na okraji — sdílené detail_head (byline) i post_actions (reakce/OP). */
.edit-actions { margin-left: auto; display: inline-flex; align-items: center; gap: 12px; }
.edit-actions .inline-form { display: inline-flex; margin: 0; }
.ea {
    background: none; border: 0; padding: 0; cursor: pointer; text-decoration: none;
    color: var(--ink-3); display: inline-flex; align-items: center; line-height: 0;
}
.ea:hover { color: var(--accent); }
.ea--edit { color: var(--accent); }                /* uživatelský edit (pero) v accentu */
.ea--del.is-restore, .ea--del.is-restore:hover { color: var(--ok); }   /* koš u smazaného = obnova (zeleně) */
.ea-ico { width: 15px; height: 15px; }
/* stránky (page): akce úprav 🗑⚙✎ vpravo NAHOŘE místo zrušeného modrého rohového overlay */
.page-edit-corner { position: absolute; top: 0.7rem; right: 0.9rem; z-index: 5; }

/* ── Galerie: alba (profil výstavní skříň) + sekce na detailu akce ──── */
/* Album mřížka: kompaktní dlaždice (cover + název + počet), mobil-first auto-fill. */
.album-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(108px, 1fr));
    gap: 10px;
    margin: 6px 0;
}
.album-card {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: var(--ink);
}
.album-card__cover {
    aspect-ratio: 1 / 1;
    border-radius: var(--r);
    overflow: hidden;
    background: var(--paper-2);
    display: block;
}
.album-card__cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.album-card__empty { display: block; width: 100%; height: 100%; }
.album-card__title { font-size: 12.5px; font-weight: 600; margin-top: 4px; line-height: 1.25; }
.album-card:hover .album-card__title { color: var(--link); }
.album-card__count { font-family: var(--font-mono); font-size: 11px; color: var(--ink-3); }

/* Sekce galerie na detailu akce: nadpis (název + autor) + dlaždice + CTA přidat. */
.event-gallery { margin: 0 0 18px; }
.event-gallery__by { font-weight: 400; font-size: 12.5px; color: var(--ink-3); }
.event-gallery__by a { color: var(--link); }
.event-gallery__add { margin: 4px 0 0; }
.gallery-meta { font-size: 13px; color: var(--ink-3); margin: 2px 0 12px; }   /* „od <autor> · k akci <akce>" pod nadpisem galerie */
.gallery-rules { font-size: 12px; color: var(--ink-3); margin: 2px 0 8px; }    /* pravidlo „galerie ≠ úložiště" v edit formuláři */

/* tabs (server-side ?tab=… ; JS later optional) */
.tabnav {
    display: flex;
    border-bottom: 1px solid var(--rule);
    margin-top: 22px;
    gap: 0;
    flex-wrap: wrap;
}
.tabnav__item {
    font-family: var(--font-mono);
    font-size: 11.5px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 12px 18px 11px;
    color: var(--ink-3);
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
}
.tabnav__item:hover { color: var(--ink); text-decoration: none; }
.tabnav__item.is-active {
    color: var(--ink);
    font-weight: 600;
    border-bottom-color: var(--accent);
}
.tabnav__item .tab-count {
    font-size: 10px;
    color: var(--ink-4);
    background: var(--rule-soft);
    padding: 1px 6px;
    border-radius: 999px;
}

/* Akce turnaje (iCal / Upravit) — decentně vpravo v liště tabů, menší,
   nezabírají vlastní řádek nad menu. Na úzkém mobilu se zalomí pod taby. */
.tabnav__actions {
    margin-left: auto;
    align-self: center;
    display: inline-flex;
    gap: 6px;
    align-items: center;
    padding-bottom: 4px;
}
.tabnav__actions .page-head__action { font-size: 11.5px; padding: 4px 9px; font-weight: 500; }

.tabpanel { padding-top: 26px; }

/* ── Důstojná stránka akce: hero (plakát + fakta + status + CTA) ── */
.event-hero { display: flex; gap: 20px; align-items: flex-start; }
.event-hero__poster {
    display: block; flex: none; width: 168px;
    border: 1px solid var(--rule); border-radius: 6px; overflow: hidden;
    box-shadow: 0 2px 10px rgba(60, 40, 20, .08);
}
a.event-hero__poster { cursor: zoom-in; }
.event-hero__poster img { display: block; width: 100%; height: auto; }
.event-hero__poster--gen {
    aspect-ratio: 3 / 4;
    display: flex; align-items: center; justify-content: center; padding: 14px;
    text-align: center; background: linear-gradient(160deg, var(--paper-2), var(--rule-soft));
}
.event-hero__poster--gen span {
    font-family: var(--font-display); font-size: 16px; font-weight: 600;
    color: var(--ink-2); text-wrap: balance;
}
.event-hero__main { flex: 1 1 auto; min-width: 0; }
.event-hero__main .det-head { margin: 0; }
.event-facts { list-style: none; margin: 11px 0; padding: 0; display: flex; flex-direction: column; gap: 5px; }
.event-facts li { display: flex; align-items: flex-start; gap: 8px; font-size: 13px; color: var(--ink); line-height: 1.4; }
.event-facts a:not(.fact-btn) { color: var(--link); }              /* odkazy (místo) jasně modré */
.event-facts a:not(.fact-btn):hover { color: var(--link-hov); }
.ico { width: 14px; height: 14px; flex: none; color: var(--ink-3); margin-top: 2px; }
/* kompaktní pilulkové tlačítko v faktech (Do kalendáře / editace) — nízké, nerozhazuje řádek */
.fact-btn {
    display: inline-flex; align-items: center; gap: 4px; vertical-align: middle;
    margin-left: 8px; font-size: 11px; line-height: 1.5; padding: 0 9px;
    border: 1px solid var(--rule); border-radius: 99px;
    color: var(--ink-2); background: var(--paper);
}
.fact-btn:hover { border-color: var(--ink-3); color: var(--ink); text-decoration: none; }
.fact-btn--edit { color: var(--accent); }                          /* pero + accent = editace majitele */
.fact-btn--edit:hover { color: var(--accent); border-color: var(--accent); }

/* upload plakátu v edit formu (mimo galerii) */
.poster-edit__cur { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 8px; }
.poster-edit__cur img { width: 90px; height: auto; border: 1px solid var(--rule); border-radius: 4px; }
.poster-edit__rm { font-size: 12.5px; color: var(--ink-2); display: flex; align-items: center; gap: 5px; }

@media (max-width: 600px) {
    .event-hero { flex-direction: column; }
    .event-hero__poster { width: 100%; max-width: 220px; }
}

/* info layout (2-col body + sidebar) */
.info-grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    gap: 36px;
}
.info-grid__main { min-width: 0; }

/* facts table */
.h-section {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 400;
    color: var(--ink);
    border-bottom: 1px solid var(--rule);
    padding-bottom: 6px;
    margin: 0 0 14px;
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 16px;
}

/* Titulek faktu v lehkém seznamu (.event-facts) — místo ikony u stránky místa (Poloha/PSČ/Mapa).
   Mono kapitálka, tlumená, pevná šířka sloupce → hodnoty zarovnané jako fakta turnaje. */
.fact-label {
    flex: none;
    min-width: 58px;
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ink-3);
    line-height: 1.4;
    padding-top: 1px;
}

.prop {
    font-size: 14.5px;
    color: var(--ink-2);
    margin-top: 18px;
    overflow-wrap: anywhere;   /* dlouhé URL/slovo zalom (ať nepřeteče šířku na mobilu) */
}
.prop p { margin: 0 0 10px; }
.prop img { max-width: 100%; height: auto; border: 1px solid var(--rule); border-radius: 4px; }   /* obrázek v popisu = šedý rámeček (na bílé by jinak plaval) */
.prop strong { color: var(--ink); }
.prop h2, .prop h3 { margin-top: 1.4rem; }
/* Markdown render obaluje položky listu do <p> (loose) i bez prázdných řádků, takže globální
   p-margin (1.1rem, ř. 81) dělá mezi odrážkami obří mezery → `<p>` v listech rušíme GLOBÁLNĚ
   (platí pro sys-pages, propozice akcí, bio, diskuzní příspěvky — všude, kde se renderuje markdown). */
li > p { margin: 0; }
.prop li, .record--sys-page li { margin: 0 0 0.35rem; }   /* v próze trochu vzduchu mezi položkami */

/* generic action button (light/dark) */
.btn {
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 500;
    padding: 8px 14px;
    border: 1px solid var(--ink);
    background: var(--ink);
    color: var(--paper-3);
    border-radius: var(--r);
    display: inline-flex;
    align-items: center;
    gap: 7px;
    white-space: nowrap;
    text-decoration: none;
    cursor: pointer;
}
.btn:hover { background: var(--ink-2); color: var(--paper-3); text-decoration: none; }
.btn--ghost {
    background: transparent;
    color: var(--ink);
    border-color: var(--rule);
}
.btn--ghost:hover {
    background: var(--rule-soft);
    color: var(--ink);
    border-color: var(--ink-3);
}
.btn--sm { font-size: 12px; padding: 6px 11px; }
.btn--full { width: 100%; justify-content: center; }

/* ── Discussion stream + composer (event/thread detail) ─────── */
.stream { margin-top: 24px; }
.stream-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    border-bottom: 1px solid var(--rule);
    padding-bottom: 7px;
    margin-bottom: 6px;
}
.stream-head h3 {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
}
.stream-head__meta {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--ink-3);
    white-space: nowrap;
}

/* post — sdileny renderer pro OP i reply (kompaktni, avatar + body) */
.post {
    padding: 13px 0;
    border-bottom: 1px solid var(--rule-soft);
}
.post:last-child { border-bottom: none; }
.post.is-deleted { opacity: 0.55; }
.post.is-deleted .post__text { text-decoration: line-through; }

/* top-level reakce = decentní KARTA: lehce světlejší než papírové pozadí + vlasový rámeček +
   jen lehce kulaté rohy. Bundluje reakci i s jejími pod-reakcemi (spine) do jednoho bloku. */
.post--card, .post--card:last-child {
    background: var(--paper-2);
    border: 1px solid var(--rule);
    border-radius: 6px;
    padding: 11px 13px;
    margin-bottom: 9px;
}

/* Mezera pod nadpisem vlákna, ať OP nelepí na titulek (mobil first). */
.record--thread > h1 { margin: 8px 0 12px; }
/* OP (hlavní příspěvek): jako reply, jen větší text a bez spodní linky. Bez avataru —
   plná šířka (hustá mobilní estetika, kolečko s iniciálou nic nepřináší a zužuje text). */
.post--op {
    padding: 0 0 6px;
    border-bottom: none;
}
.post--op .post__text { font-size: 15.5px; }

/* systémová aktivita (auto: přidán tým / zadány výsledky) — tlumená řádka, ne chat */
.post--system {
    display: flex;
    align-items: baseline;
    gap: 7px;
    padding: 5px 0;
    font-size: 12.5px;
    color: var(--ink-2);
    border-bottom: 1px solid var(--rule-soft);
}
.post--system__dot { color: var(--ok); font-size: 9px; flex: none; }
.post--system__body { flex: 1 1 auto; }
.post--system__when { color: var(--ink-3); font-size: 11px; flex: none; }
.post--system .edit-actions { margin-left: 0; align-self: center; flex: none; gap: 9px; }   /* admin ikony v auto-řádce */

/* meta radek: jmeno + (alias) + cas — vse vlevo (cas hned za jmenem) */
.post__head {
    display: flex;
    align-items: baseline;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 3px;
}
.post__head__main { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; min-width: 0; }
/* report (form) hned za jménem·časem; ikony 🗑⚙✎ (.edit-actions má margin-left:auto) na pravý okraj */
.post__who { font-weight: 600; color: var(--ink); font-size: 14px; }
.post__who a { color: var(--link); }
.post__who a:hover { color: var(--link-hov); }
.post__alias {
    color: var(--ink-3);
    font-size: 12.5px;
    font-weight: 400;
}
.post__alias a { color: var(--link); }
.post__alias a:hover { color: var(--link-hov); }
.post__when {
    font-family: var(--font-mono);
    font-size: 11.5px;
    color: var(--ink-3);
    white-space: nowrap;
}
/* poslední příspěvek: datum+čas inverzně v zeleném boxíku (jako „Nové" oválek ve feedu) */
.post__when--last {
    color: #fff;
    background: #2A7A4F;
    padding: 1px 7px;
    border-radius: 2px;
    font-weight: 600;
}
/* „dnes"/„včera" v datu (feed, kalendář, hlavička příspěvku) zeleně — afordance čerstvosti.
   „dnes" výrazně, „včera" vyčpělejší (světlejší/méně syté) zeleň. */
.today { color: #2A7A4F; font-weight: 600; }
.yesterday { color: #798F2B; font-weight: 500; }
.post__edited { font-size: 11px; color: var(--ink-4); font-style: italic; }
/* IP kód vedle jména (objInfoBar): tlumený mono štítek — pseudo-identita anonyma / moderace */
.post__ipcode {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.04em;
    color: var(--ink-4);
    background: var(--rule-soft);
    padding: 0 4px;
    border-radius: 2px;
    vertical-align: 1px;
}

.post__text {
    color: var(--ink);
    font-size: 15px;
    line-height: 1.55;
    text-wrap: pretty;
    overflow-wrap: anywhere;   /* dlouhé URL/slovo zalom (jinak na mobilu přeteče → vodorovný scroll celé stránky) */
}
.post__text p { margin: 0 0 8px; }
.post__text p:last-child { margin-bottom: 0; }
.post__text strong { color: var(--ink); }

.post__action {
    background: none;
    border: 0;
    color: var(--ink-3);
    padding: 0;
    cursor: pointer;
    text-decoration: none;
    font-size: 13px;
    line-height: 1;
}
.post__action:hover { color: var(--accent); }

/* sub-replies: druha uroven pod top-level reply, indented za left borderem */
/* zanoření: dotted čára POD příspěvkem. Pod top-level reply = přes šířku karty (delší); pod
   reply-to-reply = jen v JEJÍ šířce → odsazení přes `margin-left` (zkrátí čáru vlevo), ne padding.
   Žádná svislá čára. */
.post__sub {
    margin-top: 9px;
    padding-top: 0;          /* žádné horní odsazení → mezeru pod čárou dělá až padding dětí */
    border-top: 1px dotted var(--ink-3);   /* čára POD top-level reply (full šířka karty) */
    display: flex;
    flex-direction: column;
}
/* jen „Odpovědět" (žádné pod-reakce) → bez čáry, těsně pod textem (ať akční odkaz žere min. místa) */
.post__sub--bare { margin-top: 0; border-top: none; }
.post--sub {
    margin-left: 14px;                      /* odsazení → spodní čára je vlevo kratší */
    padding: 9px 0;
    border-bottom: 1px dotted var(--ink-3); /* čára POD reply-to-reply (v její šířce) */
    border-top: none;
    border-radius: 0;
    background: transparent;
}
.post--sub .post__who { font-size: 13.5px; }
.post--sub .post__text { font-size: 14px; }

/* "Odpovědět" toggle pod top-level reply; rozbali compact composer. Odsazené stejně jako
   reply-to-reply (margin-left) — i s formulářem, který je uvnitř. */
.post__reply-toggle {
    margin: 3px 0 0 14px;
    font-family: var(--font-mono);
    font-size: 12px;
}
.post__reply-toggle > summary {
    cursor: pointer;
    list-style: none;
    color: var(--link);
    opacity: 0.7;            /* méně nápadné než plný odkaz, ale ne disabled (modrá zůstává) */
    padding: 0;
    display: inline-block;
}
.post__reply-toggle > summary:hover { color: var(--link-hov); opacity: 1; text-decoration: underline; }
.post__reply-toggle[open] > summary { color: var(--ink-3); }
.post__reply-toggle > .form-card { margin-top: 10px; }

/* form-card--note: bezformovy text v paper karte (anon hláška) */
.form-card--note {
    background: var(--paper-2);
    margin-top: 24px;
}
.form-card--note p { margin: 0; color: var(--ink-2); }

/* form-card--compact: mensi varianta pro inline sub-reply uvnitr <details> toggle */
.form-card--compact {
    padding: 14px 16px;
    margin-top: 8px;
}
.form-card--compact .form-card__head h2 { font-size: 17px; }
.form-card--compact textarea { min-height: 80px; }

/* ── Webs list (zetlog home + similar) ───────────────────────── */
ul.webs {
    list-style: none;
    padding: 0;
    margin: 0 0 1.2rem;
}
ul.webs li {
    padding: 6px 0;
    border-bottom: 1px dashed var(--rule-soft);
    font-size: 14.5px; line-height: 1.5;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
ul.webs li:last-child { border-bottom: none; }
ul.webs li a {
    font-weight: 600;
    color: var(--link);
}
ul.webs li.is-deleted a { text-decoration: line-through; opacity: 0.55; }
.profile-section li.is-deleted { opacity: 0.55; }                                   /* soft-deleted v profilu (jen admin) */
.profile-section li.is-deleted a { text-decoration: line-through; }
.webs__desc { color: var(--ink-3); }

/* ── Events list (small/upcoming widget) ─────────────────────── */
ul.events { list-style: none; padding-left: 0; margin: 0 0 1.2rem; }
ul.events li {
    padding: 9px 0;
    border-bottom: 1px dashed var(--rule-soft);
    font-size: 14.5px;
}
ul.events li:last-child { border-bottom: none; }
.event-row__when, .event-row__place {
    color: var(--ink-3);
    font-size: 12.5px;
}

.event-facts { color: var(--ink-3); margin: 0.3rem 0 0.6rem; font-size: 0.95rem; }
.event-address { color: var(--ink-3); font-size: 0.9rem; }
.event-discussion {
    margin-top: 2rem;
    padding-top: 1rem;
    border-top: 1px solid var(--rule);
}
.event-ical { margin-left: 0.5rem; font-size: 0.85rem; color: var(--link); }

table.matches { width: 100%; border-collapse: collapse; margin: 1rem 0; }
table.matches th, table.matches td {
    text-align: left;
    padding: 0.5rem 0.7rem;
    border-bottom: 1px solid var(--rule);
}
table.matches th { background: var(--rule-soft); font-weight: 600; }

.empty { color: var(--ink-3); font-style: italic; }

/* pseudo-reklama (jen mimo produkci) — šrafovaný „ad slot" box, ať je vidět footprint + který slot */
.ad--demo {
    background:
        repeating-linear-gradient(135deg, var(--rule-soft) 0 8px, transparent 8px 16px),
        var(--paper-2);
    border: 1px solid var(--rule);
    border-radius: var(--r);
    min-height: 90px;
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
    font-family: var(--font-mono); font-size: 11px; color: var(--ink-3); letter-spacing: 0.06em;
}
.ad--demo b { font-size: 9.5px; letter-spacing: 0.15em; text-transform: uppercase; }

/* ── Home grid (web home page: feed + sidebar) ──────────────── */
.home-grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    gap: 36px;
    margin-top: 8px;
}
.home-grid__main { min-width: 0; }
.home-grid__side {
    display: flex;
    flex-direction: column;
    gap: 22px;
    min-width: 0;
}

/* sidebar bloky */
.sidebar-block { min-width: 0; }
.sidebar-block .h-section,
.sidebar-block > h3 {
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 400;
    color: var(--ink);
    border-bottom: 1px solid var(--rule);
    padding-bottom: 6px;
    margin: 0 0 10px;
    display: flex;
}

/* Výsledky — poslední výsledky turnajů (kartičky) */
.h-section--live::before {
    content: "";
    width: 7px; height: 7px;
    border-radius: 50%;
    background: var(--ok);
    align-self: center;
    margin-right: 7px;
    flex: none;
}
.results-list { display: flex; flex-direction: column; gap: 9px; }
.result-item {
    display: flex; flex-direction: column;
    background: var(--paper-2);
    border: 1px solid var(--rule);
    border-radius: var(--r);
    padding: 9px 11px;
}
.result-when {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.04em;
    color: var(--ink-3);
}
.result-title {
    font-family: var(--font-display);
    font-size: 15.5px; line-height: 1.2;
    color: var(--ink);
    text-decoration: none;
    text-wrap: balance;
    margin-top: 2px;
}
.result-title:hover { color: var(--accent); text-decoration: none; }
.result-podium {
    list-style: none;
    margin: 8px 0 0;
    padding: 0;
    font-size: 12.5px;
    color: var(--ink-2);
}
.result-podium li { display: flex; align-items: center; gap: 7px; line-height: 1.85; }
.result-rank {
    font-family: var(--font-mono);
    font-size: 9.5px;
    width: 15px; height: 15px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 50%;
    background: var(--rule-soft);
    color: var(--ink-3);
    flex: none;
}
.result-podium li:first-child .result-rank { background: var(--ink); color: var(--paper); }
.result-podium li:first-child .result-name { color: var(--ink); font-weight: 500; }

.ad { min-width: 0; }   /* kontejner AdSense jednotky; pozici/odsazení řeší extra_cls (content-ad…) */
/* In-content reklama v hlavním sloupci (vlákno mezi OP a reakcemi / konec, in-feed po 6 položkách,
   adresář/turnaje) — vždy viditelná, jen s odsazením od obsahu. */
.content-ad { margin: 16px 0; }
.feed-ad { padding: 2px 0; }                 /* reklama na konci feedu = <li> bez řádkového rámečku */

/* ── Přihlášené týmy (volitelné strukturované zadání na turnaji) ── */
.event-teams { margin: 1.4rem 0; }
.event-teams__count {
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.03em;
    color: var(--ink-3);
    white-space: nowrap;
}
.event-teams__list { list-style: none; margin: 0; padding: 0; font-size: 14px; }
.event-teams__list li {
    padding: 4px 0;
    line-height: 1.5;
    border-bottom: 1px dashed var(--rule-soft);
}
.event-teams__list li:last-child { border-bottom: none; }
.event-teams__name { font-weight: 500; }
.event-teams__players { color: var(--ink-3); font-size: 13px; }

/* Výsledky / pódium — očíslované pořadí, medailové barvy u prvních tří. */
.event-teams__rank {
    display: inline-block;
    min-width: 1.7em;
    font-family: var(--font-mono);
    font-weight: 600;
    color: var(--ink-3);
}
.event-teams__rank--1 { color: #b8860b; }   /* zlatá */
.event-teams__rank--2 { color: #8a8a8a; }   /* stříbrná */
.event-teams__rank--3 { color: #b07a47; }   /* bronz */
.event-teams__podium li:first-child .event-teams__name { font-weight: 600; }
.event-teams__rest-label {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ink-3);
    margin: 12px 0 2px;
}
.event-teams__list--rest .event-teams__name { font-weight: 400; }
.event-teams__nudge { font-size: 12.5px; margin: 0 0 9px; }


/* Turnaj — klikací zadávání pořadí (picker nad textareou) */
.teams-picker {
    margin: 8px 0 4px;
    padding: 12px 13px;
    background: var(--paper-2);
    border: 1px solid var(--rule);
    border-radius: var(--r);
}
.tp-head {
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ink-2);
}
.tp-head--roster { margin-top: 13px; }
.tp-hint { text-transform: none; letter-spacing: 0; color: var(--ink-3); }
.tp-podium { list-style: none; margin: 8px 0 0; padding: 0; }
.tp-slot {
    display: flex; align-items: center; gap: 9px;
    padding: 5px 7px;
    border: 1px solid var(--rule);
    border-radius: var(--r);
    background: var(--paper);
    margin-bottom: 5px;
}
.tp-rank {
    flex: none;
    width: 19px; height: 19px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 50%;
    font-family: var(--font-mono); font-size: 11px;
    background: var(--rule-soft); color: var(--ink-2);
}
.tp-slot:first-child .tp-rank { background: var(--ink); color: var(--paper); }
.tp-name { flex: 1 1 auto; font-size: 14px; }
.tp-slot:first-child .tp-name { font-weight: 600; }
.tp-x {
    flex: none;
    border: none; background: none; cursor: pointer;
    color: var(--ink-3); font-size: 13px; line-height: 1; padding: 4px;
}
.tp-x:hover { color: var(--accent); }
.tp-empty { font-size: 13px; color: var(--ink-3); margin: 8px 0 0; }
.tp-roster { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 7px; }
.tp-chip {
    border: 1px solid var(--rule);
    background: var(--paper);
    border-radius: 14px;
    padding: 4px 11px;
    font-size: 13px; color: var(--ink);
    cursor: pointer;
}
.tp-chip:hover { border-color: var(--ink-3); background: var(--rule-soft); }
.tp-allplaced { font-size: 12.5px; color: var(--ink-3); }

/* ── Místo: okresní popisek + geo filtr kalendáře + odkaz na mapu ── */
/* Tichý popisek, ne nalepený štítek: tlumená barva + tečka jako oddělovač (● okr. X),
   splývá s místem jako jeho přirozené pokračování. */
.okres-badge {
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: 0.02em;
    color: var(--ink-3);
    white-space: nowrap;
}
.okres-badge::before {
    content: "●";
    color: var(--ink-4);
    font-size: 5px;
    vertical-align: middle;
    margin: 0 5px 1px;
}
.geo-filter { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; }
.geo-chip {
    font-size: 12px;
    padding: 3px 11px;
    border-radius: 99px;
    border: 1px solid var(--rule);
    background: var(--paper-2);
    text-decoration: none;
    white-space: nowrap;
}
/* :link/:visited explicitně — jinak globální `a:visited` (vyšší specificita) přebije
   barvu textu na navštívenou (tmavou) a aktivní kraj je nečitelný na tmavém pozadí. */
.geo-chip:link, .geo-chip:visited { color: var(--ink-2); }
.geo-chip:hover { border-color: var(--ink-3); text-decoration: none; }
.geo-chip--on { background: var(--ink); border-color: var(--ink); }
.geo-chip--on:link, .geo-chip--on:visited, .geo-chip--on:hover { color: var(--paper-3); }
.det-head__meta { font-size: 12.5px; color: var(--ink-3); }   /* byline pod H1 (např. „Naposledy upraveno") */

/* Adresář míst (stránka míst: kraj → okres → místo) */
.place-dir__filter {
    width: 100%; max-width: 360px; margin: 0 0 14px;
    padding: 7px 11px; font-size: 14px;
    border: 1px solid var(--rule); border-radius: var(--r);
}
.place-dir__kraj { margin: 0 0 18px; }
.place-dir__kraj > h2 { margin: 0 0 6px; }
.place-dir__okres {
    margin: 10px 0 2px; font-size: 12px; font-weight: 600;
    color: var(--ink-3); text-transform: uppercase; letter-spacing: .04em;
}
.place-dir__list { list-style: none; margin: 0 0 4px; padding: 0; }
.place-dir__list li { padding: 3px 0; font-size: 14px; border-top: 1px solid var(--rule-soft); }
.place-dir__list li:first-child { border-top: 0; }
.place-dir__count { color: var(--ink-3); font-size: 12px; }
.place-dir__hint { font-weight: 400; font-size: 12.5px; color: var(--ink-3); }

/* Našeptávač míst v editačním formuláři (autocomplete) */
.place-suggest__menu {
    border: 1px solid var(--ink-3);
    border-radius: var(--r);
    background: #fff;
    margin: -4px 0 10px;
    overflow: hidden;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
}
.place-suggest__opt {
    display: block;
    width: 100%;
    text-align: left;
    padding: 7px 11px;
    font-size: 13.5px;
    color: var(--ink);
    background: transparent;
    border: 0;
    border-top: 1px solid var(--rule-soft);
    cursor: pointer;
}
.place-suggest__opt:first-child { border-top: 0; }
.place-suggest__opt:hover { background: var(--rule-soft); }
.place-suggest__okres { color: var(--ink-3); font-family: var(--font-mono); font-size: 11px; }
.place-suggest__new { color: var(--ink-2); font-style: italic; }

/* Admin: sloučení míst (na stránce místa) */
.place-merge { margin: 18px 0 0; font-size: 13px; }
.place-merge > summary { color: var(--ink-3); cursor: pointer; font-size: 12.5px; }
.place-merge form { margin-top: 10px; max-width: 460px; }
.place-merge__note { font-size: 11.5px; color: var(--ink-3); margin: 6px 0 10px; }

/* ── Feed (sjednoceny seznam thread+event napric stejnymi widgety) ── */
ul.feed {
    list-style: none;
    padding: 0;
    margin: 0 0 1rem;
    display: flex;
    flex-direction: column;
}
.feed-row {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);   /* kdy | obsah (počty jsou teď oválky za názvem, ne sloupec) */
    gap: 10px;
    align-items: baseline;
    padding: 5px 0;
    border-bottom: 1px dashed var(--rule);
    font-size: 14px;
    color: inherit;
}
.feed-row:last-child { border-bottom: none; }
.feed-row:hover { background: var(--paper-3); }
.feed-row__when {
    font-family: var(--font-mono);
    font-size: 11.5px;
    color: var(--ink-3);
    white-space: nowrap;
}

/* Title cell: na širokých displejích JEDNA řádka — ikona/badge/oválky/autor drží šířku, titulek
   se ořízne ellipsisem (ať se nezalamuje na 2 řádky). Na mobilu se přepne na wrap (níž v media query). */
.feed-row__title {
    min-width: 0;
    line-height: 1.4;
    display: flex;
    align-items: baseline;
    flex-wrap: nowrap;     /* nikdy nezalomit na 2 řádky */
    overflow: hidden;      /* co přeteče, oříznout (ne tlačit autora dolů) */
}
/* Typ záznamu — decentní monochromní ikona (kalendář = turnaj, bublina = vlákno).
   Inline v titulku → drží se 1. řádku, neořezává čas. */
.feed-row__ico {
    width: 13px;
    height: 13px;
    margin-right: 5px;
    vertical-align: middle;
    fill: none;
    stroke: var(--ink-3);
    stroke-width: 1.3;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.feed-row__titlelink {
    color: var(--link);
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* Meta okolo názvu (ikona, badge/tag, oválky, autor) DRŽÍ šířku → krátí se jen NÁZEV. */
.feed-row__ico,
.feed-row__cat,
.feed-row__by,
.feed-row__title > .pill { flex: none; }
.feed-row__by { white-space: nowrap; }   /* víceslovný autor (Anonym Xyz) se nezlomí */
.feed-row__ico { align-self: center; }   /* ikona svisle vystředěná (flex baseline by ji posadila nízko) */
.feed-row__by {
    color: var(--ink-3);
    font-size: 12px;
    margin-left: 4px;
}
.feed-row__by a { color: var(--ink-3); }
.feed-row__by a:hover { color: var(--ink); text-decoration: none; }

/* Badge (kategorie nebo jmeno webu) — uppercase mono pill */
.feed-row__cat {
    display: inline-flex;
    align-items: center;
    padding: 1px 7px;
    height: 18px;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--ink-2);
    background: var(--rule-soft);
    border-radius: 2px;
    margin-right: 4px;
    text-decoration: none;
    vertical-align: 1px;
    flex: 0 0 auto;
    max-width: 160px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.feed-row__cat:hover { background: var(--rule); color: var(--ink); text-decoration: none; }
.feed-row__cat--new {
    background: #2A7A4F;
    color: #fff;
}
.feed-row__cat--new:hover { background: #1f5c3b; color: #fff; }

/* Count pill — pravy okraj */
.feed-row.is-deleted .feed-row__titlelink { text-decoration: line-through; opacity: 0.55; }

/* fallback meta hint pro pripadne neunifikovane listingy */
.thread-meta {
    color: var(--ink-3);
    font-family: var(--font-mono);
    font-size: 11.5px;
    margin-left: 6px;
}

/* ── Form: new thread / new event (sjednoceny "form-card" styl) ─ */
.form-card {
    background: var(--paper-3);
    border: 1px solid var(--rule);
    border-radius: var(--r);
    padding: 18px 22px 16px;
    margin-top: 32px;
}
.form-card__head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 16px;
    flex-wrap: wrap;
    padding-bottom: 12px;
    margin-bottom: 14px;
    border-bottom: 1px solid var(--rule);
}
.form-card__head h2 {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 400;
    color: var(--ink);
    border: 0;
    padding: 0;
    margin: 0;
    display: block;
}
/* Hlavička composeru = jméno autora (jako u příspěvku v diskuzi), místo nadpisu „Nová reakce". */
.form-card__who { font-weight: 600; color: var(--ink); font-size: 14px; }
.form-card__author {
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ink-3);
}
.form-card__author strong {
    color: var(--ink);
    font-weight: 600;
    margin-left: 4px;
}

/* prilohy: schovane do toggle za "+ pridat obrazky / video" */
.form-attach {
    margin: 2px 0 14px;
    padding: 12px;
    background: var(--paper-2);
    border: 1px dashed var(--rule);
    border-radius: var(--r);
}
.form-attach__toggle {
    background: none;
    border: 0;
    padding: 0;
    color: var(--ink-3);
    font-family: var(--font-body);
    font-size: 13px;
    cursor: pointer;
    text-decoration: none;
}
.form-attach__toggle:hover { color: var(--ink); text-decoration: underline; }
.form-attach__toggle[aria-expanded="true"] { color: var(--ink); }
/* `.field` = ručně psané řádky (reply composer); `.form-card .form-row` = fb.Form
   řádky (thread form po M5) — stejný vizuál, proto sdílené selektory. */
.field,
.form-card .form-row {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 14px;
}
.field > label,
.field__label,
.form-card .form-row > label {
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ink-3);
    font-weight: 500;
    display: flex;
    justify-content: space-between;
    align-items: baseline;
}
.field__hint-r {
    color: var(--ink-4);
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
    font-size: 11px;
}
.field input[type="text"],
.field input[type="email"],
.field textarea,
.field select,
.form-card .form-row input[type="text"],
.form-card .form-row input[type="email"],
.form-card .form-row textarea,
.form-card .form-row select {
    font: 14px var(--font-body);
    color: var(--ink);
    background: var(--paper-3);
    border: 1px solid var(--rule);
    border-radius: var(--r);
    padding: 10px 12px;
    width: 100%;
}
.field input[type="text"]:focus,
.field input[type="email"]:focus,
.field textarea:focus,
.field select:focus,
.form-card .form-row input[type="text"]:focus,
.form-card .form-row input[type="email"]:focus,
.form-card .form-row textarea:focus,
.form-card .form-row select:focus {
    outline: none;
    border-color: var(--ink-3);
    background: #fff;
}
.field textarea,
.form-card .form-row textarea {
    min-height: 150px;
    resize: vertical;
    line-height: 1.55;
    font-family: var(--font-mono);
}
.field__meta {
    color: var(--ink-3);
    font-size: 11.5px;
    margin-top: 4px;
}

.form-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 6px;
    padding-top: 12px;
    gap: 12px;
    flex-wrap: wrap;
}
.form-actions__left { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.form-actions__right { display: flex; gap: 8px; align-items: center; }
.form-actions__hint {
    color: var(--ink-3);
    font-family: var(--font-mono);
    font-size: 11px;
}

.form-error {
    background: #fde2e2;
    color: var(--err);
    padding: 10px 14px;
    border-radius: var(--r);
    margin: 0 0 14px;
    font-size: 13.5px;
    border-left: 3px solid var(--err);
}

.rules-note {
    background: var(--paper-2);
    border-left: 3px solid #C26B3A;
    padding: 10px 14px;
    border-radius: 2px;
    font-size: 12.5px;
    color: var(--ink-2);
}
.rules-note strong { color: var(--ink); }

/* ── Tournaments table ───────────────────────────────────────── */
table.tournaments {
    width: 100%;
    table-layout: fixed;   /* fixní šířky sloupců → ellipsis v buňce funguje (auto layout nechal nowrap název roztáhnout tabulku přes okraj stránky) */
    border-collapse: collapse;
    font-size: 14px;
    margin: 0 0 1rem;
    /* Absolutní (ne poměrná) výška řádku → 1. i 2. řádek obou sloupců (datum/čas vs. název/místo)
       je stejně vysoký, takže čas svisle sedí s místem. Poměr by selhal: různá velikost písma
       data a názvu dá různě vysoký řádek a druhé řádky se rozejdou. */
    --row-line: 18px;
}
table.tournaments th:first-child { width: 120px; }   /* fixed layout: šířku 1. sloupce (Kdy) řídí hlavička */
table.tournaments th {
    text-align: left;
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ink-3);
    font-weight: 500;
    padding: 8px;
    border-bottom: 1px solid var(--rule);
}
.tournament-row td {
    padding: 5px 8px;
    border-bottom: 1px dashed var(--rule);
    vertical-align: top;   /* horní zarovnání + sjednocené řádkování (níž) = vršek data a názvu sedí (baseline lámal flex v t-co) */
}
table.tournaments tbody tr:hover td { background: var(--paper-3); }
.tournament-row .t-when {
    color: var(--ink-2);
    font-family: var(--font-mono);
    font-size: 12px;
    line-height: var(--row-line);   /* shodné s .t-co__head/.t-co__place → datum i čas sedí s názvem i místem */
    white-space: normal;   /* fixed layout: dlouhý vícedenní rozsah se zalomí (na pomlčce), nepřeteče sloupec */
    width: 120px;
}
/* Den dědí barvu data (--ink-2); čas je doplňková info → světlejší (--ink-3), aby tolik nerušil. */
.tournament-row .t-when .t-dow { margin-right: 6px; }  /* den je PŘED datem → mezera ZA ním (So‹mezera›20.06.) */
.tournament-row .t-when .t-time { margin-left: 6px; color: var(--ink-3); }  /* desktop: čas na stejné řádce za datem */
/* Sloupec „Co" je hrdina — pohltí zbývající šířku (datum se stáhne k obsahu). Název na
   plné šířce; místo+okres jako tichý kontextový řádek pod ním. `padding-left` = jemně větší
   mezera od sloupce s datem (úzký sloupec data ho jinak vyplní a obsah je nalepený). */
.tournament-row .t-co { width: 100%; padding-left: 12px; }
/* Hlavička = flex: název ukrojí ellipsisem, oválky/tagy si drží šířku (zůstanou vidět). */
.tournament-row .t-co__head { display: flex; align-items: baseline; min-width: 0; line-height: var(--row-line); }
.tournament-row .t-co__link {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;       /* název vždy 1 řádek; přeteklý se zkrátí … */
    color: var(--link);
}
.tournament-row .t-co__head > .tournament-tag,
.tournament-row .t-co__head > .pill { flex: 0 0 auto; }
/* Místo+okres = flex jako hlavička: místo ukrojí ellipsisem, okres si drží šířku (zůstane vidět). */
.tournament-row .t-co__place {
    display: flex;
    align-items: baseline;
    min-width: 0;
    line-height: var(--row-line);   /* 2. řádek stejně vysoký jako čas → místo sedí s časem */
    margin-top: 2px;   /* trochu vzduchu mezi názvem a místem; čas dostane stejný posun → zůstane zarovnaný */
    font-size: 11.5px;
    color: var(--ink-2);
}
.tournament-row .t-co__place > span {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;       /* místo vždy 1 řádek → položka je vždy přesně 2 řádky */
}
.tournament-row .t-co__place > .okres-badge { flex: 0 0 auto; }
.tournament-row.is-past { opacity: 0.7; }   /* o chlup tmavší než dřív (0.55) — čitelné i na slabších mobilech */
.tournament-row.is-past a { color: var(--link); }   /* modrý nádech (ztlumený opacitou) → jasně klikatelný odkaz */
.tournament-row.is-deleted .t-co__link { text-decoration: line-through; }

/* Klikatelné oválky za názvem (reakce/fotky, jen nenulové) — SDÍLENÉ feed i kalendář:
   tenký obrys, krémové pozadí, ikonka + číslo. */
.pill {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-family: var(--font-mono);
    font-size: 10.5px;
    line-height: 1;
    color: var(--ink-2);
    background: var(--paper-2);
    border: 1px solid var(--rule);
    border-radius: 9px;
    padding: 2px 7px 2px 6px;
    margin-left: 6px;
    vertical-align: 1px;
    white-space: nowrap;
    text-decoration: none;
}
.pill:hover {
    background: var(--rule-soft);
    border-color: var(--ink-4);
    color: var(--ink);
    text-decoration: none;
}
.pill:hover svg { stroke: var(--ink-2); }
.pill svg {
    width: 11px; height: 11px;
    fill: none;
    stroke: var(--ink-3);
    stroke-width: 1.3;
    stroke-linecap: round;
    stroke-linejoin: round;
}
/* Foťák (počet fotek): PLNÁ tmavá silueta (--ink) — jiný tvar i VÁHA než světlá outline bublina
   reakce; nejsilnější rozlišení při 11px. (Barevný nádech: přepnout fill na --accent.) */
.pill--photo svg, .pill--photo:hover svg {
    fill: var(--ink);
    stroke: none;
    width: 12px; height: 12px;
}

/* group separator row */
tr.tournament-group td {
    background: var(--rule-soft);
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ink-2);
    padding: 8px 8px;
    border-top: 1px solid var(--rule);
    border-bottom: 1px solid var(--rule);
}
tr.tournament-group .group-count {
    color: var(--ink-3);
    font-weight: 400;
    margin-left: 8px;
    text-transform: none;
    letter-spacing: 0.05em;
}

/* tournament-row tag pills (trojice, dvojice, NOVÉ) */
.tournament-tag {
    display: inline-block;
    font-family: var(--font-mono);
    font-size: 10.5px;
    color: var(--ink-2);
    background: var(--rule-soft);
    padding: 1px 7px;
    border-radius: 2px;
    margin-left: 8px;
    vertical-align: 1px;
    text-decoration: none;
}
.tournament-tag--new { background: #2A7A4F; color: #fff; margin-left: 0; margin-right: 6px; }
.tournament-tag--live { background: var(--accent); color: #fff; }

.tournaments-archive-heading {
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ink-2);
    margin: 0.6rem 0;
}
nav.tournaments-archive {
    display: flex; justify-content: space-between; align-items: baseline;
    margin: 18px 0;
    font-family: var(--font-mono); font-size: 12px;
    color: var(--ink-3);
}
nav.tournaments-archive a { color: var(--ink-2); }
nav.tournaments-archive a:hover { color: var(--ink); text-decoration: none; }
nav.tournaments-archive .current { color: var(--ink); font-weight: 600; }

.tournament-cta--anon {
    color: var(--ink-3);
    background: var(--paper-2);
    padding: 0.7rem 1rem;
    border-radius: var(--r);
    border: 1px solid var(--rule);
    font-size: 13px;
    margin-top: 1rem;
}

/* page-head action button (CTA prislousici stránce, např. + Nový turnaj) */
.page-head__action {
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 500;
    padding: 7px 12px;
    border: 1px solid var(--ink);
    background: var(--ink);
    color: var(--paper-3);
    border-radius: var(--r);
    display: inline-flex;
    align-items: center;
    gap: 7px;
    text-decoration: none;
    white-space: nowrap;
}
.page-head__action:hover {
    background: var(--ink-2);
    color: var(--paper-3);
    text-decoration: none;
}
.page-head__action--ghost {
    background: transparent;
    color: var(--ink);
    border-color: var(--rule);
}
.page-head__action--ghost:hover {
    background: var(--rule-soft);
    color: var(--ink);
    border-color: var(--ink-3);
}

/* ── Pagination ──────────────────────────────────────────────── */
nav.pagination {
    display: flex; gap: 10px;
    justify-content: center;
    margin: 18px 0;
    font-family: var(--font-mono);
    font-size: 12px;
    color: var(--ink-3);
}
nav.pagination a { color: var(--ink-2); }
nav.pagination a:hover { color: var(--ink); text-decoration: none; }
nav.pagination b { color: var(--ink); font-weight: 600; }

/* ── Vote bar — kompaktní pill v post__actions (OP i reply) ──────── */
/* hlas VISÍ ZA TEXTEM (konec posl. odstavce, přes form=): holé „▲ N ▼" bez rámečku, tlumené */
.post__vote {
    display: inline-flex; align-items: baseline; gap: 1px;
    margin-left: 8px;
    white-space: nowrap;
    vertical-align: baseline;
}
.vote-btn {
    background: none; border: none;
    cursor: pointer;
    font-size: 11px;
    padding: 2px 4px;
    line-height: 1;
    color: var(--ink-4);
    border-radius: 4px;
}
.vote-btn--up:hover { color: var(--ok); background: var(--rule-soft); }
.vote-btn--down:hover { color: var(--accent); background: var(--rule-soft); }
.vote-total {
    min-width: 10px;
    text-align: center;
    font-weight: 600;
    font-family: var(--font-mono);
    font-size: 12px;
    color: var(--ink-2);
}
.vote-bar--loading { opacity: 0.55; pointer-events: none; }
.vote-error { color: var(--accent); font-size: 0.85rem; margin-left: 0.6rem; }

/* ── Footer ──────────────────────────────────────────────────── */
.site-footer {
    max-width: var(--shell-w);
    margin: 60px auto 0;
    border-top: 1px solid var(--rule);
    padding: 22px var(--gut) 30px;
    font-family: var(--font-mono);
    font-size: 11.5px;
    color: var(--ink-3);
    display: flex; justify-content: space-between;
    gap: 16px; flex-wrap: wrap;
}
.site-footer a { color: var(--ink-3); }
.site-footer a:hover { color: var(--ink); text-decoration: none; }
.site-footer__copy { display: inline-flex; gap: 8px; flex-wrap: wrap; }

/* ── Flash messages ──────────────────────────────────────────── */
.flash-list { list-style: none; padding: 0; margin: 0 0 1rem; }
.flash { padding: 0.55rem 0.9rem; border-radius: var(--r); margin-bottom: 0.5rem; }
.flash--success { background: #e6f4ea; color: var(--ok); }
.flash--info    { background: #e7f0fb; color: #0b4d92; }
.flash--warning { background: #fff4e0; color: var(--warn); }
.flash--error   { background: #fde2e2; color: var(--err); }

/* ── Error pages ─────────────────────────────────────────────── */
.error h1 { font-size: 3rem; color: var(--ink-3); margin-bottom: 0.4rem; }

/* ── Auth forms ──────────────────────────────────────────────── */
.auth-shell {
    max-width: 420px;
    margin: 0 auto;
    background: var(--paper-3);
    padding: 1.8rem 2rem 2rem;
    border-radius: var(--r);
    border: 1px solid var(--rule);
}
.auth-shell--wide { max-width: 720px; }
.auth-shell h1 { margin-top: 0; }
.auth-form { display: flex; flex-direction: column; gap: 0.5rem; }
.auth-form label { font-size: 0.9rem; font-weight: 600; margin-top: 0.6rem; }
.auth-form input[type="text"],
.auth-form input[type="email"],
.auth-form input[type="password"] {
    padding: 0.55rem 0.7rem;
    border: 1px solid var(--rule);
    border-radius: var(--r);
    font: inherit;
    background: var(--paper-3);
}
.auth-form button[type="submit"] {
    margin-top: 1.2rem;
    padding: 0.65rem 1.4rem;
    background: var(--ink);
    color: var(--paper-3);
    border: none;
    border-radius: var(--r);
    cursor: pointer;
    font-size: 1rem;
    font-weight: 600;
}
.auth-form button[type="submit"]:hover { background: #000; }

/* Veřejné formy přes fb.Form → formhtml: stejný auth-form shell, ale pole jdou do
   .form-row obalů (label nad kontrolou) s date/number/textarea/select vstupy. */
.auth-form input[type="date"],
.auth-form input[type="number"],
.auth-form input[type="url"],
.auth-form textarea,
.auth-form select {
    padding: 0.55rem 0.7rem;
    border: 1px solid var(--rule);
    border-radius: var(--r);
    font: inherit;
    background: var(--paper-3);
}
.auth-form textarea { font-family: var(--font-mono); }
.auth-form .form-row { display: flex; flex-direction: column; gap: 0.3rem; }
.auth-form .form-row label { margin-top: 0; }
.auth-form .form-row input:not([type="radio"]):not([type="checkbox"]),
.auth-form .form-row textarea,
.auth-form .form-row select { width: 100%; box-sizing: border-box; }
.auth-form .form-row--checkbox label { flex-direction: row; align-items: center; gap: 0.4rem; font-weight: 400; }

.auth-error {
    background: #fde2e2;
    color: var(--err);
    padding: 0.55rem 0.9rem;
    border-radius: var(--r);
    margin: 0 0 1rem;
    font-size: 0.95rem;
}
.auth-links { margin-top: 1.2rem; font-size: 0.92rem; color: var(--ink-3); }
.auth-or { text-align: center; color: var(--ink-3); margin: 1.2rem 0 0.7rem; }

.oauth-block { display: flex; flex-direction: column; gap: 0.5rem; }
.oauth-btn {
    display: block;
    text-align: center;
    padding: 0.6rem 1rem;
    background: var(--paper-3);
    color: var(--ink);
    border: 1px solid var(--rule);
    border-radius: var(--r);
    text-decoration: none;
    font-weight: 500;
}
.oauth-btn:hover { background: var(--rule-soft); text-decoration: none; }
.oauth-btn--google { color: #c5221f; border-color: rgba(197, 34, 31, 0.3); }
.oauth-btn--microsoft { color: #00a4ef; }
.oauth-btn--github { color: #24292e; }

/* ── Web admin (members table, radio-group) ──────────────────── */
.members-table { width: 100%; border-collapse: collapse; margin: 1rem 0; background: var(--paper-3); }
.members-table th, .members-table td {
    text-align: left;
    padding: 0.45rem 0.7rem;
    border-bottom: 1px solid var(--rule);
}
.members-table .empty { color: var(--ink-3); text-align: center; }
.radio-group { display: flex; flex-direction: column; gap: 0.35rem; margin: 0.5rem 0; }
.radio-group label { font-weight: normal; display: flex; align-items: center; gap: 0.4rem; }

/* ── Buttons / links ─────────────────────────────────────────── */
.button-link {
    display: inline-block;
    padding: 0.45rem 0.95rem;
    background: var(--ink);
    color: var(--paper-3);
    border: none;
    border-radius: var(--r);
    text-decoration: none;
    font-size: 0.95rem;
    cursor: pointer;
}
.button-link:hover { background: #000; color: var(--paper-3); text-decoration: none; }
.button-link--danger { background: var(--accent); }
.button-link--danger:hover { background: #8c241d; }

/* ── Admin shell (minimal) ───────────────────────────────────── */
.admin-shell { max-width: 1100px; margin: 0 auto; padding: 1.5rem 1.2rem; }
.admin-table { width: 100%; border-collapse: collapse; margin: 1rem 0; background: var(--paper-3); }
.admin-table th, .admin-table td {
    padding: 0.5rem 0.7rem;
    border-bottom: 1px solid var(--rule);
    text-align: left;
    font-size: 0.95rem;
}
/* Summary table je sekundární (inbox pod ní je důležitější) → svisle úsporná: malé řádky, font. */
.admin-summary-table { width: 100%; border-collapse: collapse; background: var(--paper-3); font-size: 0.82rem; }
.admin-summary-table th, .admin-summary-table td {
    padding: 0.18rem 0.6rem;
    border-bottom: 1px solid var(--rule);
    text-align: left;
    line-height: 1.3;
}

/* Admin inbox (reporty + kontakt) pod summary table — hustá tabulka, mono časy. */
.admin-inbox__title { margin: 1.4rem 0 0.4rem; font-size: 1.05rem; }
.admin-inbox__open { font-weight: 400; font-size: 0.8rem; color: var(--ink-3); }
.admin-inbox-table { width: 100%; border-collapse: collapse; font-size: 0.85rem; }
.admin-inbox-table td {
    padding: 0.3rem 0.55rem;
    border-bottom: 1px solid var(--rule-soft);
    vertical-align: top;
    text-align: left;
}
.admin-inbox-table .num { font-family: var(--font-mono); font-size: 0.78rem; color: var(--ink-3); white-space: nowrap; }
.admin-inbox__kind {
    display: inline-block; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.04em;
    color: var(--paper-3); background: var(--ink-3); border-radius: 3px; padding: 0 4px; margin-right: 4px;
}
.admin-inbox__ip, .admin-inbox__ref { font-family: var(--font-mono); font-size: 0.72rem; color: var(--ink-4); }
.admin-inbox__resolve { background: none; border: 1px solid var(--rule); border-radius: var(--r); cursor: pointer; font-size: 0.75rem; padding: 0.1rem 0.5rem; }
.admin-inbox__row.is-closed { opacity: 0.45; }

/* Report / kontakt textarea (samostatná stránka) */
.report-textarea { width: 100%; max-width: 640px; box-sizing: border-box; }
.admin-toolbar { display: flex; justify-content: space-between; align-items: end; margin: 1rem 0; }
.admin-mode-inline { display: inline-flex; align-items: center; gap: 0.5rem; margin: 0.8rem 0; }
.admin-toggle {
    padding: 0.3rem 0.8rem;
    border: 1px solid var(--rule);
    background: var(--paper-3);
    border-radius: var(--r);
    cursor: pointer;
}
.admin-toggle.is-active { background: var(--ink); color: var(--paper-3); border-color: var(--ink); }
.admin-form .form-row { margin-bottom: 1rem; }
.admin-form label { display: block; font-weight: 600; margin-bottom: 0.3rem; }
.admin-form input[type="text"],
.admin-form input[type="number"],
.admin-form input[type="date"],
.admin-form input[type="url"],
.admin-form textarea,
.admin-form select {
    width: 100%;
    padding: 0.45rem 0.6rem;
    border: 1px solid var(--rule);
    border-radius: var(--r);
    font: inherit;
    background: var(--paper-3);
}
.admin-form textarea { font-family: var(--font-mono); }
.admin-form button[type="submit"] {
    padding: 0.55rem 1.4rem;
    background: var(--ink);
    color: var(--paper-3);
    border: none;
    border-radius: var(--r);
    cursor: pointer;
    font-size: 1rem;
}
.admin-form button[type="submit"]:hover { background: #000; }
.form-error { color: var(--err); font-size: 0.85rem; margin: 0.3rem 0 0; }
.form-help  { color: var(--ink-3); font-size: 0.85rem; margin: 0.3rem 0 0; }
.back-link  { font-size: 0.9rem; }
.text-muted { color: var(--ink-3); }
.status-callout {
    padding: 0.55rem 0.9rem;
    border-radius: var(--r);
    margin: 0.7rem 0;
    font-size: 0.95rem;
}
.status-callout--success { background: #e6f4ea; color: var(--ok); }
.status-callout--warning { background: #fff4e0; color: var(--warn); }

/* ── Responsive ──────────────────────────────────────────────── */
@media (max-width: 760px) {
    /* Mobil = většina uživatelů Zetlogu. Priorita je HUSTOTA a použitelnost (jako stará
       verze), ne velká editorial typografie. Menší písmo, spacing i chrom. */
    :root { --gut: 8px; }

    body { font-size: 13.5px; line-height: 1.45; }
    h1 { font-size: 21px; margin: 0.2rem 0 0.5rem; }
    h2, .h-section { font-size: 16px; margin: 0.9rem 0 0.5rem; padding-bottom: 4px; }
    h3 { font-size: 13.5px; margin: 0.7rem 0 0.35rem; }
    p, ul, ol, table, blockquote { margin-bottom: 0.7rem; }

    .topbar__inner { height: 42px; }
    .brand { font-size: 13px; }
    .brand--solo { font-size: 18px; }
    .brand-web { font-size: 19px; }
    .content { padding: 12px var(--gut) 28px; }
    .page-head { padding: 10px 0 4px; }
    .page-head__right { text-align: left; max-width: none; }
    .web-menu { margin: 8px 0 12px; }
    .web-menu__link { padding: 9px 11px; font-size: 11px; }

    /* Kalendář turnajů — hustá tabulka (jako stará verze, ne velké řádky).
       Těsné sloupce (krajní bez vnějšího paddingu), úzké datum, zkrácený název. */
    table.tournaments { font-size: 12.5px; --row-line: 16px; }   /* menší výška řádku k menšímu mobilnímu písmu (datum/čas i tady sedí s místem) */
    table.tournaments th { padding: 4px 3px; }
    .tournament-row td { padding: 3px 3px; vertical-align: top; }
    .tournament-row td:first-child, table.tournaments th:first-child { padding-left: 0; }
    .tournament-row td:last-child, table.tournaments th:last-child { padding-right: 0; }
    /* white-space: normal — víkendový rozsah „20.07. Po–21.07." se zalomí; jinak (nowrap)
       roztáhne celý sloupec na svou šířku a krátké datumy mají obří mezeru za sebou. */
    table.tournaments th:first-child { width: 52px; }   /* fixed layout: užší 1. sloupec na mobilu */
    .tournament-row .t-when { width: 52px; font-size: 10.5px; white-space: normal; }   /* line-height = var(--row-line) z .t-when (16px na mobilu) */
    /* mobil: čas na druhý řádek (úzký sloupec); margin-top stejný jako u místa → zůstanou zarovnané;
       font-size o chlup větší (systémový mono kreslí číslice opticky menší než dřív Plex Mono). */
    .tournament-row .t-when .t-time { display: block; margin-left: 0; margin-top: 2px; font-size: 11px; }
    .tournament-row .t-co { font-size: 13px; }
    .tournament-row .t-co__place { font-size: 10.5px; }
    tr.tournament-group td { font-size: 9.5px; padding: 4px 3px; }

    /* Archiv roků: zalomit (jinak přetéká → vodorovný scroll celé stránky) */
    nav.tournaments-archive { display: block; font-size: 11px; margin: 12px 0; line-height: 1.9; }

    /* Feed (home / diskuze) — uzsi datum (cas se zalomi pod nej), titulek do 2+ radek */
    .feed-row { grid-template-columns: 54px minmax(0, 1fr); gap: 8px; }
    .feed-row__when { font-size: 10px; white-space: normal; line-height: 1.3; }
    /* na mobilu necháme titulek zalomit (víc místa svisle), ne ořez na 1 řádku */
    .feed-row__title { display: block; }
    .feed-row__titlelink { overflow: visible; white-space: normal; text-wrap: pretty; }
    .feed-row__title { font-size: 13.5px; }
    .feed-row__cat { font-size: 9.5px; max-width: 130px; }

    /* Detail (turnaj / vlákno) */
    .h-section { margin-bottom: 8px; }
    .prop { font-size: 13.5px; margin-top: 12px; }

    /* Grids → jeden sloupec */
    .home-grid { grid-template-columns: 1fr; gap: 16px; }
    .info-grid { grid-template-columns: 1fr; gap: 16px; }
    .form-grid { grid-template-columns: 1fr; gap: 0; }
    .tabnav { overflow-x: auto; }
}

/* ── Admin: access log (/zzAdmin/log) ─────────────────────────────── */
.access-log { font-size: .8em; }
.access-log td { vertical-align: top; }
.log-row--bot, .log-row--bot a { color: #888; }
.log-kind { font-weight: bold; white-space: nowrap; }
.log-kind--human { color: #275d18; }
.log-kind--unknown { color: #666; }
.log-kind--bot { color: #beaa71; }
.log-err { color: #c00; font-weight: bold; }
.log-slow { color: #c60; font-weight: bold; }
.log-aggs { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1em; margin: 1em 0; }
.log-agg { border: 1px solid #ddd; padding: .5em .8em; background: #fafafa; }
.log-agg h3 { margin: 0 0 .3em 0; font-size: .95em; }
.log-agg__list { margin: 0; padding-left: 1.5em; font-size: .85em; line-height: 1.4; }
