/* Goalside extras on session pages: "Save for offline" and "Report a problem". Everything is scoped under .gs-x so it cannot touch the session page's own styles. */
.gs-x { --gs-gap: 10px; }
.gs-x [hidden] { display: none !important; }
.gs-offline { margin-top: 12px; display: flex; flex-flow: row wrap; align-items: center; gap: 8px 14px; }
.gs-offline .gs-line { flex: 1 1 14rem; font-size: 15px; }
.gs-offline .gs-hint { flex-basis: 100%; }
.gs-offline .gs-hint:empty { display: none; }
.gs-x .gs-line { margin: 0; font-size: 16px; color: var(--ink-2); }
.gs-x .gs-hint { margin: 0; font-size: 15px; color: var(--ink-2); }
.gs-x .gs-btn { min-height: 48px; padding: 0 20px; border: 2px solid var(--ink); border-radius:var(--radius); background: transparent; color: var(--ink); font: 700 17px var(--body); cursor: pointer; }
.gs-x .gs-btn.primary { background: var(--ink); color: var(--ground); }
.gs-x .gs-btn[disabled] { opacity: .5; cursor: not-allowed; }
.gs-x .gs-btn:focus-visible, .gs-x input:focus-visible, .gs-x select:focus-visible, .gs-x textarea:focus-visible, .gs-x summary:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.gs-report details { border-top: 3px solid var(--ink); padding-top: 4px; }
.gs-report summary { min-height: 44px; display: flex; align-items: center; font:700 22px var(--display); cursor: pointer; }
.gs-report form { display: grid; gap: 14px; margin-top: 8px; max-width: 34rem; }
.gs-report label { display: grid; gap: 6px; font-weight: 700; }
.gs-report label span { font-weight: 400; color: var(--ink-2); font-size: 15px; }
.gs-report select, .gs-report textarea, .gs-report input[type=email] { font: 400 17px/1.3 var(--body); padding: 10px 12px; border: 2px solid var(--ink-2); border-radius:var(--radius); background: var(--ground); color: var(--ink); width: 100%; box-sizing: border-box; min-height: 48px; }
.gs-report textarea { min-height: 112px; resize: vertical; }
.gs-report .gs-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.gs-report .gs-msg { margin: 0; padding: 10px 12px; border: 2px solid var(--line); border-radius:var(--radius); }
.gs-report .gs-msg.ok { border-color: #2E8B57; }
.gs-report .gs-msg.err { border-color: #C0392B; }
