/* Programmes and templates (modules/22-programmes). Class prefixes pg-, tp-. */
.pg-fs { border: 1px solid #d6e0e9; border-radius: 6px; padding: 8px 10px; display: grid; gap: 4px; margin: 0 0 10px; }
.pg-fs legend { font-size: 12px; font-weight: 700; padding: 0 4px; }
.pg-brand { display: flex; gap: 12px; align-items: center; padding: 10px; border-radius: 8px; background: linear-gradient(120deg, var(--pgn), var(--pgp)); color: #fff; margin-bottom: 10px; }
.pg-brand small { display: block; opacity: .8; }
.pg-swatch { display: flex; gap: 4px; } .pg-swatch span { width: 18px; height: 18px; border-radius: 50%; border: 2px solid #fff; }
.pg-swatch span:nth-child(1) { background: var(--pgp); } .pg-swatch span:nth-child(2) { background: var(--pgn); } .pg-swatch span:nth-child(3) { background: var(--pga); }
.tp-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14px; }
.tp-rows .ct-input { width: 100%; min-width: 60px; }
.tp-rows td { padding: 4px 6px; }
.tp-agreement { white-space: pre-wrap; font-family: inherit; font-size: 13px; line-height: 1.6; margin: 0; }
.tp-json { font-family: Consolas, monospace; font-size: 11.5px; overflow-wrap: anywhere; max-width: 260px; }
@media (max-width: 640px) { .tp-cols { grid-template-columns: 1fr; } }
