/* TEST27. Scoped visual authoring-only five-lane map. No changes to existing UI/Reality. */
.gl27{--gl-bg:#0b1633;--gl-panel:#152345;--gl-border:#34476e;--gl-side:78px;--gl-lane:292px;--gl-square:49px;--gl-gap:6px;--gl-row:203px;color:#eaf0ff;font:14px/1.45 Inter,system-ui,'Segoe UI',sans-serif;min-width:0}
.gl27 *{box-sizing:border-box}.gl27 button,.gl27 input,.gl27 textarea,.gl27 select{font:inherit}.gl27 button{cursor:pointer}.gl27 button:disabled{opacity:.4;cursor:not-allowed}.gl27 button:focus-visible,.gl27 input:focus-visible,.gl27 textarea:focus-visible{outline:2px solid #c9b9ff;outline-offset:2px}
.gl27-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:2px 0 12px}.gl27-top h1{font-size:28px;font-weight:800;margin:0 0 3px;color:#fbfbff}.gl27-top p{font-size:12px;color:#adbee0;margin:0}.gl27-pill{background:#182748;border:1px solid var(--gl-border);color:#c4d4f1;border-radius:999px;padding:5px 10px;font-size:11px;white-space:nowrap}.gl27-pill.warn{border-color:#726781;color:#d2c8e5}
.gl27-tools{border:1px solid var(--gl-border);background:linear-gradient(145deg,#142340,#101b36);border-radius:18px;padding:12px 16px;margin:12px 0 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.gl27-toolbar{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.gl27-hero{border:1px solid #475675;border-radius:10px;background:#12203c;color:#dbe4f9;padding:7px 10px;white-space:nowrap;font-size:12px;display:inline-flex;gap:8px;align-items:center}.gl27-hero.on{border-color:var(--hero);box-shadow:inset 0 0 0 1px var(--hero);color:#fff;background:#202c4b}.gl27-dot{height:9px;width:9px;display:inline-block;background:var(--hero);border-radius:100%}.gl27-action{background:#26365a;border:1px solid #435780;color:#eaf1ff;border-radius:10px;padding:8px 12px;font-size:12px;font-weight:700}.gl27-action:hover{background:#334774}.gl27-action.primary{background:#6a48b1;border-color:#a280e4}.gl27-scale{display:flex;align-items:center;gap:7px;font-size:12px;color:#c0cbe2}.gl27-scale input{width:95px;accent-color:#b499ff}
.gl27-note{border:1px solid #4d486b;background:#201e3c8c;color:#d5c8e7;border-radius:12px;padding:9px 13px;font-size:12px;margin:12px 0}
.gl27-shell{position:relative;background:#0d1833;border:1px solid #35496e;border-radius:18px;overflow:hidden;box-shadow:0 16px 36px #0004}.gl27-shell-title{background:#111e3d;display:flex;gap:10px;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid #344466;font-size:12px;color:#c4d1ec}.gl27-scroll{max-height:min(70vh,800px);overflow:auto;scrollbar-color:#61759c #0b1830}.gl27-chart{position:relative;min-width:calc(var(--gl-side) + 5 * var(--gl-lane));width:max-content}.gl27-heads{height:76px;display:grid;grid-template-columns:var(--gl-side) repeat(5,var(--gl-lane));position:sticky;top:0;z-index:12;background:#142342;border-bottom:1px solid #40567e}.gl27-corner{color:#95a8ce;font-size:11px;display:grid;place-items:center}.gl27-head{border-left:1px solid #32466d;padding:12px;display:flex;flex-direction:column;justify-content:center;gap:4px}.gl27-head strong{font-size:13px;color:#eaf0ff;white-space:nowrap}.gl27-head small{color:#9dafcb;font-size:11px}.gl27-head:not(.on){background:#0c1830}.gl27-avatar{display:inline-block;width:17px;height:17px;background:var(--hero);border-radius:5px;margin-right:7px;vertical-align:middle}.gl27-plot{position:relative;display:grid;grid-template-columns:var(--gl-side) repeat(5,var(--gl-lane));height:calc(var(--gl-row) * 7 + 80px);background:repeating-linear-gradient(to bottom,#2a3e60 0px,#2a3e60 1px,transparent 1px,transparent var(--gl-row)),#0d1832}.gl27-times{position:relative;border-right:1px solid #38486a}.gl27-time{position:absolute;left:9px;transform:translateY(-50%);color:#9db1d3;font-size:11px;white-space:nowrap;padding:2px;background:#0d1832}.gl27-lane{position:relative;border-right:1px solid #243758}.gl27-lane.off{background:#050c1b55}.gl27-lane::after{content:'';position:absolute;left:50%;top:0;bottom:0;width:1px;background:#4b5b7c44;z-index:0}
.gl27-card{position:absolute;width:var(--gl-square);height:var(--gl-square);transform:translate(-50%,-50%);z-index:4;border:3px solid var(--hero);background:color-mix(in srgb,var(--hero) 10%,#11182a);border-radius:7px;color:#fafbff;display:flex;align-items:center;justify-content:center;padding:0;font-size:12px;font-weight:780;white-space:nowrap;box-shadow:0 5px 12px #0005;transition:filter .12s,box-shadow .12s}.gl27-card:hover{filter:brightness(1.3);box-shadow:0 0 0 2px #b7ccf077,0 8px 18px #0007}.gl27-card.gl27-shared{outline:2px solid white;outline-offset:2px;box-shadow:0 0 0 2px #fff4,0 5px 12px #0007}.gl27-card.gl27-mini{width:34px;height:34px;font-size:9px;border-width:2px;opacity:.75}.gl27-status{position:absolute;right:-7px;top:-8px;background:#142039;border:1px solid #c5cde3;color:white;min-width:15px;height:15px;line-height:13px;text-align:center;border-radius:50%;font-size:10px;letter-spacing:0}.gl27-status.draft{border-style:dotted}.gl27-status.qa{font-weight:800}.gl27-edge-svg{position:absolute;top:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:2}.gl27-edge-svg path{stroke:#e5edff;stroke-opacity:.6;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.gl27-edge-svg path.proposal{stroke-opacity:.38}.gl27-edge-svg path.shared{stroke-opacity:.65;stroke-width:1.5}.gl27-foot{display:flex;flex-wrap:wrap;gap:12px;padding:10px 15px;color:#a7b9d8;font-size:11px;background:#111e39;border-top:1px solid #293e66}.gl27-foot b{color:#fff;font-weight:800}.gl27-foot .symbol{display:inline-grid;place-items:center;width:15px;height:15px;border:1px solid #cad2e6;border-radius:5px;margin-right:4px}
.gl27-pop{position:fixed;z-index:9900;width:258px;max-height:340px;overflow:auto;background:linear-gradient(160deg,#203054,#101a36);border:1px solid #8799c8;border-radius:16px;box-shadow:0 22px 75px #010411cc;padding:14px;color:#f2f6ff;text-align:left;cursor:pointer}.gl27-pop:focus-visible{outline:2px solid #d6c4ff}.gl27-pop h3{font-size:15px;margin:4px 0 8px}.gl27-pop small{display:block;color:#aebedf;font-size:11px}.gl27-pop p{margin:7px 0;font-size:12px;color:#dce4fa}.gl27-pop .go{border-top:1px solid #50618a;padding-top:10px;margin-top:11px;color:#d3bdff;font-size:11px;font-weight:700}.gl27-pop .gl27-joined{display:flex;gap:1px;margin:9px 0}.gl27-pop .gl27-joined span{height:41px;min-width:41px;display:grid;place-items:center;border:3px solid var(--hero);border-radius:5px;font-size:10px;font-weight:700}
.gl27-backdrop{position:fixed;inset:0;background:#02040dbd;z-index:9800}.gl27-dialog{position:fixed;z-index:9810;top:5vh;left:50%;transform:translateX(-50%);width:min(850px,96vw);max-height:90vh;overflow:auto;border:1px solid #7083b2;border-radius:20px;background:linear-gradient(170deg,#172747,#101b36);color:#eaf1ff;padding:22px;box-shadow:0 24px 85px #000d}.gl27-dialog-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;border-bottom:1px solid #3c5178;padding-bottom:12px;margin-bottom:14px}.gl27-dialog-head h2{margin:0;font-size:22px}.gl27-dialog-head small{color:#a7b8d7}.gl27-dialog section{background:#0e1934;border:1px solid #34486e;border-radius:12px;padding:12px 14px;margin:10px 0}.gl27-dialog section h3{font-size:14px;margin:0 0 6px}.gl27-field{display:flex;flex-direction:column;gap:5px;font-size:12px;color:#bfcce7;margin:10px 0}.gl27-field input,.gl27-field select,.gl27-field textarea{background:#0b1530;color:#edf1ff;border:1px solid #485d87;border-radius:10px;padding:10px;max-width:100%}.gl27-field textarea{min-height:100px;resize:vertical}.gl27-grid-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.gl27-dialog-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px}.gl27-empty{padding:14px;color:#b5c5e3}.gl27-warn{background:#31243d;border:1px solid #665a7c;border-radius:10px;color:#e5d5ef;padding:10px;font-size:12px}.gl27-sr{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:900px){.gl27{--gl-square:49px}.gl27-top h1{font-size:23px}.gl27-grid-form{grid-template-columns:1fr}.gl27-dialog{padding:15px}.gl27-tools{padding:10px}}

.gl27-plot{background:#0d1832 !important}.gl27-tick-line{position:absolute;left:0;right:0;height:1px;background:#33486c;z-index:0;pointer-events:none}
