/* Shared interactive-diagram styling for the geometry calculators — the
   draggable, live-updating SVG diagrams that bring the Geometry Constructor's
   visual quality to the individual "theory" calculators. Prefix: gm2-. */
.gm2-stage { margin: 8px 0 4px; }
.gm2-svg {
  width: 100%; height: auto; aspect-ratio: 6 / 5; max-width: 540px;
  margin: 0 auto; display: block;
  border: 1px solid var(--border, #cdd1f0); border-radius: 14px;
  background: linear-gradient(180deg, #fbfcff, #eef1fb);
  touch-action: none;
}
.gm2-grid line { stroke: #dfe3f4; stroke-width: 1; }
.gm2-axes line { stroke: #c3c9e6; stroke-width: 1.4; }
.gm2-shape { fill: rgba(99, 102, 241, .16); stroke: #4f46e5; stroke-width: 2.5; stroke-linejoin: round; }
.gm2-sq { stroke-width: 1.6; stroke-linejoin: round; }
.gm2-sq-a { fill: rgba(22, 163, 74, .12); stroke: #16a34a; }
.gm2-sq-b { fill: rgba(217, 119, 6, .13); stroke: #d97706; }
.gm2-sq-c { fill: rgba(37, 99, 235, .13); stroke: #2563eb; }
.gm2-right { fill: none; stroke: #4f46e5; stroke-width: 1.6; }
.gm2-seg { fill: none; stroke: #4f46e5; stroke-width: 2.6; stroke-linejoin: round; stroke-linecap: round; }
.gm2-leg { fill: none; stroke: #94a3c4; stroke-width: 1.8; stroke-dasharray: 5 4; }
.gm2-line { fill: none; stroke: #2563eb; stroke-width: 2.6; stroke-linecap: round; }
.gm2-tri { fill: rgba(37, 99, 235, .10); stroke: none; }
.gm2-dot { fill: #312e81; }
.gm2-mid { fill: #d97706; stroke: #fff; stroke-width: 2; }
.gm2-handle { fill: #2563eb; stroke: #fff; stroke-width: 2.5; cursor: grab; }
.gm2-handle:active { cursor: grabbing; }
.gm2-lbl { font: 600 13px "JetBrains Mono", monospace; paint-order: stroke; stroke: #fff; stroke-width: 3px; fill: #1d4ed8; }
.gm2-lbl-a { fill: #15803d; }
.gm2-lbl-b { fill: #b45309; }
.gm2-lbl-c { fill: #1d4ed8; }
.gm2-hint { margin: 8px 0 0; text-align: center; font: 600 12px system-ui, sans-serif; color: var(--muted, #5a5f7a); }

/* [hidden]-guard (2026-09-29): an author display rule must never beat the hidden attribute (bit 4x: weather, timer, whats-my-ip, image converters). */
[hidden] { display: none !important; }
