/* باهنر آنلاین — سیستم طراحی بر پایه shadcn/ui (پالت zinc) */

@font-face{font-family:Vazirmatn;src:url(../fonts/Vazirmatn-Regular.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Vazirmatn;src:url(../fonts/Vazirmatn-Medium.woff2) format("woff2"),url(../fonts/Vazirmatn-Regular.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:Vazirmatn;src:url(../fonts/Vazirmatn-SemiBold.woff2) format("woff2"),url(../fonts/Vazirmatn-Bold.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:Vazirmatn;src:url(../fonts/Vazirmatn-Bold.woff2) format("woff2");font-weight:700;font-display:swap}

:root{
  --background:#FFFFFF;
  --foreground:#09090B;
  --card:#FFFFFF;
  --muted:#F4F4F5;
  --muted-foreground:#71717A;
  --accent:#F4F4F5;
  --border:#E4E4E7;
  --input:#E4E4E7;
  --primary:#047857;      /* سبز زمردی */
  --primary-hover:#065F46;
  --primary-foreground:#FFFFFF;
  --brand-soft:#ECFDF5;
  --brand-deep:#022C22;
  --ring:#6EE7B7;
  --destructive:#DC2626;
  --success:#15803D;
  --warning:#D97706;
  --sidebar:#FAFAFA;
  --radius:.5rem;
  --shadow-xs:0 1px 2px 0 rgb(0 0 0 / .05);
  --shadow-sm:0 1px 3px 0 rgb(0 0 0 / .08),0 1px 2px -1px rgb(0 0 0 / .08);
  --side:16rem;
  color-scheme:light;
  /* نام‌های قدیمی در نماها و اسکریپت‌ها */
  --fg:var(--foreground); --c:var(--primary); --bd:var(--border); --bg:var(--background); --sheet:var(--card); --paper:var(--muted); --ink:var(--foreground); --ink-2:var(--muted-foreground); --ink-3:var(--muted-foreground); --rule:var(--border); --rule-2:var(--border); --blue:var(--primary); --text:var(--foreground); --text-2:var(--muted-foreground); --text-3:var(--muted-foreground); --line:var(--border); --red:var(--destructive); --green:var(--success);
}
[data-theme=dark]{
  --background:#09090B; --foreground:#FAFAFA; --card:#0C0C0E; --muted:#27272A; --muted-foreground:#A1A1AA; --accent:#27272A;
  --border:#27272A; --input:#3F3F46; --primary:#34D399; --primary-hover:#6EE7B7; --primary-foreground:#022C22; --brand-soft:#0B2A21; --brand-deep:#03130E; --ring:#065F46; --destructive:#EF4444; --success:#22C55E; --warning:#F59E0B; --sidebar:#0C0C0E;
  color-scheme:dark;
}

*,*::before,*::after{box-sizing:border-box;border-color:var(--border)}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:Vazirmatn,Tahoma,sans-serif;font-size:.875rem;line-height:1.7;background:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{color:var(--foreground);font-weight:600;line-height:1.4;margin:0 0 .5em}
h1{font-size:1.5rem}
h2{font-size:1.125rem;margin-top:1.75rem}
h3{font-size:1rem}
p{margin:0 0 1em;max-width:72ch}
small,.muted{color:var(--muted-foreground)}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:4px}
hr{border:0;border-top:1px solid var(--border);margin:1.5rem 0}
img{max-width:100%}
code,pre{font-family:ui-monospace,Consolas,monospace;font-size:.85em;direction:ltr;unicode-bidi:isolate}
code{background:var(--muted);padding:.1rem .3rem;border-radius:4px}
pre{background:var(--muted);padding:1rem;border-radius:var(--radius);overflow:auto}
pre code{background:none;padding:0}
:focus-visible{outline:2px solid var(--ring);outline-offset:2px}
.skip,.sr-only{position:absolute;inset-inline-start:-9999px}
.skip:focus{inset-inline-start:1rem;top:1rem;background:var(--primary);color:var(--primary-foreground);padding:.4rem .9rem;z-index:100;border-radius:var(--radius)}

/* Label / Input / Select / Textarea */
label{display:block;margin:1rem 0 .5rem;font-weight:500;font-size:.875rem;line-height:1}
input,select,textarea{width:100%;height:2.25rem;font:inherit;font-size:.875rem;color:var(--foreground);background:transparent;border:1px solid var(--input);border-radius:var(--radius);padding:0 .75rem;box-shadow:var(--shadow-xs);transition:border-color .15s,box-shadow .15s}
[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{background:rgb(255 255 255 / .03)}
textarea{height:auto;min-height:5rem;padding:.5rem .75rem;line-height:1.7}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2371717A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:left .6rem center;padding-left:2rem}
input::placeholder,textarea::placeholder{color:var(--muted-foreground)}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--ring) 45%,transparent)}
input[type=checkbox],input[type=radio]{width:1rem;height:1rem;padding:0;box-shadow:none;accent-color:var(--primary);margin:0 0 0 .5rem;vertical-align:-.2em}
input[type=file]{height:auto;padding:.35rem .5rem}
input[type=range]{box-shadow:none;border:0;padding:0;accent-color:var(--primary)}
input[inputmode=numeric],input[type=tel],input[type=email],input[type=url]{direction:ltr;text-align:right}
label:has(input[type=checkbox]),label:has(input[type=radio]){display:inline-flex;align-items:center;font-weight:400;margin:.35rem 0 .35rem 1.25rem}

