/**
 * @file knowledge-poster.css
 * @author Jouni Miikki
 * SPDX-License-Identifier: MIT
 * @description The public knowledge library in the poster face (kp- prefix; design canvas "AIMEAT
 *   Tietopankin sivu", direction A), and what the Settings Knowledge page still keys on its root
 *   (.og-kp): a package page's title size, and the strip and the details fold on a narrow screen,
 *   which the public library page shares. Every other part of the Settings page is drawn by the
 *   component kit (SettingsPage, List, Roads, Box, Facts, TextArea, Check). The public page
 *   (views/public-knowledge-viewer.js) keeps its desk, list, hints and empty lines here. Public
 *   section headlines compose poster.css, as the profile sections do.
 *   NOTE: this file must be linked in spa.html (useViewCSS is a no-op).
 * @version-history
 *   v1.25.0 -- 2026-09-26 -- On the component kit (page group G7): the Settings page's own rules go,
 *     since the kit draws those parts: the quiet line's margin, the closed entry's count line
 *     (.kp-inline, now the Note), the coral "another author" line (.kp-warn, now Tinted), the name's
 *     wrapping (list.css has it), the group heading's place (.kp-lbl, now the List's Group), the
 *     three roads (.kp-roads, .kp-road, .kp-step and their phone line, now Roads/Road), the paste
 *     field's and the check line's place (.kp-paste, .kp-check), and the sharing facts' places
 *     (.kp-kv, .kp-orgshare, now Facts flush and its controls value). The title size of a package's
 *     page, the strip's and the fold's narrow-screen lines and the public library's rules stay.
 *   v1.24.0 -- 2026-09-26 -- The packages table, the organisms' packages and the library section are the Listing (css/components/listing.css), a unification: the look most tabs use. The rules of kp-rows, kp-group and their cells go (the narrow-screen columns move to the cuts, listing--cols); a group's heading spans the row; the public library page keeps kp-lib and its cells.
 *   v1.23.0 -- 2026-09-26 -- The line under a package's name is the Listing's (.listing-meta): its two rules go (a unification: Jouni's decision "Meta line").
 *   v1.22.0 -- 2026-09-26 -- "List in the catalogue" is the Check line: its size goes, its row and place stay (a unification: Jouni's decision "Check line").
 *   v1.21.0 -- 2026-09-26 -- The figure's "of how many" is the Figure strip's own cut (.og-strip-of), moved unchanged from .kp-of (a move).
 *   v1.20.0 -- 2026-09-26 -- A pasted package's reference and relation lines are the Package preview's own small lines; the typewriter that restyled them goes (a unification).
 *   v1.19.0 -- 2026-09-25 -- The public or private switch's rules (.kp-chip--btn) go: it is the Tab's fold tone (.poster-tab--fold, is-on while public), a unification: Jouni's decision "Tabs and filters".
 *   v1.18.0 -- 2026-09-25 -- A closed entry's grey count line is the Hint (.poster-hint), a unification: the look most tabs use.
 *   v1.17.0 -- 2026-09-25 -- A road or an option you choose is the Choice tile (.poster-choice), a unification: the look most tabs use.
 *   v1.16.0 -- 2026-09-25 -- The preview of a pasted package is the library's Package preview (css/components/package-preview.css), moved unchanged with its class names (UI consolidation phase 5, a move).
 *   v1.15.0 -- 2026-09-25 -- A package's entries are the library's Knowledge entry (css/components/knowledge-entry.css), moved unchanged with their class names (UI consolidation phase 5, a move).
 *   v1.14.0 -- 2026-09-25 -- The loading line's blinking mark is the library's Loading mark (css/components/loading-mark.css), moved unchanged out of five sheets (UI consolidation phase 5, a move).
 *   v1.13.0 -- 2026-09-25 -- The sharing switches and a package's details are the Facts (css/components/facts.css, the wide cut), a unification: the look most tabs use. The grid of kp-kv and its phone rule go; kp-kv keeps only its place (no margin above).
 *   v1.12.0 -- 2026-09-25 -- Every drop-down is the Select field (.select-field, css/components/select-field.css); a place keeps only its width and margin (a unification: the look most tabs use).
 *   v1.12.0 -- 2026-09-25 -- Every many-line field is the Text area (.og-textarea); a place keeps only its size and margin (a unification: the look most tabs use).
 *   v1.11.0 -- 2026-09-25 -- Every many-line field is the Text area (.og-textarea); a place keeps only its size and margin (a unification: the look most tabs use).
 *   v1.10.0 -- 2026-09-25 -- The switch rules go: a setting that is on or off is the Switch (css/components/switch.css); a place's layout value stays here (UI consolidation phase 5, a unification).
 *   v1.9.0 -- 2026-09-25 -- A framed box's own frame and ground go: it is the Object box (.poster-box, css/poster.css); its place (margin, padding) stays here (Jouni's decision "Object box", a unification).
 *   v1.8.0 -- 2026-09-25 -- Every tag is the Tag (.poster-chip and its tones, .poster-chips for a row), a unification: Jouni's decision Tag.
 *   v1.7.0 -- 2026-09-25 -- The times' look is .poster-time; their rules here keep only their place (Jouni's decision "Timestamp", a unification).
 *   v1.6.0 -- 2026-09-25 -- The headings over lists wear .poster-day-title; their rules here keep only their place (Jouni's decision "Group heading", a unification).
 *   v1.5.0 -- 2026-09-25 -- The row labels' look is .poster-label; their rules here keep only their place (Jouni's decision "Row label", a unification).
 *   v1.4.0 -- 2026-09-25 -- The quiet ways on are the library's action link (Jouni's decision "Action
 *     link"): the rules that restyled og-door, the classic buttons and the text buttons here go; a
 *     place's layout value moves to the new class.
 *   2026-09-25 -- Settings' empty lines are the quiet sentence (.poster-quiet, Jouni's decision "Empty line"), keeping .og-empty's place; .og-empty stays for the public knowledge page.
 *   2026-09-25 -- The sort switch loses its rule: the tab (.poster-tab) now draws them (a unification: Jouni's decision "Tabs and filters").
 *   v1.3.0 -- 2026-09-13 -- V2: compose shared page headlines; keep measured sizes on view roots.
 *   v1.2.0 -- 2026-09-13 -- V2: public section headlines use the shared B1 shape.
 *   v1.1.0 -- 2026-09-13 -- V2: compose the public search row's top rule from poster.css.
 *   v1.0.0 — 2026-08-30 — Initial.
 */

