/* ============================================================
   Ledger 3D — interfaz tridimensional
   ============================================================ */
:root{
  --bg:#07080f;
  --bg2:#0c0f1c;
  --panel:rgba(255,255,255,.045);
  --panel-2:rgba(255,255,255,.075);
  --line:rgba(255,255,255,.10);
  --txt:#eef1fb;
  --dim:#8b93b0;
  --accent:#6d5efc;
  --accent2:#00d4ff;
  --good:#22d39a;
  --warn:#ffb020;
  --bad:#ff5c72;
  --r:18px;
  --shadow:0 30px 60px -20px rgba(0,0,0,.75), 0 0 0 1px rgba(255,255,255,.05) inset;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:'Outfit',system-ui,sans-serif;
  background:var(--bg); color:var(--txt); overflow:hidden;
  -webkit-font-smoothing:antialiased;
}
button,input,select{font-family:inherit;color:inherit}
h1{font-size:26px;font-weight:800;letter-spacing:-.4px}
h3{font-size:15px;font-weight:600;letter-spacing:.2px}
small{font-size:11px}
.muted{color:var(--dim);font-size:12.5px;line-height:1.6}
.dim{color:var(--dim);font-weight:300}
.mt{margin-top:22px}
.link{background:none;border:0;color:var(--accent2);cursor:pointer;font-size:12px;font-weight:600;float:right}
.link:hover{text-decoration:underline}

/* ---------- escena 3D ---------- */
.scene{position:fixed;inset:0;perspective:1600px;perspective-origin:50% 40%;overflow:hidden}
.ambient{
  position:absolute;inset:-20%;
  background:
    radial-gradient(520px 420px at 18% 12%, rgba(109,94,252,.42), transparent 65%),
    radial-gradient(480px 400px at 88% 22%, rgba(0,212,255,.22), transparent 62%),
    radial-gradient(700px 500px at 50% 108%, rgba(255,92,114,.16), transparent 66%);
  filter:blur(20px);animation:drift 22s ease-in-out infinite alternate;
}
@keyframes drift{0%{transform:translate3d(-2%,-1%,0) scale(1)}100%{transform:translate3d(3%,2%,0) scale(1.12)}}
.grid-floor{
  position:absolute;left:-30%;right:-30%;bottom:-10%;height:60%;
  background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);
  background-size:56px 56px;
  transform:rotateX(74deg);transform-origin:bottom center;
  mask-image:linear-gradient(to top,#000,transparent 75%);
  -webkit-mask-image:linear-gradient(to top,#000,transparent 75%);
  animation:floor 9s linear infinite;
}
@keyframes floor{to{background-position:0 56px,56px 0}}

.app{position:relative;height:100%;display:flex;transform-style:preserve-3d;transition:transform .12s ease-out}

/* ---------- sidebar ---------- */
.sidebar{
  width:250px;flex:0 0 250px;height:100%;padding:22px 16px;
  background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.02));
  border-right:1px solid var(--line);backdrop-filter:blur(18px);
  display:flex;flex-direction:column;gap:22px;transform-style:preserve-3d;
}
.brand{display:flex;gap:12px;align-items:center;padding:4px 6px}
.brand-orb{
  width:40px;height:40px;border-radius:13px;flex:0 0 40px;
  background:conic-gradient(from 140deg,var(--accent),var(--accent2),#ff5c72,var(--accent));
  box-shadow:0 0 24px rgba(109,94,252,.7),inset 0 0 14px rgba(255,255,255,.4);
  animation:spin 9s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}
.brand-txt strong{font-size:17px;letter-spacing:-.3px;display:block}
.brand-txt strong span{color:var(--accent2)}
.brand-txt small{color:var(--dim);font-size:10.5px;letter-spacing:1.4px;text-transform:uppercase}

.nav{display:flex;flex-direction:column;gap:6px}
.nav-btn{
  display:flex;align-items:center;gap:12px;width:100%;padding:11px 13px;
  background:transparent;border:1px solid transparent;border-radius:12px;cursor:pointer;
  color:var(--dim);font-size:13.5px;font-weight:500;text-align:left;transition:.18s;
}
.nav-btn i{font-style:normal;width:18px;text-align:center;font-size:15px;opacity:.85}
.nav-btn b{margin-left:auto;background:rgba(255,255,255,.1);border-radius:20px;padding:1px 8px;font-size:11px}
.nav-btn:hover{background:rgba(255,255,255,.05);color:var(--txt);transform:translateX(3px)}
.nav-btn.is-active{
  background:linear-gradient(90deg,rgba(109,94,252,.32),rgba(0,212,255,.10));
  border-color:rgba(109,94,252,.45);color:#fff;
  box-shadow:0 8px 22px -10px rgba(109,94,252,.9);transform:translateX(3px);
}
.side-stat{margin-top:auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px}
.side-stat small{color:var(--dim);letter-spacing:.6px;text-transform:uppercase;font-size:10px}
.side-stat strong{display:block;font-size:23px;margin:5px 0 8px;font-weight:800}
.spark canvas{width:100%;height:46px}

/* ---------- stage / views ---------- */
.stage{flex:1;height:100%;overflow-y:auto;overflow-x:hidden;padding:26px 30px 40px;perspective:1200px}
.view{display:none;animation:rise .45s cubic-bezier(.2,.8,.25,1)}
.view.is-active{display:block}
@keyframes rise{from{opacity:0;transform:translate3d(0,26px,-40px)}to{opacity:1;transform:none}}
.view-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px;flex-wrap:wrap}
.view-head .sub{color:var(--dim);font-size:13px;margin-top:4px}
.head-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

