/* Terrain 1.0.27 — uses the exact Oddgrid visual shell. Only Terrain-specific glue lives here. */
.terrain-page{--og-accent:#5558dc;--og-text:#111827;--og-muted:#6b7280;--og-border:#e0e5ee;--og-soft:#f7f8fb;--og-panel:#fff}
.terrain-page .og-new-variation{font-family:inherit}
.terrain-page .og-panel-body .track{position:relative;display:block;height:16px;--tw:10px}
.terrain-page .og-panel-body .track:before,.terrain-page .og-panel-body .track:after{pointer-events:none}
.terrain-page .og-panel-body .track:before{content:"";position:absolute;left:0;right:0;top:7px;height:1px;background:#e2e5ec}
.terrain-page .og-panel-body .track:after{content:"";position:absolute;left:0;top:7px;height:1px;background:#5558dc;width:calc(var(--tw)/2 + (100% - var(--tw)) * var(--p,0) / 100)}
.terrain-page .og-panel-body .track input[type=range]{position:absolute;inset:0;width:100%;height:16px;margin:0;-webkit-appearance:none;appearance:none;background:transparent;cursor:pointer;accent-color:#5558dc}
.terrain-page .og-panel-body .track input[type=range]::-webkit-slider-runnable-track{height:16px;background:transparent}
.terrain-page .og-panel-body .track input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:10px;height:10px;margin-top:3px;border:0;border-radius:50%;background:#5558dc}
.terrain-page .og-panel-body .track input[type=range]::-moz-range-track{height:16px;background:transparent;border:0}
.terrain-page .og-panel-body .track input[type=range]::-moz-range-thumb{width:10px;height:10px;border:0;border-radius:50%;background:#5558dc}
.terrain-page .og-panel-body .notch{position:absolute;top:5px;width:1px;height:5px;background:#d9dde5}
.terrain-page .og-control-block{display:block}
.terrain-page .og-control-block .mhead{display:block;margin-bottom:6px}
.terrain-page .og-control-block .mval{display:block}
.terrain-page .og-control-label{color:#687181;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.terrain-page .og-choice-grid{display:block!important}
.terrain-page .og-subgroup[hidden],.terrain-page [hidden]{display:none!important}
.terrain-page .terrain-export-buttons{grid-template-columns:repeat(2,minmax(0,1fr));max-width:240px;margin-left:auto}
.terrain-page .terrain-export-buttons button{min-width:112px}
.terrain-page .oddgrid-stage #art{display:block;max-width:100%;max-height:78vh;width:auto;height:auto;background:#fff;box-shadow:0 10px 35px rgba(23,30,50,.12)}
.terrain-page .holder{display:block;max-width:100%;max-height:100%;line-height:0}
.terrain-page .ring{display:none}
.terrain-page .oddgrid-stage.is-fullscreen{position:fixed;z-index:100200;inset:0;min-height:100vh;padding:30px;background:#151922;border:0;border-radius:0}
.terrain-page .oddgrid-stage.is-fullscreen #art{max-width:calc(100vw - 60px);max-height:calc(100vh - 60px)}
.terrain-page #strip,.terrain-page #glyph{display:none!important}

/* Source pickers retained, but restyled to the Oddgrid shell. */
.terrain-page .pick{position:relative;width:100%;min-width:0}
.terrain-page .pick-btn{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;height:36px;padding:0 9px;border:1px solid #dfe3eb;border-radius:8px;background:#fff;color:#555d6d;font-size:9px;font-weight:800;text-align:left}
.terrain-page .pick-btn .chev{flex:none;width:10px;height:10px;position:relative}
.terrain-page .pick-btn .chev:after{content:'⌄';position:absolute;inset:0;display:grid;place-items:center;color:#7a8291;font-size:10px}
.pick-menu{position:fixed;z-index:100500;max-height:320px;overflow:auto;margin:0;padding:5px;list-style:none;border:1px solid #d8dde7;border-radius:9px;background:#fff;box-shadow:0 14px 36px rgba(20,23,34,.16)}
.pick-menu li{padding:8px 9px;border-radius:6px;color:#535b6b;font-size:9px;font-weight:800;cursor:pointer}
.pick-menu li:hover,.pick-menu li.hi,.pick-menu li[aria-selected=true]{background:#f0f0ff;color:#4145b9}
.cpick{position:fixed;z-index:100600;width:210px;padding:10px;border:1px solid #d8dde7;border-radius:10px;background:#fff;box-shadow:0 18px 44px rgba(20,23,34,.2)}
.cpick .sv{position:relative;height:120px;border-radius:7px;overflow:hidden;cursor:crosshair}.cpick .sv .lay{position:absolute;inset:0}.cpick .dot{position:absolute;width:11px;height:11px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #111827;transform:translate(-50%,-50%)}.cpick .hue{position:relative;height:12px;margin-top:9px;border-radius:999px;background:linear-gradient(to right,#f00,#ff0,#0f0,#0ff,#00f,#f0f,#f00)}.cpick .hnd{position:absolute;top:-2px;width:5px;height:16px;border:1px solid #111827;background:#fff;transform:translateX(-50%)}.cpick .cprow{display:flex;gap:7px;align-items:center;margin-top:10px}.cpick .cpsw{width:22px;height:22px;border-radius:6px}.cpick .cphex{flex:1;min-width:0;height:30px;border:1px solid #dce1e9;border-radius:7px;padding:0 7px;font-size:9px}.cpick .cpok{height:30px;padding:0 9px;border:0;border-radius:7px;background:#5558dc;color:#fff;font-size:8px;font-weight:800}

/* My colors and dynamically generated source swatches inherit the Oddgrid geometry. */
.terrain-page #swatches.sw-grid{display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:wrap}
.terrain-page #swatches .sw,.terrain-page #swatches .sw-add{position:relative!important;flex:0 0 32px!important;width:32px!important;min-width:32px!important;max-width:32px!important;height:32px!important;min-height:32px!important;max-height:32px!important;margin:0!important;padding:0!important;border-radius:8px!important;box-sizing:border-box!important;line-height:1!important}
.terrain-page #swatches .sw{display:block!important;border:1px solid #d7dbe4!important;background:#fff!important;overflow:visible!important;cursor:pointer}
.terrain-page #swatches .sw .fill{position:absolute!important;inset:4px!important;display:block!important;border-radius:5px!important;pointer-events:none!important}
.terrain-page #swatches .sw input[type=color]{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;margin:0!important;padding:0!important;opacity:0!important;pointer-events:none!important}
.terrain-page #swatches .sw .x{position:absolute;right:-5px;top:-5px;display:none;width:14px;height:14px;border-radius:50%;background:#111827;color:#fff;font-size:9px;line-height:14px;text-align:center;z-index:3}
.terrain-page #swatches .sw:hover .x{display:block}
.terrain-page #swatches .sw-add{display:flex!important;align-items:center!important;justify-content:center!important;border:1px dashed #c8ced9!important;background:#fff!important;color:#687181!important;font-size:16px!important}
.terrain-page .myc-edit{margin-top:10px}
.terrain-page .myc-row{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
.terrain-page .myc-row button{min-height:31px;padding:5px 8px;border:1px solid #dfe3eb;border-radius:8px;background:#fff;color:#5a6270;font-size:8px;font-weight:800}
.terrain-page .myc-ta{display:block;width:100%;min-height:72px;margin-top:10px;padding:8px 9px;border:1px solid #dce1e9;border-radius:8px;background:#fff;color:#343b47;font:10px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace}
.terrain-page .myc-hint{margin:7px 0 0;color:#8a91a0;font-size:8px;line-height:1.45}

/* Toasts from the source logic and PlayLab integration. */
.terrain-page #toast,.terrain-source-toast{position:fixed;z-index:100300;left:50%;bottom:26px;transform:translate(-50%,12px);opacity:0;pointer-events:none;max-width:min(520px,90vw);padding:10px 14px;border-radius:9px;background:#111827;color:#fff;font-size:10px;font-weight:800;box-shadow:0 14px 35px rgba(0,0,0,.24);transition:.18s}
.terrain-page #toast.show,.terrain-source-toast.show{opacity:1;transform:translate(-50%,0)}.terrain-source-toast.is-error{background:#7f1d1d}

@media(max-width:820px){.terrain-page .terrain-export-buttons{margin-left:0;max-width:none}}
@media(max-width:560px){.terrain-page .terrain-export-buttons{grid-template-columns:1fr 1fr}}


/* PlayLab 1.0.28 — Variation is intentionally identical to Oddgrid. */
.terrain-page .og-variation-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:7px!important;align-items:end!important}
.terrain-page .og-variation-row .og-field{margin:0!important;min-width:0!important}
.terrain-page .og-variation-row .og-field>span{display:block!important;margin:0 0 6px!important}
.terrain-page .og-variation-row .og-text-input{display:block!important;width:100%!important;height:40px!important;min-height:40px!important;margin:0!important;box-sizing:border-box!important}
.terrain-page .og-variation-row .og-mini-action{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:auto!important;min-width:88px!important;height:40px!important;min-height:40px!important;margin:0!important;padding:0 12px!important;box-sizing:border-box!important;white-space:nowrap!important;align-self:end!important}
@media(max-width:560px){.terrain-page .og-variation-row{grid-template-columns:1fr!important}.terrain-page .og-variation-row .og-mini-action{width:100%!important}}
