.oddgrid-page{--og-accent:#5558dc;--og-text:#111827;--og-muted:#6b7280;--og-border:#e0e5ee;--og-soft:#f7f8fb;--og-panel:#fff;padding-top:8px}.oddgrid-page *{box-sizing:border-box}.oddgrid-head{display:flex;justify-content:space-between;gap:26px;align-items:flex-end;margin:8px 0 18px;padding:24px 26px;border:1px solid var(--og-border);border-radius:20px;background:linear-gradient(135deg,#fff 0,#f7f6ff 100%)}.oddgrid-head-copy{min-width:0;max-width:920px}.oddgrid-head h1{margin:5px 0 10px;font-size:clamp(30px,3.6vw,48px);line-height:1.03;letter-spacing:-.042em}.oddgrid-head p{margin:0;color:var(--og-muted);font-size:13px;line-height:1.65}.oddgrid-independence{display:inline-flex;margin-top:13px;padding:6px 8px;border-radius:8px;background:#f0f1f6;color:#737b8a;font-size:9px;font-weight:800}.oddgrid-top-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px;max-width:520px}.oddgrid-top-actions .playlab-btn{display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 12px;font-size:10px;text-decoration:none!important}.oddgrid-app{display:grid;grid-template-columns:340px minmax(0,1fr);gap:14px;align-items:start}.oddgrid-controls{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto;border:1px solid var(--og-border);border-radius:16px;background:#fff;scrollbar-width:thin}.og-panel{border-bottom:1px solid #edf0f4}.og-panel:last-child{border-bottom:0}.og-panel-title{display:grid;grid-template-columns:28px 1fr 20px;align-items:center;width:100%;min-height:48px;padding:0 14px;border:0;background:#fff;color:#262d39;text-align:left}.og-panel-title>span{font:800 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;color:#9aa1ad}.og-panel-title strong{font-size:12px}.og-panel-title i{font-style:normal;text-align:right;color:#8c93a0}.og-panel-body{display:none;padding:0 14px 15px}.og-panel.is-open .og-panel-body{display:block}.og-panel.is-open .og-panel-title{background:#fafbfe}.og-panel-body>*+*{margin-top:12px}.og-field{display:block}.og-field>span,.og-seed-label,.og-color-field>span{display:block;margin-bottom:6px;color:#687181;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.og-field select,.og-seed input{display:block;width:100%;height:38px;padding:0 10px;border:1px solid #dce1e9;border-radius:8px;background:#fff;color:#343b47;font-size:11px;outline:none}.og-field select:focus,.og-seed input:focus{border-color:#999de8;box-shadow:0 0 0 3px rgba(85,88,220,.07)}.og-seed{display:block}.og-seed-row{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:6px;align-items:stretch}.og-seed-row input,.og-seed-row button{height:38px;margin:0;box-sizing:border-box}.og-seed button{display:flex;align-items:center;justify-content:center;padding:0;border:1px solid #dce1e9;border-radius:8px;background:#fff;color:#4b52bf;font-size:17px;line-height:1}.og-hint{color:#9198a4;font-size:9px;line-height:1.45}.og-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.og-look-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.og-look-grid button:last-child{grid-column:1/-1}.og-choice-grid button,.og-palette-presets button{min-height:34px;padding:6px 8px;border:1px solid #dfe3eb;border-radius:8px;background:#fff;color:#5a6270;font-size:9px;font-weight:800}.og-choice-grid button:hover,.og-choice-grid button.is-active,.og-palette-presets button:hover,.og-palette-presets button.is-active{border-color:#c3c5ef;background:#f0f0ff;color:#4347bd}.og-range{display:block}.og-range>span{display:flex;justify-content:space-between;gap:12px;margin-bottom:6px;color:#626b79;font-size:10px;font-weight:800}.og-range output{font:800 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;color:#8f96a3}.og-range input[type=range]{display:block;width:100%;accent-color:#5558dc}.og-palette-presets{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.og-swatches{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.og-swatches label{min-width:0}.og-swatches input{display:block;width:100%;height:34px;padding:0;border:1px solid #d7dbe4;border-radius:7px;background:#fff;cursor:pointer}.og-swatches span{display:block;margin-top:4px;text-align:center;color:#9299a5;font-size:8px}.og-two-col{display:grid;grid-template-columns:1fr 1fr;gap:8px}.og-color-field input{display:block;width:100%;height:38px;padding:2px;border:1px solid #dce1e9;border-radius:8px;background:#fff}.og-switch{display:flex;align-items:center;gap:8px;color:#515a69;font-size:10px;font-weight:800}.og-switch input{accent-color:#5558dc}.og-svg-drop{position:relative;padding:13px;border:1px dashed #cfd4df;border-radius:10px;background:#fafbfe;text-align:center;cursor:pointer}.og-svg-drop:focus,.og-svg-drop.is-dragover{outline:0;border-color:#777ce0;background:#f4f4ff}.og-svg-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}.og-svg-drop strong,.og-svg-drop span,.og-svg-drop em{display:block;pointer-events:none}.og-svg-drop strong{font-size:10px}.og-svg-drop span{margin-top:4px;color:#9097a3;font-size:8px;line-height:1.45}.og-svg-drop em{margin-top:7px;color:#5558dc;font-size:8px;font-style:normal;font-weight:800;word-break:break-word}.og-svg-drop button{position:relative;z-index:2;margin-top:8px;border:0;background:transparent;color:#b14950;font-size:9px;text-decoration:underline}.oddgrid-stage-col{min-width:0}.oddgrid-stage-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:46px;padding:0 12px;border:1px solid var(--og-border);border-bottom:0;border-radius:16px 16px 0 0;background:#fff}.oddgrid-stage-toolbar>div:first-child{display:flex;align-items:baseline;gap:8px}.oddgrid-stage-toolbar strong{font-size:11px}.oddgrid-stage-toolbar span{color:#929aa7;font-size:9px}.oddgrid-stage-actions{display:flex;gap:6px}.oddgrid-stage-actions button{height:30px;padding:0 9px;border:1px solid #dfe3eb;border-radius:7px;background:#fff;color:#5d6574;font-size:9px;font-weight:800}.oddgrid-stage-actions button.is-active{border-color:#c4c7f0;background:#f0f0ff;color:#4448bd}.oddgrid-stage{position:relative;display:grid;place-items:center;min-height:650px;padding:18px;border:1px solid var(--og-border);background:#edf0f4;overflow:auto}.oddgrid-stage canvas{display:block;max-width:100%;max-height:78vh;width:auto;height:auto;background:#fff;box-shadow:0 10px 35px rgba(23,30,50,.12);image-rendering:auto}.oddgrid-rendering{position:absolute;inset:0;display:grid;place-items:center;background:rgba(238,241,246,.78);backdrop-filter:blur(2px);color:#343b4a;font-size:12px;font-weight:900}.oddgrid-stage-foot{display:flex;flex-wrap:wrap;gap:12px;padding:9px 12px;border:1px solid var(--og-border);border-top:0;border-radius:0 0 16px 16px;background:#fff;color:#969da8;font-size:8px}.oddgrid-export{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;margin-top:14px;padding:18px 20px;border:1px solid var(--og-border);border-radius:15px;background:#fff}.oddgrid-export h2{margin:3px 0 5px;font-size:19px}.oddgrid-export p{max-width:780px;margin:0;color:#747c8a;font-size:10px;line-height:1.55}.oddgrid-export-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.oddgrid-export-buttons button{min-width:112px;height:36px;border:1px solid #d9dee8;border-radius:8px;background:#fff;color:#454d5c;font-size:10px;font-weight:900}.oddgrid-export-buttons button:hover{border-color:#aeb1e9;background:#f3f3ff;color:#4246b7}.oddgrid-export-status{grid-column:1/-1;min-height:14px;color:#5d6573;font-size:9px;font-weight:700}.oddgrid-savebar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:10px;padding:14px 16px;border:1px solid var(--og-border);border-radius:14px;background:linear-gradient(135deg,#fff,#f8f8ff)}.oddgrid-savebar strong,.oddgrid-savebar span{display:block}.oddgrid-savebar strong{font-size:11px}.oddgrid-savebar span{margin-top:3px;color:#818997;font-size:9px;line-height:1.45}.oddgrid-savebar .playlab-btn{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;height:36px;padding:0 11px;font-size:9px;text-decoration:none!important}.oddgrid-howto{margin:22px 0;padding:20px;border:1px solid var(--og-border);border-radius:16px;background:#fff}.oddgrid-howto h2{margin:0 0 13px;font-size:22px}.oddgrid-howto>div{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.oddgrid-howto article{position:relative;padding:14px;border:1px solid #e6e9ef;border-radius:11px;background:#fbfcfe}.oddgrid-howto b{display:grid;place-items:center;width:24px;height:24px;margin-bottom:8px;border-radius:999px;background:#eeeeff;color:#484cc6;font-size:9px}.oddgrid-howto strong{font-size:11px}.oddgrid-howto p{margin:5px 0 0;color:#7e8694;font-size:9px;line-height:1.55}.oddgrid-seo,.oddgrid-faq{margin-top:16px}.oddgrid-stage.is-fullscreen{position:fixed;z-index:100200;inset:0;min-height:100vh;padding:30px;background:#151922}.oddgrid-stage.is-fullscreen canvas{max-width:calc(100vw - 60px);max-height:calc(100vh - 60px)}.oddgrid-toast{position:fixed;z-index:100300;left:50%;bottom:26px;transform:translate(-50%,12px);opacity:0;pointer-events:none;max-width:min(480px,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}.oddgrid-toast.is-visible{opacity:1;transform:translate(-50%,0)}.oddgrid-toast.is-error{background:#a33f49}
@media(max-width:1050px){.oddgrid-app{grid-template-columns:300px minmax(0,1fr)}.oddgrid-stage{min-height:560px}.oddgrid-howto>div{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){.oddgrid-head{display:block;padding:20px}.oddgrid-top-actions{justify-content:flex-start;max-width:none;margin-top:14px}.oddgrid-app{display:flex;flex-direction:column}.oddgrid-controls{position:static;width:100%;max-height:none}.oddgrid-stage-col{width:100%}.oddgrid-stage{min-height:460px}.oddgrid-export{grid-template-columns:1fr}.oddgrid-export-buttons{grid-template-columns:repeat(4,minmax(0,1fr))}.oddgrid-export-buttons button{min-width:0}.oddgrid-savebar{display:block}.oddgrid-savebar .playlab-btn{margin-top:10px}}
@media(max-width:560px){.oddgrid-head h1{font-size:31px}.oddgrid-top-actions .playlab-btn{flex:1 1 calc(50% - 4px)}.oddgrid-stage{min-height:330px;padding:8px}.oddgrid-export-buttons{grid-template-columns:repeat(2,1fr)}.oddgrid-howto>div{grid-template-columns:1fr}.og-choice-grid{grid-template-columns:repeat(2,1fr)}.og-look-grid{grid-template-columns:1fr 1fr}.og-look-grid button:last-child{grid-column:1/-1}.oddgrid-stage-toolbar{padding:0 8px}.oddgrid-stage-actions button{padding:0 7px}.oddgrid-stage-foot{gap:7px}.oddgrid-savebar{padding:13px}}

/* PlayLab 1.0.10 — seed row */
.og-seed-row{display:flex!important;align-items:stretch!important;gap:6px!important}
.og-seed-row input{flex:1 1 auto!important;min-width:0!important;height:38px!important;margin:0!important}
.og-seed-row button{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 38px!important;width:38px!important;height:38px!important;margin:0!important;padding:0!important;line-height:1!important}
.og-hint{margin-top:8px!important}

/* PlayLab 1.0.11 — seed control rebuilt from scratch */
.og-seed-control-v2{display:flex!important;align-items:stretch!important;width:100%!important;height:40px!important;margin:0!important;padding:0!important;border:1px solid #dce1e9!important;border-radius:8px!important;background:#fff!important;overflow:hidden!important;box-sizing:border-box!important}
.og-seed-control-v2 input{display:block!important;flex:1 1 auto!important;min-width:0!important;width:auto!important;height:38px!important;margin:0!important;padding:0 10px!important;border:0!important;border-radius:0!important;background:transparent!important;color:#343b47!important;font-size:11px!important;line-height:38px!important;box-shadow:none!important;outline:none!important}
.og-seed-control-v2:focus-within{border-color:#999de8!important;box-shadow:0 0 0 3px rgba(85,88,220,.07)!important}
.og-seed-control-v2 button{display:flex!important;align-items:center!important;justify-content:center!important;flex:0 0 40px!important;width:40px!important;height:38px!important;min-width:40px!important;min-height:38px!important;margin:0!important;padding:0!important;border:0!important;border-left:1px solid #dce1e9!important;border-radius:0!important;background:#fff!important;color:#4b52bf!important;line-height:1!important;box-shadow:none!important;box-sizing:border-box!important}
.og-seed-control-v2 button:hover{background:#f4f4ff!important;color:#383cb5!important}
.og-seed-control-v2 button svg{display:block;width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.og-hint{margin-top:7px!important;color:#9198a4!important;font-size:9px!important;line-height:1.45!important}

/* ==========================================================
   PlayLab 1.0.17 — direct Oddgrid source integration
   The generator uses the supplied source logic; these rules only keep the
   familiar PlayLab visual shell.
========================================================== */
.oddgrid-page .og-panel-static{cursor:default}
.oddgrid-page .og-panel-body-static{display:block!important}
.oddgrid-page .og-text-input{display:block;width:100%;height:38px;padding:0 10px;border:1px solid #dce1e9;border-radius:8px;background:#fff;color:#343b47;font-size:11px;outline:none}
.oddgrid-page .og-text-input:focus{border-color:#999de8;box-shadow:0 0 0 3px rgba(85,88,220,.07)}
.oddgrid-page .og-variation-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:end}
.oddgrid-page .og-variation-row .og-field{margin:0}
.oddgrid-page .og-mini-action{height:38px;min-width:58px;padding:0 10px;border:1px solid #dfe3eb;border-radius:8px;background:#fff;color:#555d6d;font-size:9px;font-weight:800}
.oddgrid-page .og-new-variation{display:grid;grid-template-columns:28px 1fr;grid-template-rows:auto auto;width:100%;margin-top:10px;padding:11px 12px;border:0;border-radius:9px;background:#15161a;color:#fff;text-align:left}
.oddgrid-page .og-new-variation>span{grid-row:1/3;display:grid;place-items:center;font-size:20px}.oddgrid-page .og-new-variation strong{font-size:10px;letter-spacing:.04em}.oddgrid-page .og-new-variation small{margin-top:2px;color:rgba(255,255,255,.62);font-size:8px}
.oddgrid-page .og-control-block{margin:0}.oddgrid-page .og-control-label{display:block;margin-bottom:6px;color:#687181;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.oddgrid-page .og-select-host{width:100%}
.oddgrid-page .og-range .track{display:block;position:relative;width:100%;height:18px}
.oddgrid-page .og-range .track input[type=range]{position:absolute;inset:0;width:100%;margin:0;accent-color:#5558dc}
.oddgrid-page .og-subgroup{margin-top:12px;padding-top:12px;border-top:1px solid #eef0f4}
.oddgrid-page .og-toggle-master{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:38px;padding:0;border:0;background:transparent;color:#515a69;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.oddgrid-page .og-toggle-master b,.oddgrid-page .og-switch-btn{position:relative;display:block;flex:0 0 30px;width:30px;height:17px;border:1px solid #6b7280;border-radius:999px;background:#fff}
.oddgrid-page .og-toggle-master b:after,.oddgrid-page .og-switch-btn span:after{content:"";position:absolute;left:2px;top:2px;width:11px;height:11px;border-radius:50%;background:#515a69;transition:.15s}
.oddgrid-page .og-toggle-master[aria-pressed=true] b,.oddgrid-page .og-switch-btn[aria-pressed=true]{background:#5558dc;border-color:#5558dc}
.oddgrid-page .og-toggle-master[aria-pressed=true] b:after,.oddgrid-page .og-switch-btn[aria-pressed=true] span:after{transform:translateX(13px);background:#fff}
.oddgrid-page .og-toggle-inline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;color:#61697a;font-size:10px;font-weight:800}
.oddgrid-page .og-switch-btn{padding:0}
.oddgrid-page #customSlot .drop{width:100%;min-height:58px;padding:9px;border:1px dashed #cfd4df;border-radius:9px;background:#fafbfe;color:#687181;font-size:9px;font-weight:800;line-height:1.45}
.oddgrid-page #customSlot .loaded{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px;border:1px solid #dfe3eb;border-radius:9px;background:#fafbfe}
.oddgrid-page #customSlot .prev{display:grid;place-items:center;width:38px;height:38px;border-radius:7px;background:#fff;overflow:hidden}.oddgrid-page #customSlot .prev svg{max-width:30px;max-height:30px}.oddgrid-page #customSlot .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#555d6d;font-size:9px}.oddgrid-page #customSlot .rm{border:0;background:transparent;color:#a33f49;font-size:8px;font-weight:800}
.oddgrid-page .og-color-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;color:#687181;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.oddgrid-page .og-mycolors-toggle{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:#6b7280;font-size:8px;font-weight:800;text-transform:uppercase}.oddgrid-page .og-mycolors-toggle i{position:relative;width:26px;height:14px;border:1px solid #707887;border-radius:999px}.oddgrid-page .og-mycolors-toggle i:after{content:"";position:absolute;left:2px;top:2px;width:8px;height:8px;border-radius:50%;background:#555d6d}.oddgrid-page .og-mycolors-toggle[aria-pressed=true]{color:#4448bd}.oddgrid-page .og-mycolors-toggle[aria-pressed=true] i{background:#5558dc;border-color:#5558dc}.oddgrid-page .og-mycolors-toggle[aria-pressed=true] i:after{transform:translateX(12px);background:#fff}
.oddgrid-page .og-color-actions,.oddgrid-page .myc-row{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.oddgrid-page .og-color-actions button,.oddgrid-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}.oddgrid-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}.oddgrid-page .myc-hint{margin:7px 0 0;color:#8a91a0;font-size:8px;line-height:1.45}
.oddgrid-page .sw-grid{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.oddgrid-page .sw{position:relative;display:inline-grid;place-items:center;width:31px;height:31px;border:1px solid #d7dbe4;border-radius:8px;background:#fff;padding:3px;cursor:pointer}.oddgrid-page .sw .fill{display:block;width:100%;height:100%;border-radius:5px}.oddgrid-page .sw input[type=color]{position:absolute;inset:0;opacity:0;pointer-events:none}.oddgrid-page .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}.oddgrid-page .sw:hover .x{display:block}.oddgrid-page .sw-add{display:grid;place-items:center;width:31px;height:31px;border:1px dashed #c8ced9;border-radius:8px;background:#fff;color:#687181}.oddgrid-page .og-color-circle{width:100%;height:38px}.oddgrid-page .og-color-circle .fill{border-radius:6px}
.oddgrid-page .og-ratio-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.oddgrid-page .ratio{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:48px;padding:5px;border:1px solid #dfe3eb;border-radius:8px;background:#fff}.oddgrid-page .ratio .box{display:block;border:1px solid #8c93a0}.oddgrid-page .ratio .t{font-size:8px;color:#7d8594}.oddgrid-page .ratio[aria-pressed=true]{border-color:#bfc1ee;background:#f0f0ff}.oddgrid-page .ratio[aria-pressed=true] .box{background:#5558dc;border-color:#5558dc}
.oddgrid-page .og-output-readout{display:flex!important;align-items:center!important;gap:9px!important;flex-wrap:wrap}.oddgrid-page .og-output-readout span{padding-left:9px;border-left:1px solid #e3e6ed}
.oddgrid-page .oddgrid-captures{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:10px;padding:13px 16px;border:1px solid var(--og-border);border-radius:14px;background:#fff}.oddgrid-page .caps{display:flex;gap:6px;margin-top:7px}.oddgrid-page .cap{width:10px;height:10px;border:1px solid #c7ccd6;border-radius:50%;background:#fff}.oddgrid-page .cap[aria-current=true]{border-color:#5558dc;background:#5558dc}.oddgrid-page .cap.slot{opacity:.45}.oddgrid-page .capnav{border:0;background:transparent;color:#6b7280;font-size:13px}.oddgrid-page .og-transport{display:flex;align-items:center;gap:9px;color:#7f8795;font-size:9px}.oddgrid-page .og-play{display:grid;place-items:center;width:30px;height:30px;border:1px solid #dfe3eb;border-radius:8px;background:#fff}.oddgrid-page .og-play svg{fill:#4b52bf}.oddgrid-page .scrubwrap{display:block;width:150px}.oddgrid-page #scrub{width:100%;accent-color:#5558dc}
.oddgrid-page .og-export-size{margin-top:12px;max-width:420px}.oddgrid-page .oddgrid-export-buttons button:disabled{opacity:.4;cursor:not-allowed}.oddgrid-page .oddgrid-export-status.is-error{color:#a33f49}
.oddgrid-page .oddgrid-stage.is-fullscreen{position:fixed!important;z-index:100200;inset:0;min-height:100vh!important;padding:28px;background:#151922;border-radius:0}.oddgrid-page .oddgrid-stage.is-fullscreen canvas{max-width:calc(100vw - 56px)!important;max-height:calc(100vh - 56px)!important}.playlab-no-scroll{overflow:hidden!important}
.oddgrid-page .oddgrid-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}.oddgrid-page .oddgrid-toast.show,.oddgrid-page .oddgrid-toast.is-visible{opacity:1;transform:translate(-50%,0)}

/* dropdowns created by the supplied Oddgrid script */
.pick{position:relative;width:100%}.pick-btn{display:flex;align-items:center;justify-content:space-between;width:100%;height:36px;padding:0 9px;border:1px solid #dfe3eb;border-radius:8px;background:#fff;color:#555d6d;font-size:9px;font-weight:800}.pick-btn .chev:after{content:"⌄"}.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{background:#f2f2ff;color:#4145b9}.pick-menu li[aria-selected=true]{background:#f0f0ff;color:#4145b9}
/* colour picker created by chassis */
.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}
.firstrun{position:fixed;z-index:100700;padding:8px 12px;border-radius:999px;background:#111827;color:#fff;font-size:9px;opacity:0;transform:translateY(-6px);transition:.2s;pointer-events:none}.firstrun.on{opacity:1;transform:none}
@media(max-width:820px){.oddgrid-page .oddgrid-captures{align-items:flex-start;flex-direction:column}.oddgrid-page .og-transport{width:100%}.oddgrid-page .scrubwrap{flex:1;width:auto}}


/* PlayLab 1.0.18 — Captures + result actions */
.oddgrid-page .oddgrid-captures{display:block;margin-top:10px;padding:15px 16px;border:1px solid var(--og-border);border-radius:14px;background:#fff}
.oddgrid-page .oddgrid-captures-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.oddgrid-page .oddgrid-captures-head strong{display:block;margin-top:2px;color:#202634;font-size:11px}
.oddgrid-page .oddgrid-captures-head span{display:block;margin-top:3px;color:#8a91a0;font-size:9px;line-height:1.45}
.oddgrid-page .oddgrid-captures-body{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;margin-top:11px;padding-top:11px;border-top:1px solid #eef0f4}
.oddgrid-page .caps{display:flex;align-items:center;gap:7px;min-width:0;margin:0}
.oddgrid-page .caps .capnav{display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;height:28px;padding:0;border:1px solid #dfe3eb;border-radius:8px;background:#fff;color:#606879;font-size:15px;line-height:1}
.oddgrid-page .caps .capnav:hover:not(:disabled){border-color:#bfc1ee;background:#f4f4ff;color:#4549bd}
.oddgrid-page .caps .capnav:disabled{opacity:.32;cursor:not-allowed}
.oddgrid-page .caps .cap{flex:0 0 11px;width:11px;height:11px;padding:0;border:1px solid #c7ccd6;border-radius:50%;background:#fff}
.oddgrid-page .caps .cap[aria-current=true]{border-color:#5558dc;background:#5558dc;box-shadow:0 0 0 3px rgba(85,88,220,.10)}
.oddgrid-page .caps .cap.slot{opacity:.45}
.oddgrid-page .og-transport{display:grid;grid-template-columns:32px 150px auto;align-items:center;gap:9px;margin:0;color:#7f8795;font-size:9px}
.oddgrid-page .og-play{display:grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid #dfe3eb;border-radius:8px;background:#fff}
.oddgrid-page .og-play:hover{border-color:#bfc1ee;background:#f4f4ff}
.oddgrid-page .og-play svg{fill:#4b52bf}
.oddgrid-page .scrubwrap{display:block;width:150px;line-height:0}
.oddgrid-page #scrub{display:block;width:100%;margin:0;accent-color:#5558dc}
.oddgrid-page .og-frame-no{min-width:42px;text-align:right;font:800 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;color:#767e8d}

.oddgrid-page .oddgrid-result-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;margin-top:10px;padding:17px 18px;border:1px solid var(--og-border);border-radius:14px;background:linear-gradient(135deg,#fff 0%,#f8f8ff 100%)}
.oddgrid-page .oddgrid-result-actions h2{margin:3px 0 5px;color:#171c27;font-size:17px;line-height:1.2}
.oddgrid-page .oddgrid-result-actions p{max-width:720px;margin:0;color:#7a8291;font-size:9px;line-height:1.55}
.oddgrid-page .oddgrid-result-actions-buttons{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px;max-width:520px}
.oddgrid-page .oddgrid-result-actions-buttons .playlab-btn{display:inline-flex;align-items:center;justify-content:center;min-height:36px;height:36px;padding:0 12px;white-space:nowrap;font-size:9px;text-decoration:none!important}
.oddgrid-page .oddgrid-result-actions-buttons .playlab-btn-primary,.oddgrid-page .oddgrid-result-actions-buttons .playlab-btn-publish{color:#fff!important}

@media(max-width:900px){
  .oddgrid-page .oddgrid-captures-body{grid-template-columns:1fr}
  .oddgrid-page .og-transport{grid-template-columns:32px minmax(0,1fr) auto;width:100%}
  .oddgrid-page .scrubwrap{width:auto}
  .oddgrid-page .oddgrid-result-actions{grid-template-columns:1fr}
  .oddgrid-page .oddgrid-result-actions-buttons{justify-content:flex-start;max-width:none}
}
@media(max-width:560px){
  .oddgrid-page .oddgrid-captures{padding:13px}
  .oddgrid-page .caps{gap:5px;overflow-x:auto;padding:2px 0 5px}
  .oddgrid-page .oddgrid-result-actions-buttons .playlab-btn{flex:1 1 calc(50% - 4px)}
}

/* PlayLab 1.0.19 — file export controls, matching the supplied Oddgrid logic */
.oddgrid-page .oddgrid-file-export{margin-top:10px;padding:16px 18px;border:1px solid var(--og-border);border-radius:14px;background:#fff}
.oddgrid-page .oddgrid-file-export-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}
.oddgrid-page .oddgrid-file-export-head h2{margin:3px 0 0;color:#171c27;font-size:18px;line-height:1.2}
.oddgrid-page .oddgrid-file-export-size{display:flex;align-items:baseline;gap:8px;color:#8a91a0;font-size:9px;text-transform:uppercase;letter-spacing:.06em}
.oddgrid-page .oddgrid-file-export-size strong{color:#303747;font:800 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace}
.oddgrid-page .oddgrid-file-export-range{max-width:none;margin-top:14px!important}
.oddgrid-page .oddgrid-file-export-buttons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:12px}
.oddgrid-page .oddgrid-file-export-buttons button{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 10px;border:1px solid #d9dee8;border-radius:999px;background:#fff;color:#454d5c;font-size:9px;font-weight:900;white-space:nowrap}
.oddgrid-page .oddgrid-file-export-buttons button:hover:not(:disabled){border-color:#9fa2eb;background:#f3f3ff;color:#4246b7}
.oddgrid-page .oddgrid-file-export-buttons button:disabled{opacity:.35;cursor:not-allowed}
.oddgrid-page .oddgrid-file-export .oddgrid-export-status{min-height:14px;margin-top:10px;color:#7d8593;font-size:9px;line-height:1.45}
.oddgrid-page .oddgrid-playlab-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:10px;padding:13px 16px;border:1px solid var(--og-border);border-radius:14px;background:#fff}
.oddgrid-page .oddgrid-playlab-actions strong,.oddgrid-page .oddgrid-playlab-actions span{display:block}
.oddgrid-page .oddgrid-playlab-actions strong{font-size:11px;color:#202634}
.oddgrid-page .oddgrid-playlab-actions span{margin-top:3px;color:#8a91a0;font-size:9px;line-height:1.45}
.oddgrid-page .oddgrid-playlab-actions-buttons{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}
.oddgrid-page .oddgrid-playlab-actions-buttons .playlab-btn{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 11px;font-size:9px;text-decoration:none!important}
@media(max-width:700px){.oddgrid-page .oddgrid-file-export-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}.oddgrid-page .oddgrid-playlab-actions{align-items:flex-start;flex-direction:column}.oddgrid-page .oddgrid-playlab-actions-buttons{justify-content:flex-start}}

/* PlayLab 1.0.20 — gallery badge + hybrid RU localisation */
.oddgrid-page .oddgrid-top-actions .playlab-count-badge,
.oddgrid-page .oddgrid-playlab-actions-buttons .playlab-count-badge{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  flex:0 0 auto!important;min-width:18px!important;height:18px!important;
  margin:0 0 0 5px!important;padding:0 5px!important;border:0!important;
  border-radius:999px!important;background:#eef0ff!important;color:#4a4ec0!important;
  font:900 8px/18px ui-monospace,SFMono-Regular,Menlo,monospace!important;
  vertical-align:middle!important;position:static!important;transform:none!important;
  box-shadow:inset 0 0 0 1px #d9dcff!important
}
.oddgrid-page .oddgrid-top-actions .playlab-btn,
.oddgrid-page .oddgrid-playlab-actions-buttons .playlab-btn{gap:0!important}
.oddgrid-page .og-panel-title strong,.oddgrid-page .og-control-label,.oddgrid-page .og-range>span{overflow-wrap:anywhere}

/* PlayLab 1.0.21 — exact swatch centering */
.oddgrid-page #swatches.sw-grid{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
}
.oddgrid-page #swatches .sw,
.oddgrid-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;
  vertical-align:middle!important;
}
.oddgrid-page #swatches .sw{
  display:block!important;
  border:1px solid #d7dbe4!important;
  background:#fff!important;
  overflow:visible!important;
}
.oddgrid-page #swatches .sw .fill{
  position:absolute!important;
  inset:4px!important;
  display:block!important;
  width:auto!important;
  height:auto!important;
  margin:0!important;
  border-radius:5px!important;
  pointer-events:none!important;
}
.oddgrid-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;
}
.oddgrid-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;
  font-weight:400!important;
  text-align:center!important;
}


/* PlayLab 1.0.31 — same New variation + export geometry for every generator */
.oddgrid-page .og-new-variation.newbtn{
  width:100%!important;min-height:64px!important;margin:10px 0 0!important;padding:11px 13px!important;
  display:grid!important;grid-template-columns:24px minmax(0,1fr)!important;
  grid-template-rows:auto auto!important;grid-template-areas:"ico title" "ico sub"!important;
  column-gap:10px!important;row-gap:2px!important;align-items:center!important;
  border:0!important;border-radius:9px!important;background:#111318!important;color:#fff!important;
  text-align:left!important;box-shadow:none!important;overflow:hidden!important
}
.oddgrid-page .og-new-variation.newbtn .ico,
.oddgrid-page .og-new-variation.newbtn>span[aria-hidden="true"]{grid-area:ico!important;align-self:center!important;justify-self:center!important;font-size:20px!important;line-height:1!important;color:#fff!important}
.oddgrid-page .og-new-variation.newbtn .t{grid-area:title!important;display:block!important;min-width:0!important;margin:0!important;color:#fff!important;font-size:11px!important;font-weight:900!important;line-height:1.25!important;letter-spacing:.02em!important;text-transform:none!important;white-space:normal!important}
.oddgrid-page .og-new-variation.newbtn .sub{grid-area:sub!important;display:block!important;min-width:0!important;margin:0!important;color:rgba(255,255,255,.68)!important;font-size:8.5px!important;font-weight:700!important;line-height:1.3!important;letter-spacing:0!important;text-transform:none!important;white-space:normal!important}
.oddgrid-page .og-new-variation.newbtn:hover{background:#20232a!important}

.oddgrid-page .oddgrid-file-export #exportBody{display:block!important;margin-top:13px!important}
.oddgrid-page .oddgrid-file-export #exportBody>.pr{margin:0 0 12px!important}
.oddgrid-page .oddgrid-file-export #exportBody>.misc{margin:0!important;min-height:0!important}
.oddgrid-page .oddgrid-file-export #exportBody>.misc .mhead{display:none!important}
.oddgrid-page .oddgrid-file-export #exportBody>.misc .mval{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%!important;gap:7px!important;justify-content:stretch!important}
.oddgrid-page .oddgrid-file-export #exportBody>.misc+.misc{margin-top:7px!important}
.oddgrid-page .oddgrid-file-export #exportBody .lnk{display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;min-width:0!important;height:38px!important;margin:0!important;padding:0 10px!important;border:1px solid #d9dee8!important;border-radius:999px!important;background:#fff!important;color:#454d5c!important;font-size:9px!important;font-weight:900!important;letter-spacing:.03em!important;text-transform:none!important}
.oddgrid-page .oddgrid-file-export #exportBody .lnk:hover:not(:disabled){border-color:#9fa2eb!important;background:#f3f3ff!important;color:#4246b7!important}
.oddgrid-page .oddgrid-file-export #exportBody .lnk:disabled{opacity:.35!important;cursor:not-allowed!important}
.oddgrid-page .oddgrid-file-export #exportBody .vidhint{margin:9px 0 0!important;color:#7d8593!important;font-size:9px!important;line-height:1.45!important}
@media(max-width:520px){.oddgrid-page .oddgrid-file-export #exportBody>.misc .mval{grid-template-columns:1fr!important}}


/* PlayLab 1.0.33 — harden shared generator shell */
.oddgrid-page .oddgrid-playlab-actions>div:first-child{display:grid!important;grid-template-columns:1fr!important;gap:3px!important;min-width:0!important}
.oddgrid-page .oddgrid-playlab-actions>div:first-child>strong,.oddgrid-page .oddgrid-playlab-actions>div:first-child>span{display:block!important;margin:0!important}
.oddgrid-page .og-variation-row{align-items:end!important}
.oddgrid-page .og-variation-row .og-mini-action{height:40px!important;margin:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}
