*{box-sizing:border-box} :root{--bg:#0b1020;--panel:#121a2e;--panel2:#18223a;--line:#2b3857;--txt:#eef4ff;--muted:#9aa8c7;--blue:#38bdf8;--green:#34d399;--red:#fb7185;--amber:#fbbf24;--white:#fff;--shadow:0 18px 60px rgba(0,0,0,.35)}
body{margin:0;font-family:Segoe UI,Roboto,Arial,sans-serif;background:linear-gradient(135deg,#07111f,#10182c 55%,#111827);color:var(--txt);min-height:100vh}.hidden{display:none!important}.login-wrap{height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:390px;background:rgba(18,26,46,.9);border:1px solid var(--line);border-radius:24px;padding:28px;box-shadow:var(--shadow);backdrop-filter:blur(12px)}.brand-mark{width:56px;height:56px;border-radius:18px;background:linear-gradient(135deg,#38bdf8,#2563eb);display:grid;place-items:center;font-weight:900;font-size:30px;color:white;box-shadow:0 12px 30px rgba(56,189,248,.25)}.brand-mark.small{width:42px;height:42px;border-radius:14px;font-size:22px}.login-card h1{margin:16px 0 8px}.login-card p{color:var(--muted);line-height:1.5}.login-card label{display:block;margin-top:14px;color:#c9d5ef;font-size:13px}.login-card input,.input,select,textarea{width:100%;border:1px solid var(--line);background:#0c1325;color:var(--txt);border-radius:12px;padding:11px 12px;outline:none}.login-card input:focus,.input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(56,189,248,.12)}button{border:0;border-radius:12px;padding:10px 14px;background:#2563eb;color:#fff;font-weight:700;cursor:pointer;transition:.15s}button:hover{filter:brightness(1.08);transform:translateY(-1px)}button:disabled{opacity:.5;cursor:not-allowed;transform:none}.login-card button{width:100%;margin:18px 0 10px}.ghost{background:#1f2a44}.danger{background:#7f1d1d}.success{background:#047857}.warning{background:#b45309}.mini{padding:7px 10px;border-radius:9px;font-size:12px}.app{display:flex;min-height:100vh}.sidebar{width:250px;background:rgba(10,15,30,.94);border-right:1px solid var(--line);padding:18px;position:sticky;top:0;height:100vh}.side-title{display:flex;gap:12px;align-items:center;margin-bottom:26px}.side-title span{display:block;color:var(--muted);font-size:12px;margin-top:2px}.nav{display:block;width:100%;text-align:left;background:transparent;color:#cbd5e1;padding:12px 14px;margin:6px 0;border:1px solid transparent}.nav:hover,.nav.active{background:#17233d;border-color:#293959;color:white}.side-footer{position:absolute;bottom:18px;left:18px;right:18px;display:grid;gap:8px}.main{flex:1;padding:24px;overflow:auto}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.topbar h2{margin:0;font-size:30px}.topbar p{margin:5px 0;color:var(--muted)}.status-pill{border:1px solid var(--line);background:#0f172a;border-radius:999px;padding:8px 14px;color:#cbd5e1}.grid{display:grid;gap:16px}.grid.two{grid-template-columns:1.1fr .9fr}.grid.three{grid-template-columns:repeat(3,1fr)}.card{background:rgba(18,26,46,.88);border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:0 10px 30px rgba(0,0,0,.18)}.card h3{margin:0 0 12px}.muted{color:var(--muted)}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.nowrap{flex-wrap:nowrap}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:12px}.form-grid label{font-size:12px;color:#cbd5e1}.table{width:100%;border-collapse:collapse}.table th,.table td{border-bottom:1px solid #25324e;padding:10px;text-align:left;vertical-align:top}.table th{color:#93a4c7;font-size:12px;text-transform:uppercase}.badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:12px;background:#25314d;color:#cbd5e1}.badge.green{background:rgba(52,211,153,.16);color:#86efac}.badge.red{background:rgba(251,113,133,.16);color:#fecdd3}.badge.amber{background:rgba(251,191,36,.16);color:#fde68a}.code{font-family:Consolas,monospace;font-size:20px;letter-spacing:2px;background:#050a16;border:1px solid var(--line);padding:8px 12px;border-radius:10px;color:#e0f2fe}.asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}.asset{background:#0c1325;border:1px solid var(--line);border-radius:14px;padding:10px;min-height:150px}.asset img,.asset video{width:100%;height:95px;object-fit:cover;border-radius:10px;background:#020617}.asset .file{height:95px;display:grid;place-items:center;border-radius:10px;background:#020617;border:1px dashed #334155;font-size:32px}.asset b{display:block;font-size:13px;margin-top:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tabs{display:flex;gap:8px;margin-bottom:14px}.tab{background:#17233d}.tab.active{background:#2563eb}.canvas-wrap{display:grid;grid-template-columns:260px 1fr;gap:16px}.toolbox{background:#0c1325;border:1px solid var(--line);border-radius:16px;padding:12px;height:fit-content}.toolbox button{width:100%;margin-bottom:8px}.stage-shell{background:#050a16;border:1px solid var(--line);border-radius:18px;padding:14px;overflow:auto}.stage-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.stage{position:relative;width:960px;height:540px;background:#111827;border-radius:10px;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);transform-origin:top left}.stage.grid-on{background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:20px 20px}.el{position:absolute;border:1px solid rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;color:#fff;user-select:none;overflow:hidden;background:rgba(255,255,255,.12);cursor:move}.el.selected{outline:var(--selection-width,3px) solid var(--selection-color,#38bdf8);outline-offset:0}.el .resize{position:absolute;right:0;bottom:0;width:14px;height:14px;background:#38bdf8;cursor:nwse-resize;border-radius:6px 0 0 0}.props{margin-top:12px;display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.props input,.props select{padding:8px;font-size:12px;border-radius:9px}.jsonbox{font-family:Consolas,monospace;font-size:12px;min-height:180px}.toast{position:fixed;right:24px;bottom:24px;background:#020617;border:1px solid var(--line);border-radius:14px;padding:13px 16px;box-shadow:var(--shadow);z-index:999}.msg{color:#fecdd3;min-height:20px;font-size:13px}.apk-screen{max-width:580px;margin:auto;background:#050a16;border:1px solid var(--line);border-radius:24px;padding:24px;box-shadow:var(--shadow);text-align:center}.apk-icons{display:flex;justify-content:center;gap:20px;margin:18px}.apk-icon{width:66px;height:66px;border-radius:18px;background:#18223a;display:grid;place-items:center;font-size:30px}.big-code{font-family:Consolas,monospace;font-size:44px;letter-spacing:5px;color:#e0f2fe;background:#0c1325;border:1px solid #2563eb;border-radius:18px;padding:14px 18px;margin:14px 0}.split{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:1100px){.grid.two,.split,.canvas-wrap{grid-template-columns:1fr}.sidebar{width:210px}.stage{width:768px;height:432px}.props{grid-template-columns:repeat(2,1fr)}}

/* v0.2 - card vivo, seletor de biblioteca e ícone real do APK */
.el{box-shadow:0 10px 26px rgba(0,0,0,.18)}
.el .slot-plus{width:58px;height:58px;border-radius:22px;background:rgba(56,189,248,.18);border:1px solid rgba(56,189,248,.55);font-size:34px;line-height:1;padding:0;display:grid;place-items:center}
.el .slot-label{position:absolute;bottom:10px;left:12px;right:12px;text-align:center;font-size:13px;color:rgba(255,255,255,.72)}
.el .corner-tag{position:absolute;left:8px;bottom:8px;background:rgba(2,6,23,.66);border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:4px 8px;font-size:12px;color:#e2e8f0}
.el video{width:100%;height:100%;object-fit:cover;display:block}
.el.type-app{background:linear-gradient(180deg,rgba(15,23,42,.82),rgba(15,23,42,.55));border:1px solid rgba(255,255,255,.20)}
.app-preview{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:14px}
.app-preview img{width:34%;max-width:96px;min-width:36px;aspect-ratio:1/1;object-fit:contain;border-radius:20%;filter:drop-shadow(0 10px 18px rgba(0,0,0,.35))}
.app-preview b{display:block;max-width:92%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 2px 10px rgba(0,0,0,.45)}
.app-fallback{width:70px;height:70px;border-radius:18px;background:#111827;border:1px dashed #475569;display:grid;place-items:center;font-size:18px;color:#cbd5e1}
.asset .app-asset-icon{object-fit:contain;background:#020617;padding:14px}
.modal-backdrop{position:fixed;inset:0;background:rgba(2,6,23,.72);backdrop-filter:blur(6px);z-index:1000;display:grid;place-items:center;padding:22px}.modal{position:relative;width:min(980px,96vw);max-height:88vh;overflow:auto;background:#0b1020;border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:var(--shadow)}.modal h2{margin:0 0 8px}.modal-x{position:absolute;right:14px;top:12px;width:38px;height:38px;padding:0;border-radius:50%;background:#1f2a44;font-size:22px}.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:14px}.choice-grid button{min-height:64px}.picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:16px}.picker-card{background:#0c1325;border:1px solid var(--line);border-radius:15px;padding:10px;color:#fff;text-align:left;min-height:160px}.picker-card:hover{border-color:#38bdf8}.picker-card img,.picker-card video{width:100%;height:98px;object-fit:cover;border-radius:11px;background:#020617}.picker-card .file{height:98px;display:grid;place-items:center;border-radius:11px;background:#020617;border:1px dashed #334155}.picker-card b{display:block;margin-top:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.picker-card span{font-size:11px;color:var(--muted);display:block;margin-top:2px}.progress-wrap{height:9px;border-radius:999px;background:#020617;border:1px solid var(--line);overflow:hidden;margin-top:12px}.progress-bar{height:100%;width:0;background:#38bdf8;transition:width .25s}


/* v0.3 - packs de imagens, fundo do layout e transparência PNG */
.el .media-fit{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none;position:absolute;inset:0}
.el .media-fit.cover{object-fit:cover}
.pack-mosaic{height:98px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:3px;background:#020617;border-radius:11px;overflow:hidden;border:1px solid rgba(255,255,255,.08)}
.pack-mosaic img{width:100%!important;height:100%!important;object-fit:cover!important;border-radius:0!important;background:transparent!important}
.asset .pack-mosaic{height:95px}
.asset label{display:block;color:#cbd5e1;font-size:12px;margin-bottom:8px}

/* v0.4 - guias, paleta de cores e mídia esticada no card */
.el .media-fit.stretch{width:100%;height:100%;object-fit:fill;display:block;pointer-events:none;position:absolute;inset:0}
.el.type-app .app-preview img{object-fit:contain}
.guide{position:absolute;pointer-events:none;z-index:999;background:rgba(56,189,248,.78);box-shadow:0 0 10px rgba(56,189,248,.55)}
.guide-v{top:0;bottom:0;width:1px}
.guide-h{left:0;right:0;height:1px}
.guide-center{background:rgba(250,204,21,.92);box-shadow:0 0 10px rgba(250,204,21,.45)}
.props{grid-template-columns:1.35fr repeat(5,.75fr) 1fr 1fr 1fr auto auto auto;align-items:end}
.prop-label{display:flex;flex-direction:column;gap:5px;color:#93a4c7;font-size:11px;text-transform:uppercase;font-weight:700;letter-spacing:.02em}
.prop-label input{padding:8px;font-size:12px;border-radius:9px}
.prop-label.wide{min-width:170px}.color-prop{display:grid;grid-template-columns:42px minmax(95px,1fr);grid-template-rows:auto auto;gap:5px;align-items:center}.color-prop input[type="color"]{grid-column:1;grid-row:2;width:42px;height:36px;padding:3px;border-radius:10px;cursor:pointer}.color-prop input:not([type="color"]){grid-column:2;grid-row:2;min-width:90px}
@media(max-width:1400px){.props{grid-template-columns:repeat(4,1fr)}}


/* v0.5 - painel inferior limpo e paleta nomeada */
.props{margin-top:12px;display:block}
.props-empty{background:#0c1325;border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.props-clean{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:#0c1325;border:1px solid var(--line);border-radius:16px;padding:10px}
.selected-chip{display:flex;align-items:baseline;gap:8px;background:#111a2e;border:1px solid #263653;border-radius:999px;padding:8px 12px;color:#e5eefc}
.selected-chip span{font-size:12px;color:#93a4c7}
.palette-trigger{display:grid;grid-template-columns:28px auto;grid-template-rows:auto auto;column-gap:8px;align-items:center;text-align:left;background:#17233d;min-width:118px;padding:8px 10px}
.palette-trigger .palette-dot{grid-row:1/3;width:26px;height:26px;border-radius:9px;border:1px solid rgba(255,255,255,.28);box-shadow:inset 0 0 0 1px rgba(0,0,0,.18)}
.palette-trigger b{font-size:12px;line-height:1;color:#fff}
.palette-trigger small{font-size:11px;color:#b8c6e4;white-space:nowrap;max-width:90px;overflow:hidden;text-overflow:ellipsis}
.palette-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:16px}
.palette-option{display:flex;align-items:center;gap:10px;background:#0c1325;border:1px solid var(--line);border-radius:14px;padding:10px;min-height:54px;text-align:left;color:#fff}
.palette-option:hover{border-color:#38bdf8}
.palette-swatch{width:34px;height:34px;border-radius:10px;border:1px solid rgba(255,255,255,.28);box-shadow:inset 0 0 0 1px rgba(0,0,0,.18);flex:none}
.palette-name{font-weight:800;font-size:13px;line-height:1.1}
.custom-color-row{display:flex;gap:10px;align-items:center;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.custom-color-row input[type="color"]{width:70px;height:48px;padding:5px;border-radius:13px;background:#0c1325;border:1px solid var(--line)}
@media(max-width:1400px){.props{display:block}.props-clean{align-items:stretch}.palette-trigger{min-width:120px}}


/* v0.7 - cor da seleção/foco do APK */
.selection-preview{margin:14px 0 4px;padding:24px;border-radius:20px;background:#0f172a;border:4px solid var(--selection-color,#38bdf8);box-shadow:0 0 0 4px color-mix(in srgb, var(--selection-color,#38bdf8) 28%, transparent),0 0 28px color-mix(in srgb, var(--selection-color,#38bdf8) 48%, transparent);font-weight:900;text-align:center;color:#fff}
@supports not (color: color-mix(in srgb, red 50%, transparent)){.selection-preview{box-shadow:0 0 24px rgba(56,189,248,.55)}}


/* v0.8 - prévia realmente fiel ao APK: o JS mede a largura real do stage e escala o JSON 1920x1080 por essa medida. */
.stage{width:min(100%,960px)!important;height:auto!important;aspect-ratio:16/9;max-width:960px}
.stage-shell{overflow:auto}
.stage-top #previewScaleInfo{font-family:Consolas,monospace;font-size:12px}
@media(max-width:1100px){.stage{width:min(100%,960px)!important;height:auto!important}}


/* v0.9 - prévia TV real: o fundo agora é uma camada stretch FIT_XY igual ao APK, sem cover/crop. */
.stage{position:relative;overflow:hidden;box-sizing:border-box;background-image:none!important}
.stage-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;display:block;pointer-events:none;z-index:0;opacity:1;mix-blend-mode:normal;filter:none}
.el{box-sizing:border-box}
.stage.grid-on::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:998;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:20px 20px}
.stage.grid-on{background-image:none!important}
.jsonbox.hidden{display:none!important}


/* v1.0 - foco/seleção precisa ser apenas borda, sem alterar tamanho do objeto. */
.stage{--selection-width:3px}

/* v1.1 - prévia de card APP fiel ao APK: ícone e nome usam a mesma matemática do Android, sem %/padding fixo do browser. */
.el.type-app.apk-card-preview-fixed{display:block;position:absolute;}
.app-preview-fixed{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;pointer-events:none;}
.app-preview-icon-fixed{position:absolute;left:50%;transform:translateX(-50%);object-fit:contain;border-radius:20%;filter:drop-shadow(0 10px 18px rgba(0,0,0,.35));}
.app-preview-fallback-fixed{display:grid;place-items:center;background:#111827;border:1px dashed #475569;color:#cbd5e1;font-weight:900;}
.app-preview-name-fixed{position:absolute;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;text-overflow:ellipsis;color:rgba(226,232,240,.96);font-weight:800;text-shadow:0 2px 10px rgba(0,0,0,.45);white-space:normal;padding:0;}

/* v1.2 - seleção neon/zoom controlada e resolução ao redimensionar */
.el.selected{
  transition: transform .12s ease, box-shadow .12s ease, outline-color .12s ease;
}
.selection-actions{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
  margin:14px 0;
}
.selection-actions input[type="color"]{
  width:52px;
  height:42px;
  padding:4px;
  border-radius:12px;
  border:1px solid var(--line);
  background:#0c1325;
}
.neon-btn{
  background:linear-gradient(90deg,#00f5ff,#ff00ff,#39ff14);
  color:#020617;
  text-shadow:0 1px 0 rgba(255,255,255,.35);
}
.palette-option.palette-neon{
  border-color:rgba(56,189,248,.28);
  background:radial-gradient(circle at 20% 20%, rgba(56,189,248,.14), transparent 28%), #0c1325;
}
.range-line{
  display:block;
  margin:12px 0;
  color:#cbd5e1;
  font-size:13px;
}
.range-line input[type="range"]{
  width:100%;
  margin-top:8px;
  accent-color:#38bdf8;
}
.selection-preview.neon-on{
  border-color:var(--selection-color,#38bdf8);
}
.resize-badge{
  position:absolute;
  pointer-events:none;
  background:rgba(2,6,23,.92);
  color:#e0f2fe;
  border:1px solid rgba(56,189,248,.62);
  border-radius:999px;
  padding:5px 10px;
  font-family:Consolas,monospace;
  font-weight:900;
  font-size:12px;
  box-shadow:0 8px 22px rgba(0,0,0,.35);
  white-space:nowrap;
}

/* v1.5 - controle remoto da prévia e separação entre editar card e foco real do APK */
.preview-row{
  display:flex;
  gap:16px;
  align-items:flex-start;
}
.tv-remote-panel{
  width:230px;
  min-width:210px;
  background:#0c1325;
  border:1px solid var(--line);
  border-radius:18px;
  padding:14px;
  box-shadow:0 12px 28px rgba(0,0,0,.22);
  position:sticky;
  top:8px;
}
.tv-remote-panel b{display:block;margin-bottom:6px;color:#e5eefc}
.tv-remote-panel small{display:block;color:#93a4c7;line-height:1.35;margin-bottom:12px}
.remote-dpad{
  display:grid;
  grid-template-columns:56px 56px 56px;
  grid-template-rows:50px 50px 50px;
  gap:8px;
  justify-content:center;
  align-items:center;
  margin:10px 0 12px;
}
.remote-dpad button{height:50px;border-radius:14px;background:#1f2a44;padding:0;font-size:18px}
.remote-dpad button:nth-child(1){grid-column:2;grid-row:1}
.remote-dpad button:nth-child(2){grid-column:1;grid-row:2}
.remote-dpad button:nth-child(3){grid-column:2;grid-row:2}
.remote-dpad button:nth-child(4){grid-column:3;grid-row:2}
.remote-dpad button:nth-child(5){grid-column:2;grid-row:3}
.remote-dpad .remote-ok{background:#2563eb;font-size:14px;font-weight:900}
.preview-focus-label{margin-top:10px;background:#08111f;border:1px solid #243654;border-radius:12px;padding:9px;font-size:12px;min-height:20px}
.el.selected:not(.preview-focused){outline:1px dashed rgba(250,204,21,.95)!important;outline-offset:0;box-shadow:none!important;transform:none!important}
.el.preview-focused{outline:var(--selection-width,3px) solid var(--selection-color,#38bdf8);outline-offset:0}
.selection-save-note{margin:12px 0 4px;padding:10px 12px;background:#101a2e;border:1px solid #263653;border-radius:12px;color:#cbd5e1;font-size:13px}
@media(max-width:1300px){.preview-row{flex-direction:column}.tv-remote-panel{width:auto;position:static}.remote-dpad{justify-content:flex-start}}

/* v1.7 - elemento Continuar assistindo */
.el.type-continue_watching{display:block;background:rgba(15,23,42,.58);border:1px solid rgba(255,255,255,.18)}
.continue-preview{position:absolute;inset:0;display:flex;flex-direction:column;overflow:hidden;color:#fff;text-align:left;pointer-events:none}
.continue-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;min-height:22px}
.continue-head b{font-weight:900;text-shadow:0 2px 12px rgba(0,0,0,.45);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.continue-head small{color:rgba(226,232,240,.72);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}
.continue-row{display:flex;align-items:stretch;min-height:0;overflow:hidden}
.cw-cover{position:relative;background:rgba(2,6,23,.55);overflow:hidden;box-shadow:0 8px 20px rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.10)}
.cw-cover img,.cw-cover-fake{width:100%;object-fit:cover;display:grid;place-items:center;font-weight:900;color:rgba(255,255,255,.78)}
.cw-cover b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#f8fafc}
.cw-cover span{position:absolute;border-radius:999px;background:rgba(255,255,255,.18);overflow:hidden}
.cw-cover span i{display:block;height:100%;border-radius:999px;background:#38bdf8}
/* v2.1: Continuar assistindo vertical/estreito */
.continue-preview.vertical{display:flex;flex-direction:column;overflow:hidden}
.continue-head.vertical{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px}
.continue-row.vertical{display:flex;flex-direction:column;overflow:hidden}
.cw-cover-vertical{display:block;position:relative}
.cw-cover-vertical img,.cw-cover-vertical .cw-cover-fake{position:absolute;left:0;top:0;object-fit:cover}
.cw-vtext{position:absolute;display:flex;flex-direction:column;justify-content:flex-start;overflow:hidden;color:#f8fafc}
.cw-vtext b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.08;color:#f8fafc}
.cw-vtext em{display:block;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.72;line-height:1.15;margin-top:3px}


/* v2.5 - modelagem do painel: multi seleção, undo/redo, grade dupla, app editor lateral e uploads locais */
.el.selected{outline:2px dashed rgba(250,204,21,.95)!important;outline-offset:0}
.el.primary-selected{box-shadow:0 0 0 2px rgba(56,189,248,.9),0 12px 28px rgba(0,0,0,.22)!important}
.align-tools{margin-top:10px;padding:10px;border:1px solid #25324e;border-radius:14px;background:#08111f;display:grid;gap:8px}
.align-tools b{font-size:13px;color:#e5eefc}.align-tools small{font-size:11px;color:#93a4c7}.align-tools button{margin:0;width:100%}
.remote-undo-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 10px}.remote-undo-row button{height:34px;padding:0;font-size:18px}
.screen-guide{position:absolute;pointer-events:none;z-index:997;background:rgba(56,189,248,.55);box-shadow:0 0 12px rgba(56,189,248,.28)}
.screen-guide-v{top:0;bottom:0;width:1px}.screen-guide-h{left:0;right:0;height:1px}.screen-guide.main{background:rgba(250,204,21,.82);box-shadow:0 0 18px rgba(250,204,21,.35)}.screen-guide.sub{background:rgba(56,189,248,.42)}.screen-guide.thin{background:rgba(148,163,184,.28)}
.picker-card.local-plus{border-color:rgba(56,189,248,.58);background:linear-gradient(180deg,rgba(56,189,248,.12),rgba(12,19,37,.96))}.picker-card.local-plus .file{font-size:42px;color:#7dd3fc;border-color:#38bdf8}
.app-card-editor{margin-top:12px;padding:12px;border:1px solid #263653;background:#08111f;border-radius:14px;display:grid;gap:10px}.app-card-editor .editor-head{display:flex;justify-content:space-between;align-items:center}.app-card-editor label{font-size:12px;color:#cbd5e1;display:grid;gap:6px}.app-card-editor input[type="range"]{width:100%;accent-color:#38bdf8}.app-card-editor input[type="checkbox"]{width:auto;margin-right:6px}.app-preview-name-fixed.outside{background:rgba(2,6,23,.78);border:1px solid rgba(255,255,255,.12);border-radius:999px;box-shadow:0 8px 20px rgba(0,0,0,.28)}
.asset .row{margin-top:8px}.asset button.danger{background:#7f1d1d}


/* v2.5.1 - correção: Modificar Card ao lado direito do controle da prévia, não embaixo */
.tv-remote-panel{position:sticky;overflow:visible;}
.app-card-editor.side-open{
  position:absolute;
  left:calc(100% + 14px);
  top:0;
  width:280px;
  z-index:50;
  margin-top:0;
  box-shadow:0 18px 45px rgba(0,0,0,.38);
}
@media(max-width:1500px){
  .app-card-editor.side-open{position:static;width:auto;margin-top:12px;}
}


/* v2.5.2 - ajustes do Modificar Card e nome externo */
.app-card-editor label.checkline{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  padding:8px 10px;
  border:1px solid rgba(148,163,184,.18);
  border-radius:10px;
  background:rgba(15,23,42,.42);
}
.app-card-editor label.checkline span{font-size:12px;color:#dbeafe;}
.app-card-editor label.checkline input[type="checkbox"]{margin:0!important;width:18px!important;height:18px!important;flex:0 0 auto;accent-color:#38bdf8;}
.app-preview-fixed.name-outside{overflow:visible!important;}
.el.type-app:has(.app-preview-fixed.name-outside){overflow:visible!important;}
.app-preview-name-fixed.outside{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  color:rgba(226,232,240,.98)!important;
  text-shadow:0 2px 10px rgba(0,0,0,.75),0 0 12px rgba(0,0,0,.45)!important;
  border-radius:0!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  pointer-events:none;
}
.tv-remote-panel{position:sticky!important;overflow:visible!important;}
.app-card-editor.side-open{
  position:absolute!important;
  left:calc(100% + 14px)!important;
  top:0!important;
  width:280px!important;
  z-index:80!important;
  margin-top:0!important;
  box-shadow:0 18px 45px rgba(0,0,0,.42)!important;
}
@media(max-width:1500px){
  .app-card-editor.side-open{position:absolute!important;left:calc(100% + 14px)!important;top:0!important;width:280px!important;margin-top:0!important;}
}

/* v2.6 system icons preview */
.system-icon-preview{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:42px;font-weight:900;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.45)}
.status-dot-preview{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:42%;height:42%;border-radius:999px;background:#22c55e;box-shadow:0 0 18px rgba(34,197,94,.75)}


/* v2.7 seleção manual */
.manual-select-box{width:100%;border:1px solid #24314e;background:rgba(15,23,42,.58);border-radius:14px;padding:10px;margin-bottom:10px;box-sizing:border-box}
.manual-select-head{display:flex;align-items:center;gap:10px;justify-content:space-between;margin-bottom:8px;color:#e5e7eb}
.manual-select-list{display:flex;flex-wrap:wrap;gap:8px;max-height:92px;overflow:auto}
.manual-select-item{display:flex;align-items:center;gap:6px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10);border-radius:999px;padding:6px 10px;color:#dbeafe;font-size:12px;cursor:pointer}
.manual-select-item input{accent-color:#38bdf8}

/* v2.8 primeiro foco */
.first-focus-toggle{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(148,163,184,.28);background:#08111f;border-radius:12px;padding:9px 10px;color:#e2e8f0;font-weight:800;min-height:34px}
.first-focus-toggle input{width:18px;height:18px;accent-color:#38bdf8;margin:0}.first-focus-badge{position:absolute;right:6px;top:6px;background:#facc15;color:#111827;font-size:11px;font-weight:900;border-radius:999px;padding:3px 6px;box-shadow:0 6px 18px rgba(0,0,0,.35);z-index:1000;pointer-events:none}


/* v2.9 cadastro confirmado / layout select */
.register-wide{max-width: none;}
.form-grid.wider{grid-template-columns: repeat(3, minmax(180px, 1fr));}
.mini-select{background:#0f172a;color:#e5e7eb;border:1px solid rgba(255,255,255,.18);border-radius:10px;padding:7px 9px;max-width:220px;}
@media(max-width:900px){.form-grid.wider{grid-template-columns:1fr;}}

/* v3.2.1 - Degradê de wallpaper controlado */
.el.type-gradient{
  z-index:1!important;
  border-color:transparent!important;
  box-shadow:none!important;
  cursor:default!important;
  overflow:hidden!important;
  pointer-events:none!important;
}
.el.type-gradient .resize{display:none!important;}
.el.type-gradient.selected{outline:none!important;}
.el.type-gradient .gradient-tag{display:none!important;}
.stage.gradient-editing .el:not(.type-gradient){pointer-events:none!important;}
.stage.gradient-editing{cursor:crosshair;}
.gradient-drag-handle{
  position:absolute;
  width:30px;height:30px;
  margin-left:-15px;margin-top:-15px;
  border-radius:50%;
  background:rgba(250,204,21,.98);
  color:#020617;
  display:grid;place-items:center;
  font-size:23px;font-weight:900;
  line-height:30px;
  z-index:1200;
  cursor:grab;
  box-shadow:0 0 0 3px rgba(2,6,23,.55),0 0 28px rgba(250,204,21,.7);
  user-select:none;
}
.gradient-drag-handle:active{cursor:grabbing;transform:scale(1.04)}
.gradient-editor.side-open{
  position:absolute!important;
  left:calc(100% + 14px)!important;
  top:0!important;
  width:320px!important;
  z-index:90!important;
  margin-top:0!important;
  box-shadow:0 18px 45px rgba(0,0,0,.42)!important;
}
.gradient-editor .editor-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.gradient-editor .dir-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.gradient-editor .dir-grid button{width:100%;font-size:12px;padding:8px 6px}
.gradient-editor .dir-grid button.active{background:#2563eb;box-shadow:0 0 0 2px rgba(56,189,248,.24)}
.gradient-editor input[type="range"]{width:100%;accent-color:#38bdf8}
.gradient-editor input[type="color"]{height:42px;padding:2px;border-radius:10px}
.gradient-preview-swatch{height:42px;border-radius:12px;border:1px solid rgba(255,255,255,.16);margin-top:6px}
@media(max-width:1500px){.gradient-editor.side-open{position:absolute!important;left:calc(100% + 14px)!important;top:0!important;width:320px!important;margin-top:0!important;}}
}


/* v3.4: degradê por máscara PNG interna */
.el.gradient-mask-el{background:transparent!important;border:0!important;overflow:hidden!important;pointer-events:none;}
.el.gradient-mask-el .gradient-mask-img{position:absolute;left:50%;top:50%;width:100%;height:100%;object-fit:fill;transform-origin:center center;pointer-events:none;user-select:none;opacity:1;mix-blend-mode:normal;filter:none}
.el.gradient-mask-el .resize,.el.gradient-mask-el .gradient-tag{display:none!important;}
.mask-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:6px 0 10px;}
.mask-grid button{padding:8px 0;font-size:12px;border-radius:9px;}
.mask-grid button.active{background:#2563eb;box-shadow:0 0 0 2px rgba(56,189,248,.28)}
.gradient-preview-swatch.mask-swatch{position:relative;overflow:hidden;background:#0b1220;height:64px;}
.gradient-preview-swatch.mask-swatch img{position:absolute;left:50%;top:50%;width:100%;height:100%;object-fit:fill;transform-origin:center center;}


/* v3.5 - clientes cadastrados: editar/renovar vencimento */
.expiry-actions-v35{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:8px}
.client-table-v35 td:nth-child(4){min-width:170px}
.client-table-v35 .mini-select{min-width:150px}


/* v3.7 - editor do card Vencimento */
.expiry-editor-v37{border:1px solid rgba(250,204,21,.22);background:rgba(15,23,42,.62);border-radius:16px;padding:12px;display:grid;gap:10px;margin:8px 0}
.expiry-editor-v37 label{display:grid;gap:5px;font-size:12px;color:#cbd5e1}
.expiry-editor-title{display:grid;gap:2px}.expiry-editor-title b{color:#f8fafc}.expiry-editor-title small{color:#94a3b8}
.expiry-color-line-v37{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.expiry-color-line-v37 label{flex:1;min-width:130px}.expiry-color-line-v37 input[type=color]{width:100%;height:38px;border-radius:10px;background:#0f172a;border:1px solid rgba(255,255,255,.16)}
.expiry-sample-v37{display:inline-block;justify-self:start;padding:8px 12px;border-radius:12px;background:rgba(0,0,0,.24);font-weight:800;animation:expiryPulsePanel37 1.15s ease-in-out infinite}
.expiry-alert-preview-v37{display:inline-block;animation:expiryPulsePanel37 1.15s ease-in-out infinite;transform-origin:center center;font-weight:800}
@keyframes expiryPulsePanel37{0%,100%{transform:scale(1)}50%{transform:scale(1.065)}}


/* v3.7.1 - Modificar Vencimento lateral + Sem borda */
.app-card-editor.side-open .side-palette-v371{width:100%;margin-top:2px;}
.border-none-option-v371{border-color:rgba(250,204,21,.48)!important;background:rgba(250,204,21,.10)!important;}
.border-none-v371,.open-side-editor-v371{white-space:nowrap;}
.app-card-editor .expiry-sample-v37{margin-top:4px;}

/* v3.7.2 side editors */
.border-none-editor-v372{width:100%;font-weight:800;border-color:rgba(250,204,21,.45)!important;background:rgba(250,204,21,.10)!important}.open-side-editor-v372,.border-none-v372{white-space:nowrap}.app-card-editor.side-open p.muted{margin:0;color:#94a3b8;font-size:12px;line-height:1.35}


/* v3.7.3 - Força variável do zoom de vencimento */
.expiry-alert-preview-v373{display:inline-block;animation:expiryPulsePanel373 1.15s ease-in-out infinite;transform-origin:center center;font-weight:800}
.expiry-sample-v373{animation:expiryPulsePanel373 1.15s ease-in-out infinite;transform-origin:center center}
@keyframes expiryPulsePanel373{0%,100%{transform:scale(1)}50%{transform:scale(var(--expiryPulseMax,1.065))}}
.border-none-v373,.open-side-editor-v373{white-space:nowrap}


/* v3.8 - clientes cadastrados: busca por qualquer parte do nome e edição rápida */
.client-head-v38{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px;flex-wrap:wrap}
.client-head-v38 h3{margin:0}
.client-search-v38{display:flex;align-items:center;gap:10px;min-width:min(480px,100%)}
.client-search-v38 .input{min-width:300px;max-width:440px}
.client-name-line-v38{display:flex;align-items:center;gap:8px;min-width:180px}
.client-name-line-v38 b{line-height:1.2}
.pencil-v38{padding:5px 8px;border-radius:8px;line-height:1;opacity:.88}
.pencil-v38:hover{opacity:1}
.client-table-v38 td{vertical-align:middle}
#clientSearchEmpty38{display:none}
@media(max-width:900px){.client-search-v38{width:100%;align-items:stretch;flex-direction:column}.client-search-v38 .input{min-width:0;max-width:none;width:100%}}

/* v3.9 - ícones Wi‑Fi/engrenagem customizados no Modificar Card */
.system-icon-custom-preview-v39{position:absolute;inset:10%;width:80%;height:80%;object-fit:contain;filter:drop-shadow(0 10px 18px rgba(0,0,0,.35));pointer-events:none;}
.system-icon-upload-preview-v39{width:92px;height:92px;border-radius:18px;border:1px solid var(--line);background:#0c1325;display:grid;place-items:center;margin:8px auto 12px;overflow:hidden;}
.system-icon-upload-preview-v39 img{width:82%;height:82%;object-fit:contain;}
.system-icon-upload-preview-v39.default span{font-size:46px;font-weight:900;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.45);}
.system-icon-actions-v39{justify-content:center;margin:8px 0;}


/* v3.12.20 - painel mais estreito + mais área útil no editor */
.sidebar{width:174px!important;padding:12px 10px!important;}
.side-title{gap:8px!important;margin-bottom:10px!important;align-items:center!important;}
.side-title .brand-mark.small{width:34px!important;height:34px!important;border-radius:11px!important;font-size:18px!important;}
.side-title b{font-size:14px!important;line-height:1!important;white-space:nowrap;}
.side-title span{font-size:10px!important;max-width:112px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.nav{padding:9px 10px!important;margin:4px 0!important;border-radius:10px!important;font-size:13px!important;}
.nav[data-page="apk"]{display:none!important;}
.side-footer{left:10px!important;right:10px!important;bottom:12px!important;gap:6px!important;}
.side-footer button{padding:8px 9px!important;font-size:12px!important;}
.main{padding:16px 14px!important;}
.topbar{margin-bottom:12px!important;}
.topbar h2{font-size:25px!important;}
.topbar p{font-size:12px!important;margin-top:3px!important;}
.canvas-wrap{grid-template-columns:210px minmax(0,1fr)!important;gap:10px!important;align-items:start;}
.toolbox{padding:10px!important;border-radius:14px!important;}
.toolbox h3{font-size:15px!important;margin:0 0 8px!important;}
.toolbox button{padding:8px 9px!important;margin-bottom:6px!important;border-radius:10px!important;font-size:12px!important;line-height:1.08!important;}
.toolbox .align-tools{padding:8px!important;margin-top:8px!important;border-radius:12px!important;}
.toolbox .align-tools button{font-size:11px!important;padding:7px 8px!important;}
.toolbox p.muted{font-size:11px!important;line-height:1.25!important;margin:8px 0 0!important;}
.stage-shell{padding:10px!important;border-radius:15px!important;}
.stage-top{margin-bottom:8px!important;}
.stage-top b{font-size:13px!important;}
.stage-top #previewScaleInfo{font-size:11px!important;}
.preview-row{gap:10px!important;}
.tv-remote-panel{width:210px!important;min-width:198px!important;padding:10px!important;border-radius:14px!important;}
.tv-remote-panel small{font-size:11px!important;line-height:1.25!important;margin-bottom:8px!important;}
.remote-dpad{grid-template-columns:46px 46px 46px!important;grid-template-rows:42px 42px 42px!important;gap:6px!important;margin:8px 0!important;}
.remote-dpad button{height:42px!important;border-radius:12px!important;font-size:15px!important;}
.props-clean{padding:9px!important;gap:8px!important;}
.selected-chip{padding:7px 10px!important;}
.palette-trigger{min-width:112px!important;padding:7px 9px!important;}
.app-card-editor.side-open{left:calc(100% + 10px)!important;width:268px!important;}
.app-card-editor{padding:10px!important;gap:8px!important;}
.props-batch-v31220{border-color:rgba(56,189,248,.32)!important;box-shadow:0 12px 26px rgba(0,0,0,.18)!important;}
@media(max-width:1300px){.sidebar{width:160px!important}.canvas-wrap{grid-template-columns:190px minmax(0,1fr)!important}.tv-remote-panel{width:auto!important;}}
@media(max-width:1100px){.canvas-wrap{grid-template-columns:1fr!important}.sidebar{width:170px!important}.main{padding:14px 10px!important}}


/* v3.12.37 - Vencimento: Modificar Card compacto */
#appCardEditor.expiry-editor-compact-v31237.side-open{width:238px!important;max-width:238px!important;padding:7px!important;gap:5px!important;border-radius:12px!important;}
#appCardEditor.expiry-editor-compact-v31237 > small{display:none!important;}
#appCardEditor.expiry-editor-compact-v31237 .expiry-hide-help-v31236{font-size:10px!important;line-height:1.12!important;margin:-1px 0 1px!important;}
