/* ============================================================
   HAMZYSTORE — admin.css  v3
============================================================ */
.admin-body{background:var(--bg)!important}
#admin-gate{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1rem;background:radial-gradient(ellipse at 50% 0%,rgba(124,58,237,.1) 0%,transparent 60%)}
.gate-card{width:100%;max-width:385px;background:var(--s1);border:1px solid var(--bdr);border-radius:22px;padding:2.6rem;text-align:center;animation:modIn .4s cubic-bezier(.21,1.02,.73,1);box-shadow:0 32px 80px rgba(0,0,0,.6)}
.gate-logo{margin-bottom:.75rem;display:flex;justify-content:center}
.gate-logo-img{width:72px;height:72px;object-fit:contain;border-radius:16px;display:block}
.gate-title{font-size:1.45rem;font-weight:800;margin-bottom:.18rem}
.gate-sub{font-size:.8rem;color:var(--tx2);margin-bottom:1.85rem;display:flex;align-items:center;justify-content:center;gap:.4rem}
.gate-sub::before,.gate-sub::after{content:'';flex:1;height:1px;background:var(--bdr)}
.gate-form{text-align:left;display:flex;flex-direction:column;gap:.7rem}
.gate-field label{font-size:.74rem;font-weight:600;color:var(--tx2);display:block;margin-bottom:.28rem}
.gate-field input{width:100%;background:var(--bg3);border:1px solid var(--bdr);color:var(--tx);border-radius:10px;padding:.68rem 1rem;font-family:'Outfit',sans-serif;font-size:.9rem;outline:none;transition:all .2s}
.gate-field input:focus{border-color:var(--ac);box-shadow:0 0 0 3px rgba(99,102,241,.08)}
.gate-btn{width:100%;background:var(--grd);color:#fff;border:none;border-radius:12px;padding:.78rem;font-size:.95rem;font-weight:700;cursor:pointer;font-family:'Outfit',sans-serif;transition:all .25s;margin-top:.2rem}
.gate-btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(99,102,241,.25)}
.gate-back{display:block;text-align:center;font-size:.79rem;color:var(--tx3);margin-top:1.2rem;transition:color .2s}
.gate-back:hover{color:var(--ac)}
.gate-hint{height:1.4rem;font-size:.77rem;color:var(--err);text-align:center;margin-top:.22rem}

/* LAYOUT */
#admin-app{display:grid;grid-template-columns:240px 1fr;min-height:100vh}

/* SIDEBAR */
#sidebar{background:var(--bg2);border-right:1px solid var(--bdr);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;width:240px;z-index:300;transition:transform .3s;overflow-y:auto}
#sidebar.collapsed{transform:translateX(-100%)}
.sb-logo{font-size:1.04rem;font-weight:800;padding:1.45rem 1.2rem .18rem;cursor:pointer;white-space:nowrap;display:flex;align-items:center;gap:.42rem}
.sb-logo .nav-logo-img{width:20px;height:20px;object-fit:contain;border-radius:4px}
.sb-subtitle{font-size:.67rem;font-weight:700;color:var(--ac2);text-transform:uppercase;letter-spacing:.8px;padding:.08rem 1.2rem 1.2rem;border-bottom:1px solid var(--bdr)}
.sb-nav{padding:.7rem .55rem;flex:1;display:flex;flex-direction:column;gap:.08rem}
.sbn{display:flex;align-items:center;gap:.68rem;padding:.52rem .72rem;border-radius:10px;font-size:.82rem;font-weight:600;color:var(--tx2);transition:all .2s;cursor:pointer;border:none;background:transparent;font-family:'Outfit',sans-serif;text-align:left;width:100%}
.sbn:hover{color:var(--tx);background:rgba(255,255,255,.04)}
.sbn.active{color:var(--ac);background:rgba(99,102,241,.08);border-left:3px solid var(--ac);padding-left:calc(.72rem - 3px);font-weight:700}
.sbn-ico{font-size:.95rem;flex-shrink:0;width:20px;text-align:center}
.sbn-section{font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:var(--tx3);padding:.85rem .72rem .32rem;margin-top:.3rem}
.sbn-danger{color:var(--err)!important}
.sbn-danger:hover{background:rgba(244,63,94,.07)!important}
.sb-bottom{padding:.7rem .55rem;border-top:1px solid var(--bdr)}
.sb-admin-info{display:flex;align-items:center;gap:.62rem;padding:.62rem .72rem;background:rgba(99,102,241,.04);border-radius:10px;margin-bottom:.55rem}
.sb-av{width:32px;height:32px;background:var(--grd);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;font-size:.82rem;flex-shrink:0}
.sb-an{font-size:.82rem;font-weight:700}
.sb-ar{font-size:.68rem;color:var(--ac);font-family:'JetBrains Mono',monospace}
.sb-logout{width:100%;background:rgba(244,63,94,.08);border:1px solid rgba(244,63,94,.2);color:var(--err);border-radius:8px;padding:.42rem;font-size:.78rem;font-weight:700;cursor:pointer;font-family:'Outfit',sans-serif;transition:all .2s;margin-bottom:.38rem}
.sb-logout:hover{background:rgba(244,63,94,.15)}
.sb-store-link{display:block;text-align:center;font-size:.75rem;color:var(--tx3);padding:.28rem;transition:color .2s}
.sb-store-link:hover{color:var(--ac)}

