/* The 3D pages' plain list (assets/plain3d.js). Only applies once body has .plain-on, plus the skip link. */
.plain-skip { position: fixed; left: 12px; top: -120px; z-index: 1000; padding: 12px 16px; border-radius: 10px; background: var(--ink, #0b0f17); color: #fff; font-weight: 600; font-size: .9rem; text-decoration: none; }
.plain-skip:focus { top: 72px; outline: 3px solid var(--accent, #236274); outline-offset: 2px; }

html:has(body.plain-on), body.plain-on { height: auto; overflow: auto; }
.plain-on #loading, .plain-on #journey-overlay, .plain-on #topbar, .plain-on #canvas3d, .plain-on #hotspot-counter,
.plain-on #room-label, .plain-on #area-label, .plain-on #info-panel, .plain-on #controls-hint, .plain-on .plain-skip { display: none !important; }

#plain { max-width: 720px; margin: 0 auto; padding: 96px 20px 64px; color: var(--ink, #0b0f17); line-height: 1.55; }
#plain h1 { font-size: clamp(1.6rem, 5vw, 2.2rem); line-height: 1.15; letter-spacing: -0.02em; margin: 0 0 12px; }
#plain .pl-note { color: var(--grey-600, #4b5563); margin: 0 0 20px; }
#plain .pl-note a, #plain .pl-next a { color: var(--accent-ink, #144458); font-weight: 600; }
#plain .pl-filter { display: flex; align-items: center; gap: 12px; font-weight: 600; margin: 0 0 8px; }
#plain .pl-filter select { min-height: 44px; padding: 0 12px; border-radius: 10px; border: 1px solid var(--grey-200, #e5e7eb); background: #fff; font: inherit; font-weight: 500; }
#plain .pl-area { margin-top: 36px; }
#plain h2 { font-size: 1.35rem; letter-spacing: -0.01em; margin: 0 0 12px; padding-bottom: 8px; border-bottom: 1px solid var(--grey-200, #e5e7eb); }
#plain ul { margin: 0; padding: 0; }
#plain .pl-list { list-style: none; display: grid; gap: 14px; }
#plain .pl-item { background: #fff; border: 1px solid var(--grey-200, #e5e7eb); border-radius: 14px; padding: 16px 18px; }
#plain .pl-item p { margin: 0 0 10px; }
#plain h3 { font-size: 1.05rem; margin: 0 0 4px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
#plain .pl-sev { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; padding: 3px 8px; border-radius: 999px; background: #eef2f1; color: #374151; }
#plain .pl-critical { background: #fde8e8; color: #991b1b; }
#plain .pl-high { background: var(--accent-wash, #eef4f6); color: var(--accent-ink, #144458); }
#plain .pl-ages { font-size: .85rem; color: var(--grey-600, #4b5563); }
#plain .pl-stats { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: .88rem; color: var(--grey-700, #374151); margin-bottom: 10px; }
#plain .pl-do { font-weight: 700; font-size: .9rem; margin-bottom: 4px !important; }
#plain .pl-actions { padding-left: 1.2em; }
#plain .pl-actions li { margin: 2px 0; }
#plain .pl-next { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-top: 40px; }
#plain .pl-next a { display: inline-flex; align-items: center; min-height: 44px; }