.og-kp .kp-chip--case { text-transform: none; }
.og-kp .og-empty { margin: 0; font-size: .9rem; color: var(--text-dim); }
/* The public library page's hint (views/public-knowledge-viewer.js); in Settings a hint is the Hint. */
.og-kp .kp-hint { margin: .6rem 0 0; font-size: .82rem; line-height: 1.5; color: var(--text-dim); }
.og-kp .kp-error { margin: .5rem 0 0; font-size: .85rem; color: var(--accent); }
/* A package's own page in Settings (SettingsPage name="kp" page): its title a size smaller. */
.og-kp.og-page { --poster-page-size: 2.1rem; }

/* ── The public library page (views/public-knowledge-viewer.js); in Settings the library section
      is the Listing ──────────────────────────────────────────────────────────────────────────── */
.kp-lib .kp-m { line-height: 1.5; font-family: var(--font-mono); font-size: .72rem; color: var(--text-dim); }
.kp-lib .kp-m b { color: var(--text); font-weight: 500; }
.kp-lib { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 11rem) minmax(0, 9rem) 6rem 3.5rem; gap: 0 1rem; align-items: center; }
.kp-lib > div { padding: .6rem 0; border-bottom: 1px solid var(--border); min-width: 0; }
.kp-lib--head > div { padding: 0 0 .35rem; border-bottom: 0; font-size: .66rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); }
.kp-lib .kp-nm { font-weight: 800; font-size: .95rem; color: var(--text); }
.kp-lib .kp-nm .og-tbl-name { white-space: normal; overflow-wrap: anywhere; }
.og.og-kp--public { --poster-page-size: 2.6rem; }
.og-kp--public { max-width: 1150px; margin: 0 auto; padding: 1.6rem 1.5rem 3rem; background: var(--bg); }
.og-kp--public .og-sec h2 small { font-family: var(--font-mono); font-size: .8rem; letter-spacing: 0; text-transform: none; color: var(--accent); margin-left: .6rem; }
.kp-desk { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: .8rem 1.4rem; align-items: end; margin-top: 1.4rem; padding: 1rem 0; border-bottom: 3px solid var(--text); }
.kp-field { width: 100%; min-width: 0; box-sizing: border-box; border: 0; border-bottom: 3px solid var(--text); background: transparent; padding: .45rem 0; font: inherit; font-size: 1.2rem; color: var(--text); }
.kp-field:focus { outline: none; border-bottom-color: var(--accent); }
.kp-desk .og-choice-btn { text-transform: uppercase; letter-spacing: .04em; font-size: .7rem; padding: .5rem .8rem; }
.kp-more { margin: .9rem 0 0; }
.kp-more button { background: none; border: 0; padding: 0; cursor: pointer; font: inherit; font-size: .85rem; font-weight: 800; color: var(--text); border-bottom: 2px solid var(--text); }
.kp-entry-sec p { margin: 0; font-size: .97rem; line-height: 1.65; max-width: 72ch; white-space: pre-wrap; overflow-wrap: anywhere; }
.kp-prov { display: block; font-size: .8rem; font-weight: 400; line-height: 1.5; opacity: 1; }

@media (max-width: 1100px) {
  .kp-lib { grid-template-columns: minmax(0, 1fr) 4.5rem; }
  .kp-lib > .kp-m, .kp-lib--head > div:nth-child(2), .kp-lib--head > div:nth-child(3), .kp-lib--head > div:nth-child(4) { display: none; }
  .kp-desk { grid-template-columns: 1fr; }
  .og-kp .og-fold { flex-wrap: wrap; row-gap: .35rem; }
  .og-kp .og-fold-r { white-space: normal; margin-left: 0; flex-basis: 100%; }
  .og-kp .og-strip { flex-wrap: wrap; }
  .og-kp .og-strip > div { flex: 1 1 45%; }
}
