@import url('https://fonts.googleapis.com/css2?family=Vazirmatn:wght@400;500;600;700;800&display=swap');

:root{
  --bg:#0c1020;
  --text:#eef1fa;
  --text-dim:#9aa6c2;
  --accent:#5b8def;
  --accent-2:#7c5cff;
  --primary:#298ACF;
  --danger:#E05356;
  --success:#61C752;
  --border:rgba(255,255,255,.10);
  --glass-bg:rgba(255,255,255,.06);
  --glass-bg-2:rgba(255,255,255,.09);
  --radius:18px;
  --shadow:0 10px 40px rgba(0,0,0,.35);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:
    radial-gradient(1200px 700px at 8% -10%, rgba(91,141,239,.30), transparent 55%),
    radial-gradient(1000px 600px at 105% 5%, rgba(124,92,255,.25), transparent 55%),
    radial-gradient(900px 500px at 50% 120%, rgba(97,199,82,.12), transparent 55%),
    var(--bg);
  color:var(--text);
  font-family:'Vazirmatn', Tahoma, sans-serif;
  min-height:100vh;
}
a{color:inherit;text-decoration:none}
code{background:rgba(0,0,0,.35);border:1px solid var(--border);padding:2px 6px;border-radius:6px;font-size:.85em;color:#9fd0ff}
hr{border:none;border-top:1px solid var(--border)}

/* ---------- Glass primitive ---------- */
.glass-card{
  background:var(--glass-bg);
  border:1px solid var(--border);
  border-radius:var(--radius);
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  box-shadow:var(--shadow);
}

/* ---------- Login ---------- */
.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh}
.login-box{width:100%;max-width:400px;padding:38px 32px;text-align:center;margin:16px}
.login-logo{font-size:46px;margin-bottom:6px}
.login-box h1{font-size:20px;margin:8px 0 4px}
.login-sub{color:var(--text-dim);font-size:13px;margin:0 0 18px;line-height:1.8}
.login-box form{display:flex;flex-direction:column;gap:6px;text-align:right}
.login-box label{font-size:13px;color:var(--text-dim);margin-top:8px}
.login-box input{
  background:rgba(0,0,0,.28);border:1px solid var(--border);color:var(--text);
  padding:12px 14px;border-radius:12px;font-family:inherit;font-size:14px;
}
.login-box button{
  margin-top:20px;padding:13px;border:none;border-radius:12px;
  background:linear-gradient(135deg,var(--accent),var(--accent-2));
  color:#fff;font-weight:700;font-size:15px;cursor:pointer;
}
.login-box button:hover{filter:brightness(1.1)}

/* ---------- Top nav ---------- */
.topnav{
  background:rgba(12,16,32,.55);backdrop-filter:blur(16px);
  border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20;
}
.topnav-inner{max-width:1250px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.brand{font-weight:800;font-size:16px}
.topnav nav{display:flex;gap:6px;flex:1;flex-wrap:wrap}
.topnav nav a{padding:8px 14px;border-radius:10px;font-size:14px;color:var(--text-dim)}
.topnav nav a:hover{background:var(--glass-bg-2);color:var(--text)}
.topnav nav a.active{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff}
.nav-user{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-dim)}
.btn-logout{background:var(--glass-bg-2);padding:7px 12px;border-radius:10px;border:1px solid var(--border)}
.btn-logout:hover{background:var(--danger);color:#fff}

/* ---------- Layout ---------- */
.wrap{max-width:1250px;margin:0 auto;padding:28px 20px 70px}
h1{font-size:22px;margin:0 0 20px}
h2{font-size:16px;margin:0 0 14px}
h3{font-size:14px;margin:14px 0 8px}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:22px}
.card{padding:18px;text-align:center}
.card-num{font-size:24px;font-weight:800;background:linear-gradient(135deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}
.card-label{font-size:12.5px;color:var(--text-dim);margin-top:4px}

.glass-card{padding:22px;margin-bottom:22px}

.grid-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:20px}
.nav-tile{padding:20px;transition:.15s;display:block}
.nav-tile:hover{transform:translateY(-4px);border-color:var(--accent)}
.tile-icon{font-size:26px;margin-bottom:8px}
.tile-title{font-weight:700;margin-bottom:4px}
.tile-desc{font-size:12.5px;color:var(--text-dim);line-height:1.7}

