:root{
  --bg:#0b1020;
  --bg2:#111a33;
  --card:rgba(255,255,255,.08);
  --card2:rgba(255,255,255,.12);
  --line:rgba(255,255,255,.14);
  --text:#f8fafc;
  --muted:#a7b1c2;
  --accent:#8b5cf6;
  --accent2:#06b6d4;
  --danger:#ef4444;
  --ok:#22c55e;
  --warn:#f59e0b;
  --shadow:0 24px 80px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html,body{height:100%;margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:radial-gradient(circle at 20% 10%,#20305d 0,#0b1020 38%,#060913 100%)}
button,input,textarea,select{font:inherit}
button{cursor:pointer;border:0}
a{color:inherit}
.hidden{display:none!important}

.landing{min-height:100%;display:grid;place-items:center;padding:24px}
.landing-wrap{width:min(1120px,100%);display:grid;grid-template-columns:1.25fr .75fr;gap:24px;align-items:stretch}
.hero-card,.auth-card,.panel-card,.modal-box{border:1px solid var(--line);background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.06));box-shadow:var(--shadow);border-radius:28px;backdrop-filter:blur(14px)}
.hero-card{padding:48px;position:relative;overflow:hidden}
.hero-card:after{content:"";position:absolute;right:-80px;bottom:-100px;width:420px;height:420px;background:radial-gradient(circle,#8b5cf655,transparent 65%);pointer-events:none}
.badge{display:inline-flex;padding:8px 12px;border-radius:999px;background:rgba(139,92,246,.16);border:1px solid rgba(139,92,246,.35);color:#ddd6fe;font-weight:700;font-size:13px}
h1{font-size:clamp(44px,7vw,86px);line-height:.92;margin:18px 0 20px;letter-spacing:-.06em}
.lead{font-size:20px;line-height:1.45;color:#d7def0;max-width:720px}
.features{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.features span{padding:10px 12px;background:rgba(255,255,255,.08);border:1px solid var(--line);border-radius:14px;color:#e2e8f0;font-size:14px}
.auth-card{padding:22px;align-self:center}
.tabs{display:grid;grid-template-columns:1fr 1fr;background:rgba(255,255,255,.06);border-radius:16px;padding:5px;margin-bottom:18px}
.tab{border-radius:12px;background:transparent;color:var(--muted);padding:12px;font-weight:800}
.tab.active{background:var(--text);color:#0b1020}
.auth-form{display:none;gap:10px;flex-direction:column}.auth-form.active{display:flex}
label{font-weight:800;color:#dbe5f7;font-size:14px;margin-top:8px}
input,textarea,select{width:100%;border:1px solid var(--line);background:rgba(255,255,255,.09);color:var(--text);border-radius:14px;padding:13px 14px;outline:none}
textarea{min-height:82px;resize:vertical}
input:focus,textarea:focus,select:focus{border-color:rgba(139,92,246,.9);box-shadow:0 0 0 4px rgba(139,92,246,.12)}
.primary,.ghost,.mini-btn,.chat-form button{border-radius:14px;padding:12px 16px;font-weight:900;color:white;background:linear-gradient(135deg,var(--accent),var(--accent2));box-shadow:0 12px 28px rgba(6,182,212,.16)}
.primary{margin-top:14px;width:100%}
.ghost{background:rgba(255,255,255,.08);border:1px solid var(--line);box-shadow:none;color:#e2e8f0}
.ghost:hover,.mini-btn:hover{filter:brightness(1.08)}
.danger{color:#fecaca;border-color:rgba(239,68,68,.35)}
.small-msg{min-height:22px;color:var(--muted)}.error-text{color:#fecaca}.alert{padding:14px;border-radius:16px;margin:16px 0}.alert.error{background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.35)}

.game-body{height:100%;overflow:hidden}
.game-shell{height:100%;display:grid;grid-template-columns:1fr 360px;grid-template-rows:66px 1fr;gap:14px;padding:14px}
.topbar{grid-column:1/-1;display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:rgba(255,255,255,.08);border-radius:22px;padding:10px 12px;backdrop-filter:blur(14px)}
.brand{font-size:20px;font-weight:1000;letter-spacing:-.03em;display:flex;align-items:center;gap:10px;margin-right:auto}.cube{width:22px;height:22px;border-radius:6px;background:linear-gradient(135deg,var(--accent),var(--accent2));box-shadow:0 8px 22px rgba(139,92,246,.45)}
.user-pill{padding:10px 12px;border:1px solid var(--line);background:rgba(255,255,255,.06);border-radius:999px;color:#dbeafe;font-weight:800;font-size:14px}
.stage-wrap{position:relative;min-width:0;border:1px solid var(--line);background:linear-gradient(180deg,#172554,#0f172a);border-radius:28px;overflow:hidden;box-shadow:var(--shadow)}
#gameCanvas{width:100%;height:100%;display:block;touch-action:none}
.hint{position:absolute;left:18px;bottom:18px;right:18px;background:rgba(15,23,42,.78);border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:12px 14px;color:#dbeafe;font-weight:800;backdrop-filter:blur(10px)}
.side-panel{min-width:0;display:flex;flex-direction:column;gap:14px;overflow:hidden}
.panel-card{padding:18px;border-radius:24px}.panel-card h2,.panel-card h3{margin:0 0 8px}.panel-card p{margin:0;color:var(--muted);line-height:1.35}.compact{padding:12px}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stats-grid div{background:rgba(255,255,255,.06);border:1px solid var(--line);border-radius:16px;text-align:center;padding:12px 8px}.stats-grid b{font-size:22px;display:block}.stats-grid span{font-size:12px;color:var(--muted);font-weight:800}
.chat-card{display:flex;flex-direction:column;min-height:0;flex:1}.chat-messages{flex:1;min-height:220px;overflow:auto;display:flex;flex-direction:column;gap:8px;padding-right:4px}.chat-line{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);padding:9px 10px;border-radius:14px;font-size:13px;line-height:1.3}.chat-line b{display:block;margin-bottom:2px}.chat-form{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:10px}.chat-form input{padding:11px}.chat-form button{padding:0 13px}

.modal{position:fixed;inset:0;background:rgba(3,7,18,.72);display:grid;place-items:center;padding:18px;z-index:20}.modal-box{width:min(1060px,100%);max-height:92vh;overflow:auto;padding:22px;position:relative}.modal-close{position:sticky;top:0;float:right;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.12);color:white;font-size:26px;line-height:1;z-index:2}.shop-head{display:flex;gap:16px;align-items:center;margin-bottom:14px}.shop-logo-preview{width:72px;height:72px;display:grid;place-items:center;border-radius:22px;background:linear-gradient(135deg,#1e293b,#334155);border:1px solid var(--line);overflow:hidden;font-weight:1000}.shop-logo-preview img{width:100%;height:100%;object-fit:cover}.shop-name{margin:0;font-size:30px;letter-spacing:-.04em}.shop-meta,.shop-desc{margin:4px 0;color:var(--muted)}.interior-canvas{width:100%;height:auto;border-radius:22px;border:1px solid var(--line);background:linear-gradient(180deg,#d8b98a,#a97947);display:block}.shop-actions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.mini-btn{padding:10px 12px;font-size:13px}.mini-btn.secondary{background:rgba(255,255,255,.1);border:1px solid var(--line);box-shadow:none}.mini-btn.warn{background:linear-gradient(135deg,#f59e0b,#ef4444)}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.product-card{background:rgba(255,255,255,.08);border:1px solid var(--line);border-radius:20px;padding:12px;overflow:hidden}.product-img{height:125px;border-radius:15px;background:rgba(255,255,255,.08);display:grid;place-items:center;overflow:hidden;color:var(--muted);font-weight:900}.product-img img{width:100%;height:100%;object-fit:cover}.product-card h4{margin:10px 0 4px}.price{font-weight:1000;color:#bbf7d0;margin-bottom:8px}.muted{color:var(--muted);font-size:13px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid .full{grid-column:1/-1}.editor-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.tool-btn{background:rgba(255,255,255,.09);border:1px solid var(--line);border-radius:14px;color:#e2e8f0;padding:9px 11px;font-weight:800}.tool-btn.active{background:linear-gradient(135deg,var(--accent),var(--accent2));color:white}.upload-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{border-bottom:1px solid var(--line);padding:10px;text-align:left;font-size:14px}.admin-page{min-height:100%;padding:24px}.admin-wrap{max-width:1180px;margin:auto}.admin-card{background:rgba(255,255,255,.08);border:1px solid var(--line);border-radius:24px;padding:20px;margin:16px 0}.inline-form{display:inline}.pill{display:inline-flex;padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.1);font-size:12px;font-weight:900}.pill.ok{background:rgba(34,197,94,.18);color:#bbf7d0}.pill.warn{background:rgba(245,158,11,.18);color:#fde68a}.pill.danger{background:rgba(239,68,68,.18);color:#fecaca}

@media(max-width:920px){
  .landing-wrap{grid-template-columns:1fr}.hero-card{padding:28px}.lead{font-size:17px}
  .game-body{overflow:auto}.game-shell{height:auto;min-height:100%;grid-template-columns:1fr;grid-template-rows:60px 62vh auto;padding:8px;gap:8px}.topbar{border-radius:18px;gap:6px;padding:8px;overflow:auto}.brand{font-size:16px;white-space:nowrap}.ghost,.user-pill{padding:8px 10px;font-size:12px;white-space:nowrap}.side-panel{overflow:visible}.stage-wrap{border-radius:20px}.hint{font-size:12px;padding:9px;left:10px;right:10px;bottom:10px}.modal{padding:8px}.modal-box{padding:14px;border-radius:20px}.form-grid{grid-template-columns:1fr}.shop-head{align-items:flex-start}.shop-name{font-size:24px}.product-grid{grid-template-columns:1fr 1fr}.chat-messages{min-height:160px;max-height:260px}.interior-canvas{height:360px;object-fit:cover}
}
@media(max-width:560px){.product-grid{grid-template-columns:1fr}.shop-logo-preview{width:58px;height:58px}.stats-grid b{font-size:18px}}

.enhanced-shop .interior-stage{position:relative;margin-bottom:14px}
.design-note{position:absolute;left:14px;bottom:14px;max-width:420px;padding:10px 12px;border-radius:14px;background:rgba(15,23,42,.70);border:1px solid rgba(255,255,255,.14);font-size:12px;color:#dbeafe}
.showcase-split{display:grid;grid-template-columns:1.3fr .9fr;gap:18px;align-items:start}
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.media-card{background:rgba(255,255,255,.08);border:1px solid var(--line);border-radius:20px;padding:12px}
.media-card h4{margin:10px 0 4px}
.media-video-wrap{background:rgba(255,255,255,.06);border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,.08)}
.media-video-wrap video{display:block;width:100%;aspect-ratio:16/9;background:#020617}
.fancy-card{background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.06))}
.transparent-stage{background:radial-gradient(circle at 50% 35%,rgba(255,255,255,.18),rgba(255,255,255,.06) 50%,rgba(15,23,42,.18) 100%)}
.transparent-stage img{object-fit:contain;padding:8px}
.editor-page h3{margin-top:26px}
.editor-controls-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0}
.editor-actions{display:flex;gap:8px;flex-wrap:wrap}
.selected-info{padding:10px 12px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.06);margin:10px 0 14px}
@media(max-width:920px){.showcase-split{grid-template-columns:1fr}.editor-controls-grid{grid-template-columns:1fr}.design-note{position:static;margin-top:10px;max-width:none}}

.editor-category-row{display:grid;grid-template-columns:minmax(220px,320px) 1fr;gap:12px;align-items:end;margin:12px 0}
.editor-help{padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:rgba(6,182,212,.10);color:#dbeafe;font-weight:800;font-size:13px}
#editorCanvas{touch-action:none;cursor:crosshair}
#editorCanvas.is-dragging{cursor:grabbing}
.editor-toolbar{max-height:158px;overflow:auto;padding:4px;border-radius:16px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.06)}
.tool-btn{transition:transform .12s ease, filter .12s ease}.tool-btn:hover{transform:translateY(-1px)}
@media(max-width:920px){.editor-category-row{grid-template-columns:1fr}.editor-toolbar{max-height:210px}}


/* V4.5 editor tipo Sims: tabs, sin scroll largo y progreso de uploads */
.modal-box:has(.editor-page){
  overflow:hidden;
  max-height:94vh;
}
.editor-page{
  display:flex;
  flex-direction:column;
  max-height:calc(94vh - 44px);
  gap:10px;
}
.editor-page > h2{margin:0}
.editor-page > p{margin:0 0 4px}
.editor-tabs{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  padding:6px;
  border:1px solid var(--line);
  border-radius:18px;
  background:rgba(255,255,255,.06);
}
.editor-tab{
  flex:1;
  min-width:120px;
  border-radius:14px;
  padding:10px 12px;
  font-weight:1000;
  color:#dbeafe;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.10);
}
.editor-tab.active{
  color:#0b1020;
  background:linear-gradient(135deg,#ffffff,#bae6fd);
}
.editor-tab-pane{
  display:none;
  min-height:0;
  overflow:auto;
  padding:10px 4px 4px;
}
.editor-tab-pane.active{
  display:block;
}
.editor-tab-pane[data-pane="design"].active{
  display:grid;
  grid-template-columns:320px minmax(0,1fr);
  grid-template-rows:auto 1fr auto;
  gap:10px 14px;
  align-items:start;
  overflow:hidden;
}
.editor-tab-pane[data-pane="design"] > h3,
.editor-tab-pane[data-pane="design"] > p{
  grid-column:1/-1;
  margin:0;
}
.editor-tab-pane[data-pane="design"] .editor-category-row,
.editor-tab-pane[data-pane="design"] .editor-toolbar,
.editor-tab-pane[data-pane="design"] .editor-controls-grid,
.editor-tab-pane[data-pane="design"] .selected-info{
  grid-column:1;
}
.editor-tab-pane[data-pane="design"] .interior-canvas{
  grid-column:2;
  grid-row:3 / span 4;
  width:100%;
  max-height:58vh;
  object-fit:contain;
}
.editor-tab-pane[data-pane="design"] .editor-bottom-actions{
  grid-column:1/-1;
}
.editor-toolbar{
  max-height:150px;
  overflow:auto;
  padding-right:4px;
}
.editor-controls-grid{
  grid-template-columns:1fr!important;
  gap:8px!important;
}
.editor-actions{
  gap:6px!important;
}
.editor-actions .mini-btn{
  padding:8px 9px;
}
.selected-info{
  margin:0!important;
}
.editor-list-grid{
  margin-top:12px;
  max-height:42vh;
  overflow:auto;
  padding-right:6px;
}
.upload-progress{
  position:relative;
  height:28px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.14);
}
.upload-progress-bar{
  position:absolute;
  inset:0 auto 0 0;
  width:0%;
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  transition:width .15s ease;
}
.upload-progress-label{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  font-style:normal;
  font-weight:900;
  color:white;
  font-size:12px;
  text-shadow:0 1px 6px rgba(0,0,0,.35);
}
.interior-canvas{
  max-height:68vh;
  object-fit:contain;
}
.product-img.transparent-stage,
.transparent-stage{
  background:radial-gradient(circle at 50% 50%, rgba(255,255,255,.12), rgba(255,255,255,.03) 60%, rgba(15,23,42,.22));
}
.transparent-stage img{
  object-fit:contain!important;
  padding:6px;
}
@media(max-width:920px){
  .modal-box:has(.editor-page){overflow:auto}
  .editor-page{max-height:none}
  .editor-tab-pane[data-pane="design"].active{
    display:block;
    overflow:auto;
  }
  .editor-tab-pane[data-pane="design"] .interior-canvas{
    max-height:none;
  }
}


/* V4.6 - Fix visual del editor y calidad de canvas */
.modal-box:has(.editor-page){
  width:min(1480px, 96vw);
}
.editor-tab-pane[data-pane="design"].active{
  grid-template-columns:420px minmax(0,1fr)!important;
  gap:14px 18px!important;
}
.editor-tab-pane[data-pane="design"] .editor-category-row{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:10px!important;
  align-items:start!important;
}
.editor-tab-pane[data-pane="design"] .editor-help{
  padding:10px 12px;
  border-radius:14px;
  font-size:13px;
  line-height:1.28;
  white-space:normal;
  word-break:normal;
}
.editor-toolbar{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
  max-height:210px!important;
  overflow:auto!important;
  padding:8px!important;
  border-radius:18px;
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.08);
}
.tool-btn{
  min-height:46px!important;
  height:auto!important;
  padding:10px 10px!important;
  white-space:normal!important;
  line-height:1.05!important;
  font-size:14px!important;
  text-align:center!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
  word-break:normal!important;
}
.editor-controls-grid{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:10px!important;
}
.editor-controls-grid label,
.editor-category-row label{
  display:block;
  margin-bottom:5px;
  line-height:1.05;
}
.editor-controls-grid select,
.editor-category-row select,
.editor-controls-grid input{
  height:48px!important;
  min-height:48px!important;
  line-height:1.1!important;
  font-size:16px!important;
  padding:0 42px 0 16px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.editor-actions{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
}
.editor-actions .mini-btn{
  min-height:42px!important;
  padding:9px 10px!important;
  white-space:normal!important;
  line-height:1.1!important;
  font-size:13px!important;
}
.selected-info{
  font-size:13px!important;
  line-height:1.25!important;
  max-height:54px;
  overflow:auto;
}
.editor-tab-pane[data-pane="design"] .interior-canvas{
  background:#0f172a;
  border-radius:22px;
  image-rendering:auto;
  max-height:64vh!important;
}
.interior-canvas{
  image-rendering:auto!important;
}
.product-card img,
.shop-logo-preview img,
.transparent-stage img{
  image-rendering:auto!important;
}
@media(max-width:1180px){
  .editor-tab-pane[data-pane="design"].active{
    grid-template-columns:360px minmax(0,1fr)!important;
  }
  .editor-toolbar{
    grid-template-columns:1fr!important;
  }
}
@media(max-width:920px){
  .editor-tab-pane[data-pane="design"].active{
    display:block!important;
    overflow:auto!important;
  }
  .editor-toolbar{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}


/* V5 Three.js low-poly */
#gameCanvas{
  display:block;
  width:100%;
  height:100%;
  background:#0f172a;
  border-radius:28px;
  touch-action:none;
}
.stage-wrap{
  position:relative;
  overflow:hidden;
}
.three-action-bar{
  position:fixed;
  left:32px;
  bottom:28px;
  z-index:35;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  max-width:min(780px, calc(100vw - 430px));
  padding:10px;
  border-radius:22px;
  background:rgba(15,23,42,.72);
  border:1px solid rgba(255,255,255,.12);
  backdrop-filter:blur(14px);
  box-shadow:0 20px 55px rgba(0,0,0,.28);
}
.three-editor-panel{
  position:fixed;
  top:112px;
  left:32px;
  z-index:40;
  width:320px;
  max-height:calc(100vh - 160px);
  overflow:auto;
  padding:16px;
  border-radius:26px;
  background:rgba(15,23,42,.86);
  border:1px solid rgba(255,255,255,.14);
  backdrop-filter:blur(16px);
  box-shadow:0 22px 70px rgba(0,0,0,.34);
  color:#fff;
}
.three-editor-panel h3{
  margin:0 0 12px;
  font-size:20px;
}
.three-editor-panel label{
  display:block;
  margin:12px 0 6px;
  font-weight:1000;
  color:#dbeafe;
}
.three-editor-panel select,
.three-editor-panel input{
  width:100%;
  height:44px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.10);
  color:#fff;
  padding:0 12px;
  font-weight:800;
}
.three-editor-panel select option{
  color:#111827;
}
.three-editor-panel .editor-actions{
  margin-top:14px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.three-editor-panel .mini-btn{
  min-height:42px;
}
.three-manage .editor-tab-pane{
  max-height:62vh;
  overflow:auto;
}
.product-card .product-img img{
  object-fit:contain;
  width:100%;
  height:100%;
}
@media(max-width:900px){
  .three-action-bar{
    left:12px;
    bottom:12px;
    max-width:calc(100vw - 24px);
  }
  .three-editor-panel{
    top:auto;
    left:12px;
    right:12px;
    bottom:12px;
    width:auto;
    max-height:45vh;
  }
}


/* V5.1 drag + height editor */
.three-editor-panel input[type="range"]{
  padding:0;
  accent-color:#06b6d4;
}
.three-editor-panel #height3DLabel{
  color:#67e8f9;
  font-weight:1000;
}
