/* Testimonials from signed-in people (inc/testimonials.php + assets/js/testimonials.js). Control Room tokens from
   site.css; classes prefixed tm-. Transform and opacity only, and still under prefers-reduced-motion. */
.tm{margin-top:28px}
.tm-bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.tm-chip{min-height:40px;padding:0 14px;border:2px solid var(--ink);background:var(--paper);color:var(--ink);font-size:12px;cursor:pointer;transition:transform .2s var(--ease)}
.tm-chip:hover{transform:translate(-1px,-1px)}
.tm-chip[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.tm-chip:focus-visible,.tm-link:focus-visible,.tm-badge:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.tm-wall{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:24px;align-items:start}
.tm-wall-1{grid-template-columns:1fr}
.tm-card{display:flex;flex-direction:column;gap:16px;padding:22px;background:var(--paper);color:var(--ink);border:2px solid var(--ink);border-top:7px solid var(--signal);box-shadow:5px 5px 0 var(--ink);transition:transform .28s var(--ease),opacity .28s}
.tm-card[data-relation="collaborator"],.tm-card[data-relation="colleague"]{border-top-color:var(--teal)}
.tm-card[data-relation="user"]{border-top-color:var(--g3)}
.tm-card:hover{transform:translate(-2px,-2px)}
.tm-card.is-off{display:none}
.tm-text{margin:0}
.tm-text p{margin:0;font-size:17px;line-height:1.55;color:var(--t2);overflow-wrap:anywhere}
.tm-text p::before{content:"\201C"}
.tm-text p::after{content:"\201D"}
.tm-by{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.tm-av{flex:0 0 auto;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:2px solid var(--ink);background:var(--bone);font-size:17px;letter-spacing:0}
.tm-who{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 140px}
.tm-name{font-size:19px;line-height:1.05}
.tm-name a{text-decoration:underline;text-underline-offset:3px}
.tm-sub{font-size:13px;line-height:1.35;color:var(--t3)}
.tm-badge{font-size:10px;padding:5px 8px;border:1.5px solid var(--ink);background:var(--bone);white-space:nowrap;cursor:help}
.tm-proj{margin:0;font-size:11px;color:var(--t4);border-top:1px solid var(--rule);padding-top:12px}
.tm-empty{margin-top:20px;color:var(--t2);max-width:60ch}

.tm-write{margin-top:32px;padding:clamp(20px,3vw,32px);scroll-margin-top:96px}
.tm-write h3{font-size:clamp(24px,2.6vw,34px);margin:0 0 10px}
.tm-lede{margin:0 0 14px;max-width:68ch;color:var(--t2);line-height:1.55}
.tm-note{margin:0 0 16px;padding:12px 14px;border-left:4px solid var(--teal);background:rgba(255,255,255,.55)}
.tm-note.tm-err{border-left-color:var(--sig-deep)}
.tm-signin{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}
.tm-cols{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(24px,3.5vw,44px);margin-top:18px}
.tm-form{display:grid;gap:16px}
.tm-f{display:grid;gap:7px}
.tm-f>.mono,.tm-label{font-size:11px;color:var(--t3)}
.tm-f input,.tm-f select,.tm-f textarea{width:100%;padding:11px 12px;border:2px solid var(--ink);background:var(--paper);color:var(--ink);font:inherit;border-radius:0}
.tm-f textarea{resize:vertical;min-height:140px;line-height:1.5}
.tm-f input:focus-visible,.tm-f select:focus-visible,.tm-f textarea:focus-visible{outline:3px solid var(--teal);outline-offset:2px}
.tm-count{font-size:11px;color:var(--t4)}
.tm-count.is-bad{color:var(--sig-deep)}
.tm-check{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.45;color:var(--t2)}
.tm-check input{margin-top:3px;width:18px;height:18px;flex:0 0 auto;accent-color:var(--ink)}
.tm-check a{text-decoration:underline}
.tm-label{margin:0 0 10px}
.tm-preview{box-shadow:5px 5px 0 var(--signal)}
.tm-mini{display:flex;flex-wrap:wrap;gap:18px;margin-top:18px}
.tm-link{padding:0;border:0;background:none;color:var(--t3);font:inherit;font-size:14px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
@media (max-width:820px){.tm-cols{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.tm-card,.tm-chip{transition:none}.tm-card:hover,.tm-chip:hover{transform:none}}
