.testimonial-actions{
  display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;
  margin-top:18px;padding-top:12px;border-top:1px solid var(--border-subtle);
}
.testimonial-format{display:flex;align-items:center;gap:8px;flex:1 0 100%;color:var(--text-secondary);font-size:.78rem}
.testimonial-format select{
  font:inherit;min-height:44px;max-width:100%;padding:8px 22px 8px 0;
  border:0;border-radius:0;background:transparent;color:var(--text-primary);cursor:pointer;
}
.testimonial-format option{background:var(--bg-elevated);color:var(--text-primary)}
.testimonial-actions button{
  font:inherit;font-size:.82rem;font-weight:500;min-height:44px;padding:8px 0;
  border:0;border-radius:0;background:transparent;color:var(--text-secondary);cursor:pointer;
}
.testimonial-actions .testimonial-download{display:inline-flex;align-items:center;justify-content:center;width:44px;min-width:44px;padding:0;margin-left:auto;border-radius:6px;color:var(--text-primary)}
.testimonial-actions .testimonial-download:hover{background:var(--bg-secondary,var(--bg-elevated));text-decoration:none}
.testimonial-download svg{display:block;pointer-events:none}
.testimonial-actions .testimonial-share{display:inline-flex;align-items:center;justify-content:center;width:44px;min-width:44px;padding:0;border-radius:6px;transition:color .15s ease,background-color .15s ease}
.testimonial-actions .testimonial-share:hover{color:var(--text-primary);background:var(--bg-secondary,var(--bg-elevated));text-decoration:none}
.testimonial-share svg{display:block;pointer-events:none}
.testimonial-actions button:hover{text-decoration:underline;text-underline-offset:4px}
.testimonial-actions button:disabled,.testimonial-format select:disabled{opacity:.5;cursor:wait}
.testimonial-actions button:focus-visible,.testimonial-format select:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:3px}
.testimonial-action-status{flex-basis:100%;margin-top:4px;color:var(--text-secondary);font-size:.78rem;line-height:1.5}
.testimonial-action-status:empty{display:none}
.testimonial-download-dialog{box-sizing:border-box;width:min(360px,calc(100vw - 32px));max-height:calc(100dvh - 48px);overflow:auto;padding:24px;border:1px solid var(--border-subtle);border-radius:14px;background:var(--bg-elevated);color:var(--text-primary);box-shadow:0 20px 70px #0004}
.testimonial-download-dialog::backdrop{background:#0008}
.testimonial-download-dialog{inset:0;margin:auto}
.testimonial-download-dialog h2{margin:0;font-size:1.15rem;line-height:1.4}
.testimonial-download-dialog p{margin:6px 0 18px;font-size:.85rem;color:var(--text-secondary)}
.testimonial-download-dialog button{font:inherit;cursor:pointer;color:var(--text-primary)}
.testimonial-size-option{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:52px;padding:12px 0;border:0;border-bottom:1px solid var(--border-subtle);background:transparent;text-align:left;font-size:.9rem}
.testimonial-size-option small{font-size:.75rem;color:var(--text-secondary)}
.testimonial-size-option:hover span{text-decoration:underline;text-underline-offset:4px}
.testimonial-size-cancel{display:block;min-height:44px;margin:14px 0 0 auto;padding:8px 0;border:0;background:transparent;font-size:.85rem}
.testimonial-download-dialog button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* Shared row tracks align identity and action sections without clipping names. */
.stories-list{align-items:stretch}
.story-card{display:grid;grid-template-rows:subgrid;grid-row:span 3;row-gap:0}
.story-card blockquote{height:17.2em;min-height:0}
.story-card .story-person{align-self:start;align-items:flex-start}
.story-card .testimonial-actions{align-self:end}

/* The homepage uses a horizontal flex rail rather than the stories grid. */
.testimonial-grid{align-items:stretch}
.testimonial-card blockquote{height:17.2em;flex:0 0 auto}
.testimonial-card .testimonial-person{min-height:8rem;align-items:flex-start}
.testimonial-card .testimonial-actions{margin-top:auto}

/* Public cards contain only the story and student identity. */
.story-card{grid-row:span 2}