/* ---------- inputs 3D ---------- */
.input3d,.select3d{
  background:rgba(255,255,255,.06);border:1px solid var(--line);border-radius:11px;
  padding:9px 12px;font-size:13px;outline:none;transition:.16s;box-shadow:inset 0 2px 6px rgba(0,0,0,.35);
}
.input3d{min-width:230px}
.input3d:focus,.select3d:focus{border-color:rgba(0,212,255,.6);box-shadow:0 0 0 3px rgba(0,212,255,.13),inset 0 2px 6px rgba(0,0,0,.35)}
.select3d option{background:#12141f}

/* ---------- botones 3D ---------- */
.btn3d{
  position:relative;border:1px solid var(--line);border-radius:12px;padding:10px 16px;
  background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.04));
  cursor:pointer;font-size:13px;font-weight:600;transition:.16s;
  box-shadow:0 8px 0 -2px rgba(0,0,0,.42),0 14px 26px -14px rgba(0,0,0,.9);
  transform:translateZ(0);
}
.btn3d:hover{transform:translateY(-2px);box-shadow:0 10px 0 -2px rgba(0,0,0,.42),0 20px 32px -14px rgba(0,0,0,.9)}
.btn3d:active{transform:translateY(3px);box-shadow:0 3px 0 -1px rgba(0,0,0,.5)}
.btn3d.primary{
  background:linear-gradient(180deg,#7b6cff,#5b4bf0);border-color:rgba(255,255,255,.22);color:#fff;
  box-shadow:0 8px 0 -2px #3a2fb0,0 18px 34px -12px rgba(109,94,252,.85);
}
.btn3d.primary:hover{box-shadow:0 10px 0 -2px #3a2fb0,0 24px 40px -12px rgba(109,94,252,.95)}
.btn3d.primary:active{box-shadow:0 3px 0 -1px #3a2fb0}
.btn3d.ghost{background:rgba(255,255,255,.04)}
.btn3d.danger{background:linear-gradient(180deg,#ff5c72,#e0344c);border-color:rgba(255,255,255,.2);color:#fff;box-shadow:0 8px 0 -2px #a0202f,0 16px 28px -14px rgba(255,92,114,.8)}
.btn3d.danger.ghost{background:rgba(255,92,114,.12);border-color:rgba(255,92,114,.4);color:#ffb3bd;box-shadow:none}

/* ---------- KPIs ---------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:20px}
.kpi{
  position:relative;padding:18px 18px 16px;border-radius:var(--r);
  background:linear-gradient(160deg,rgba(255,255,255,.09),rgba(255,255,255,.025));
  border:1px solid var(--line);box-shadow:var(--shadow);transform-style:preserve-3d;
  transition:transform .35s cubic-bezier(.2,.8,.25,1);
}
.kpi:hover{transform:translate3d(0,-6px,26px)}
.kpi small{color:var(--dim);text-transform:uppercase;letter-spacing:.9px;font-size:10px}
.kpi strong{display:block;font-size:27px;font-weight:800;margin:7px 0 5px;letter-spacing:-.6px}
.kpi em{font-style:normal;font-size:11.5px;color:var(--dim)}
.delta.up{color:var(--bad)} .delta.down{color:var(--good)}
.txt-cat{font-size:20px!important}

/* ---------- paneles ---------- */
.grid-3d{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-bottom:16px}
.panel{
  padding:18px;border-radius:var(--r);border:1px solid var(--line);
  background:linear-gradient(160deg,rgba(255,255,255,.075),rgba(255,255,255,.02));
  box-shadow:var(--shadow);transform-style:preserve-3d;transition:transform .35s cubic-bezier(.2,.8,.25,1);
}
.panel:hover{transform:translate3d(0,-4px,18px)}
.panel.wide{margin-bottom:16px}
.panel h3{display:flex;align-items:center;gap:8px;margin-bottom:14px;color:#fff}
.panel h3 small{background:rgba(109,94,252,.25);border:1px solid rgba(109,94,252,.45);color:#c9c2ff;border-radius:20px;padding:2px 8px;font-weight:600}
.chart-panel canvas{width:100%;height:auto;display:block}
.two-col{display:grid;grid-template-columns:1.15fr .85fr;gap:16px}
@media(max-width:1080px){.two-col{grid-template-columns:1fr}}

/* ---------- leyenda ---------- */
.legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.legend span{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--dim);background:rgba(255,255,255,.05);border-radius:20px;padding:4px 10px}
.legend i{width:9px;height:9px;border-radius:3px;display:inline-block}

/* ---------- rank ---------- */
.rank{display:flex;flex-direction:column;gap:11px}
.rank-row{display:grid;grid-template-columns:20px 1fr auto;gap:10px;align-items:center;font-size:13px}
.rank-row .n{color:var(--dim);font-family:'JetBrains Mono',monospace;font-size:11px}
.rank-row .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rank-bar{grid-column:1/-1;height:6px;border-radius:6px;background:rgba(255,255,255,.07);overflow:hidden;margin-top:-4px}
.rank-bar i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--accent),var(--accent2))}

/* ---------- ticket strip ---------- */
.ticket-strip{display:flex;gap:14px;overflow-x:auto;padding:6px 2px 12px}
.tstrip{
  flex:0 0 190px;padding:13px;border-radius:14px;border:1px solid var(--line);
  background:linear-gradient(160deg,rgba(255,255,255,.09),rgba(255,255,255,.02));
  cursor:pointer;transition:.25s;
}
.tstrip:hover{transform:translateY(-5px) rotateX(6deg);box-shadow:0 20px 36px -18px rgba(0,0,0,.9)}
.tstrip .tt-cat{font-size:10.5px;letter-spacing:.7px;text-transform:uppercase;font-weight:700}
.tstrip .tt-name{font-size:13.5px;font-weight:600;margin:7px 0 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tstrip .tt-amt{font-size:19px;font-weight:800}

/* ---------- grid de tickets ---------- */
.ticket-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:18px;perspective:1400px}
.tcard{
  position:relative;border-radius:var(--r);border:1px solid var(--line);cursor:pointer;
  background:linear-gradient(160deg,rgba(255,255,255,.09),rgba(255,255,255,.02));
  box-shadow:var(--shadow);overflow:hidden;transform-style:preserve-3d;
  transition:transform .32s cubic-bezier(.2,.8,.25,1),box-shadow .32s;
}
.tcard:hover{transform:translate3d(0,-9px,40px) rotateX(7deg);box-shadow:0 40px 70px -26px rgba(0,0,0,.95)}
.tcard .thumb{height:148px;background:#0a0c14;position:relative;overflow:hidden}
.tcard .thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:.4s}
.tcard:hover .thumb img{transform:scale(1.07)}
.tcard .thumb .ph{position:absolute;inset:0;display:grid;place-items:center;font-size:30px;color:rgba(255,255,255,.16)}
.tcard .badge{
  position:absolute;top:11px;left:11px;font-size:10.5px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;
  padding:4px 10px;border-radius:20px;backdrop-filter:blur(8px);box-shadow:0 6px 14px -6px rgba(0,0,0,.9);
}
.tcard .conf{
  position:absolute;top:11px;right:11px;font-size:10px;font-family:'JetBrains Mono',monospace;
  background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.16);border-radius:20px;padding:3px 8px;backdrop-filter:blur(6px);
}
.tcard .body{padding:14px}
.tcard .body h4{font-size:14.5px;font-weight:600;margin-bottom:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tcard .body .meta{font-size:11.5px;color:var(--dim);display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.tcard .body .amt{font-size:22px;font-weight:800;letter-spacing:-.5px;display:flex;align-items:baseline;gap:8px}
.tcard .body .amt small{color:var(--dim);font-weight:400}

/* ---------- estado vacío ---------- */
.empty{text-align:center;padding:60px 20px;color:var(--dim)}
.empty-orb{width:110px;height:110px;margin:0 auto 18px;border-radius:50%;
  background:conic-gradient(from 0deg,rgba(109,94,252,.9),rgba(0,212,255,.7),rgba(255,92,114,.6),rgba(109,94,252,.9));
  filter:blur(2px);animation:spin 14s linear infinite;opacity:.65}
.empty h3{color:#fff;font-size:18px;margin-bottom:6px}
.empty p{font-size:13px;margin-bottom:18px}

/* ---------- dropzone ---------- */
.dropzone{
  border:2px dashed rgba(255,255,255,.16);border-radius:22px;padding:46px 20px;text-align:center;
  background:rgba(255,255,255,.028);transition:.25s;position:relative;overflow:hidden;
}
.dropzone::before{content:'';position:absolute;inset:0;background:radial-gradient(600px 220px at 50% 0%,rgba(109,94,252,.22),transparent 70%);opacity:0;transition:.3s}
.dropzone:hover{border-color:rgba(0,212,255,.5);background:rgba(0,212,255,.04)}
.dropzone.drag{border-color:var(--accent2);transform:scale(1.01);background:rgba(0,212,255,.09)}
.dropzone.drag::before{opacity:1}
.dz-inner{position:relative}
.dz-orb{
  width:78px;height:78px;margin:0 auto 16px;border-radius:24px;display:grid;place-items:center;font-size:30px;
  background:linear-gradient(160deg,rgba(109,94,252,.85),rgba(0,212,255,.55));
  box-shadow:0 22px 44px -16px rgba(109,94,252,.9);animation:float 4s ease-in-out infinite;
}
@keyframes float{50%{transform:translateY(-9px) rotateY(18deg)}}
.dz-inner h3{font-size:18px;margin-bottom:5px}
.dz-inner p{color:var(--dim);font-size:12.5px;margin-bottom:18px}
.dz-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}

/* ---------- cola + carrusel ---------- */
.queue-wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:16px;margin-top:16px}
@media(max-width:1080px){.queue-wrap{grid-template-columns:1fr}}
.queue{display:flex;flex-direction:column;gap:9px;max-height:330px;overflow-y:auto}
.qitem{
  display:grid;grid-template-columns:38px 1fr auto;gap:12px;align-items:center;
  padding:9px 11px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid var(--line);
  animation:rise .35s ease both;
}
.qitem img{width:38px;height:38px;object-fit:cover;border-radius:8px}
.qitem .qname{font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qitem .qstat{font-size:11px;color:var(--dim)}
.qitem .qstat b{color:var(--accent2);font-weight:600}
.qitem .bar{grid-column:1/-1;height:4px;border-radius:4px;background:rgba(255,255,255,.08);overflow:hidden}
.qitem .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));transition:width .3s}

.carousel{position:relative;height:320px;perspective:1200px;display:grid;place-items:center}
.cslide{
  position:absolute;width:210px;height:280px;border-radius:16px;overflow:hidden;
  border:1px solid rgba(255,255,255,.18);box-shadow:0 34px 60px -22px rgba(0,0,0,.95);
  transition:transform .6s cubic-bezier(.2,.8,.25,1),opacity .4s;background:#0a0c14;
}
.cslide img{width:100%;height:100%;object-fit:cover}
.cslide .cap{position:absolute;bottom:0;left:0;right:0;padding:10px;font-size:11.5px;background:linear-gradient(transparent,rgba(0,0,0,.9));font-weight:600}
.cslide .cap b{color:var(--accent2)}

/* ---------- categorías ---------- */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;perspective:1200px}
.cat-card{
  padding:18px;border-radius:var(--r);border:1px solid var(--line);position:relative;overflow:hidden;
  background:linear-gradient(160deg,rgba(255,255,255,.08),rgba(255,255,255,.02));
  box-shadow:var(--shadow);transition:.3s;transform-style:preserve-3d;
}
.cat-card:hover{transform:translate3d(0,-6px,26px) rotateX(5deg)}
.cat-card .cc-ico{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-size:22px;margin-bottom:12px;box-shadow:0 14px 26px -12px rgba(0,0,0,.9)}
.cat-card h4{font-size:15px;font-weight:700;margin-bottom:3px}
.cat-card .cc-sub{font-size:11.5px;color:var(--dim)}
.cat-card .cc-amt{font-size:21px;font-weight:800;margin:12px 0 6px}
.cat-card .cc-bar{height:6px;border-radius:6px;background:rgba(255,255,255,.08);overflow:hidden}
.cat-card .cc-bar i{display:block;height:100%;border-radius:6px}
.cat-card .cc-foot{display:flex;justify-content:space-between;margin-top:9px;font-size:11px;color:var(--dim)}

/* ---------- reglas ---------- */
.rules{display:flex;flex-direction:column;gap:9px;max-height:420px;overflow-y:auto}
.rule{
  display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:12px;
  background:rgba(255,255,255,.05);border:1px solid var(--line);font-size:13px;
}
.rule .w{font-family:'JetBrains Mono',monospace;font-size:12.5px;color:#fff}
.rule .c{margin-left:auto;font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px}
.rule .x{background:none;border:0;color:var(--dim);cursor:pointer;font-size:15px;padding:0 4px}
.rule .x:hover{color:var(--bad)}
.rule.auto{border-left:3px solid var(--warn)}
.rule-form{display:flex;flex-direction:column;gap:13px}
.rule-form label{font-size:11.5px;color:var(--dim);display:flex;flex-direction:column;gap:6px}
.rule-form .input3d{min-width:0;width:100%}
.rule-form .chk{flex-direction:row;align-items:center;gap:9px;font-size:12px;cursor:pointer}
.steps{margin:10px 0 0 18px;font-size:12.5px;color:var(--dim);line-height:1.9}
.steps b{color:var(--accent2)}

/* ---------- datos ---------- */
.stack{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.store-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.store-info div{background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:12px;padding:12px}
.store-info small{display:block;color:var(--dim);text-transform:uppercase;font-size:10px;letter-spacing:.7px;margin-bottom:5px}
.store-info b{font-size:16px}
.danger-zone{border-color:rgba(255,92,114,.28)}

/* ---------- modal ---------- */
.modal{position:fixed;inset:0;z-index:60;display:grid;place-items:center}
.modal[hidden]{display:none}
.modal-scrim{position:absolute;inset:0;background:rgba(3,4,9,.78);backdrop-filter:blur(8px)}
.modal-card{
  position:relative;width:min(920px,94vw);max-height:90vh;overflow:auto;border-radius:22px;
  background:linear-gradient(160deg,#141828,#0b0e1a);border:1px solid rgba(255,255,255,.14);
  box-shadow:0 50px 100px -30px #000;animation:pop .35s cubic-bezier(.2,.9,.3,1.2);
}
@keyframes pop{from{opacity:0;transform:translate3d(0,30px,-80px) scale(.95)}}
.modal-x{position:absolute;top:14px;right:16px;background:rgba(255,255,255,.08);border:1px solid var(--line);border-radius:10px;width:32px;height:32px;cursor:pointer;z-index:2}
.modal-x:hover{background:var(--bad)}
.modal-body{display:grid;grid-template-columns:.85fr 1.15fr;gap:0}
@media(max-width:760px){.modal-body{grid-template-columns:1fr}}
.modal-preview{background:#05060c;display:grid;place-items:center;padding:20px;min-height:260px}
.modal-preview img{max-width:100%;max-height:60vh;border-radius:10px}
.modal-form{padding:26px}
.modal-form h3{margin-bottom:16px;font-size:18px}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
@media(max-width:560px){.f-row{grid-template-columns:1fr}}
.f-row label{font-size:11px;color:var(--dim);display:flex;flex-direction:column;gap:6px}
.f-row .input3d{min-width:0;width:100%}
.conf{margin:10px 0 16px;font-size:11.5px;color:var(--dim);background:rgba(255,255,255,.05);border-radius:10px;padding:9px 11px;line-height:1.6}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}

/* ---------- toasts ---------- */
.toast-wrap{position:fixed;right:20px;bottom:20px;z-index:90;display:flex;flex-direction:column;gap:9px}
.toast{
  padding:12px 16px;border-radius:12px;font-size:13px;font-weight:500;
  background:rgba(20,24,40,.94);border:1px solid var(--line);box-shadow:0 20px 40px -16px #000;
  animation:toastIn .35s cubic-bezier(.2,.9,.3,1.2);max-width:330px;
}
.toast.ok{border-left:3px solid var(--good)}
.toast.err{border-left:3px solid var(--bad)}
.toast.info{border-left:3px solid var(--accent2)}
@keyframes toastIn{from{opacity:0;transform:translateX(40px)}}

/* ---------- scrollbars ---------- */
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(255,255,255,.14);border-radius:9px}
::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.26)}

@media(max-width:820px){
  .sidebar{position:absolute;z-index:30;height:auto;width:100%;flex-direction:row;align-items:center;overflow-x:auto}
  .side-stat{display:none}.brand small{display:none}
  .nav{flex-direction:row}.nav-btn span{display:none}
  .stage{padding:74px 16px 30px}
}

/* ---------- pantalla de acceso ---------- */
.gate{
  position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;
  background:radial-gradient(800px 600px at 25% 10%,rgba(109,94,252,.35),rgba(4,5,12,.96) 62%);
  backdrop-filter:blur(14px);
}
.gate[hidden]{display:none}
.gate-card{
  width:min(400px,94vw);padding:34px 30px;border-radius:24px;text-align:center;
  background:linear-gradient(160deg,rgba(255,255,255,.09),rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.14);box-shadow:0 50px 90px -30px #000;
}
.gate-orb{
  width:64px;height:64px;margin:0 auto 18px;border-radius:20px;
  background:conic-gradient(from 140deg,#6d5efc,#00d4ff,#ff5c72,#6d5efc);
  box-shadow:0 0 30px rgba(109,94,252,.8),inset 0 0 16px rgba(255,255,255,.4);
  animation:spin 9s linear infinite;
}
.gate-card h2{font-size:25px;font-weight:800;letter-spacing:-.5px}
.gate-card h2 span{color:#00d4ff}
.gate-card p{color:#8b93b0;font-size:13px;margin:8px 0 22px;line-height:1.5}
.gate-card p.bad{color:#ffb3bd}
.gate-card form{display:flex;flex-direction:column;gap:13px;text-align:left}
.gate-card label{font-size:11.5px;color:#8b93b0;display:flex;flex-direction:column;gap:6px}
.gate-card .input3d{min-width:0;width:100%}
.btn3d.full{width:100%;margin-top:6px}
.gate-foot{display:block;margin-top:18px;color:#6d7595;font-size:11px}
.app.is-locked{filter:blur(7px) saturate(.6);pointer-events:none;transform:scale(.99)}
.side-user{display:flex;flex-direction:column;gap:7px}
.user-badge{font-size:12px;color:#c9c2ff;background:rgba(109,94,252,.18);border:1px solid rgba(109,94,252,.4);border-radius:20px;padding:5px 11px;text-align:center}
.btn3d.tiny{padding:7px 11px;font-size:11.5px;box-shadow:none}
.btn3d.tiny:hover{transform:translateY(-1px)}
