      *,
      *::before,
      *::after {
        box-sizing: border-box;
        margin: 0;
        padding: 0;
      }
      :root {
        --i0: #05050d;
        --i1: #0a0a18;
        --i2: #10101f;
        --i3: #181828;
        --i4: #202035;
        --i5: #282840;
        --l1: rgba(255, 255, 255, 0.05);
        --l2: rgba(255, 255, 255, 0.09);
        --l3: rgba(255, 255, 255, 0.16);
        --p1: #6355f5;
        --p2: #f0429a;
        --p3: #00d4aa;
        --p4: #f5c842;
        --fg: #eeeeff;
        --fg2: #9090bb;
        --fg3: #55557a;
        --r: 7px;
        --rL: 13px;
        --lp: 230px;
        --rp: 256px;
        --sp: 160px;
      }
      html,
      body {
        height: 100%;
        overflow: hidden;
      }
      body {
        font-family: "DM Sans", sans-serif;
        background: var(--i0);
        color: var(--fg);
        display: flex;
        flex-direction: column;
        font-size: 13px;
        -webkit-font-smoothing: antialiased;
      }

      .topbar {
        height: 46px;
        background: var(--i1);
        border-bottom: 1px solid var(--l1);
        display: flex;
        align-items: center;
        padding: 0 12px;
        gap: 6px;
        flex-shrink: 0;
        z-index: 300;
      }
      .logo {
        font-family: "Syne", sans-serif;
        font-size: 15px;
        font-weight: 800;
        display: flex;
        align-items: center;
        gap: 7px;
        letter-spacing: -0.5px;
        white-space: nowrap;
      }
      .logo-gem {
        width: 26px;
        height: 26px;
        background: linear-gradient(135deg, var(--p1), var(--p2));
        border-radius: 7px;
        display: grid;
        place-items: center;
        font-size: 13px;
        flex-shrink: 0;
        box-shadow: 0 0 14px rgba(99, 85, 245, 0.4);
      }
      .logo span {
        color: var(--p1);
      }
      .vsep {
        width: 1px;
        height: 22px;
        background: var(--l2);
        margin: 0 3px;
        flex-shrink: 0;
      }
      .tsel {
        background: var(--i3);
        border: 1px solid var(--l2);
        color: var(--fg);
        font-family: "DM Sans", sans-serif;
        font-size: 11px;
        font-weight: 600;
        padding: 5px 26px 5px 9px;
        border-radius: var(--r);
        cursor: pointer;
        outline: none;
        transition: border-color 0.12s;
        appearance: none;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%2355557a'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: right 7px center;
      }
      .tsel:hover,
      .tsel:focus {
        border-color: var(--p1);
      }
      .tsel option {
        background: var(--i2);
      }
      .tbtn {
        background: none;
        border: 1px solid transparent;
        color: var(--fg3);
        font-family: "DM Sans", sans-serif;
        font-size: 11px;
        font-weight: 600;
        padding: 5px 9px;
        border-radius: var(--r);
        cursor: pointer;
        display: flex;
        align-items: center;
        gap: 4px;
        white-space: nowrap;
        transition: all 0.12s;
        height: 30px;
      }
      .tbtn:hover {
        color: var(--fg);
        background: var(--l1);
        border-color: var(--l2);
      }
      .tbtn.on {
        background: rgba(99, 85, 245, 0.18);
        color: var(--p1);
        border-color: rgba(99, 85, 245, 0.3);
      }
      .spacer {
        flex: 1;
      }
      .expbtn {
        background: linear-gradient(135deg, var(--p1), var(--p2));
        border: none;
        color: #fff;
        font-family: "Syne", sans-serif;
        font-size: 12px;
        font-weight: 700;
        padding: 7px 16px;
        border-radius: var(--r);
        cursor: pointer;
        transition:
          opacity 0.12s,
          transform 0.1s;
        white-space: nowrap;
        box-shadow: 0 3px 14px rgba(99, 85, 245, 0.4);
      }
      .expbtn:hover {
        opacity: 0.88;
        transform: translateY(-1px);
      }

      .app-body {
        flex: 1;
        display: flex;
        overflow: hidden;
        min-height: 0;
      }

      .lp {
        width: var(--lp);
        background: var(--i1);
        border-right: 1px solid var(--l1);
        display: flex;
        flex-direction: column;
        overflow: hidden;
        flex-shrink: 0;
      }
      .ptabs {
        display: flex;
        border-bottom: 1px solid var(--l1);
        flex-shrink: 0;
        padding: 0 4px;
        gap: 1px;
      }
      .ptab {
        flex: 1;
        background: none;
        border: none;
        border-bottom: 2px solid transparent;
        color: var(--fg3);
        font-family: "DM Sans", sans-serif;
        font-size: 9px;
        font-weight: 700;
        padding: 9px 2px 7px;
        cursor: pointer;
        letter-spacing: 0.7px;
        text-transform: uppercase;
        transition: all 0.12s;
        margin-bottom: -1px;
      }
      .ptab:hover {
        color: var(--fg2);
      }
      .ptab.on {
        color: var(--p1);
        border-bottom-color: var(--p1);
      }
      .pscroll {
        flex: 1;
        overflow-y: auto;
        padding: 10px 10px 24px;
      }
      .pscroll::-webkit-scrollbar {
        width: 3px;
      }
      .pscroll::-webkit-scrollbar-thumb {
        background: var(--l2);
        border-radius: 2px;
      }
      .sl {
        font-size: 9px;
        font-weight: 700;
        letter-spacing: 1.4px;
        text-transform: uppercase;
        color: var(--fg3);
        margin: 13px 0 6px;
        display: flex;
        align-items: center;
        gap: 5px;
      }
      .sl:first-child {
        margin-top: 3px;
      }
      .sl::after {
        content: "";
        flex: 1;
        height: 1px;
        background: var(--l1);
      }

      .dz {
        border: 1.5px dashed rgba(99, 85, 245, 0.28);
        border-radius: 9px;
        padding: 13px;
        text-align: center;
        cursor: pointer;
        position: relative;
        background: rgba(99, 85, 245, 0.03);
        transition: all 0.15s;
        margin-bottom: 8px;
      }
      .dz:hover,
      .dz.drag {
        border-color: var(--p1);
        background: rgba(99, 85, 245, 0.08);
      }
      .dz input {
        position: absolute;
        inset: 0;
        opacity: 0;
        cursor: pointer;
        width: 100%;
        height: 100%;
      }
      .dz-ico {
        font-size: 20px;
        margin-bottom: 3px;
      }
      .dz h4 {
        font-size: 11px;
        font-weight: 700;
        margin-bottom: 1px;
        color: var(--fg);
      }
      .dz p {
        font-size: 9px;
        color: var(--fg3);
      }

      .mgrid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 4px;
        margin-bottom: 8px;
      }
      .mth {
        aspect-ratio: 9/16;
        border-radius: 6px;
        overflow: hidden;
        border: 2px solid transparent;
        cursor: grab;
        transition: all 0.12s;
        background: var(--i4);
        position: relative;
      }
      .mth:hover {
        border-color: var(--p1);
        transform: scale(1.04);
      }
      .mth.dragging-src {
        opacity: 0.4;
        transform: scale(0.96);
      }
      .mth img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        pointer-events: none;
      }
      .mth .mdel {
        position: absolute;
        top: 3px;
        right: 3px;
        width: 15px;
        height: 15px;
        background: var(--p2);
        border: none;
        border-radius: 50%;
        color: #fff;
        font-size: 7px;
        cursor: pointer;
        display: none;
        align-items: center;
        justify-content: center;
      }
      .mth:hover .mdel {
        display: flex;
      }
      .dcards {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 4px;
        margin-bottom: 10px;
      }
      .dcard {
        background: var(--i3);
        border: 1.5px solid var(--l1);
        border-radius: var(--r);
        padding: 9px 5px;
        text-align: center;
        cursor: pointer;
        transition: all 0.12s;
        color: var(--fg2);
      }
      .dcard:hover {
        border-color: rgba(99, 85, 245, 0.5);
        color: var(--fg);
      }
      .dcard.on {
        border-color: var(--p1);
        background: rgba(99, 85, 245, 0.12);
        color: var(--p1);
      }
      .dcard .di {
        font-size: 18px;
        display: block;
        margin-bottom: 3px;
      }
      .dcard .dn {
        font-size: 9px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.4px;
      }
      .dcard .ds {
        font-size: 8px;
        color: var(--fg3);
        margin-top: 1px;
      }
      .apills {
        display: flex;
        flex-wrap: wrap;
        gap: 3px;
        margin-bottom: 10px;
      }
      .apill {
        background: var(--i3);
        border: 1.5px solid var(--l1);
        border-radius: 5px;
        padding: 4px 8px;
        font-size: 9px;
        font-weight: 700;
        cursor: pointer;
        color: var(--fg3);
        transition: all 0.1s;
        white-space: nowrap;
      }
      .apill:hover {
        border-color: var(--p1);
        color: var(--fg);
      }
      .apill.on {
        border-color: var(--p1);
        background: rgba(99, 85, 245, 0.14);
        color: var(--p1);
      }
      .aegrid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 4px;
        margin-bottom: 10px;
      }
      .aebtn {
        background: var(--i3);
        border: 1.5px solid var(--l1);
        border-radius: var(--r);
        padding: 10px 5px;
        text-align: center;
        cursor: grab;
        transition: all 0.12s;
        color: var(--fg2);
        user-select: none;
        -webkit-user-select: none;
      }
      .aebtn:hover {
        border-color: rgba(99, 85, 245, 0.5);
        color: var(--fg);
        background: rgba(99, 85, 245, 0.06);
      }
      .aebtn:active {
        cursor: grabbing;
      }
      .aebtn.dragging-src {
        opacity: 0.35;
        transform: scale(0.94);
      }
      .aebtn .aeico {
        font-size: 15px;
        display: block;
        margin-bottom: 3px;
        pointer-events: none;
      }
      .aebtn .aelb {
        font-size: 9px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.4px;
        pointer-events: none;
      }
      .bgpre {
        display: grid;
        grid-template-columns: repeat(5, 1fr);
        gap: 4px;
        margin-bottom: 9px;
      }
      .bgsw {
        height: 26px;
        border-radius: 5px;
        cursor: pointer;
        border: 2px solid transparent;
        transition: all 0.12s;
      }
      .bgsw:hover,
      .bgsw.on {
        border-color: #fff;
        transform: scale(1.08);
      }
      .bgtypes {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 4px;
        margin-bottom: 9px;
      }
      .bgtbtn {
        background: var(--i3);
        border: 1.5px solid var(--l1);
        border-radius: var(--r);
        padding: 6px 4px;
        text-align: center;
        font-size: 10px;
        font-weight: 700;
        cursor: pointer;
        color: var(--fg2);
        transition: all 0.1s;
      }
      .bgtbtn:hover {
        border-color: var(--p1);
        color: var(--fg);
      }
      .bgtbtn.on {
        border-color: var(--p1);
        background: rgba(99, 85, 245, 0.12);
        color: var(--p1);
      }
      .center {
        flex: 1;
        display: flex;
        flex-direction: column;
        overflow: hidden;
        min-width: 0;
      }
      .screen-strip {
        height: var(--sp);
        background: var(--i1);
        border-bottom: 1px solid var(--l1);
        flex-shrink: 0;
        display: flex;
        align-items: stretch;
        overflow-x: auto;
        overflow-y: hidden;
        gap: 0;
        position: relative;
        z-index: 10;
      }
      .screen-strip::-webkit-scrollbar {
        height: 4px;
      }
      .screen-strip::-webkit-scrollbar-thumb {
        background: var(--l2);
        border-radius: 2px;
      }
      .screen-strip-inner {
        display: flex;
        align-items: center;
        padding: 10px 12px;
        gap: 10px;
        min-width: max-content;
      }
      .scard {
        position: relative;
        height: 116px;
        flex-shrink: 0;
        cursor: pointer;
        transition: all 0.14s;
      }
      .scard-inner {
        width: 60px;
        height: 100%;
        background: var(--i3);
        border-radius: 8px;
        border: 2px solid var(--l2);
        overflow: hidden;
        transition: all 0.14s;
        position: relative;
      }
      .scard:hover .scard-inner {
        border-color: rgba(99, 85, 245, 0.5);
      }
      .scard.active .scard-inner {
        border-color: var(--p1);
        box-shadow:
          0 0 0 1px rgba(99, 85, 245, 0.4),
          0 4px 16px rgba(99, 85, 245, 0.3);
      }
      .scard-thumb {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
      }
      .scard-canvas {
        width: 100%;
        height: 100%;
        display: block;
      }
      .scard-label {
        position: absolute;
        bottom: -18px;
        left: 0;
        right: 0;
        text-align: center;
        font-size: 8px;
        font-weight: 700;
        color: var(--fg3);
        letter-spacing: 0.3px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        transition: color 0.12s;
      }
      .scard.active .scard-label {
        color: var(--p1);
      }
      .scard-num {
        position: absolute;
        top: 3px;
        left: 4px;
        font-size: 7px;
        font-weight: 800;
        background: rgba(0, 0, 0, 0.6);
        color: var(--fg3);
        border-radius: 3px;
        padding: 1px 4px;
        pointer-events: none;
        z-index: 5;
      }
      .scard.active .scard-num {
        background: var(--p1);
        color: #fff;
      }
      .scard-del {
        position: absolute;
        top: 3px;
        right: 3px;
        width: 14px;
        height: 14px;
        background: var(--p2);
        border: none;
        border-radius: 50%;
        color: #fff;
        font-size: 7px;
        cursor: pointer;
        opacity: 0;
        transition: opacity 0.12s;
        display: flex;
        align-items: center;
        justify-content: center;
        z-index: 10;
      }
      .scard:hover .scard-del {
        opacity: 1;
      }
      .scard.drop-target .scard-inner {
        border-color: var(--p3);
        box-shadow:
          0 0 0 2px rgba(0, 212, 170, 0.35),
          inset 0 0 16px rgba(0, 212, 170, 0.12);
        background: rgba(0, 212, 170, 0.05);
      }
      .add-scard {
        width: 52px;
        height: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 5px;
        cursor: pointer;
        flex-shrink: 0;
        padding: 0 4px;
      }
      .add-scard-btn {
        width: 44px;
        height: 72px;
        border-radius: 8px;
        border: 1.5px dashed rgba(99, 85, 245, 0.3);
        background: rgba(99, 85, 245, 0.03);
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 4px;
        transition: all 0.14s;
      }
      .add-scard:hover .add-scard-btn {
        border-color: var(--p1);
        background: rgba(99, 85, 245, 0.08);
      }
      .add-scard-btn .asi {
        font-size: 18px;
        color: rgba(99, 85, 245, 0.6);
      }
      .add-scard-label {
        font-size: 8px;
        font-weight: 700;
        color: var(--fg3);
        text-align: center;
        margin-top: 2px;
      }
      .scard-copy {
        position: absolute;
        bottom: 3px;
        left: 50%;
        transform: translateX(-50%);
        width: 46px;
        height: 13px;
        background: rgba(0, 0, 0, 0.55);
        border: 1px solid rgba(255, 255, 255, 0.25);
        border-radius: 3px;
        color: #fff;
        font-size: 7px;
        font-weight: 800;
        cursor: pointer;
        opacity: 0;
        transition: opacity 0.12s;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 2px;
        letter-spacing: 0.2px;
        white-space: nowrap;
        z-index: 10;
      }
      .scard:hover .scard-copy {
        opacity: 1;
      }
      .scard-copy:hover {
        background: rgba(99, 85, 245, 0.7) !important;
        border-color: rgba(99, 85, 245, 0.8) !important;
      }
      .lr.multi-sel {
        border-color: rgba(99, 85, 245, 0.5);
        background: rgba(99, 85, 245, 0.08);
      }
      .layers-toolbar {
        display: flex;
        align-items: center;
        gap: 4px;
        padding: 6px 0 4px;
        margin-bottom: 4px;
        border-bottom: 1px solid var(--l1);
        flex-shrink: 0;
      }
      .ltbtn {
        background: var(--i3);
        border: 1px solid var(--l2);
        border-radius: 5px;
        color: var(--fg3);
        font-size: 9px;
        font-weight: 700;
        padding: 4px 8px;
        cursor: pointer;
        transition: all 0.1s;
        white-space: nowrap;
        letter-spacing: 0.2px;
      }
      .ltbtn:hover {
        border-color: var(--p1);
        color: var(--p1);
      }
      .ltbtn.active {
        border-color: var(--p1);
        background: rgba(99, 85, 245, 0.14);
        color: var(--p1);
      }
      .multi-hint {
        font-size: 8px;
        color: var(--fg3);
        flex: 1;
        text-align: right;
      }
      .ca {
        flex: 1;
        background: var(--i0);
        position: relative;
        overflow: hidden;
        display: flex;
        align-items: center;
        justify-content: center;
      }
      .cagrid {
        position: absolute;
        inset: 0;
        background-image:
          linear-gradient(rgba(99, 85, 245, 0.03) 1px, transparent 1px),
          linear-gradient(90deg, rgba(99, 85, 245, 0.03) 1px, transparent 1px);
        background-size: 24px 24px;
        pointer-events: none;
        transition: opacity 0.2s;
      }
      .cbadge {
        position: absolute;
        top: 10px;
        left: 50%;
        transform: translateX(-50%);
        background: rgba(10, 10, 24, 0.9);
        border: 1px solid var(--l2);
        border-radius: 50px;
        padding: 3px 13px;
        font-size: 10px;
        font-weight: 700;
        color: var(--fg3);
        pointer-events: none;
        z-index: 50;
        backdrop-filter: blur(6px);
        white-space: nowrap;
      }
      .snbadge {
        position: absolute;
        top: 10px;
        left: 10px;
        background: rgba(99, 85, 245, 0.15);
        border: 1px solid rgba(99, 85, 245, 0.3);
        border-radius: 50px;
        padding: 3px 12px;
        font-size: 10px;
        font-weight: 700;
        color: var(--p1);
        pointer-events: none;
        z-index: 50;
        backdrop-filter: blur(6px);
        white-space: nowrap;
        display: flex;
        align-items: center;
        gap: 5px;
      }
      .snbadge span {
        color: var(--fg3);
        font-size: 9px;
      }
      .ca-drop-overlay {
        position: absolute;
        inset: 0;
        border: 3px solid var(--p3);
        border-radius: 4px;
        background: rgba(0, 212, 170, 0.06);
        pointer-events: none;
        opacity: 0;
        transition: opacity 0.15s;
        z-index: 100;
      }
      .ca.drag-over .ca-drop-overlay {
        opacity: 1;
      }
      .ca-drop-hint {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        background: rgba(0, 212, 170, 0.15);
        border: 1.5px solid var(--p3);
        border-radius: 12px;
        padding: 16px 28px;
        text-align: center;
        pointer-events: none;
        opacity: 0;
        transition: opacity 0.15s;
        z-index: 101;
      }
      .ca.drag-over .ca-drop-hint {
        opacity: 1;
      }
      .ca-drop-hint .dhi {
        font-size: 28px;
        margin-bottom: 6px;
      }
      .ca-drop-hint p {
        font-size: 12px;
        font-weight: 700;
        color: var(--p3);
      }

      #dc {
        position: relative;
        transform-origin: center center;
        overflow: hidden;
        box-shadow:
          0 0 0 1px rgba(255, 255, 255, 0.05),
          0 28px 80px rgba(0, 0, 0, 0.95);
      }
      #dcBg {
        position: absolute;
        inset: 0;
        pointer-events: none;
        display: block;
      }
      #dcObj {
        position: absolute;
        inset: 0;
      }
      .zbar {
        position: absolute;
        bottom: 12px;
        right: 12px;
        display: flex;
        align-items: center;
        gap: 2px;
        background: var(--i1);
        border: 1px solid var(--l2);
        border-radius: 50px;
        padding: 3px 8px;
        z-index: 50;
        backdrop-filter: blur(6px);
      }
      .zbtn {
        background: none;
        border: none;
        color: var(--fg3);
        cursor: pointer;
        font-size: 13px;
        padding: 2px 6px;
        border-radius: 4px;
        transition: all 0.1s;
        font-family: "DM Sans", sans-serif;
      }
      .zbtn:hover {
        color: var(--fg);
        background: var(--i3);
      }
      .zval {
        font-size: 10px;
        font-weight: 700;
        color: var(--fg2);
        width: 36px;
        text-align: center;
        font-variant-numeric: tabular-nums;
      }
      .qabar {
        position: absolute;
        bottom: 12px;
        left: 12px;
        display: flex;
        align-items: center;
        gap: 2px;
        background: var(--i1);
        border: 1px solid var(--l2);
        border-radius: 50px;
        padding: 3px 8px;
        z-index: 50;
        backdrop-filter: blur(6px);
      }
      .qabtn {
        background: none;
        border: none;
        color: var(--fg3);
        cursor: pointer;
        font-size: 11px;
        padding: 2px 7px;
        border-radius: 4px;
        transition: all 0.1s;
        font-family: "DM Sans", sans-serif;
        font-weight: 600;
        white-space: nowrap;
      }
      .qabtn:hover {
        color: var(--fg);
        background: var(--i3);
      }
      .qabtn.on {
        color: var(--p1);
      }

      .obj {
        position: absolute;
        cursor: move;
        user-select: none;
        -webkit-user-select: none;
        touch-action: none;
        will-change: transform;
      }
      .obj.sel > .oi {
        outline: 1.5px solid var(--p1);
        outline-offset: 2px;
      }
      .font-cats {
        display: flex;
        gap: 3px;
        flex-wrap: wrap;
        margin-bottom: 8px;
      }
      .fcbtn {
        background: var(--i3);
        border: 1.5px solid var(--l1);
        border-radius: 5px;
        padding: 3px 8px;
        font-size: 9px;
        font-weight: 700;
        cursor: pointer;
        color: var(--fg3);
        transition: all 0.1s;
        white-space: nowrap;
      }
      .fcbtn:hover {
        border-color: var(--p1);
        color: var(--fg);
      }
      .fcbtn.on {
        border-color: var(--p1);
        background: rgba(99, 85, 245, 0.14);
        color: var(--p1);
      }
      .font-grid {
        display: flex;
        flex-direction: column;
        gap: 3px;
        max-height: 300px;
        overflow-y: auto;
      }
      .font-grid::-webkit-scrollbar {
        width: 3px;
      }
      .font-grid::-webkit-scrollbar-thumb {
        background: var(--l2);
        border-radius: 2px;
      }
      .fitem {
        background: var(--i3);
        border: 1.5px solid var(--l1);
        border-radius: 7px;
        padding: 8px 10px;
        cursor: pointer;
        transition: all 0.12s;
        display: flex;
        align-items: center;
        gap: 10px;
      }
      .fitem:hover {
        border-color: rgba(99, 85, 245, 0.5);
        background: rgba(99, 85, 245, 0.06);
      }
      .fitem.on {
        border-color: var(--p1);
        background: rgba(99, 85, 245, 0.12);
      }
      .fitem-preview {
        font-size: 17px;
        line-height: 1.2;
        color: var(--fg);
        flex: 1;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
      }
      .fitem-name {
        font-size: 8px;
        font-weight: 700;
        color: var(--fg3);
        letter-spacing: 0.3px;
        text-transform: uppercase;
        flex-shrink: 0;
        width: 70px;
        text-align: right;
      }
      .obj.sel .text-drag-handle {
        opacity: 0.6 !important;
      }
      .text-drag-handle:hover {
        opacity: 1 !important;
        cursor: grab;
      }
      .text-drag-handle:active {
        cursor: grabbing;
      }
      .oi {
        width: 100%;
        height: 100%;
        position: relative;
      }
      .rhs {
        position: absolute;
        inset: -1px;
        pointer-events: none;
        z-index: 22;
      }
      .rh {
        position: absolute;
        width: 9px;
        height: 9px;
        background: #fff;
        border: 2px solid var(--p1);
        border-radius: 2px;
        pointer-events: all;
        transition: transform 0.1s;
      }
      .rh:hover {
        transform: scale(1.35);
      }
      .rh.tl {
        top: -5px;
        left: -5px;
        cursor: nw-resize;
      }
      .rh.tr {
        top: -5px;
        right: -5px;
        cursor: ne-resize;
      }
      .rh.br {
        bottom: -5px;
        right: -5px;
        cursor: se-resize;
        background: var(--p1);
      }
      .rh.bl {
        bottom: -5px;
        left: -5px;
        cursor: sw-resize;
      }
      .obar {
        position: absolute;
        top: -34px;
        left: 50%;
        transform: translateX(-50%);
        background: var(--p1);
        border-radius: 8px;
        padding: 3px 8px;
        display: flex;
        gap: 2px;
        z-index: 23;
        pointer-events: all;
        white-space: nowrap;
        box-shadow: 0 4px 14px rgba(99, 85, 245, 0.5);
      }
      .obar button {
        background: none;
        border: none;
        color: #fff;
        font-size: 9px;
        font-weight: 700;
        cursor: pointer;
        padding: 3px 6px;
        border-radius: 4px;
        transition: background 0.1s;
        font-family: "DM Sans", sans-serif;
      }
      .obar button:hover {
        background: rgba(255, 255, 255, 0.22);
      }
      .obar .odanger {
        color: #ffb3c6;
      }

      .rp {
        width: var(--rp);
        background: var(--i1);
        border-left: 1px solid var(--l1);
        display: flex;
        flex-direction: column;
        overflow: hidden;
        flex-shrink: 0;
      }
      .pg {
        margin-bottom: 10px;
        background: var(--i2);
        border: 1px solid var(--l1);
        border-radius: var(--r);
        padding: 10px;
      }
      .pg h4 {
        font-size: 9px;
        font-weight: 700;
        letter-spacing: 1.3px;
        text-transform: uppercase;
        color: var(--fg3);
        margin-bottom: 8px;
        display: flex;
        align-items: center;
        gap: 5px;
      }
      .pr {
        display: flex;
        align-items: center;
        gap: 6px;
        margin-bottom: 6px;
      }
      .pr:last-child {
        margin-bottom: 0;
      }
      .pr label {
        font-size: 9px;
        color: var(--fg3);
        width: 50px;
        flex-shrink: 0;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.3px;
      }
      .pr input[type="text"],
      .pr input[type="number"],
      .pr select {
        flex: 1;
        background: var(--i3);
        border: 1px solid var(--l2);
        border-radius: 5px;
        padding: 5px 7px;
        color: var(--fg);
        font-family: "DM Sans", sans-serif;
        font-size: 11px;
        outline: none;
        transition: border-color 0.12s;
        min-width: 0;
      }
      .pr input:focus,
      .pr select:focus {
        border-color: var(--p1);
      }
      .pr input[type="color"] {
        width: 28px;
        height: 26px;
        border-radius: 5px;
        padding: 2px;
        cursor: pointer;
        border: 1px solid var(--l2);
        background: var(--i3);
        flex-shrink: 0;
      }
      .pr input[type="range"] {
        flex: 1;
        accent-color: var(--p1);
        cursor: pointer;
        height: 4px;
      }
      .pr .rv {
        font-size: 9px;
        color: var(--fg3);
        width: 28px;
        text-align: right;
        flex-shrink: 0;
        font-variant-numeric: tabular-nums;
      }
      .pr select option {
        background: var(--i2);
      }
      .twocol {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 5px;
        margin-bottom: 6px;
      }
      /* ── Hizalama araç çubuğu ── */
      .align-bar {
        display: flex;
        flex-direction: column;
        gap: 4px;
        margin-bottom: 6px;
      }
      .align-bar-label {
        font-size: 9px;
        font-weight: 700;
        letter-spacing: 1px;
        text-transform: uppercase;
        color: var(--fg3);
        margin-bottom: 2px;
      }
      .align-row {
        display: flex;
        gap: 3px;
      }
      .albtn {
        flex: 1;
        background: var(--i3);
        border: 1.5px solid var(--l1);
        border-radius: 6px;
        padding: 6px 2px;
        cursor: pointer;
        color: var(--fg3);
        font-size: 13px;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: all 0.12s;
        line-height: 1;
      }
      .albtn:hover {
        border-color: var(--p1);
        color: var(--fg);
        background: rgba(99,85,245,.1);
      }
      .albtn:active {
        transform: scale(0.93);
        background: rgba(99,85,245,.2);
      }
      .swatches {
        display: flex;
        flex-wrap: wrap;
        gap: 3px;
        margin-bottom: 6px;
      }
      .csw {
        width: 20px;
        height: 20px;
        border-radius: 4px;
        cursor: pointer;
        border: 2px solid transparent;
        transition: all 0.12s;
      }
      .csw:hover {
        border-color: #fff;
        transform: scale(1.12);
      }
      .no-sel {
        padding: 32px 16px;
        text-align: center;
        color: var(--fg3);
      }
      .no-sel .nsi {
        font-size: 32px;
        margin-bottom: 10px;
        opacity: 0.15;
      }
      .no-sel p {
        font-size: 11px;
        line-height: 1.7;
        color: var(--fg3);
      }
      .sn-edit {
        background: var(--i2);
        border: 1px solid var(--l2);
        border-radius: var(--r);
        padding: 10px;
        margin-bottom: 10px;
      }
      .sn-edit label {
        font-size: 9px;
        font-weight: 700;
        letter-spacing: 1.3px;
        text-transform: uppercase;
        color: var(--fg3);
        display: block;
        margin-bottom: 5px;
      }
      .sn-edit input {
        width: 100%;
        background: var(--i3);
        border: 1px solid var(--l2);
        border-radius: 5px;
        padding: 6px 8px;
        color: var(--fg);
        font-family: "DM Sans", sans-serif;
        font-size: 12px;
        outline: none;
      }
      .sn-edit input:focus {
        border-color: var(--p1);
      }
      .ll {
        display: flex;
        flex-direction: column;
        gap: 3px;
      }
      .lr {
        display: flex;
        align-items: center;
        gap: 6px;
        padding: 6px 7px;
        border-radius: 7px;
        border: 1.5px solid transparent;
        cursor: pointer;
        transition: all 0.1s;
        background: var(--i3);
      }
      .lr:hover {
        border-color: var(--l2);
      }
      .lr.on {
        border-color: var(--p1);
        background: rgba(99, 85, 245, 0.1);
      }
      .lr.hid {
        opacity: 0.3;
      }
      .lic {
        width: 24px;
        height: 24px;
        border-radius: 5px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 11px;
        flex-shrink: 0;
      }
      .li {
        flex: 1;
        min-width: 0;
      }
      .lin {
        font-size: 10px;
        font-weight: 700;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
      }
      .lis {
        font-size: 8px;
        color: var(--fg3);
        margin-top: 1px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
      }
      .lacts {
        display: flex;
        gap: 2px;
        flex-shrink: 0;
        opacity: 0;
        transition: opacity 0.1s;
      }
      .lr:hover .lacts,
      .lr.on .lacts {
        opacity: 1;
      }
      .lact {
        background: none;
        border: none;
        color: var(--fg3);
        cursor: pointer;
        padding: 2px;
        border-radius: 3px;
        font-size: 10px;
        width: 17px;
        height: 17px;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: all 0.1s;
      }
      .lact:hover {
        background: var(--i4);
        color: var(--fg);
      }

      #dragGhost {
        position: fixed;
        pointer-events: none;
        z-index: 9999;
        opacity: 0.82;
        transform: translate(-50%, -50%) scale(0.88);
        transition: transform 0.08s;
        display: none;
        background: var(--i3);
        border: 1.5px solid var(--p1);
        border-radius: 8px;
        padding: 10px 14px;
        font-size: 11px;
        font-weight: 700;
        color: var(--fg);
        white-space: nowrap;
        box-shadow:
          0 8px 24px rgba(99, 85, 245, 0.4),
          0 2px 8px rgba(0, 0, 0, 0.5);
      }
      #dragGhost.active {
        display: block;
      }

      .mover {
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, 0.8);
        backdrop-filter: blur(10px);
        z-index: 2000;
        display: none;
        align-items: center;
        justify-content: center;
      }
      .mover.open {
        display: flex;
      }
      .modal {
        background: var(--i1);
        border: 1px solid var(--l2);
        border-radius: var(--rL);
        width: 540px;
        overflow: hidden;
        animation: mIn 0.18s cubic-bezier(0.34, 1.2, 0.64, 1);
      }
      @keyframes mIn {
        from {
          transform: scale(0.9);
          opacity: 0;
        }
        to {
          transform: scale(1);
          opacity: 1;
        }
      }
      .mhd {
        padding: 16px 18px;
        border-bottom: 1px solid var(--l1);
        display: flex;
        align-items: center;
        justify-content: space-between;
      }
      .mhd h2 {
        font-family: "Syne", sans-serif;
        font-size: 15px;
        font-weight: 800;
        display: flex;
        align-items: center;
        gap: 8px;
      }
      .mcl {
        background: none;
        border: none;
        color: var(--fg3);
        font-size: 18px;
        cursor: pointer;
        padding: 3px 7px;
        border-radius: 5px;
        transition: all 0.1s;
        line-height: 1;
      }
      .mcl:hover {
        color: var(--fg);
        background: var(--i3);
      }
      .mbody {
        padding: 18px;
      }
      .stabs {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 5px;
        margin-bottom: 14px;
      }
      .stab {
        background: var(--i3);
        border: 1.5px solid var(--l1);
        border-radius: var(--r);
        padding: 11px;
        text-align: center;
        cursor: pointer;
        transition: all 0.12s;
        color: var(--fg2);
      }
      .stab:hover {
        border-color: var(--p1);
        color: var(--fg);
      }
      .stab.on {
        border-color: var(--p1);
        background: rgba(99, 85, 245, 0.12);
        color: var(--p1);
      }
      .stab .sti {
        font-size: 20px;
        display: block;
        margin-bottom: 3px;
      }
      .stab .stn {
        font-size: 9px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.4px;
      }
      .exp-screens {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        margin-bottom: 12px;
      }
      .exp-scbtn {
        background: var(--i3);
        border: 1.5px solid var(--l1);
        border-radius: 6px;
        padding: 5px 10px 5px 8px;
        font-size: 10px;
        font-weight: 700;
        cursor: pointer;
        color: var(--fg3);
        transition: all 0.15s;
        white-space: nowrap;
        display: inline-flex;
        align-items: center;
        gap: 5px;
      }
      .exp-scbtn::before {
        content: '';
        width: 14px;
        height: 14px;
        border-radius: 50%;
        border: 1.5px solid var(--fg3);
        flex-shrink: 0;
        transition: all 0.15s;
        background: transparent;
        display: flex;
        align-items: center;
        justify-content: center;
      }
      .exp-scbtn.on {
        border-color: var(--p1);
        background: rgba(99, 85, 245, 0.14);
        color: var(--p1);
      }
      .exp-scbtn.on::before {
        background: var(--p1);
        border-color: var(--p1);
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='7' viewBox='0 0 9 7'%3E%3Cpath d='M1 3l2.5 2.5L8 1' stroke='white' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: center;
      }
      .szlist {
        display: flex;
        flex-direction: column;
        gap: 4px;
        max-height: 220px;
        overflow-y: auto;
        margin-bottom: 14px;
      }
      .szlist::-webkit-scrollbar {
        width: 3px;
      }
      .szlist::-webkit-scrollbar-thumb {
        background: var(--l2);
        border-radius: 2px;
      }
      .szitem {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 8px 11px;
        border-radius: 8px;
        border: 1.5px solid var(--l1);
        background: var(--i3);
        cursor: pointer;
        transition: all 0.15s;
        user-select: none;
      }
      .szitem:hover {
        border-color: rgba(99,85,245,.4);
        background: rgba(99,85,245,.05);
      }
      .szitem.on {
        border-color: var(--p1);
        background: rgba(99, 85, 245, 0.1);
      }
      .szitem input[type="checkbox"] {
        display: none;
      }
      .sz-check {
        width: 16px;
        height: 16px;
        border-radius: 5px;
        border: 1.5px solid var(--fg3);
        flex-shrink: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: all 0.15s;
        background: transparent;
      }
      .szitem.on .sz-check {
        background: var(--p1);
        border-color: var(--p1);
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='8' viewBox='0 0 10 8'%3E%3Cpath d='M1 4l3 3L9 1' stroke='white' stroke-width='1.7' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: center;
      }
      .sz-orient {
        font-size: 9px;
        opacity: 0.45;
        flex-shrink: 0;
      }
      .sz-n {
        font-size: 11px;
        font-weight: 700;
        flex: 1;
        color: var(--fg2);
        transition: color 0.15s;
      }
      .szitem.on .sz-n {
        color: var(--fg);
      }
      .sz-d {
        font-size: 9px;
        color: var(--fg3);
        background: var(--i4);
        padding: 2px 8px;
        border-radius: 50px;
        font-variant-numeric: tabular-nums;
        transition: all 0.15s;
      }
      .szitem.on .sz-d {
        background: rgba(99,85,245,.2);
        color: var(--p1);
      }
      .exp-actions {
        display: flex;
        gap: 6px;
        margin-bottom: 8px;
      }
      .sz-sa-btn {
        flex: 1;
        background: var(--i3);
        border: 1px solid var(--l2);
        border-radius: 5px;
        padding: 5px;
        font-size: 9px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.4px;
        color: var(--fg3);
        cursor: pointer;
        transition: all 0.1s;
      }
      .sz-sa-btn:hover {
        border-color: var(--p1);
        color: var(--p1);
      }
      .exgo {
        width: 100%;
        padding: 11px;
        border: none;
        border-radius: var(--r);
        background: linear-gradient(135deg, var(--p1), var(--p2));
        color: #fff;
        font-family: "Syne", sans-serif;
        font-size: 13px;
        font-weight: 700;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 7px;
        transition: opacity 0.12s;
        box-shadow: 0 4px 18px rgba(99, 85, 245, 0.35);
      }
      .exgo:hover {
        opacity: 0.87;
      }
      .exgo:disabled {
        opacity: 0.4;
        pointer-events: none;
      }

      .toast {
        position: fixed;
        bottom: 20px;
        left: 50%;
        transform: translateX(-50%) translateY(8px);
        background: var(--i2);
        border: 1px solid var(--l2);
        border-radius: 50px;
        padding: 8px 20px;
        font-size: 11px;
        font-weight: 700;
        z-index: 9998;
        opacity: 0;
        transition:
          opacity 0.2s,
          transform 0.2s;
        pointer-events: none;
        white-space: nowrap;
        backdrop-filter: blur(10px);
        box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
      }
      .toast.on {
        opacity: 1;
        transform: translateX(-50%) translateY(0);
      }
