/* ZHH Toolkit Maker — Premium 3D UI */
* { box-sizing: border-box; margin: 0; padding: 0; }
:root{
  --bg-1:#06070d;
  --bg-2:#0b1024;
  --bg-3:#1a0b3a;
  --primary:#7c3aed;
  --primary-2:#06b6d4;
  --accent:#f59e0b;
  --success:#10b981;
  --danger:#ef4444;
  --text:#e8ecff;
  --text-dim:#a5add8;
  --border:rgba(255,255,255,.12);
  --glass:rgba(255,255,255,.06);
  --shadow-glow:0 10px 40px rgba(124,58,237,.35), 0 4px 16px rgba(6,182,212,.18);
}
html,body{height:100%;}
body{
  font-family:'Inter',sans-serif;
  color:var(--text);
  background:radial-gradient(ellipse at top left,#1a0b3a 0%,#06070d 50%),radial-gradient(ellipse at bottom right,#0b3a4a 0%,transparent 60%);
  background-attachment:fixed;
  min-height:100vh;
  overflow-x:hidden;
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(circle at 20% 30%,rgba(124,58,237,.25),transparent 40%),
    radial-gradient(circle at 80% 70%,rgba(6,182,212,.2),transparent 40%),
    radial-gradient(circle at 50% 100%,rgba(245,158,11,.12),transparent 50%);
  animation:bgpulse 12s ease-in-out infinite alternate;
}
@keyframes bgpulse{0%{opacity:.7}100%{opacity:1}}

.hidden{display:none !important;}

.glass{
  background:var(--glass);
  backdrop-filter:blur(20px) saturate(180%);
  -webkit-backdrop-filter:blur(20px) saturate(180%);
  border:1px solid var(--border);
  border-radius:24px;
  box-shadow:var(--shadow-glow);
}

/* ---------- 3D LOADER ---------- */
.loader-wrap{
  position:fixed;inset:0;z-index:9999;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:radial-gradient(circle,#1a0b3a 0%,#06070d 80%);
  transition:opacity .6s ease;
}
.loader-wrap.fade-out{opacity:0;pointer-events:none;}
.loader-3d{perspective:800px;margin-bottom:30px;}
.cube{
  width:100px;height:100px;position:relative;
  transform-style:preserve-3d;
  animation:spin3d 4s infinite linear;
}
@keyframes spin3d{
  0%{transform:rotateX(0) rotateY(0)}
  100%{transform:rotateX(360deg) rotateY(360deg)}
}
.face{
  position:absolute;width:100px;height:100px;
  border:2px solid rgba(255,255,255,.3);
  background:linear-gradient(135deg,rgba(124,58,237,.6),rgba(6,182,212,.6));
  box-shadow:inset 0 0 30px rgba(255,255,255,.2),0 0 30px rgba(124,58,237,.6);
  display:flex;align-items:center;justify-content:center;
  font-family:'Orbitron';font-weight:900;font-size:24px;color:#fff;
}
.face.front{transform:translateZ(50px);}
.face.front::after{content:"Z"}
.face.back{transform:rotateY(180deg) translateZ(50px);}
.face.back::after{content:"H"}
.face.right{transform:rotateY(90deg) translateZ(50px);}
.face.right::after{content:"H"}
.face.left{transform:rotateY(-90deg) translateZ(50px);background:linear-gradient(135deg,rgba(245,158,11,.6),rgba(124,58,237,.6));}
.face.left::after{content:"Z"}
.face.top{transform:rotateX(90deg) translateZ(50px);background:linear-gradient(135deg,rgba(6,182,212,.6),rgba(245,158,11,.6));}
.face.top::after{content:"H"}
.face.bottom{transform:rotateX(-90deg) translateZ(50px);}
.face.bottom::after{content:"H"}

.loader-brand{
  font-family:'Orbitron';font-weight:900;font-size:42px;letter-spacing:.4em;
  background:linear-gradient(135deg,#7c3aed,#06b6d4,#f59e0b);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  text-shadow:0 0 40px rgba(124,58,237,.5);
  animation:pulse 2s ease-in-out infinite;
}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.7}}
.loader-sub{font-size:13px;letter-spacing:.5em;color:var(--text-dim);margin-top:6px;}
.progress{
  margin-top:30px;width:300px;max-width:80vw;height:6px;
  background:rgba(255,255,255,.1);border-radius:10px;overflow:hidden;
}
.progress-bar{
  height:100%;width:0%;
  background:linear-gradient(90deg,#7c3aed,#06b6d4,#f59e0b);
  box-shadow:0 0 20px rgba(124,58,237,.8);
  transition:width .2s ease;
}
.progress-text{margin-top:12px;font-size:12px;letter-spacing:.2em;color:var(--text-dim);}

/* ---------- AUTH ---------- */
.auth-screen{
  position:relative;z-index:1;
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  padding:30px 16px;
}
.auth-card{padding:40px 36px;width:100%;max-width:460px;animation:fadeUp .6s ease;}
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.auth-logo{text-align:center;margin-bottom:28px;}
.logo-orb{
  width:70px;height:70px;margin:0 auto 14px;border-radius:50%;
  background:radial-gradient(circle at 30% 30%,#a78bfa,#7c3aed 40%,#06b6d4 100%);
  box-shadow:0 10px 40px rgba(124,58,237,.6),inset -8px -8px 20px rgba(0,0,0,.3),inset 8px 8px 20px rgba(255,255,255,.2);
  animation:float 3s ease-in-out infinite;
}
.logo-orb.small{width:42px;height:42px;margin:0;}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.auth-logo h1{
  font-family:'Orbitron';font-size:24px;letter-spacing:.1em;
  background:linear-gradient(135deg,#fff,#a78bfa);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.auth-logo p{color:var(--text-dim);font-size:13px;margin-top:6px;}

.tabs{display:flex;gap:6px;margin-bottom:22px;background:rgba(0,0,0,.3);padding:6px;border-radius:14px;}
.tab-btn{
  flex:1;padding:10px;border:none;background:transparent;color:var(--text-dim);
  font-weight:600;cursor:pointer;border-radius:10px;transition:all .25s;font-family:inherit;
}
.tab-btn.active{
  background:linear-gradient(135deg,#7c3aed,#06b6d4);color:#fff;
  box-shadow:0 4px 14px rgba(124,58,237,.5);
}

.auth-form{display:flex;flex-direction:column;gap:10px;}
.auth-form label{font-size:12px;color:var(--text-dim);margin-top:6px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;}
input,textarea,select{
  width:100%;padding:13px 16px;
  background:rgba(0,0,0,.35);border:1px solid var(--border);border-radius:12px;
  color:var(--text);font-family:inherit;font-size:14px;
  transition:all .2s;
}
input:focus,textarea:focus{
  outline:none;border-color:#7c3aed;
  box-shadow:0 0 0 3px rgba(124,58,237,.25),0 0 20px rgba(124,58,237,.3);
}
textarea{resize:vertical;}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:13px 22px;border:none;border-radius:12px;cursor:pointer;
  font-family:inherit;font-weight:600;font-size:14px;
  transition:all .25s;text-decoration:none;
}
.btn:hover{transform:translateY(-2px);}
.btn:active{transform:translateY(0);}
.btn-primary{
  background:linear-gradient(135deg,#7c3aed,#06b6d4);color:#fff;
  box-shadow:0 8px 24px rgba(124,58,237,.45);
}
.btn-primary:hover{box-shadow:0 12px 32px rgba(124,58,237,.6);}
.btn-accent{
  background:linear-gradient(135deg,#f59e0b,#ef4444);color:#fff;
  box-shadow:0 6px 20px rgba(245,158,11,.4);
}
.btn-success{
  background:linear-gradient(135deg,#10b981,#06b6d4);color:#fff;
  box-shadow:0 6px 20px rgba(16,185,129,.4);
}
.btn-danger{
  background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;
  box-shadow:0 4px 14px rgba(239,68,68,.4);
}
.btn-ghost{
  background:rgba(255,255,255,.05);color:var(--text);
  border:1px solid var(--border);
}
.btn-ghost:hover{background:rgba(255,255,255,.12);}

.auth-msg{font-size:13px;text-align:center;margin-top:6px;min-height:18px;}
.auth-msg.error{color:#fca5a5;}
.auth-msg.success{color:#86efac;}

.auth-footer{text-align:center;margin-top:24px;padding-top:20px;border-top:1px solid var(--border);}
.wa-link{
  display:inline-flex;align-items:center;gap:8px;
  color:#25d366;text-decoration:none;font-weight:600;font-size:14px;
  padding:10px 18px;border-radius:10px;background:rgba(37,211,102,.1);
  border:1px solid rgba(37,211,102,.3);transition:all .2s;
}
.wa-link:hover{background:rgba(37,211,102,.2);transform:translateY(-2px);}
.dev-credit{margin-top:14px;font-size:12px;color:var(--text-dim);}

/* ---------- ADMIN ---------- */
.admin-wrap{position:relative;z-index:1;min-height:100vh;padding:20px;animation:fadeUp .5s ease;}
.admin-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 24px;margin-bottom:24px;flex-wrap:wrap;gap:12px;
}
.brand{display:flex;align-items:center;gap:14px;}
.brand h2{font-family:'Orbitron';font-size:18px;letter-spacing:.08em;}
.user-tag{font-size:12px;color:var(--text-dim);}
.header-actions{display:flex;gap:10px;flex-wrap:wrap;}

.admin-main{max-width:1100px;margin:0 auto;display:flex;flex-direction:column;gap:24px;}
.panel{padding:28px;}
.panel h3{margin-bottom:20px;display:flex;align-items:center;gap:10px;font-size:18px;}
.panel h3 i{color:#a78bfa;}
.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;flex-wrap:wrap;gap:12px;}
.panel-head h3{margin-bottom:0;}

.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.grid-2 .full{grid-column:1/-1;}
@media(max-width:640px){.grid-2{grid-template-columns:1fr;}}

.tools-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px;}
.tool-card-edit{
  position:relative;
  background:linear-gradient(160deg,rgba(124,58,237,.12),rgba(6,182,212,.08) 60%,rgba(0,0,0,.35));
  border:1px solid var(--border);
  border-radius:18px;
  padding:18px;
  display:flex;flex-direction:column;gap:14px;
  transition:transform .25s,border-color .25s,box-shadow .25s;
  overflow:hidden;
}
.tool-card-edit::before{
  content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;
  background:linear-gradient(135deg,rgba(124,58,237,.6),rgba(6,182,212,.4),transparent 70%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  opacity:.4;pointer-events:none;transition:opacity .25s;
}
.tool-card-edit:hover{transform:translateY(-3px);border-color:rgba(124,58,237,.55);box-shadow:0 18px 40px -18px rgba(124,58,237,.5);}
.tool-card-edit:hover::before{opacity:1;}
.tce-head{display:flex;align-items:center;gap:12px;}
.tool-icon-prev{
  width:52px;height:52px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,rgba(124,58,237,.35),rgba(6,182,212,.35));
  border:1px solid rgba(255,255,255,.1);
  border-radius:14px;font-size:24px;color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 6px 16px -8px rgba(124,58,237,.6);
}
.tool-icon-prev img{width:34px;height:34px;object-fit:contain;}
.tce-title{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.tce-num{font-size:11px;color:#a78bfa;font-weight:600;letter-spacing:1px;text-transform:uppercase;}
.tce-title strong{font-size:15px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.del-btn{
  flex-shrink:0;background:rgba(239,68,68,.15);color:#fca5a5;border:1px solid rgba(239,68,68,.3);
  width:38px;height:38px;border-radius:10px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;
}
.del-btn:hover{background:rgba(239,68,68,.35);color:#fff;transform:scale(1.05);}
.tce-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.tce-field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--text-dim);}
.tce-field span{display:flex;align-items:center;gap:6px;font-weight:500;letter-spacing:.3px;}
.tce-field span i{color:#a78bfa;font-size:11px;}
.tce-field input{width:100%;padding:10px 12px;font-size:13px;}
.tce-full{grid-column:1/-1;}
@media(max-width:520px){.tce-fields{grid-template-columns:1fr;}}

.actions-panel{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;}
.actions-panel .btn{flex:1;min-width:180px;padding:16px 24px;font-size:15px;}

.admin-footer{text-align:center;padding:20px;color:var(--text-dim);font-size:13px;}

/* ---------- PREVIEW MODAL ---------- */
.modal{
  position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.85);backdrop-filter:blur(8px);
  display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeUp .3s ease;
}
.modal-inner{
  width:100%;max-width:1200px;height:90vh;background:#0b1024;border-radius:18px;overflow:hidden;
  display:flex;flex-direction:column;border:1px solid var(--border);
  box-shadow:0 20px 60px rgba(0,0,0,.6);
}
.modal-bar{
  display:flex;justify-content:space-between;align-items:center;
  padding:14px 20px;background:rgba(0,0,0,.4);border-bottom:1px solid var(--border);
  font-weight:600;
}
.modal-inner iframe{flex:1;width:100%;border:none;background:#fff;}

/* ---------- TOAST ---------- */
.toast{
  position:fixed;bottom:30px;left:50%;transform:translateX(-50%);
  padding:14px 24px;border-radius:12px;font-weight:600;font-size:14px;z-index:2000;
  background:linear-gradient(135deg,#10b981,#06b6d4);color:#fff;
  box-shadow:0 10px 30px rgba(16,185,129,.4);
  animation:fadeUp .3s ease;
}
.toast.error{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 10px 30px rgba(239,68,68,.4);}

/* ---------- MOBILE POLISH ---------- */
@media(max-width:560px){
  .admin-wrap{padding:12px;}
  .panel{padding:18px;border-radius:18px;}
  .admin-header{padding:14px 16px;border-radius:18px;}
  .brand h2{font-size:15px;}
  .logo-orb.small{width:36px;height:36px;}
  .actions-panel .btn{min-width:140px;padding:14px 18px;font-size:14px;}
  .tools-list{grid-template-columns:1fr;gap:14px;}
}

/* Subtle header glow upgrade */
.admin-header{position:relative;overflow:hidden;}
.admin-header::after{
  content:"";position:absolute;inset:-2px;border-radius:inherit;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(124,58,237,.18),transparent);
  animation:sheen 6s linear infinite;
}
@keyframes sheen{0%{transform:translateX(-100%);}100%{transform:translateX(100%);}}

/* Add tool button pulse */
#addToolBtn{position:relative;}
#addToolBtn::before{
  content:"";position:absolute;inset:0;border-radius:inherit;
  box-shadow:0 0 0 0 rgba(245,158,11,.5);animation:pulseRing 2s infinite;pointer-events:none;
}
@keyframes pulseRing{
  0%{box-shadow:0 0 0 0 rgba(245,158,11,.5);}
  70%{box-shadow:0 0 0 14px rgba(245,158,11,0);}
  100%{box-shadow:0 0 0 0 rgba(245,158,11,0);}
}