/* MAIN */
#admin-main{margin-left:240px;min-height:100vh;display:flex;flex-direction:column;transition:margin-left .3s}
#admin-main.full{margin-left:0}

/* TOPBAR */
.admin-topbar{display:flex;align-items:center;gap:1rem;padding:.82rem 1.7rem;background:rgba(6,6,18,.92);backdrop-filter:blur(16px);border-bottom:1px solid var(--bdr);position:sticky;top:0;z-index:100}
.sb-toggle{background:none;border:none;color:var(--tx);cursor:pointer;padding:.2rem;display:none}
.topbar-title{font-size:.98rem;font-weight:700;flex:1}
.topbar-right{display:flex;align-items:center;gap:1rem}
.topbar-time{font-size:.73rem;color:var(--tx3);font-family:'JetBrains Mono',monospace}
.topbar-status{font-size:.73rem;font-weight:700;color:var(--ok)}
#admin-content{padding:1.7rem;flex:1}

/* SECTION HEADERS */
.adm-sec-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.45rem;flex-wrap:wrap;gap:.7rem}
.adm-sec-hd h2{font-size:1.38rem;font-weight:800}

/* DASHBOARD STATS */
.dash-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:.95rem;margin-bottom:1.85rem}
.dstat{background:var(--s1);border:1px solid var(--bdr);border-radius:14px;padding:1.2rem;position:relative;overflow:hidden;transition:all .2s}
.dstat:hover{border-color:var(--bdr2);transform:translateY(-2px)}
.dstat::before{content:'';position:absolute;top:-28px;right:-28px;width:75px;height:75px;border-radius:50%;opacity:.08}
.ds-blue::before{background:var(--ac)}.ds-green::before{background:var(--ok)}.ds-yellow::before{background:var(--ac3)}.ds-purple::before{background:var(--ac2)}.ds-red::before{background:var(--err)}
.dstat-ico{font-size:1.45rem;margin-bottom:.6rem}
.dstat-num{font-size:1.7rem;font-weight:900;font-family:'JetBrains Mono',monospace;margin-bottom:.18rem;background:linear-gradient(135deg,var(--ac2),var(--ac),var(--ac4));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.dstat-lbl{font-size:.7rem;color:var(--tx2);font-weight:600}

/* PANEL CARDS */
.panel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(275px,1fr));gap:1.05rem;margin-bottom:1.85rem}
.panel-card{background:var(--s1);border:1px solid var(--bdr);border-radius:14px;padding:1.2rem;transition:border-color .2s}
.panel-card:hover{border-color:var(--bdr2)}
.pc2-hd{display:flex;align-items:center;gap:.72rem;margin-bottom:.95rem;padding-bottom:.82rem;border-bottom:1px solid var(--bdr)}
.pc2-ico{font-size:1.35rem;width:40px;height:40px;background:var(--bg3);border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.pc2-title{font-size:.95rem;font-weight:700}
.pc2-sub{font-size:.7rem;color:var(--tx2);margin-top:.1rem}
.pc2-actions{display:flex;flex-direction:column;gap:.45rem}
.action-btn{display:flex;align-items:center;gap:.62rem;padding:.52rem .72rem;border-radius:10px;background:var(--bg3);border:1px solid var(--bdr);color:var(--tx);font-size:.82rem;font-weight:600;cursor:pointer;font-family:'Outfit',sans-serif;transition:all .2s;text-align:left;width:100%}
.action-btn:hover{border-color:var(--bdr2);background:rgba(99,102,241,.04);color:var(--ac)}
.action-btn .ab-ico{font-size:.92rem;width:18px;text-align:center;flex-shrink:0}
.action-btn .ab-badge{margin-left:auto;font-size:.64rem;font-weight:700;padding:.1rem .42rem;border-radius:6px;background:rgba(99,102,241,.1);color:var(--ac)}
.action-btn.danger:hover{border-color:var(--err);background:rgba(244,63,94,.05);color:var(--err)}

/* STATUS TOGGLE */
.status-toggle{display:flex;align-items:center;gap:.72rem;padding:.62rem .82rem;border-radius:10px;background:var(--bg3);border:1px solid var(--bdr)}
.st-label{flex:1;font-size:.82rem;font-weight:600}
.st-pill{padding:.18rem .62rem;border-radius:99px;font-size:.68rem;font-weight:700}
.st-on{background:rgba(16,185,129,.12);color:var(--ok)}.st-off{background:rgba(244,63,94,.1);color:var(--err)}
.st-btn{background:rgba(99,102,241,.08);border:1px solid rgba(99,102,241,.2);color:var(--ac);border-radius:8px;padding:.26rem .68rem;font-size:.72rem;font-weight:700;cursor:pointer;font-family:'Outfit',sans-serif;transition:all .2s}
.st-btn:hover{background:var(--ac);color:#fff}

/* TABLE */
.recent-table-wrap{background:var(--s1);border:1px solid var(--bdr);border-radius:14px;overflow:hidden;margin-top:1.65rem}
.rth{padding:.95rem 1.2rem;border-bottom:1px solid var(--bdr);display:flex;align-items:center;justify-content:space-between}
.rth h4{font-size:.92rem;font-weight:700}
.tbl{width:100%;border-collapse:collapse;font-size:.79rem}
.tbl th{padding:.58rem .95rem;text-align:left;border-bottom:1px solid var(--bdr);color:var(--tx2);font-weight:600;font-size:.68rem;text-transform:uppercase;letter-spacing:.4px;background:var(--bg3)}
.tbl td{padding:.62rem .95rem;border-bottom:1px solid var(--bdr)}
.tbl tr:last-child td{border-bottom:none}
.tbl tr:hover td{background:rgba(255,255,255,.014)}
code.tid{font-size:.68rem;font-family:'JetBrains Mono',monospace;color:var(--tx2)}
.no-data-row td{text-align:center;color:var(--tx3);padding:2rem}

/* PRODUCT FORM */
.prod-form-card{background:var(--s1);border:1px solid var(--bdr);border-radius:14px;padding:1.45rem}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.95rem}
.form-full{grid-column:1/-1}
.form-group{display:flex;flex-direction:column;gap:.32rem}
.form-group label{font-size:.73rem;font-weight:600;color:var(--tx2)}
.form-group input,.form-group select,.form-group textarea{background:var(--bg3);border:1px solid var(--bdr);color:var(--tx);border-radius:10px;padding:.62rem .88rem;font-family:'Outfit',sans-serif;font-size:.875rem;outline:none;transition:border-color .2s;width:100%}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--ac)}
.form-group textarea{resize:vertical;min-height:78px}
.form-group small,.gw-hint{font-size:.7rem;color:var(--tx3);line-height:1.45}
.req{color:var(--err);margin-left:.15rem}
.checkbox-label{display:flex;align-items:center;gap:.52rem;cursor:pointer;font-size:.84rem;color:var(--tx)}
.checkbox-label input{accent-color:var(--ac);width:15px;height:15px}
.spec-builder{background:var(--bg3);border:1px solid var(--bdr);border-radius:10px;padding:.95rem}
.spec-builder h5{font-size:.76rem;font-weight:600;color:var(--tx2);margin-bottom:.72rem;text-transform:uppercase;letter-spacing:.4px}
.spec-row{display:grid;grid-template-columns:1fr 1fr 30px;gap:.45rem;align-items:center;margin-bottom:.45rem}
.spec-row input{background:var(--s1);border:1px solid var(--bdr);color:var(--tx);border-radius:8px;padding:.48rem .68rem;font-family:'Outfit',sans-serif;font-size:.79rem;outline:none;width:100%}
.spec-row input:focus{border-color:var(--ac)}
.rm-spec{background:none;border:none;color:var(--err);cursor:pointer;font-size:.95rem;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;transition:background .2s}
.rm-spec:hover{background:rgba(244,63,94,.1)}
.add-spec-btn{display:flex;align-items:center;gap:.38rem;background:rgba(99,102,241,.05);border:1px dashed rgba(99,102,241,.24);color:var(--ac);border-radius:8px;padding:.46rem;font-size:.77rem;cursor:pointer;font-family:'Outfit',sans-serif;transition:all .2s;width:100%;justify-content:center;margin-top:.22rem}
.add-spec-btn:hover{background:rgba(99,102,241,.1)}
.form-actions{display:flex;gap:.62rem;margin-top:1.45rem;flex-wrap:wrap}

