:root{
  --ink:#0e0f12;--muted:#83878f;--line:#e9e9ec;--bg:#f6f6f8;--card:#fff;
  --pink:#ef8fd1;--pink-deep:#c8489b;--ok:#10b981;--okbg:#d1fae5;--okt:#065f46;
  --r:14px;--r-sm:10px;--ease:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--ink);font-size:15px;letter-spacing:-.01em}
h1,h2,h3{font-family:'Space Grotesk',sans-serif;letter-spacing:-.03em}
.muted{color:var(--muted)}.tiny{font-size:12px}
sup{font-size:.5em;color:var(--muted)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4em;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:14px;padding:11px 20px;border-radius:100px;border:1.5px solid transparent;cursor:pointer;transition:transform .2s var(--ease),background .2s,border-color .2s,box-shadow .2s}
.btn--primary{background:var(--ink);color:#fff;box-shadow:0 4px 14px rgba(14,15,18,.16)}
.btn--primary:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(200,72,155,.26)}
.btn--ghost{background:#fff;border-color:var(--line);color:var(--ink)}
.btn--ghost:hover{border-color:var(--ink)}
.btn--sm{padding:8px 14px;font-size:13px}
.btn--block{width:100%}
.btn.danger{color:var(--pink-deep);border-color:transparent}
.btn.danger:hover{border-color:var(--pink-deep)}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none!important}

/* Login */
.login{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 0%,#fff,var(--bg))}
.login__card{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:38px 34px;width:min(380px,92vw);text-align:center;box-shadow:0 20px 60px rgba(16,18,22,.08)}
.login__mark{width:64px;height:64px;margin:0 auto 16px}
.login__card h1{font-size:24px;margin-bottom:6px}
.login__card p{color:var(--muted);margin-bottom:22px;font-size:14px}
.login__card input{width:100%;padding:13px 46px 13px 16px;border:1.5px solid var(--line);border-radius:100px;font:inherit;outline:none;transition:border-color .2s}
.login__card input:focus{border-color:var(--pink)}
.pwwrap{position:relative;margin-bottom:14px}
.pwtoggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:none;background:none;color:var(--muted);display:grid;place-items:center;cursor:pointer;border-radius:50%;transition:color .15s,background .15s}
.pwtoggle:hover{color:var(--ink);background:var(--bg)}
.pwtoggle.on{color:var(--pink-deep)}
.login__hint{color:var(--muted);font-size:12px;margin-top:10px}
.login__build{color:#c9c9cf;font-size:11px;margin-top:16px;letter-spacing:.04em}
.login__err{color:var(--pink-deep);font-size:13px;min-height:18px;margin-top:6px}

/* App shell */
.topbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.85);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:20px;padding:12px 22px}
.brand{display:flex;align-items:center;gap:9px;font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:17px}
.brand img{width:28px;height:28px}
.tabs{display:flex;gap:4px;margin-left:10px}
.tab{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:14px;padding:8px 16px;border:none;background:none;border-radius:100px;color:var(--muted);cursor:pointer;transition:all .18s}
.tab:hover{color:var(--ink);background:var(--bg)}
.tab.active{background:var(--ink);color:#fff}
.topbar__right{margin-left:auto;display:flex;align-items:center;gap:16px}
.ghostlink{background:none;border:none;font:inherit;font-size:14px;color:var(--muted);cursor:pointer;transition:color .18s}
.ghostlink:hover{color:var(--pink-deep)}

.view{max-width:1080px;margin:0 auto;padding:28px 22px 80px}
.view__head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}
.view__head h2{font-size:26px}
.empty-hint{text-align:center;padding:40px}

