/* ================= Aurora Neon Glass Theme — Light (RTL) ================= */
/* Design tokens */
:root{
  /* Core palette (Light Aurora) */
  --bg: #f7f9ff;            /* Polar sky */
  --text: #0f1730;          /* Deep ink */
  --muted: #5d6a87;         /* Soft slate */
  --primary: #6a42ff;       /* Electric violet */
  --secondary: #00b8ff;     /* Neon cyan */
  --accent: #ff4fa3;        /* Pink blossom */

  /* Surfaces */
  --card: rgba(255,255,255,.65);
  --border: rgba(10, 24, 48, .12);
  --glass-blur: 14px;

  /* Links */
  --link: #006bff;

  /* States */
  --success-bg: rgba(0, 190, 140, 0.12);
  --success-fg: #067a63;
  --success-bd: rgba(0, 190, 140, .35);

  --danger-bg: rgba(220, 52, 85, 0.12);
  --danger-fg: #8b1530;
  --danger-bd: rgba(220, 52, 85, .35);
}

/* ========== Base ========== */
html,body{
  background:
    radial-gradient(1200px 600px at 18% -10%, rgba(106,66,255,.22), transparent 60%),
    radial-gradient(1200px 600px at 120% 20%, rgba(0,184,255,.18), transparent 60%),
    linear-gradient(135deg, #f7f9ff, #eef3ff 70%, #f7f9ff);
  background-attachment: fixed;
  color: var(--text);
  font-family: Vazirmatn, Shabnam, "Segoe UI", Tahoma, Verdana, sans-serif;
  line-height: 1.9;
  overflow-x: hidden;
}

@supports (animation: name){
  body{
    background-size: 120% 120%;
    animation: bgFlowLight 22s ease-in-out infinite;
  }
}
@keyframes bgFlowLight{
  0%   { background-position: 0% 0%; }
  50%  { background-position: 100% 60%; }
  100% { background-position: 0% 0%; }
}

.container{ width: min(1080px,92%); margin-inline: auto; padding-block: 1rem; }

/* Global focus ring */
*,:focus{ outline: none; }
:focus-visible{
  box-shadow: 0 0 0 3px rgba(106,66,255,.28), 0 0 0 6px rgba(0,184,255,.18);
  border-radius: 8px;
}

/* Links: subtle neon underline on hover */
a{
  color: var(--link);
  text-decoration: none;
  position: relative;
  transition: color .25s ease, opacity .25s ease;
}
a::after{
  content:"";
  position:absolute; inset-inline-start:0; inset-block-end:-2px;
  width:100%; height:2px;
  background: linear-gradient(90deg, var(--secondary), var(--primary), var(--accent));
  transform: scaleX(0);
  transform-origin: inline-start;
  transition: transform .25s ease, opacity .25s ease;
  opacity:.9;
}
a:hover::after, a:focus::after{ transform: scaleX(1); }

/* ========== Header & Nav ========== */
.site-header{
  background: var(--card);
  backdrop-filter: blur(var(--glass-blur));
  border-bottom: 1px solid var(--border);
  position: sticky; top: 0; z-index: 50;
  box-shadow: 0 6px 24px rgba(18,34,72,.08), inset 0 -1px 0 rgba(255,255,255,.6);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem; padding:.75rem 0;
}
.brand{
  font-weight:800; color: var(--text); font-size:1.35rem;
  letter-spacing:.2px;
  text-shadow: 0 0 10px rgba(106,66,255,.18);
}
.header-tools{ display:flex; align-items:center; gap:.5rem; }

.theme-toggle{
  border:1px solid var(--border);
  background: var(--card);
  color: var(--text);
  padding:.45rem .7rem; border-radius:.6rem; cursor:pointer;
  backdrop-filter: blur(var(--glass-blur));
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}
.theme-toggle:hover{
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(18,34,72,.12);
  border-color: color-mix(in oklab, var(--border) 50%, var(--primary) 50%);
  background: color-mix(in oklab, var(--card) 85%, rgba(0,184,255,.15) 15%);
}

.main-nav ul{ display:flex; gap:.75rem; list-style:none; margin:0; padding:0; }
.main-nav a{
  color: var(--text);
  padding:.45rem .7rem; border-radius:.55rem;
  transition: background .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
  position: relative;
}
.main-nav a:hover, .main-nav a:focus{
  background: color-mix(in oklab, var(--card) 70%, rgba(106,66,255,.22) 30%);
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(18,34,72,.12);
}

/* Header chips */
.chip{
  display:inline-flex; align-items:center; gap:.35rem;
  padding:.25rem .6rem; border:1px solid var(--border);
  border-radius:999px; font-size:.85rem; background:var(--card); color:var(--text);
  text-decoration:none; cursor:default;
  backdrop-filter: blur(var(--glass-blur));
}


/* Footer stats center */
.footer-stats{
  width:100%;
  display:flex;
  justify-content:center; /* center horizontally */
  align-items:center;     /* center vertically */
  margin-top: .75rem;
}
.footer-stats-inner{
  display:flex;
  align-items:center;
  gap: .9rem;
  background: rgba(255,255,255,0.04); /* subtle bg to separate */
  padding: .45rem .75rem;
  border-radius: .6rem;
  border: 1px solid rgba(255,255,255,0.04);
  box-shadow: 0 4px 10px rgba(0,0,0,0.04);
  direction: rtl; /* keep RTL ordering */
}
.stat-item{ text-align:center; min-width:110px; }
.stat-label{
  display:block; font-size:.85rem; color:var(--muted);
}
.stat-value{
  display:block; font-weight:700; font-size:1.05rem; color:var(--text);
  margin-top:.15rem;
}

/* separator dot */
.stat-sep{
  color:var(--muted); font-size:1.1rem; opacity:.9;
}

/* responsive: stack on small screens */
@media (max-width:520px){
  .footer-stats-inner{
    flex-direction:column;
    gap:.5rem;
    padding:.6rem;
  }
  .stat-item{ min-width:unset; }
  .stat-sep{ display:none; }
}





/* ========== Cards / Posts ========== */
.card, .post-card{
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 1rem;
  padding: 1rem; margin-block: 1rem;
  backdrop-filter: blur(var(--glass-blur));
  box-shadow: 0 10px 24px rgba(18,34,72,.10), 0 0 0 1px rgba(255,255,255,.5) inset;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.card:hover, .post-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 16px 30px rgba(18,34,72,.12), 0 0 24px rgba(0,184,255,.15);
  border-color: color-mix(in oklab, var(--border) 60%, var(--secondary) 40%);
}

.post-card .meta, .post .meta{
  display:flex; gap:1rem; color: var(--muted); font-size:.9rem; margin-bottom:.5rem;
}
.post-card .read-more{ color: var(--link); }
.post-card .read-more:hover{ text-decoration: underline; }

.post-card h2 a{
  text-decoration: none !important;
  color: var(--text);
  transition: color .18s ease, text-shadow .18s ease;
}
.post-card h2 a:hover, .post-card h2 a:focus{
  color: var(--primary);
  text-shadow: 0 0 12px rgba(106,66,255,.18);
}

/* ========== Tables (Enhanced) ========== */
.table{
  width:100%; border-collapse:collapse; border-spacing:0;
  background: var(--card);
  border: 2px solid transparent;
  border-radius: 12px; overflow: hidden; font-size: .98rem;
  backdrop-filter: blur(var(--glass-blur));
  --g1: var(--secondary);
  --g2: var(--primary);
  --g3: var(--accent);
  border-image: linear-gradient(90deg, var(--g1), var(--g2), var(--g3)) 1;
  animation: tableBorderShiftLight 10s linear infinite;
}
@keyframes tableBorderShiftLight{
  0%   { border-image-source: linear-gradient(90deg, var(--g1), var(--g2), var(--g3)); }
  50%  { border-image-source: linear-gradient(90deg, var(--g2), var(--g3), var(--g1)); }
  100% { border-image-source: linear-gradient(90deg, var(--g3), var(--g1), var(--g2)); }
}
.table thead th{
  background: color-mix(in oklab, var(--card) 70%, rgba(0,184,255,.18) 30%);
  color: var(--text); text-align:center; font-weight:700;
  border-bottom: 1px solid var(--border);
  padding:.7rem .8rem; white-space:nowrap;
  text-shadow: 0 0 6px rgba(0,184,255,.18);
}
.table tbody td{
  border-top: 1px solid var(--border);
  padding:.6rem .8rem; text-align:center; vertical-align:middle; color: var(--text);
}
.table.table-striped tbody tr:nth-child(odd){
  background: color-mix(in oklab, var(--card) 82%, rgba(106,66,255,.12) 18%);
}
.table.table-hover tbody tr:hover{
  background: color-mix(in oklab, var(--card) 76%, rgba(0,184,255,.18) 24%);
}
.table.table-bordered th, .table.table-bordered td{ border:1px solid var(--border); }
.table.table-compact thead th{ padding:.5rem .6rem }
.table.table-compact tbody td{ padding:.45rem .6rem; font-size:.92rem }
.table.table-roomy thead th{ padding:.95rem 1.05rem }
.table.table-roomy tbody td{ padding:.85rem 1.05rem; font-size:1.02rem }
.table-wrapper{ overflow-x:auto; -webkit-overflow-scrolling:touch }

/* Center tables inside post content */
.post .content table,
.post .content .table{
  margin: 1.25rem auto;
}
.post .content table th,
.post .content table td{
  padding: .5rem .75rem;
}
/* Default alignment inside table builder canvas */
#tb th, #tb td { text-align: center; }

/* ========== Forms & Buttons ========== */
.auth-form, .contact-form, .post-form, .search-form{
  display:grid; gap:.7rem; max-width:700px;
}

input, textarea, select{
  border:1px solid var(--border);
  border-radius:.6rem;
  padding:.65rem .8rem; font-size:1rem;
  background: color-mix(in oklab, #ffffff 92%, rgba(255,255,255,.0) 8%);
  color: var(--text);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.6);
  transition: border-color .18s ease, box-shadow .18s ease, transform .12s ease, background .18s ease;
}
input:hover, textarea:hover, select:hover{
  border-color: color-mix(in oklab, var(--border) 60%, var(--secondary) 40%);
  background: color-mix(in oklab, #ffffff 90%, rgba(0,184,255,.06) 10%);
}
input:focus, textarea:focus, select:focus{
  box-shadow: 0 0 0 3px rgba(106,66,255,.16);
  border-color: color-mix(in oklab, var(--border) 40%, var(--primary) 60%);
  transform: translateY(-1px);
}

button, .button{
  background: linear-gradient(90deg, var(--primary), var(--secondary), var(--accent));
  color: #fff; border: none; border-radius:.65rem;
  padding:.6rem 1rem; text-decoration:none; display:inline-block;
  font-weight:600; line-height:1; font-family:inherit;
  box-shadow: 0 10px 22px rgba(18,34,72,.14), 0 0 16px rgba(106,66,255,.18);
  position:relative; overflow:hidden; cursor:pointer;
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
button:hover, .button:hover{
  transform: translateY(-2px);
  filter: saturate(1.05) brightness(1.04);
}
button:active, .button:active{
  transform: translateY(0);
}

/* Ripple highlight (hover glow) */
button::before, .button::before{
  content:""; position:absolute; inset:0;
  background: radial-gradient(120px 120px at var(--x,50%) var(--y,50%), rgba(255,255,255,.35), transparent 60%);
  opacity:0; transition: opacity .25s ease;
}
button:hover::before, .button:hover::before{ opacity:1; }

/* ========== Pagination ========== */
.pagination{ display:flex; gap:.5rem; margin:1rem 0; }
.page-link{
  padding:.38rem .7rem; border:1px solid var(--border);
  border-radius:.5rem; text-decoration:none; color:var(--text);
  background: var(--card); backdrop-filter: blur(var(--glass-blur));
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
.page-link:hover{
  transform: translateY(-1px);
  border-color: color-mix(in oklab, var(--border) 55%, var(--primary) 45%);
  box-shadow: 0 6px 12px rgba(18,34,72,.12);
  background: color-mix(in oklab, var(--card) 85%, rgba(106,66,255,.12) 15%);
}
.page-link.active{
  background: color-mix(in oklab, var(--card) 75%, rgba(106,66,255,.18) 25%);
}

/* ========== Alerts ========== */
.alert{
  padding:.85rem 1.05rem; border-radius:.7rem; margin:.85rem 0;
  background: var(--card); border:1px solid var(--border);
  backdrop-filter: blur(var(--glass-blur));
  box-shadow: 0 6px 16px rgba(18,34,72,.10);
}
.alert.success{
  background: var(--success-bg);
  color: var(--success-fg);
  border-color: var(--success-bd);
  box-shadow: 0 0 12px rgba(0,190,140,.15);
}
.alert.error{
  background: var(--danger-bg);
  color: var(--danger-fg);
  border-color: var(--danger-bd);
  box-shadow: 0 0 12px rgba(220,52,85,.15);
}

/* ========== Grid / Cards Misc ========== */
.grid{
  display:grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap:.85rem; margin:.85rem 0;
}
.msg-body{ white-space:pre-wrap; text-align:justify; }

/* ========== Footer ========== */
.site-footer{
  margin-top:2rem; padding:2rem 0; border-top:1px solid var(--border); color:var(--muted);
  background: linear-gradient(180deg, transparent, rgba(255,255,255,.75));
  box-shadow: 0 -12px 28px rgba(18,34,72,.06) inset;
}
.footer-grid{
  display:grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr));
  gap:1rem; align-items:start;
}
.footer-title{
  margin:.25rem 0 .6rem; font-weight:800; font-size:1rem; color: var(--text);
}
.footer-links{ list-style:none; padding:0; margin:0; display:grid; gap:.4rem; }
.footer-links a{ text-decoration:none; color:var(--text); opacity:.9; }
.footer-links a:hover{ opacity:1; }
.footer-bottom{
  margin-top:1rem; border-top:1px solid var(--border);
  padding-top:.75rem; display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  color: var(--muted);
}

/* ========== Mobile Nav ========== */
.nav-toggle{
  display:none; border:1px solid var(--border); background: var(--card); color: var(--text);
  padding:.5rem .7rem; border-radius:.7rem; cursor:pointer;
  backdrop-filter: blur(var(--glass-blur));
}
@media (max-width:720px){
  .nav-toggle{ display:inline-flex; align-items:center; justify-content:center; }
  .main-nav{
    position:fixed; top:64px; inset-inline-end:12px; width:min(260px,92vw);
    max-height:calc(100dvh - 76px); overflow:auto; background: var(--card);
    border:1px solid var(--border); border-radius:14px; box-shadow:0 10px 24px rgba(18,34,72,.12);
    padding:.6rem 0; z-index:1000; transform-origin:top right; transform:scale(.98);
    opacity:0; pointer-events:none; transition:transform .18s ease, opacity .18s ease;
    backdrop-filter: blur(var(--glass-blur));
  }
  .main-nav ul{ display:flex; flex-direction:column; margin:0; padding:0; list-style:none; }
  .main-nav a{ display:block; padding:.7rem 1rem; border-radius:0; }
  .main-nav a:hover, .main-nav a:focus{
    background: color-mix(in oklab, var(--card) 80%, rgba(0,184,255,.18) 20%);
  }
  .main-nav.open{ transform:scale(1); opacity:1; pointer-events:auto; }
  .nav-backdrop{
    position:fixed; inset:0; background: rgba(18,34,72,.25);
    opacity:0; pointer-events:none; transition:opacity .18s ease; z-index:999;
  }
  .nav-open{ overflow:hidden; }
  .nav-open .nav-backdrop{ opacity:1; pointer-events:auto; }
}

/* ========== Admin: Horizontal Form ========== */
.form.form-horizontal .row{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:16px 24px; align-items:center;
}
.form.form-horizontal .field{
  display:grid; grid-template-columns:120px 1fr; gap:10px; align-items:center;
}
.form.form-horizontal .field.full{ grid-column:1 / -1; grid-template-columns:120px 1fr; }

.form.form-horizontal input[type="text"],
.form.form-horizontal input[type="url"],
.form.form-horizontal input[type="email"],
.form.form-horizontal input[type="password"],
.form.form-horizontal input[type="file"],
.form.form-horizontal textarea,
.form.form-horizontal select{
  width:100%; padding:.6rem .85rem; border:1px solid rgba(18,34,72,.16); border-radius:10px;
  background: rgba(255,255,255,.9); color: var(--text);
  backdrop-filter: blur(var(--glass-blur));
}
.form.form-horizontal input[type="url"],
.form.form-horizontal input[type="email"]{ direction:ltr; text-align:left; }
.form.form-horizontal textarea{ min-height:180px; resize:vertical; }
.form.form-horizontal fieldset.full{
  grid-column:1 / -1; border:1px solid rgba(18,34,72,.16); border-radius:12px; padding:12px;
  background: rgba(255,255,255,.85); backdrop-filter: blur(var(--glass-blur));
}
.form.form-horizontal fieldset legend{ padding:0 6px; font-weight:600; color: var(--text); }
.form.form-horizontal .actions{ grid-column:1 / -1; display:flex; gap:8px; margin-top:8px; }

/* Admin cover inputs compact */
.form.form-horizontal fieldset.full .field{ grid-template-columns:100px auto; }
.form.form-horizontal fieldset.full .field input[type="file"],
.form.form-horizontal fieldset.full .field input[type="url"]{
  max-width:360px; padding:.5rem .65rem; font-size:.95rem;
}

/* Delete as link */
.btn-link{
  background:none; border:none; padding:0;
  color: var(--accent); cursor:pointer; font:inherit;
}
.btn-link:hover{ text-decoration: underline; }
.btn-link.danger{ color:#dc3455; }

/* Helpers for full-span widgets (e.g. table builder) */
.form.form-horizontal .field.full .full-span{ grid-column:1 / -1; width:100%; }
.form.form-horizontal .field.full .full-span .table-wrapper{
  overflow:auto; border:1px solid var(--border); border-radius:.6rem; background:var(--card); padding:.5rem;
  backdrop-filter: blur(var(--glass-blur));
}
.form.form-horizontal .field.full .full-span table.table{ min-width:760px; }

/* ========== Progress bar (reading) ========== */
#readProgress{
  position:fixed; inset-inline-start:0; top:0; height:3px;
  width:0;
  background: linear-gradient(90deg, var(--secondary), var(--primary), var(--accent));
  box-shadow: 0 0 12px rgba(0,184,255,.35);
  z-index:9999; transition: width .1s linear;
}

/* ========== Floating buttons ========== */
.to-top{
  position:fixed; inset-inline-end:16px; bottom:16px;
  width:42px; height:42px; border-radius:999px; border:1px solid var(--border);
  background: var(--card); color: var(--text); display:none; align-items:center; justify-content:center;
  box-shadow: 0 6px 12px rgba(18,34,72,.10), 0 0 18px rgba(0,184,255,.12);
  cursor:pointer;
  backdrop-filter: blur(var(--glass-blur));
}
.to-top.show{ display:flex; }

.fab{
  position:fixed;
  inset-inline-start:16px; bottom:18px;  /* RTL-aware */
  width:40px; height:40px; border-radius:999px;
  display:grid; place-items:center;
  border:1px solid var(--border);
  background: var(--card); color: var(--text);
  box-shadow: 0 6px 12px rgba(18,34,72,.10), 0 0 18px rgba(106,66,255,.12);
  cursor:pointer; opacity:0; transform:translateY(10px);
  transition:opacity .15s ease, transform .15s ease, background .15s ease;
  z-index:1200;
  backdrop-filter: blur(var(--glass-blur));
}
.fab.show{ opacity:1; transform:translateY(0); }
.fab:hover{ background: color-mix(in oklab, var(--card) 85%, rgba(106,66,255,.12) 15%); }

/* ========== Code copy button ========== */
.pre-wrap{ position:relative; }
.copy-btn{
  position:absolute; inset-inline-end:8px; top:8px; font-size:.8rem;
  border:1px solid var(--border); background: var(--card); color: var(--text);
  border-radius:.45rem; padding:.25rem .5rem; cursor:pointer;
  backdrop-filter: blur(var(--glass-blur));
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease;
}
.copy-btn:hover{
  transform: translateY(-1px);
  border-color: color-mix(in oklab, var(--border) 55%, var(--secondary) 45%);
  box-shadow: 0 6px 12px rgba(18,34,72,.10);
  background: color-mix(in oklab, var(--card) 85%, rgba(0,184,255,.12) 15%);
}

/* ========== Archive list ========== */
.archive-list{
  list-style:none; margin:1rem auto; padding:0;
  width:min(900px, 100%);
  display:grid; gap:.7rem;
}
.archive-item{
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem;
  background: var(--card);
  border:1px solid var(--border);
  border-radius:12px;
  padding:.85rem 1rem;
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease, background .14s ease;
  backdrop-filter: blur(var(--glass-blur));
}
.archive-item:hover{
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(18,34,72,.10), 0 0 18px rgba(0,184,255,.12);
  border-color: color-mix(in oklab, var(--border) 55%, var(--secondary) 45%);
  background: color-mix(in oklab, var(--card) 85%, rgba(106,66,255,.12) 15%);
}
.archive-link{
  text-decoration:none; color: var(--text); font-weight:700;
  line-height:1.6;
}
.archive-link:hover{ opacity:.95; }
.archive-date{
  color: var(--muted); font-size:.85rem; white-space:nowrap;
}

/* موبایل: تاریخ زیر عنوان بیاید */
@media (max-width:700px){
  .archive-item{ flex-direction:column; align-items:flex-start; }
  .archive-date{ order:2; }
}