/* USERS */
.user-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(275px,1fr));gap:.95rem}
.user-card{background:var(--s1);border:1px solid var(--bdr);border-radius:14px;padding:1.05rem;transition:all .2s}
.user-card:hover{border-color:var(--bdr2)}
.uc-hd{display:flex;align-items:center;gap:.72rem;margin-bottom:.82rem}
.uc-av{width:38px;height:38px;background:var(--grd);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;font-size:.95rem;flex-shrink:0}
.uc-nm{font-size:.9rem;font-weight:700}
.uc-un{font-size:.7rem;color:var(--tx2);font-family:'JetBrains Mono',monospace}
.uc-stat-v{font-size:.82rem;font-weight:700;font-family:'JetBrains Mono',monospace;color:var(--ac)}
.uc-stat-l{font-size:.64rem;color:var(--tx3)}
.uc-actions{display:flex;gap:.38rem;margin-top:.75rem}

/* GATEWAY */
.gw-form-card{background:var(--s1);border:1px solid var(--bdr);border-radius:14px;padding:1.45rem}
.gw-tabs{display:flex;gap:.38rem;flex-wrap:wrap;margin-bottom:1.2rem;border-bottom:1px solid var(--bdr);padding-bottom:.82rem}
.gw-tab{padding:.36rem .88rem;border-radius:8px;font-size:.79rem;font-weight:600;cursor:pointer;border:none;background:transparent;color:var(--tx2);font-family:'Outfit',sans-serif;transition:all .2s}
.gw-tab:hover{color:var(--tx);background:rgba(255,255,255,.04)}
.gw-tab.active{background:rgba(99,102,241,.08);color:var(--ac);border-bottom:2px solid var(--ac);border-radius:8px 8px 0 0}
.gw-section-title{font-size:.8rem;font-weight:700;color:var(--tx2);text-transform:uppercase;letter-spacing:.6px;margin-bottom:.95rem;display:flex;align-items:center;gap:.38rem}
.gw-section-title::after{content:'';flex:1;height:1px;background:var(--bdr);margin-left:.4rem}
.gw-hint-box{display:flex;align-items:flex-start;gap:.48rem;background:rgba(99,102,241,.04);border:1px solid rgba(99,102,241,.12);border-radius:10px;padding:.62rem .88rem;font-size:.77rem;color:var(--tx2);margin-bottom:.95rem;line-height:1.5}
.gw-input-wrap{display:flex;gap:.38rem}
.gw-input-wrap input{flex:1;margin:0}
.gw-eye-btn{background:var(--bg3);border:1px solid var(--bdr);color:var(--tx2);border-radius:8px;padding:0 .68rem;cursor:pointer;font-size:.82rem;flex-shrink:0;transition:all .2s}
.gw-eye-btn:hover{border-color:var(--ac);color:var(--ac)}
.gw-save-row{display:flex;gap:.62rem;margin-top:1.45rem;flex-wrap:wrap;align-items:center}
.gw-method-btns{display:flex;gap:.45rem;flex-wrap:wrap;margin-bottom:1rem}
.gw-method-btn{background:var(--bg2);border:1px solid var(--bdr);color:var(--tx2);border-radius:8px;padding:.36rem .88rem;font-size:.79rem;font-weight:600;cursor:pointer;font-family:'Outfit',sans-serif;transition:all .2s}
.gw-method-btn.active{background:rgba(99,102,241,.1);border-color:var(--ac);color:var(--ac)}
.gw-test-result{padding:.82rem .95rem;border-radius:10px;font-size:.81rem;line-height:1.6;margin-top:.72rem}
.gw-res-ok{background:rgba(16,185,129,.08);border:1px solid rgba(16,185,129,.25);color:var(--ok)}
.gw-res-err{background:rgba(244,63,94,.08);border:1px solid rgba(244,63,94,.2);color:var(--err)}
.gw-res-info{background:rgba(99,102,241,.06);border:1px solid rgba(99,102,241,.15);color:var(--ac)}