/* Table */
.tablewrap{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.table{width:100%;border-collapse:collapse;font-size:14px}
.table th{text-align:left;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:14px 16px;border-bottom:1px solid var(--line)}
.table td{padding:12px 16px;border-bottom:1px solid var(--line);vertical-align:middle}
.table tr:last-child td{border-bottom:none}
.table tbody tr{transition:background .15s}
.table tbody tr:hover{background:var(--bg)}
.thumb{width:46px;height:46px;border-radius:10px;object-fit:cover;background:var(--bg);display:grid;place-items:center}
.thumb img{width:100%;height:100%;object-fit:cover;border-radius:10px}
.thumb .ph{width:70%;opacity:.7}
.tname{font-family:'Space Grotesk',sans-serif;font-weight:600}
.badge{display:inline-block;padding:4px 10px;border-radius:100px;font-size:12px;font-weight:600;font-family:'Space Grotesk',sans-serif}
.badge.on{background:var(--okbg);color:var(--okt)}
.badge.off{background:#f1f1f3;color:var(--muted)}
.rowedit{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:13px;color:var(--pink-deep);background:none;border:none;cursor:pointer}
.rowedit:hover{text-decoration:underline}
.stocklow{color:var(--pink-deep);font-weight:600}

/* Modal */
.modal{position:fixed;inset:0;z-index:50}
.modal[hidden]{display:none}
.modal__scrim{position:absolute;inset:0;background:rgba(14,15,18,.45);backdrop-filter:blur(3px)}
.modal__card{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(620px,94vw);max-height:92vh;display:flex;flex-direction:column;background:#fff;border-radius:20px;box-shadow:0 30px 90px rgba(16,18,22,.3);overflow:hidden;animation:pop .25s var(--ease)}
@keyframes pop{from{opacity:0;transform:translate(-50%,-47%)}}
.modal__head{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;border-bottom:1px solid var(--line)}
.modal__head h3{font-size:19px}
.x{background:none;border:none;font-size:18px;color:var(--muted);cursor:pointer;width:34px;height:34px;border-radius:50%;transition:background .15s}
.x:hover{background:var(--bg)}
.modal__body{padding:22px;overflow-y:auto}
.modal__foot{display:flex;align-items:center;gap:10px;padding:16px 22px;border-top:1px solid var(--line);background:var(--bg)}
.spacer{flex:1}

.field{margin-bottom:16px}
.field label{display:block;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:13px;margin-bottom:7px}
.field input,.field textarea{width:100%;padding:11px 14px;border:1.5px solid var(--line);border-radius:var(--r-sm);font:inherit;font-size:14px;outline:none;background:#fff;transition:border-color .2s}
.field input:focus,.field textarea:focus{border-color:var(--pink)}
.field textarea{resize:vertical}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.check{display:flex;align-items:center;gap:9px;font-size:14px;margin-bottom:10px;cursor:pointer}
.check input{width:17px;height:17px;accent-color:var(--pink-deep)}

/* Uploader */
.uploader{display:flex;gap:14px;align-items:flex-start}
.uploader__preview{width:96px;height:96px;border-radius:var(--r-sm);border:1.5px dashed var(--line);display:grid;place-items:center;overflow:hidden;background:var(--bg);flex:0 0 auto;color:var(--muted);font-size:12px;text-align:center}
.uploader__preview img{width:100%;height:100%;object-fit:cover}
.uploader__ctl{flex:1;display:flex;flex-direction:column;gap:8px}

/* Options editor */
.optrow{display:grid;grid-template-columns:140px 1fr 32px;gap:8px;margin-bottom:8px;align-items:center}
.optrow input{padding:9px 12px;border:1.5px solid var(--line);border-radius:var(--r-sm);font:inherit;font-size:13px;outline:none}
.optrow .rm{background:none;border:none;color:var(--muted);cursor:pointer;font-size:16px}
.optrow .rm:hover{color:var(--pink-deep)}

/* Store status */
.storecard{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:24px;max-width:560px}
.switchrow{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:4px 0 20px;margin-bottom:20px;border-bottom:1px solid var(--line);cursor:pointer}
.switchrow span strong{font-family:'Space Grotesk',sans-serif;font-size:15px}
.switchrow input[type=checkbox]{appearance:none;-webkit-appearance:none;flex:0 0 auto;width:46px;height:27px;border-radius:100px;background:#d8d8dc;position:relative;cursor:pointer;transition:background .2s;margin-top:2px}
.switchrow input[type=checkbox]::after{content:"";position:absolute;top:3px;left:3px;width:21px;height:21px;border-radius:50%;background:#fff;transition:transform .2s var(--ease);box-shadow:0 1px 3px rgba(0,0,0,.2)}
.switchrow input[type=checkbox]:checked{background:var(--pink-deep)}
.switchrow input[type=checkbox]:checked::after{transform:translateX(19px)}
.storecard__actions{display:flex;gap:14px;align-items:center;margin-top:6px}

/* Toast */
.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,140%);background:var(--ink);color:#fff;padding:12px 22px;border-radius:100px;font-family:'Space Grotesk',sans-serif;font-weight:500;font-size:14px;z-index:120;box-shadow:0 14px 40px rgba(16,18,22,.3);transition:transform .35s var(--ease)}
.toast.show{transform:translate(-50%,0)}

@media(max-width:600px){.row2{grid-template-columns:1fr}.table th:nth-child(3),.table td:nth-child(3){display:none}.tabs{margin-left:0}}
