/* ============================================================
   پنل مدیریت پشت پرده — admin design system (RTL, Vazirmatn)
   ============================================================ */
:root{
  --c-bg:#f6f6f7; --c-card:#ffffff; --c-ink:#16161a; --c-soft:#52525b;
  --c-muted:#8a8a93; --c-line:#e7e7ea; --c-red:#991b1b; --c-red-dark:#7f1d1d;
  --c-red-soft:#fdecec; --c-green:#067647; --c-green-soft:#ecfdf3;
  --c-amber:#b54708; --c-amber-soft:#fffaeb; --c-side:#141417;
  --radius:11px; --shadow:0 1px 3px rgba(16,16,20,.06),0 8px 22px rgba(16,16,20,.05);
  --font:"Vazirmatn","Segoe UI",Tahoma,sans-serif;
}
*{box-sizing:border-box}
body{margin:0;font-family:var(--font);background:var(--c-bg);color:var(--c-ink);direction:rtl;font-size:14.5px;line-height:1.7}
a{color:inherit;text-decoration:none}
img{max-width:100%}
h1,h2,h3,h4{margin:0 0 .5em;font-weight:800;line-height:1.4}
input,select,textarea,button{font-family:inherit}

/* layout */
.admin{display:grid;grid-template-columns:248px 1fr;min-height:100vh}
.sidebar{background:var(--c-side);color:#c9c9d0;position:sticky;top:0;height:100vh;overflow-y:auto;padding:18px 0}
.sidebar .brand{padding:6px 20px 18px;border-bottom:1px solid #26262b;margin-bottom:12px}
.sidebar .brand .logo{font-size:22px;font-weight:900;color:#fff}
.sidebar .brand .logo b{color:var(--c-red)}
.sidebar .brand .sub{font-size:11.5px;color:#71717a;margin-top:2px}
.nav-group{padding:6px 12px}
.nav-group .label{font-size:11px;color:#6b6b76;padding:10px 10px 6px;font-weight:700}
.sidebar a.item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:9px;color:#c9c9d0;font-weight:600;font-size:14px;transition:.15s;margin-bottom:2px}
.sidebar a.item:hover{background:#26262b;color:#fff}
.sidebar a.item.active{background:var(--c-red);color:#fff}
.sidebar a.item .ic{width:20px;text-align:center;opacity:.9}
.sidebar a.item .badge{margin-inline-start:auto;background:var(--c-red);color:#fff;border-radius:20px;padding:1px 8px;font-size:11px}
.sidebar a.item.active .badge{background:#fff;color:var(--c-red)}

.main{display:flex;flex-direction:column;min-width:0}
.topbar{background:#fff;border-bottom:1px solid var(--c-line);height:62px;display:flex;align-items:center;gap:14px;padding:0 22px;position:sticky;top:0;z-index:20}
.topbar .page-title{font-size:18px;font-weight:800}
.topbar .sp{flex:1}
.topbar .who{font-size:13px;color:var(--c-soft)}
.topbar .who b{color:var(--c-ink)}
.content{padding:24px;max-width:1280px;width:100%}

/* mobile sidebar */
.menu-btn{display:none;border:1px solid var(--c-line);background:#fff;border-radius:8px;padding:7px 10px}
/* backdrop must be display:none on desktop so it doesn't become a grid item */
.backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:55}
.backdrop.show{display:block}
@media(max-width:900px){
  .admin{grid-template-columns:1fr}
  .sidebar{position:fixed;right:0;top:0;z-index:60;width:248px;transform:translateX(100%);transition:.2s}
  .sidebar.open{transform:translateX(0)}
  .menu-btn{display:inline-block}
}

/* cards */
.card{background:var(--c-card);border:1px solid var(--c-line);border-radius:var(--radius);box-shadow:var(--shadow)}
.card .card-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--c-line)}
.card .card-head h3{margin:0;font-size:16px}
.card .card-body{padding:18px}

/* stat tiles */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}
.stat{background:#fff;border:1px solid var(--c-line);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow)}
.stat .n{font-size:26px;font-weight:900}
.stat .t{color:var(--c-muted);font-size:13px;margin-top:2px}
.stat .ic{float:left;width:42px;height:42px;border-radius:10px;background:var(--c-red-soft);color:var(--c-red);display:flex;align-items:center;justify-content:center;font-size:20px}
@media(max-width:900px){.stats{grid-template-columns:repeat(2,1fr)}}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:7px;padding:10px 16px;border-radius:9px;font-weight:700;font-size:13.5px;border:1px solid transparent;cursor:pointer;transition:.15s;background:#fff}
.btn-primary{background:var(--c-red);color:#fff}
.btn-primary:hover{background:var(--c-red-dark)}
.btn-ghost{border-color:var(--c-line);color:var(--c-ink)}
.btn-ghost:hover{border-color:var(--c-red);color:var(--c-red)}
.btn-danger{background:#fff;border-color:#fda29b;color:#b42318}
.btn-danger:hover{background:#b42318;color:#fff}
.btn-sm{padding:6px 11px;font-size:12.5px;border-radius:7px}
.btn-block{width:100%;justify-content:center}

/* tables */
.table-wrap{overflow-x:auto}
table.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
table.tbl th,table.tbl td{padding:12px 12px;text-align:right;border-bottom:1px solid var(--c-line);vertical-align:middle}
table.tbl th{color:var(--c-muted);font-weight:700;font-size:12.5px;background:#fafafb}
table.tbl tr:hover td{background:#fcfcfd}
table.tbl td.actions{white-space:nowrap;display:flex;gap:6px}
.thumb-xs{width:54px;height:36px;border-radius:6px;object-fit:cover;background:var(--c-bg)}

/* badges */
.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:700}
.b-green{background:var(--c-green-soft);color:var(--c-green)}
.b-amber{background:var(--c-amber-soft);color:var(--c-amber)}
.b-gray{background:#f1f1f3;color:#52525b}
.b-red{background:var(--c-red-soft);color:var(--c-red)}

/* forms */
.form-grid{display:grid;grid-template-columns:1fr 340px;gap:20px;align-items:start}
@media(max-width:900px){.form-grid{grid-template-columns:1fr}}
.field{margin-bottom:16px}
.field label{display:block;font-size:13px;font-weight:700;color:var(--c-soft);margin-bottom:6px}
.field .hint{font-size:11.5px;color:var(--c-muted);margin-top:5px}
.input,.select,.textarea{width:100%;border:1px solid var(--c-line);border-radius:9px;padding:11px 13px;font-size:14px;background:#fff;outline:none;transition:border-color .15s}
.input:focus,.select:focus,.textarea:focus{border-color:var(--c-red)}
.textarea{resize:vertical;min-height:90px}
.row-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.char-count{font-size:11px;color:var(--c-muted);text-align:left;margin-top:3px}

/* toggle */
.toggle{display:flex;align-items:center;gap:10px;padding:9px 0;cursor:pointer}
.toggle input{display:none}
.toggle .track{width:42px;height:24px;border-radius:20px;background:#d4d4d8;position:relative;transition:.2s;flex-shrink:0}
.toggle .track::after{content:"";position:absolute;top:3px;right:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.2s}
.toggle input:checked + .track{background:var(--c-red)}
.toggle input:checked + .track::after{right:21px}
.toggle .lbl{font-size:13.5px;font-weight:600}

/* editor toolbar */
.editor-tb{display:flex;flex-wrap:wrap;gap:4px;padding:8px;border:1px solid var(--c-line);border-bottom:0;border-radius:9px 9px 0 0;background:#fafafb}
.editor-tb button{border:1px solid transparent;background:#fff;border-radius:6px;padding:6px 10px;font-size:13px;font-weight:700;cursor:pointer}
.editor-tb button:hover{border-color:var(--c-line)}
.editor{min-height:320px;border:1px solid var(--c-line);border-radius:0 0 9px 9px;padding:16px;background:#fff;font-size:15px;line-height:2;outline:none}
.editor:focus{border-color:var(--c-red)}
.editor img{max-width:100%;border-radius:8px;margin:.5em 0}
.editor blockquote{border-right:3px solid var(--c-red);background:var(--c-red-soft);padding:8px 14px;border-radius:6px;margin:.6em 0}

/* media library */
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
.media-item{border:1px solid var(--c-line);border-radius:10px;overflow:hidden;background:#fff;position:relative}
.media-item img{width:100%;height:110px;object-fit:cover;display:block;background:var(--c-bg)}
.media-item .mi-body{padding:8px;font-size:11px;color:var(--c-muted)}
.media-item .mi-actions{position:absolute;top:6px;left:6px;display:flex;gap:4px}
.media-item .mi-actions button{background:rgba(0,0,0,.6);color:#fff;border:none;border-radius:6px;padding:3px 7px;font-size:11px;cursor:pointer}

/* image preview box */
.img-drop{border:2px dashed var(--c-line);border-radius:11px;padding:18px;text-align:center;background:#fafafb;cursor:pointer}
.img-drop:hover{border-color:var(--c-red)}
.img-preview{width:100%;border-radius:9px;margin-top:10px;display:none}
.img-preview.show{display:block}

/* alerts */
.alert{padding:12px 15px;border-radius:9px;margin-bottom:16px;font-size:13.5px;font-weight:600}
.alert-success{background:var(--c-green-soft);color:var(--c-green);border:1px solid #a6f4c5}
.alert-error{background:var(--c-red-soft);color:var(--c-red);border:1px solid #fda29b}
.alert ul{margin:6px 0 0;padding-inline-start:18px}

/* page header row */
.page-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;gap:12px;flex-wrap:wrap}
.page-row h2{margin:0;font-size:20px}

/* filters bar */
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.filters .input,.filters .select{width:auto;min-width:150px}

/* pagination (admin) */
.pager{display:flex;gap:6px;justify-content:center;margin-top:20px;flex-wrap:wrap}
.pager a,.pager span{min-width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--c-line);border-radius:8px;font-weight:700;font-size:13px;background:#fff;padding:0 8px}
.pager a:hover{border-color:var(--c-red);color:var(--c-red)}
.pager .active span{background:var(--c-red);color:#fff;border-color:var(--c-red)}

/* login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#141417,#1f1f23);padding:20px}
.login-card{background:#fff;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.4);width:100%;max-width:400px;padding:34px}
.login-card .logo{font-size:30px;font-weight:900;text-align:center}
.login-card .logo b{color:var(--c-red)}
.login-card .sub{text-align:center;color:var(--c-muted);font-size:13px;margin-bottom:24px}
.empty-box{text-align:center;padding:46px 20px;color:var(--c-muted)}
.empty-box .ic{font-size:38px;margin-bottom:10px}
.help-tip{background:var(--c-amber-soft);border:1px solid #fec84b;color:#93370d;padding:10px 14px;border-radius:9px;font-size:12.5px;margin-bottom:14px}
.muted{color:var(--c-muted)}
.flex{display:flex;align-items:center;gap:8px}

/* modal */
.modal{position:fixed;inset:0;z-index:200;display:none}
.modal.open{display:block}
.modal .m-back{position:absolute;inset:0;background:rgba(0,0,0,.55)}
.modal .m-box{position:absolute;top:50%;right:50%;transform:translate(50%,-50%);background:#fff;border-radius:14px;width:min(720px,92vw);max-height:88vh;overflow:auto;box-shadow:0 24px 70px rgba(0,0,0,.4)}
.modal .m-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--c-line);position:sticky;top:0;background:#fff;z-index:2}
.modal .m-head h3{margin:0;font-size:16px}
.modal .m-head .x{border:none;background:none;font-size:22px;cursor:pointer;color:var(--c-muted);line-height:1}
.modal .m-body{padding:18px}
.pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.pick{border:2px solid transparent;border-radius:9px;overflow:hidden;cursor:pointer;background:var(--c-bg);aspect-ratio:16/10}
.pick img{width:100%;height:100%;object-fit:cover;display:block}
.pick:hover{border-color:var(--c-red)}
.ai-preview{width:100%;border-radius:10px;margin-top:12px;display:none}
.ai-preview.show{display:block}
.spin{display:inline-block;width:16px;height:16px;border:2px solid #fff;border-top-color:transparent;border-radius:50%;animation:sp .7s linear infinite;vertical-align:middle}
@keyframes sp{to{transform:rotate(360deg)}}
.img-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.img-actions .btn{justify-content:center}