/* SETTINGS */
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.settings-card{background:var(--s1);border:1px solid var(--bdr);border-radius:14px;padding:1.2rem}
.settings-card h4{font-size:.88rem;font-weight:700;margin-bottom:.95rem}
.sett-row{display:flex;align-items:center;justify-content:space-between;padding:.52rem 0;border-bottom:1px solid var(--bdr);font-size:.81rem}
.sett-row:last-child{border-bottom:none}
.sett-key{color:var(--tx2);font-weight:600}

/* BROADCAST / PROMO */
.bc-card{background:var(--s1);border:1px solid var(--bdr);border-radius:14px;padding:1.45rem}
.bc-status-bar{display:flex;align-items:center;justify-content:space-between;background:var(--bg3);border:1px solid var(--bdr);border-radius:10px;padding:.72rem .95rem;margin-bottom:1.2rem}
.bc-preview{background:var(--bg3);border:1px solid var(--bdr);border-radius:10px;padding:.95rem;margin:1rem 0;min-height:75px;font-size:.84rem;color:var(--tx2);line-height:1.65;white-space:pre-wrap}
.promo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:.95rem;margin-top:1.45rem}
.promo-card{background:var(--s1);border:1px solid var(--bdr);border-radius:14px;padding:1.05rem;position:relative;overflow:hidden}
.promo-code{font-size:1.1rem;font-weight:800;font-family:'JetBrains Mono',monospace;color:var(--ac3);margin-bottom:.42rem}
.promo-info{font-size:.77rem;color:var(--tx2);margin-bottom:.72rem;line-height:1.5}
.promo-info span{color:var(--tx);font-weight:700}
.promo-foot{display:flex;align-items:center;justify-content:space-between}

