/* 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: 16px; display: flex; flex-direction: column; align-items: flex-start; gap: var(--gs-gap); max-width: 34rem; }
.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: 8px; 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 #F26A1B; 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 20px var(--display); text-transform: uppercase; letter-spacing: .04em; 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: 8px; 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: 8px; }
.gs-report .gs-msg.ok { border-color: #2E8B57; }
.gs-report .gs-msg.err { border-color: #C0392B; }
