/* ====== Vazirmatn (Local) ====== */
@font-face{
  font-family: 'Vazirmatn';
  src: url('/public/fonts/vazirmatn/Vazirmatn[wght].woff2') format('woff2');
  font-weight: 100 900;   /* Variable weights */
  font-style: normal;
  font-display: swap;
}


/* پایه */
:root{
  --bg:#0b1220;
  --surface:#0f172a;
  --glass:rgba(16,24,40,.65);
  --border:#243041;
  --text:#e2e8f0;
  --muted:#94a3b8;
  --primary:#2563eb;
  --primary-600:#1e4fd6;
  --danger:#ef4444;
  --shadow:0 12px 30px rgba(0,0,0,.35);
  --radius:14px;
}

*{box-sizing:border-box}
html,body{height:100%}
body.portal-body{
  margin:0; background:var(--bg); color:var(--text);
  font-family: Vazirmatn, Tahoma, sans-serif;
}

/* پس‌زمینه اورب‌ها */
.portal-bg{ position:fixed; inset:0; overflow:hidden; pointer-events:none; }
.orb{ position:absolute; border-radius:50%; filter:blur(60px); opacity:.25; }
.orb-1{ width:420px; height:420px; background:#22d3ee; top:-100px; right:-120px; }
.orb-2{ width:520px; height:520px; background:#818cf8; bottom:-160px; left:-120px; }
.orb-3{ width:380px; height:380px; background:#34d399; top:40%; left:50%; transform:translate(-50%,-50%); opacity:.15; }

/* چیدمان */
.center-wrap{ min-height:100vh; display:grid; place-items:center; padding:24px; }
.wrap{ max-width:1100px; margin:28px auto; padding:0 16px; }

.glass-card{
  background:var(--glass); backdrop-filter: blur(10px);
  border:1px solid var(--border); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:18px;
}
.login-card{ width:min(440px, 92vw); }

.brand{  gap:12px; align-items:center; margin-bottom:6px; }
.brand-icon{ width:38px; height:38px; border-radius:10px; }
.brand-title{ font-weight:700; }
.brand-sub{ color:var(--muted); font-size:12px; }

.card-title{ margin:6px 0 2px; font-size:20px; }
.card-sub{ color:var(--muted); margin:0 0 12px; font-size:13px; }
.card-foot{ text-align:center; color:var(--muted); font-size:12px; margin-top:12px; }

/* فرم‌ها */
.form-grid{ display:grid; gap:12px; }
.form-field{ display:flex; flex-direction:column; gap:6px; }
.form-label{ color:#cbd5e1; font-size:13px; }
.form-input, .form-textarea, .form-select{
  width:100%; padding:10px 12px; border:1px solid #334155; border-radius:10px;
  background:#0b1220; color:var(--text); font-size:14px;
}
.form-textarea{ resize:vertical; min-height:110px; }

.input-with-action{ display:flex; gap:8px; align-items:center; }
.input-with-action .form-input{ flex:1; }
.ghost-btn{
  border:1px dashed #334155; background:#0b1220; color:#cbd5e1;
  border-radius:10px; padding:8px 10px; cursor:pointer;
}
.ghost-btn:hover{ border-color:#475569; color:#e2e8f0; }

/* دکمه‌ها */
.btn{
  display:inline-block; padding:10px 14px; border-radius:10px; border:0; cursor:pointer;
  background:#1f2937; color:#fff; text-decoration:none; font-weight:600;
}
.btn:hover{ filter:brightness(1.05); }
.btn-primary{ background:var(--primary); }
.btn-primary:hover{ background:var(--primary-600); }
.btn-ghost{ background:transparent; border:1px solid #334155; color:#e2e8f0; }
.btn-ghost:hover{ background:#0f172a; }

/* اعلان‌ها */
.alert{ padding:10px 12px; border-radius:10px; margin:8px 0; font-size:14px; }
.alert-error{ background:#7f1d1d; color:#fecaca; border:1px solid #9b1c1c; }

/* تاپ‌بار */
.portal-topbar{
  position:sticky; top:0; z-index:10;
  background:linear-gradient(180deg, rgba(15,23,42,.95), rgba(15,23,42,.7));
  border-bottom:1px solid var(--border);
}
.topbar-inner{ max-width:1100px; margin:0 auto; padding:10px 16px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.brand-mini{ display:flex; gap:10px; align-items:center; }
.brand-mini-icon{ width:28px; height:28px; border-radius:8px; }
.brand-mini-title{ font-weight:700; }
.topbar-left{ display:flex; align-items:center; gap:10px; }
.muted{ color:var(--muted); }
.sep{ opacity:.7 }

/* جدول‌ها */
.table{ width:100%; border-collapse:collapse; margin-top:8px; }
.table th, .table td{
  border-bottom:1px solid var(--border); text-align:right; padding:10px 8px; font-size:13px;
}
.table th{ color:#cbd5e1; }

.empty{
  background:rgba(36, 48, 65, .5); border:1px dashed #334155; color:#cbd5e1;
  border-radius:10px; padding:12px; text-align:center; font-size:13px;
}

/* بخش‌ها */
.section-title{ font-size:16px; margin:0 0 10px; }
.info-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:10px; font-size:14px;
}
.info-grid .span-2{ grid-column:1/-1; }
.key{ color:#cbd5e1; margin-left:6px; }
.val{ color:#e2e8f0; }

/* شبکه دو ستونه */
.grid-2{ display:grid; grid-template-columns:1fr; gap:16px; }
@media(min-width: 900px){
  .grid-2{ grid-template-columns:1fr 1fr; }
}

/* لایت‌باکس */
.lightbox{
  position:fixed; inset:0; background:rgba(0,0,0,.75);
  display:flex; align-items:center; justify-content:center; z-index:1000;
}
.lightbox.hidden{ display:none; }
.lb-img{ max-width:92vw; max-height:92vh; border-radius:12px; box-shadow:0 20px 40px rgba(0,0,0,.6); }
.lb-close{
  position:absolute; top:16px; left:16px; background:#111827; color:#e2e8f0;
  border:1px solid #334155; border-radius:10px; padding:8px 12px; cursor:pointer;
}

/* فاصله‌ها */
.mb-16{ margin-bottom:16px; }


.footer {
  flex-shrink: 0;
  background:#0f172a;
  border-top:1px solid #1f2937;
  color:#94a3b8;
  text-align:center;
  padding:12px 14px;
  font-size:12px;
}
.footer .brand { color:#e2e8f0; font-weight:600; }
.footer a { color:#93c5fd; text-decoration:none; }
.footer a:hover { text-decoration:underline; }