/*
 * Sweet Shift Saga — Proprietary Source Code
 * Copyright © 2026 Alex Brow / Mob Productions. All rights reserved.
 * Property of Alex Brow / Mob Productions.
 * Developed using the SOI Engine.
 * Unauthorized copying, redistribution, or commercial use of this source code is prohibited without permission.
 */

/* v4.1.0.3 — restricted in-game Level Maker Beta. */
.level-maker-modal {
  z-index:5000 !important;
  height:100dvh !important;
  max-height:100dvh !important;
  padding:18px !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  overscroll-behavior:contain !important;
  align-items:flex-start !important;
  background:linear-gradient(180deg,#f4e7f3 0%,#e7d7ee 100%) !important;
  isolation:isolate;
  contain:layout paint style;
}

body.level-maker-open {
  overflow:hidden !important;
  overscroll-behavior:none !important;
}

body.level-maker-open .screen.active {
  visibility:hidden !important;
  pointer-events:none !important;
}

body.level-maker-open .saga-episode-details,
body.level-maker-open .shiftzone-banner {
  display:none !important;
}

.level-maker-card {
  position:relative;
  width:min(1460px,calc(100vw - 24px));
  max-height:none !important;
  margin:max(8px,env(safe-area-inset-top)) auto max(12px,env(safe-area-inset-bottom));
  padding:18px;
  border:3px solid rgba(255,255,255,.9);
  border-radius:28px;
  background:linear-gradient(180deg,#fffdf8 0%,#f9f1fb 100%);
  color:#55395f;
  box-shadow:0 18px 45px rgba(55,31,74,.22);
}

.level-maker-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:2px 54px 15px 2px;
  border-bottom:2px solid #eadfee;
}
.level-maker-head small {
  display:block;
  margin-bottom:2px;
  color:#9a7da3;
  font-size:.58rem;
  font-weight:900;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.level-maker-head h2 {
  margin:0;
  color:#5c3e77;
  font-size:clamp(1.55rem,2.5vw,2.35rem);
  line-height:1;
}
.level-maker-head p {
  max-width:720px;
  margin:8px 0 0;
  color:#806b86;
  font-weight:700;
  line-height:1.4;
}
.level-maker-head-actions {
  display:flex;
  gap:8px;
  flex:0 0 auto;
}

.level-maker-lock {
  max-width:600px;
  margin:34px auto 22px;
  padding:30px;
  text-align:center;
  border:2px solid #ead9ef;
  border-radius:24px;
  background:#fff;
  box-shadow:0 9px 22px rgba(74,45,87,.09);
}
.level-maker-lock strong { display:block; font-size:1.25rem; color:#654180; }
.level-maker-lock p { margin:7px 0 16px; color:#8a748f; }
.level-maker-unlock-track {
  height:15px;
  overflow:hidden;
  border-radius:999px;
  background:#e7dce9;
}
.level-maker-unlock-track i {
  display:block;
  width:0;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#e45aa0,#a15fbd,#f2c650);
  transition:width .2s ease;
}
.level-maker-lock > span {
  display:block;
  margin-top:8px;
  font-size:.72rem;
  font-weight:900;
  color:#75577e;
}

.level-maker-app { padding-top:14px; }
.level-maker-settings {
  display:grid;
  grid-template-columns:minmax(210px,1.8fr) repeat(4,minmax(120px,.7fr));
  gap:8px;
  margin-bottom:12px;
}
.level-maker-field {
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
  padding:8px 10px;
  border:1px solid #eadfeb;
  border-radius:14px;
  background:#fff;
}
.level-maker-field label {
  color:#8d7395;
  font-size:.52rem;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.045em;
}
.level-maker-field input,
.level-maker-field select,
.lm-tool-options select,
.lm-goal-row select,
.lm-goal-row input,
.level-maker-goals > select,
#lm-share-code {
  box-sizing:border-box;
  width:100%;
  min-height:36px;
  border:1px solid #dac9df;
  border-radius:10px;
  background:#fbf9fc;
  color:#59405f;
  font:inherit;
  font-size:.72rem;
  font-weight:800;
  outline:none;
}
.level-maker-field input,
.level-maker-field select,
.lm-tool-options select,
.lm-goal-row select,
.lm-goal-row input,
.level-maker-goals > select { padding:6px 8px; }
.level-maker-field input:focus,
.level-maker-field select:focus,
.lm-tool-options select:focus,
.lm-goal-row select:focus,
.lm-goal-row input:focus,
#lm-share-code:focus {
  border-color:#9f68b5;
  box-shadow:0 0 0 3px rgba(159,104,181,.12);
}
.level-maker-field input[type="range"] { min-height:20px; padding:0; }
.level-maker-field > span { color:#8c738f; font-size:.52rem; font-weight:900; }

.level-maker-main {
  display:grid;
  grid-template-columns:250px minmax(460px,1fr) 300px;
  gap:12px;
  align-items:start;
}
.level-maker-tools,
.level-maker-board-panel,
.level-maker-goals {
  min-width:0;
  border:2px solid #eadfeb;
  border-radius:20px;
  background:#fff;
  box-shadow:0 6px 15px rgba(67,42,77,.06);
}
.level-maker-tools,
.level-maker-goals { padding:11px; }
.level-maker-board-panel { padding:12px; }

.level-maker-section-title {
  display:flex;
  flex-direction:column;
  gap:1px;
  margin:0 0 8px;
}
.level-maker-section-title.compact { margin-top:15px; }
.level-maker-section-title strong { color:#60416b; font-size:.76rem; }
.level-maker-section-title small { color:#a187a6; font-size:.48rem; font-weight:800; }

.lm-tool-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:5px;
}
.lm-tool {
  min-width:0;
  min-height:57px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  padding:5px 3px;
  border:1px solid #e7dce9;
  border-radius:11px;
  background:#faf7fb;
  color:#654a6c;
  font:inherit;
  cursor:pointer;
  touch-action:manipulation;
}
.lm-tool b { font-size:1rem; line-height:1; color:#915da8; }
.lm-tool span {
  max-width:100%;
  font-size:.43rem;
  line-height:1.05;
  font-weight:900;
  text-align:center;
}
.lm-tool:hover { background:#f2e9f5; border-color:#cfaed9; }
.lm-tool.selected {
  border-color:#9a58b3;
  background:linear-gradient(180deg,#fff6c9,#f1e1f7);
  box-shadow:0 0 0 2px rgba(154,88,179,.1);
  color:#56345f;
}
.lm-tool-options {
  min-height:36px;
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:7px;
  padding:6px 7px;
  border-radius:11px;
  background:#f7f1f8;
  color:#8a708f;
  font-size:.5rem;
  font-weight:800;
}
.lm-tool-options label { display:flex; align-items:center; gap:5px; flex:1; }
.lm-tool-options select { min-height:31px; }

.lm-preset-grid,
.lm-share-actions,
.lm-primary-actions {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;
}


.lm-beta-board-note {
  margin-top:6px;
  padding:9px 10px;
  border:1px solid #dccce1;
  background:#f8f3f9;
  color:#765b7c;
  font-size:.54rem;
  font-weight:900;
  line-height:1.25;
}
.level-maker-card { z-index:1; }
.lm-preset-grid button,
.lm-wide-button,
.lm-column-buttons button,
.level-maker-board-head button,
.lm-share-actions button,
.lm-goal-row button {
  min-height:34px;
  border:1px solid #dccce1;
  border-radius:10px;
  background:#f8f3f9;
  color:#63456c;
  font:inherit;
  font-size:.56rem;
  font-weight:900;
  cursor:pointer;
  touch-action:manipulation;
}
.lm-preset-grid button:hover,
.lm-wide-button:hover,
.lm-column-buttons button:hover,
.level-maker-board-head button:hover,
.lm-share-actions button:hover { background:#eee2f2; }
.lm-wide-button { width:100%; margin-top:7px; }

.level-maker-board-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
}
.level-maker-board-head > div { display:flex; flex-direction:column; gap:1px; }
.level-maker-board-head strong { color:#5c3d67; font-size:.8rem; }
.level-maker-board-head small { color:#9b829f; font-size:.48rem; font-weight:800; }
.level-maker-board-head button { padding:5px 10px; }

.lm-board {
  --lm-tile:min(6.2vw,64px);
  position:relative;
  display:grid;
  grid-template-columns:repeat(9,var(--lm-tile));
  grid-template-rows:repeat(9,var(--lm-tile));
  justify-content:center;
  width:max-content;
  max-width:100%;
  margin:0 auto;
  padding:5px;
  overflow:hidden;
  border:3px solid #cae9fa;
  border-radius:0;
  background:#075b97;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.12),0 6px 14px rgba(42,75,110,.13);
  touch-action:none;
  user-select:none;
}
.lm-cell {
  position:relative;
  width:var(--lm-tile);
  height:var(--lm-tile);
  overflow:hidden;
  padding:0;
  border:1px solid rgba(255,255,255,.12);
  background:#0c72b3;
  cursor:crosshair;
  touch-action:none;
}
.lm-cell:nth-child(even) { background:#0a69a8; }
.lm-cell.hole {
  border-color:transparent;
  background:#07375e;
}
.lm-hole-mark {
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  color:rgba(255,255,255,.25);
  font-size:1.15rem;
  font-weight:1000;
}
.lm-jelly,
.lm-jam,
.lm-light,
.lm-blocker,
.lm-special,
.lm-lock {
  position:absolute;
  pointer-events:none;
}
.lm-jelly {
  inset:4px;
  z-index:1;
  border:2px solid rgba(218,249,255,.86);
  border-radius:9px;
  background:rgba(82,196,232,.40);
}
.lm-jelly.double {
  border-color:#f0dfff;
  background:rgba(143,88,211,.46);
}
.lm-jam {
  inset:5px;
  z-index:1;
  border-radius:9px;
  background:rgba(233,68,151,.4);
}
.lm-light {
  inset:6px;
  z-index:1;
  display:grid;
  place-items:center;
  border:2px solid rgba(255,242,139,.9);
  border-radius:10px;
  background:rgba(255,212,58,.22);
  color:#fff3a7;
  font-style:normal;
  font-size:calc(var(--lm-tile) * .3);
}
.lm-blocker {
  inset:5%;
  z-index:3;
  background-position:center;
  background-repeat:no-repeat;
  background-size:contain;
}
.lm-special {
  inset:12%;
  z-index:3;
  display:grid;
  place-items:center;
  border-radius:42%;
  background:#ef3f70;
  color:#fff;
  font-size:calc(var(--lm-tile) * .35);
  font-weight:1000;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.65);
}
.lm-special.color-1 { background:#f2b52a; }
.lm-special.color-2 { background:#238bd4; }
.lm-special.color-3 { background:#3eba64; }
.lm-special.color-4 { background:#8c52ca; }
.lm-special.color-5 { background:#f1812f; }
.lm-special-bomb { border-radius:50%; background:#4b305a !important; }
.lm-special-fish { border-radius:48% 52% 52% 48%; background:#65c8ed !important; }
.lm-lock {
  inset:7%;
  z-index:5;
  border:3px solid #3d2946;
  border-radius:12px;
  display:grid;
  place-items:center;
  color:#fff;
  font-size:calc(var(--lm-tile) * .28);
}

.lm-blocker-toffee { background-image:url("../assets/blockers/individual/toffee/toffee_intact.png"); }
.lm-blocker-frosting { background-image:url("../assets/blockers/individual/frosting/frosting_layer_3.png"); }
.lm-blocker-wafer { background-image:url("../assets/blockers/individual/wafer/wafer_layer_4.png"); }
.lm-blocker-crystal { background-image:url("../assets/blockers/individual/sugar_crystal/sugar_crystal_intact.png"); }
.lm-blocker-gum { background-image:url("../assets/blockers/individual/gum/gum_layer_3.png"); }
.lm-blocker-honeycomb { background-image:url("../assets/blockers/individual/toffee_alt/toffee_alt_intact.png"); }
.lm-blocker-bubblegum { background-image:url("../assets/blockers/individual/bubble/bubble_red_candy.png"); }
.lm-blocker-cake { background-image:url("../assets/blockers/individual/cake/cake_intact.png"); }
.lm-blocker-liquoriceCage { background-image:url("../assets/blockers/individual/liquorice_cage/liquorice_cage_layer_3.png"); }
.lm-blocker-magicStar { background-image:url("../assets/blockers/individual/magic_star_block/magic_star_block_intact.png"); }
.lm-blocker-prism { background-image:url("../assets/blockers/individual/crystal_cage/crystal_cage_intact.png"); }
.lm-blocker-candyCane { background-image:url("../assets/blockers/individual/candy_cane_cage/candy_cane_cage_red.png"); }
.lm-blocker-ropeCrate { background-image:url("../assets/blockers/individual/rope_crate/rope_crate_blue.png"); }
.lm-blocker-ropeCrate.color-0 { background-image:url("../assets/blockers/individual/rope_crate/rope_crate_red.png"); }
.lm-blocker-ropeCrate.color-1 { background-image:url("../assets/blockers/individual/rope_crate/rope_crate_yellow.png"); }
.lm-blocker-ropeCrate.color-2 { background-image:url("../assets/blockers/individual/rope_crate/rope_crate_blue.png"); }
.lm-blocker-ropeCrate.color-3 { background-image:url("../assets/blockers/individual/rope_crate/rope_crate_green.png"); }

.lm-column-tools {
  display:grid;
  grid-template-columns:120px 1fr;
  align-items:center;
  gap:7px;
  margin-top:8px;
}
.lm-column-tools strong { color:#75577d; font-size:.54rem; }
.lm-column-buttons { display:grid; grid-template-columns:repeat(9,minmax(0,1fr)); gap:3px; }
.lm-column-buttons button { min-width:0; min-height:29px; padding:2px; }
.lm-column-buttons button.active {
  border-color:#9d66b3;
  background:#e8d8ef;
  color:#573860;
}

#lm-goal-rows { display:grid; gap:7px; }
.lm-goal-row {
  display:grid;
  gap:5px;
  padding:7px;
  border:1px solid #eadfeb;
  border-radius:12px;
  background:#fbf8fc;
}
.lm-goal-row > div:first-child {
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.lm-goal-row small { color:#92789a; font-size:.47rem; font-weight:1000; text-transform:uppercase; }
.lm-goal-row button { width:27px; min-height:27px; padding:0; }
.lm-goal-extra { display:flex; gap:5px; align-items:center; }
.lm-auto-target {
  flex:1;
  padding:7px;
  border-radius:9px;
  background:#eee5f2;
  color:#76577d;
  font-size:.54rem;
  font-weight:900;
}
.level-maker-goals > select { margin-bottom:5px; }
#lm-share-code {
  min-height:92px;
  resize:vertical;
  padding:8px;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:.52rem;
  font-weight:700;
  line-height:1.3;
  overflow-wrap:anywhere;
}
.lm-share-actions { grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:5px; }
.lm-validation {
  min-height:38px;
  display:flex;
  align-items:center;
  margin-top:10px;
  padding:7px 9px;
  border-radius:10px;
  background:#f1eaf3;
  color:#785e7e;
  font-size:.54rem;
  font-weight:900;
  line-height:1.2;
}
.lm-validation.good { background:#e8f7ee; color:#397653; }
.lm-validation.bad { background:#fff0f1; color:#a14257; }
.lm-primary-actions { margin-top:8px; }
.lm-primary-actions .ss-modal-action { min-width:0 !important; width:100%; }

.level-maker-entry.locked { opacity:.78; }

@media (max-width:1180px) {
  .level-maker-settings { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .level-maker-field.wide { grid-column:span 2; }
  .level-maker-main { grid-template-columns:220px minmax(430px,1fr); }
  .level-maker-goals { grid-column:1 / -1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .level-maker-goals > .level-maker-section-title,
  .level-maker-goals > #lm-goal-rows,
  .level-maker-goals > #lm-add-goal-btn { grid-column:1; }
  .level-maker-goals > .level-maker-section-title.compact:nth-of-type(2),
  .level-maker-goals > #lm-draft-list,
  .level-maker-goals > #lm-load-draft-btn,
  .level-maker-goals > .level-maker-section-title.compact:nth-of-type(3),
  .level-maker-goals > #lm-share-code,
  .level-maker-goals > .lm-share-actions,
  .level-maker-goals > #lm-validation,
  .level-maker-goals > .lm-primary-actions { grid-column:2; }
}

@media (max-width:780px) {
  .level-maker-modal { padding:5px !important; }
  .level-maker-card { width:calc(100vw - 8px); padding:10px; border-radius:20px; }
  .level-maker-head { flex-direction:column; padding-right:48px; gap:9px; }
  .level-maker-head-actions { width:100%; }
  .level-maker-head-actions button { flex:1; }
  .level-maker-settings { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .level-maker-field.wide { grid-column:1 / -1; }
  .level-maker-main { display:flex; flex-direction:column; }
  .level-maker-tools,
  .level-maker-board-panel,
  .level-maker-goals { width:100%; box-sizing:border-box; }
  .lm-tool-grid { grid-template-columns:repeat(5,minmax(0,1fr)); }
  .lm-board { --lm-tile:calc((100vw - 42px) / 9); padding:3px; border-radius:0; }
  .lm-column-tools { grid-template-columns:1fr; }
  .level-maker-goals { display:block; }
  .level-maker-goals > * { margin-top:7px; }
}

@media (max-width:480px) {
  .level-maker-settings { grid-template-columns:1fr 1fr; }
  .lm-tool-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .lm-tool { min-height:53px; }
  .lm-tool span { font-size:.39rem; }
  .level-maker-head p { font-size:.67rem; }
}

/* Level Maker layer previews use artwork, never numeric HP badges. */
.lm-blocker-frosting.hp-3 { background-image:url("../assets/blockers/individual/frosting/frosting_layer_3.png"); }
.lm-blocker-frosting.hp-2 { background-image:url("../assets/blockers/individual/frosting/frosting_layer_2.png"); }
.lm-blocker-frosting.hp-1 { background-image:url("../assets/blockers/individual/frosting/frosting_layer_1.png"); }
.lm-blocker-wafer.hp-4 { background-image:url("../assets/blockers/individual/wafer/wafer_layer_4.png"); }
.lm-blocker-wafer.hp-3 { background-image:url("../assets/blockers/individual/wafer/wafer_layer_3.png"); }
.lm-blocker-wafer.hp-2 { background-image:url("../assets/blockers/individual/wafer/wafer_layer_2.png"); }
.lm-blocker-wafer.hp-1 { background-image:url("../assets/blockers/individual/wafer/wafer_layer_1.png"); }
.lm-blocker-gum.hp-3 { background-image:url("../assets/blockers/individual/gum/gum_layer_3.png"); }
.lm-blocker-gum.hp-2 { background-image:url("../assets/blockers/individual/gum/gum_layer_2.png"); }
.lm-blocker-gum.hp-1 { background-image:url("../assets/blockers/individual/gum/gum_layer_1.png"); }
.lm-blocker-honeycomb.hp-3 { background-image:url("../assets/blockers/individual/toffee_alt/toffee_alt_intact.png"); }
.lm-blocker-honeycomb.hp-2 { background-image:url("../assets/blockers/individual/toffee_alt/toffee_alt_damaged_1.png"); }
.lm-blocker-honeycomb.hp-1 { background-image:url("../assets/blockers/individual/toffee_alt/toffee_alt_damaged_2.png"); }
.lm-blocker-cake.hp-4 { background-image:url("../assets/blockers/individual/cake/cake_intact.png"); }
.lm-blocker-cake.hp-3 { background-image:url("../assets/blockers/individual/cake/cake_damaged_1.png"); }
.lm-blocker-cake.hp-2 { background-image:url("../assets/blockers/individual/cake/cake_damaged_2.png"); }
.lm-blocker-cake.hp-1 { background-image:url("../assets/blockers/individual/cake/cake_broken.png"); }
.lm-blocker-liquoriceCage.hp-3 { background-image:url("../assets/blockers/individual/liquorice_cage/liquorice_cage_layer_3.png"); }
.lm-blocker-liquoriceCage.hp-2 { background-image:url("../assets/blockers/individual/liquorice_cage/liquorice_cage_layer_2.png"); }
.lm-blocker-liquoriceCage.hp-1 { background-image:url("../assets/blockers/individual/liquorice_cage/liquorice_cage_layer_1.png"); }
.lm-blocker-magicStar.hp-2 { background-image:url("../assets/blockers/individual/magic_star_block/magic_star_block_intact.png"); }
.lm-blocker-magicStar.hp-1 { background-image:url("../assets/blockers/individual/magic_star_block/magic_star_block_cracked.png"); }
.lm-blocker-prism.hp-3 { background-image:url("../assets/blockers/individual/crystal_cage/crystal_cage_intact.png"); }
.lm-blocker-prism.hp-2,
.lm-blocker-prism.hp-1 { background-image:url("../assets/blockers/individual/crystal_cage/crystal_cage_cracked.png"); }
.lm-blocker-ropeCrate.hp-1 { opacity:.76; }
.lm-lock { opacity:1; }


/* =====================================================================
   v4.1.0.0 — LEVEL MAKER BETA RESTRICTIONS
   ===================================================================== */
.level-maker-title-line {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
}
.level-maker-beta-badge {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:22px;
  padding:2px 8px;
  border-radius:999px;
  background:#6c478a;
  color:#fff;
  font-size:.48rem;
  font-weight:1000;
  letter-spacing:.12em;
}
.level-maker-beta-note {
  display:grid;
  gap:3px;
  margin-bottom:10px;
  padding:9px 11px;
  border:1px solid #e4d3e9;
  border-radius:13px;
  background:linear-gradient(135deg,#fff9d9,#f5eafa);
  color:#66456e;
}
.level-maker-beta-note strong { font-size:.68rem; }
.level-maker-beta-note span { font-size:.56rem; font-weight:900; }
.level-maker-beta-note small { color:#8c738f; font-size:.48rem; font-weight:800; }
.level-maker-field input[readonly] {
  background:#eee7f1;
  color:#765a7e;
  cursor:not-allowed;
}
.lm-beta-limits {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:5px;
  margin-top:8px;
}
.lm-beta-limits span {
  padding:6px 4px;
  border-radius:9px;
  background:#f4edf6;
  color:#765a7d;
  font-size:.48rem;
  font-weight:900;
  text-align:center;
}
.lm-beta-limits b { color:#603f6b; }
.lm-beta-lock {
  padding:2px 6px;
  border-radius:999px;
  background:#eee4f2;
  color:#77567f;
  font-size:.4rem;
  font-weight:1000;
  letter-spacing:.07em;
}
.lm-primary-actions.single { grid-template-columns:1fr; }
.lm-cell.hole { cursor:not-allowed; }

/* Beta never shows numeric HP badges in the editor. */
.lm-blocker::after,
.lm-lock::after,
.lm-jelly.double::after {
  content:none !important;
  display:none !important;
}

@media (max-width:560px) {
  .lm-beta-limits { grid-template-columns:1fr; }
}