/* Button */
button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;height:2.25rem;padding:0 1rem;font:inherit;font-weight:500;font-size:.875rem;line-height:1;white-space:nowrap;
  border-radius:var(--radius);border:1px solid transparent;background:var(--primary);color:var(--primary-foreground);cursor:pointer;text-decoration:none;margin-top:1rem;box-shadow:var(--shadow-xs);transition:background .15s,color .15s,opacity .15s}
button:hover,.btn:hover{background:var(--primary-hover);color:var(--primary-foreground);text-decoration:none}
button.sec,.btn.sec{background:var(--background);color:var(--foreground);border-color:var(--border)}
button.sec:hover,.btn.sec:hover{background:var(--accent);color:var(--foreground)}
[data-theme=dark] button.sec,[data-theme=dark] .btn.sec{background:rgb(255 255 255 / .03);border-color:var(--input)}
button.ghost,.btn.ghost{background:transparent;color:var(--foreground);box-shadow:none}
button.ghost:hover,.btn.ghost:hover{background:var(--accent)}
button.danger,.btn.danger{background:var(--destructive);color:#fff}
button.danger:hover,.btn.danger:hover{background:color-mix(in srgb,var(--destructive) 90%,#000);color:#fff}
button:disabled{opacity:.5;pointer-events:none}
button.linkish{background:none;border:0;height:auto;padding:0;margin:0;box-shadow:none;color:var(--foreground);font-weight:500;text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--border)}
button.linkish:hover{background:none;text-decoration-color:var(--foreground)}
.toolbar button,.toolbar .btn,td button,td .btn{margin-top:0}
.err{color:var(--destructive);font-size:.8125rem;margin:.4rem 0 0}
.ok{color:var(--success)}

/* Alert */
.notice,.flash{display:block;position:relative;padding:.75rem 1rem;border:1px solid var(--border);border-radius:var(--radius);margin:0 0 1rem;font-size:.875rem;background:var(--card);color:var(--foreground)}
.notice.bad,.flash.bad{color:var(--destructive);border-color:color-mix(in srgb,var(--destructive) 35%,transparent)}
.flash ul{margin:0;padding-inline-start:1rem}

/* Card */
.card{background:var(--card);color:var(--foreground);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow-sm);padding:1.5rem;max-width:26rem;margin:8vh auto}

/* ورود: Card وسط صفحه (بلوک login-01) */
.auth{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;padding:1.5rem;background:var(--muted)}
[data-theme=dark] .auth{background:var(--background)}
.auth-top{display:flex;align-items:center;gap:.5rem;font-weight:500;color:var(--foreground);text-decoration:none}
.auth-top img{width:28px;height:28px}
.auth-box{width:100%;max-width:24rem;background:var(--card);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow-sm);padding:1.5rem}
.auth-box h1{font-size:1.25rem;font-weight:600;text-align:center;margin:0 0 .35rem}
.auth-box>p.muted{text-align:center;margin:0 auto 1.25rem;font-size:.875rem}
.auth-box label{margin-top:1.1rem}
.auth-box button[type=submit]{width:100%;margin-top:1.5rem}
.auth-box .alt{margin-top:1.5rem;position:relative;padding-top:1.25rem;border-top:1px solid var(--border)}
.auth-box .alt::before{content:"یا";position:absolute;top:-.7rem;inset-inline:0;margin:auto;width:2.25rem;text-align:center;background:var(--card);color:var(--muted-foreground);font-size:.75rem;line-height:1.4rem}
.auth-box .alt label{margin-top:0}
.auth-box .alt button[type=submit]{background:var(--background);color:var(--foreground);border-color:var(--border);margin-top:.75rem}
.auth-box .alt button[type=submit]:hover{background:var(--accent)}
.auth-links{display:flex;justify-content:space-between;margin-top:1rem;font-size:.8125rem}
.auth-links a{color:var(--muted-foreground)}
.auth-links a:hover{color:var(--foreground)}
.auth-foot{color:var(--muted-foreground);font-size:.75rem;text-align:center;margin:0;max-width:24rem}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
.auth{position:relative;isolation:isolate;background:radial-gradient(40rem 22rem at 50% 0%,var(--brand-soft),transparent 70%),var(--muted)}
.auth::before{content:"";position:absolute;inset:0;z-index:-1;background-image:radial-gradient(color-mix(in srgb,var(--primary) 18%,transparent) 1px,transparent 1.2px);background-size:22px 22px;-webkit-mask-image:radial-gradient(ellipse 50% 45% at 50% 20%,#000,transparent 75%);mask-image:radial-gradient(ellipse 50% 45% at 50% 20%,#000,transparent 75%)}

/* صفحه‌بندی */
.pager{display:flex;flex-wrap:wrap;justify-content:center;gap:.25rem;margin:1.5rem 0}
.pg{display:inline-flex;align-items:center;justify-content:center;min-width:2.25rem;height:2.25rem;padding:0 .75rem;border-radius:var(--radius);border:1px solid transparent;color:var(--foreground);text-decoration:none;font-size:.875rem;font-variant-numeric:tabular-nums}
a.pg:hover{background:var(--accent);text-decoration:none}
.pg.on{border-color:var(--border);box-shadow:var(--shadow-xs);font-weight:500}
.pg.off{color:var(--muted-foreground);opacity:.6}
/* کارت پهن در هر جای سایت */
.card.wide{max-width:none;margin:0 0 1rem}
.flash.ok{border-color:color-mix(in srgb,var(--success) 35%,transparent);color:var(--success)}
/* wordmark */
img.wm{height:1.05rem;width:auto;display:block}
.wm-l{display:none!important}
[data-theme=dark] .wm-d{display:none!important}
[data-theme=dark] .wm-l{display:block!important}
.auth-top{gap:.6rem}
.auth-top img.wm{height:1.15rem;width:auto}
.auth-school{margin:.25rem 0 0;text-align:center;color:var(--muted-foreground);font-size:.8125rem}
.auth-top>img:first-child{width:36px;height:36px}
.auth-top img.wm{height:1.45rem}
.wm-stack{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem}
.auth-top>img:first-child{width:44px;height:44px}
.auth-top img.wm.fa{height:1.9rem}
.auth-top .wm-stack img.wm:not(.fa){height:.8rem}
/* full lockup */
.wm-stack{display:flex;flex-direction:column;align-items:flex-start;gap:.3rem;line-height:0}
.wm-stack img.wm.fa{height:1.35rem;width:auto}
.wm-stack img.wm:not(.fa){height:.62rem;width:auto}
.auth-top .wm-stack img.wm.fa{height:2rem}
.auth-top .wm-stack img.wm:not(.fa){height:.85rem}
