/* Nexora — Admin (tema claro) */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#f4f5fa;--surface:#fff;--ink:#14161c;--ink-soft:#4b5163;--ink-mute:#8a90a2;
  --line:#e7e9f2;--brand:#6366f1;--brand-strong:#4f46e5;--brand-soft:#eef0fe;
  --accent:#f59e0b;--green:#16a34a;--danger:#e11d48;--green-soft:#e8f7ee;
  --radius:14px;--shadow-sm:0 1px 2px rgba(20,22,28,.06);--shadow:0 8px 26px rgba(20,22,28,.1);
  --shadow-lg:0 20px 50px rgba(20,22,28,.18);--ease:cubic-bezier(.22,1,.36,1);--sidebar:240px;
}
body{background:var(--bg);color:var(--ink);font-family:'Inter',system-ui,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}button{cursor:pointer;border:none;background:none;font:inherit;color:inherit}
input,select,textarea{font:inherit}h1,h2,h3,h4{font-family:'Sora','Inter',sans-serif;letter-spacing:-.02em}
a{color:inherit;text-decoration:none}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.6rem 1.2rem;border-radius:999px;font-weight:600;font-size:.9rem;transition:.2s var(--ease);border:1px solid transparent}
.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand-strong);transform:translateY(-1px);box-shadow:var(--shadow)}
.btn-ghost{background:#fff;border-color:var(--line);color:var(--ink)}.btn-ghost:hover{border-color:var(--brand);color:var(--brand-strong)}
.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{filter:brightness(.95)}
.btn-sm{padding:.45rem .85rem;font-size:.82rem}.btn-block{width:100%}

/* Login */
.login{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:
  radial-gradient(700px 380px at 80% 0%,rgba(139,92,246,.16),transparent 60%),var(--bg);transition:opacity .4s}
.login.hide{opacity:0;pointer-events:none}
.login-box{background:#fff;border:1px solid var(--line);border-radius:22px;padding:2.4rem;width:100%;max-width:380px;text-align:center;box-shadow:var(--shadow)}
.login-box img{width:54px;height:54px;margin:0 auto 1rem}
.login-box h1{font-size:1.3rem;margin-bottom:.3rem}
.login-box p{color:var(--ink-mute);font-size:.88rem;margin-bottom:1.3rem}
.login-err{color:var(--danger);font-size:.82rem;margin-top:.5rem;display:none}
.login-err.show{display:block}

/* Layout */
.app{display:none;min-height:100vh}
.app.show{display:flex}
.sidebar{width:var(--sidebar);background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:20}
.sidebar-brand{display:flex;align-items:center;gap:.6rem;padding:1.25rem 1.3rem;border-bottom:1px solid var(--line)}
.sidebar-brand img{width:30px;height:30px}
.sidebar-brand b{font-family:'Sora',sans-serif;font-weight:800}
.sidebar-nav{padding:.8rem;display:flex;flex-direction:column;gap:.25rem;flex:1}
.snav{display:flex;align-items:center;gap:.7rem;padding:.7rem .9rem;border-radius:11px;font-weight:600;font-size:.9rem;color:var(--ink-soft);transition:.16s;text-align:left;width:100%}
.snav:hover{background:var(--bg)}
.snav.active{background:var(--brand-soft);color:var(--brand-strong)}
.sidebar-foot{padding:.8rem;border-top:1px solid var(--line)}
.main{margin-left:var(--sidebar);flex:1;min-width:0}
.topbar{height:64px;background:rgba(255,255,255,.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 1.6rem;position:sticky;top:0;z-index:10}
.topbar h1{font-size:1.15rem}
.content{padding:1.6rem}
.panel{display:none}.panel.active{display:block;animation:fade .3s var(--ease)}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* Cards / stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem}
.stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.25rem;box-shadow:var(--shadow-sm)}
.stat-val{font-family:'Sora',sans-serif;font-weight:800;font-size:1.7rem}
.stat-lbl{font-size:.82rem;color:var(--ink-mute);margin-top:.2rem}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:1.4rem}
.card-head{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--line)}
.card-head h3{font-size:1rem}
.card-body{padding:1.25rem}