/* PANEL BIASA/LEGAL FORM SECTION */
#fp-panel-section{background:rgba(99,102,241,.02);border:1px solid var(--bdr);border-radius:12px;padding:1.2rem;margin-top:1.2rem}

/* DANGER */
.danger-zone{background:rgba(244,63,94,.04);border:1px solid rgba(244,63,94,.2);border-radius:14px;padding:1.2rem}
.danger-zone h4{color:var(--err);margin-bottom:.72rem}
.danger-item{display:flex;align-items:center;justify-content:space-between;padding:.62rem;background:rgba(244,63,94,.04);border-radius:8px;margin-bottom:.45rem;font-size:.81rem}

/* RESPONSIVE */
@media(max-width:900px){
  #admin-app{grid-template-columns:1fr}
  #sidebar{transform:translateX(-100%);width:240px}
  #sidebar.open{transform:translateX(0)}
  #admin-main{margin-left:0!important}
  .sb-toggle{display:block}
  .dash-stats{grid-template-columns:repeat(2,1fr)}
  .panel-grid,.settings-grid,.form-grid{grid-template-columns:1fr}
  .user-grid{grid-template-columns:1fr}
}
@media(max-width:480px){
  #admin-content{padding:1rem}
  .admin-topbar{padding:.72rem 1rem}
  .dash-stats{grid-template-columns:1fr 1fr}
}