.notice{font-size:13px;line-height:2;color:var(--text-dim)}
.hint{font-size:12.5px;color:var(--text-dim);line-height:2}
.hint-tiny{font-size:11px;color:#e3b969;line-height:1.8;margin-top:4px}

.color-bars{display:flex;flex-direction:column;gap:8px}
.color-bar-row{display:flex;justify-content:space-between;background:var(--glass-bg-2);padding:10px 14px;border-radius:12px;font-size:13.5px}

/* ---------- Alerts / toast ---------- */
.alert{padding:12px 16px;border-radius:12px;margin-bottom:16px;font-size:13.5px}
.alert-success{background:rgba(97,199,82,.14);border:1px solid rgba(97,199,82,.4);color:#8fe07f}
.alert-danger{background:rgba(224,83,86,.14);border:1px solid rgba(224,83,86,.4);color:#ff9b9d}
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(20px);opacity:0;
  background:rgba(20,26,46,.9);backdrop-filter:blur(10px);border:1px solid var(--border);
  padding:10px 20px;border-radius:30px;font-size:13px;transition:.25s;pointer-events:none;z-index:50}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.toast-error{border-color:var(--danger);color:#ff9b9d}

/* ---------- Forms ---------- */
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.f{display:flex;flex-direction:column;gap:6px}
.f-wide{grid-column:1/-1}
.f label{font-size:12.5px;color:var(--text-dim)}
.f input[type=text],.f input[type=number],.f input[type=password],.f select{
  background:rgba(0,0,0,.28);border:1px solid var(--border);color:var(--text);
  padding:10px 12px;border-radius:12px;font-family:inherit;font-size:13.5px;
}
.f-checkbox{flex-direction:row;align-items:center}
.f-checkbox label{display:flex;align-items:center;gap:8px;color:var(--text);font-size:13.5px}
.switch-label{font-weight:600}
.form-actions{display:flex;gap:10px;margin-top:6px;flex-wrap:wrap}

.btn-primary{
  background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;border:none;
  padding:11px 22px;border-radius:12px;font-weight:700;cursor:pointer;font-size:13.5px;font-family:inherit;
}
.btn-primary:hover{filter:brightness(1.1)}
.btn-secondary{background:var(--glass-bg-2);border:1px solid var(--border);color:var(--text);
  padding:11px 22px;border-radius:12px;font-size:13.5px;cursor:pointer;font-family:inherit}
.btn-small{padding:8px 16px;font-size:12.5px}

/* ---------- List / filter header ---------- */
.list-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.header-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.filter-form select{background:rgba(0,0,0,.28);border:1px solid var(--border);color:var(--text);padding:9px 12px;border-radius:12px;font-family:inherit}
.btn-mini{background:var(--glass-bg-2);border:1px solid var(--border);padding:6px 10px;border-radius:9px;font-size:12px}
.btn-mini:hover{background:var(--accent);color:#fff}
.btn-mini-danger:hover{background:var(--danger);color:#fff}

.badge-builtin{background:rgba(91,141,239,.15);color:#a9c6ff;border:1px solid rgba(91,141,239,.4);padding:3px 9px;border-radius:20px;font-size:10.5px}

/* ---------- Telegram button preview ---------- */
.tg-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:10px;
  font-size:13.5px;font-weight:600;border:1px solid var(--border);background:rgba(255,255,255,.04);color:var(--text)}
.tg-btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}
.tg-btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}
.tg-btn-success{background:var(--success);border-color:var(--success);color:#fff}
.tg-emoji{font-size:12px}

/* ---------- Group sections + button grid (glass gallery) ---------- */
.group-section{margin-bottom:30px}
.group-title{font-size:15px;color:var(--text-dim);display:flex;align-items:center;gap:8px;margin-bottom:12px}
.group-count{color:var(--accent);font-weight:700}

.btn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.btn-card{padding:16px;cursor:default;transition:.15s;display:flex;flex-direction:column;gap:10px}
.btn-card:hover{border-color:rgba(91,141,239,.5)}
.btn-card.dragging{opacity:.4}
.btn-card.inactive-card{opacity:.5}

.btn-card-top{display:flex;align-items:center;justify-content:space-between;gap:6px}
.drag-handle{cursor:grab;color:var(--text-dim);font-size:16px}
.source-tag{font-size:10.5px;color:var(--text-dim);background:rgba(0,0,0,.25);padding:3px 8px;border-radius:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}

.btn-preview-wrap{display:flex;justify-content:center;padding:6px 0}

.label-input{
  background:rgba(0,0,0,.25);border:1px solid var(--border);color:var(--text);
  padding:8px 10px;border-radius:10px;font-family:inherit;font-size:13px;text-align:center;
}

.color-row{display:flex;gap:8px;justify-content:center}
.swatch{width:26px;height:26px;border-radius:50%;border:2px solid transparent;cursor:pointer;position:relative}
.swatch-none{background:rgba(255,255,255,.12);border-color:var(--border)}
.swatch-primary{background:var(--primary)}
.swatch-success{background:var(--success)}
.swatch-danger{background:var(--danger)}
.swatch.active{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,.25)}

.emoji-row{display:flex;flex-direction:column;gap:6px}
.emoji-input{background:rgba(0,0,0,.25);border:1px solid var(--border);color:var(--text);
  padding:7px 10px;border-radius:10px;font-family:inherit;font-size:12px;text-align:center}
.mini-checkbox{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-dim);justify-content:center}

.btn-meta{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.meta-chip{font-size:10px;color:var(--text-dim);background:rgba(0,0,0,.22);padding:3px 8px;border-radius:20px}

/* mini switch (فعال/غیرفعال) */
.mini-switch{position:relative;display:inline-block;width:36px;height:20px}
.mini-switch input{opacity:0;width:0;height:0}
.mini-slider{position:absolute;cursor:pointer;inset:0;background:rgba(255,255,255,.15);border-radius:20px;transition:.2s}
.mini-slider::before{content:"";position:absolute;height:14px;width:14px;right:3px;bottom:3px;background:#fff;border-radius:50%;transition:.2s}
.mini-switch input:checked + .mini-slider{background:var(--success)}
.mini-switch input:checked + .mini-slider::before{transform:translateX(-16px)}

/* ---------- Templates ---------- */
.template-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:20px}
.template-card{padding:18px}
.template-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.template-head h3{margin:0;font-size:15px}
.template-desc{font-size:12.5px;color:var(--text-dim);line-height:1.7;margin:0 0 12px}
.template-rules{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.rule-chip{font-size:11px;padding:4px 9px;border-radius:20px;border:1px solid var(--border);background:var(--glass-bg-2)}
.rule-primary{border-color:var(--primary);color:#a9d3ff}
.rule-danger{border-color:var(--danger);color:#ffb3b4}
.rule-success{border-color:var(--success);color:#b7ecac}
.template-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.rule-row{display:flex;gap:8px;margin-bottom:8px}
.rule-row input{flex:1}

/* ---------- Scan page ---------- */
.scan-file-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid var(--border);font-size:13px}
.scan-file-row:last-child{border-bottom:none}

@media (max-width:640px){
  .topnav-inner{flex-direction:column;align-items:flex-start}
  .nav-user{width:100%;justify-content:space-between}
}
