/* geolab.css — Geotechnical laboratory studio (v50). Builds on atelier.css (cp-*), jetty.css (jt-*), road.css and ui.css. */
.gl-app .jt-fig svg { width: 100%; height: auto; display: block; }
.gl-app .cp-card, .gl-app .cp-grid2 > * { min-width: 0; }
.gl-app .cp-tab td { white-space: normal; }
.gl-app .gl-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }
.gl-app .gl-chips .cp-chip { cursor: pointer; border: 1px solid var(--line, #e3e3dd); background: transparent; color: inherit; font: inherit; }
.gl-app .gl-chips .cp-chip.on { background: var(--ink, #1d1d1f); color: var(--bg, #fff); border-color: transparent; }
.gl-app .gl-chips .cp-chip small { opacity: .7; }
.gl-app .gl-tog { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px 18px; }
.gl-app .gl-tg b { display: block; font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; margin: 0 0 4px; color: var(--muted, #6b6b6b); }
.gl-app .gl-tg .cp-chk { display: block; margin: 2px 0; }
.gl-app .gl-sched td, .gl-app .gl-sched th { text-align: center; padding: 3px 4px; font-size: .78rem; }
.gl-app .gl-sched th { writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; height: 130px; vertical-align: bottom; }
.gl-app .gl-sched th:nth-child(-n+3), .gl-app .gl-sched td:nth-child(-n+3) { writing-mode: horizontal-tb; transform: none; height: auto; text-align: left; }
.gl-app .gl-dot { text-decoration: none; color: var(--accent, #1f3a5f); }
.gl-app .gl-reg td, .gl-app .gl-reg th { font-size: .78rem; padding: 3px 5px; white-space: nowrap; }
.gl-app .gl-prof { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.gl-app .gl-hub3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 12px; }
.gl-app .gl-msg { padding: 8px 12px; border-radius: 8px; background: #eaf5ee; color: #1f6a3c; margin: 0 0 12px; font-weight: 600; }
.gl-app .gl-msg.bad { background: #fbeceb; color: #a1261b; }
.gl-app .gl-repbar { align-items: center; gap: 6px; margin-bottom: 10px; }
.gl-app .gl-pgsel { max-width: 420px; flex: 1 1 220px; }
.gl-app .gl-page { background: #8d8a85; padding: 14px; border-radius: 8px; overflow: auto; }
.gl-app .gl-page svg { display: block; width: 100%; max-width: 794px; margin: 0 auto; height: auto; box-shadow: 0 2px 10px rgba(0,0,0,.25); }
.gl-app input[type=color] { width: 44px; height: 26px; padding: 0; border: 1px solid var(--line, #ddd); border-radius: 4px; background: none; }
@media (max-width: 700px) { .gl-app .gl-page { padding: 6px; } .gl-app .gl-sched th { height: 100px; } }