/* Product admin grid */
.padmin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}
.padmin{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);display:flex;flex-direction:column}
.padmin-media{aspect-ratio:16/10;background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:2.4rem;overflow:hidden}
.padmin-media img{width:100%;height:100%;object-fit:cover}
.padmin-body{padding:.85rem;display:flex;flex-direction:column;gap:.3rem;flex:1}
.padmin-name{font-weight:700;font-size:.9rem;line-height:1.3}
.padmin-meta{font-size:.8rem;color:var(--ink-mute)}
.padmin-price{font-family:'Sora',sans-serif;font-weight:800}
.padmin-foot{display:flex;gap:.4rem;align-items:center;margin-top:.5rem}
.pill{font-size:.68rem;font-weight:800;padding:.2rem .5rem;border-radius:999px}
.pill-on{background:var(--green-soft);color:var(--green)}
.pill-off{background:#fdecec;color:var(--danger)}
.pill-feat{background:var(--brand-soft);color:var(--brand-strong)}

/* Table */
.table{width:100%;border-collapse:collapse}
.table th,.table td{text-align:left;padding:.7rem .8rem;border-bottom:1px solid var(--line);font-size:.88rem}
.table th{font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-mute)}

/* Forms */
.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.9rem}
.field label{font-size:.8rem;font-weight:600;color:var(--ink-soft)}
.input,.textarea,.select{padding:.65rem .85rem;border:1px solid var(--line);border-radius:11px;background:var(--bg);font-size:.9rem;width:100%;transition:.16s}
.input:focus,.textarea:focus,.select:focus{outline:none;border-color:var(--brand);background:#fff;box-shadow:0 0 0 4px var(--brand-soft)}
.textarea{resize:vertical;min-height:80px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.check{display:flex;align-items:center;gap:.5rem;font-size:.88rem;font-weight:500;cursor:pointer}
.check input{width:1.05rem;height:1.05rem;accent-color:var(--brand)}

/* Image upload */
.uploader{border:1.5px dashed var(--line);border-radius:var(--radius);padding:1rem;text-align:center;background:var(--bg);transition:.16s}
.uploader:hover{border-color:var(--brand)}
.uploader-hint{font-size:.78rem;color:var(--ink-mute);margin-top:.4rem}
.thumbs{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.8rem}
.thumb{position:relative;width:80px;height:80px;border-radius:11px;overflow:hidden;border:1px solid var(--line);background:#fff}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb-rm{position:absolute;top:2px;right:2px;width:1.3rem;height:1.3rem;border-radius:50%;background:rgba(20,22,28,.7);color:#fff;font-size:.75rem;display:flex;align-items:center;justify-content:center}
.thumb-main{position:absolute;bottom:0;left:0;right:0;font-size:.6rem;text-align:center;background:var(--brand);color:#fff;font-weight:700;padding:1px}

/* Modal */
.modal{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:rgba(20,22,28,.5);backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:.25s}
.modal.open{opacity:1;pointer-events:auto}
.modal-box{background:#fff;border-radius:18px;width:100%;max-width:560px;max-height:92vh;overflow-y:auto;box-shadow:var(--shadow-lg);transform:translateY(14px);transition:transform .25s var(--ease)}
.modal.open .modal-box{transform:none}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.4rem;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff}
.modal-head h2{font-size:1.15rem}
.modal-content{padding:1.3rem 1.4rem}
.modal-foot{display:flex;gap:.6rem;padding:1.1rem 1.4rem;border-top:1px solid var(--line);position:sticky;bottom:0;background:#fff}

/* Toast */
.toast{position:fixed;bottom:1.4rem;left:50%;transform:translateX(-50%) translateY(20px);z-index:99;background:var(--ink);color:#fff;padding:.7rem 1.3rem;border-radius:999px;font-size:.9rem;font-weight:500;opacity:0;pointer-events:none;transition:.3s;box-shadow:var(--shadow-lg)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.ok{background:#0f7a3d}.toast.err{background:var(--danger)}

@media(max-width:760px){
  .sidebar{transform:translateX(-100%);transition:transform .3s}
  .sidebar.open{transform:none}
  .main{margin-left:0}
  .stats{grid-template-columns:1fr 1fr}
  .row2{grid-template-columns:1fr}
  .menu-btn{display:inline-flex !important}
}
.menu-btn{display:none}
