/* =====================================================================
   لایهٔ طراحی مدرن پنل مدرسه — بعد از style.css بارگذاری می‌شود
   اصول: سطوح آرام و خنثی، یک رنگ تأکیدی (همان رنگ تم تنظیمات سایت)،
   حاشیهٔ ظریف به‌جای سایه و گرادینت، سلسله‌مراتب شعاع گوشه، حرکت فقط برای پاسخ به کنش
   ===================================================================== */
:root{
    --cream:#F2F4F7;
    --cream-dark:#E1E6EE;
    --ink:#0F1A30;
    --muted:#5E6B82;
    --line:rgba(15,26,48,.08);
    --surface:#fff;
    --side:#0E1A33;
    --turquoise-soft:color-mix(in srgb, var(--turquoise) 10%, #fff);
    --radius:16px;
    --radius-sm:10px;
    --radius-lg:22px;
    --shadow-xs:0 1px 2px rgba(16,24,40,.05);
    --shadow:0 1px 2px rgba(16,24,40,.04), 0 4px 14px -6px rgba(16,24,40,.08);
    --shadow-lg:0 24px 60px -24px rgba(8,16,36,.55);
    --ring:0 0 0 3px color-mix(in srgb, var(--turquoise) 24%, transparent);
    --grad-teal:var(--turquoise);
    --grad-deep:var(--side);
}
html,body{background:var(--cream);font-size:14.5px;}
body{background-image:none;}
*::selection{background:color-mix(in srgb, var(--turquoise) 25%, transparent);}
*::-webkit-scrollbar-thumb{background:rgba(15,26,48,.18);background-clip:content-box;}
.tile-bar{display:none;}
table, .stat-card .num, .num{font-variant-numeric:tabular-nums;}

/* ---------- سایدبار ---------- */
.sidebar{width:256px;background:var(--side);box-shadow:none;padding:20px 14px 26px;border-inline-start:none;}
.sidebar .brand{border-bottom:1px solid rgba(255,255,255,.09);padding:4px 8px 18px;margin-bottom:14px;}
.sidebar .brand .icon{background:var(--turquoise);color:#fff;box-shadow:none;border-radius:12px;}
.sidebar .brand .brand-logo-img{box-shadow:none;border-radius:12px;background:#fff;}
.sidebar .brand span{font-size:15px;}
.sidebar .user{background:none;border:none;padding:2px 8px 8px;margin:0;color:rgba(255,255,255,.62);font-size:12.5px;}
.sidebar-date{background:rgba(255,255,255,.06);border:none;border-radius:10px;font-size:12px;font-weight:600;color:rgba(255,255,255,.8);margin-bottom:16px;}
.nav-link{padding:10px 12px;border-radius:10px;margin-bottom:2px;font-size:13.5px;font-weight:500;color:rgba(255,255,255,.66);}
.nav-link:hover{background:rgba(255,255,255,.06);color:#fff;transform:none;}
.nav-link.active{background:rgba(255,255,255,.10);color:#fff;font-weight:700;box-shadow:none;}
.nav-link.active::before{content:'';position:absolute;inset-inline-start:-14px;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--turquoise);}
.nav-link .ic{width:20px;font-size:15px;opacity:.8;}
.nav-link.active .ic{opacity:1;color:color-mix(in srgb, var(--turquoise) 55%, #fff);}
.logout-link{margin-top:18px;background:transparent;border:1px solid rgba(255,255,255,.12);color:#FFB9AB;border-radius:10px;font-size:13.5px;font-weight:600;}
.logout-link:hover{background:rgba(198,67,43,.18);}

/* ---------- نوار بالای صفحه ---------- */
.main{padding:24px 30px 64px;}
.topbar{background:var(--surface);border:1px solid var(--cream-dark);box-shadow:var(--shadow-xs);padding:16px 22px;border-radius:var(--radius);overflow:visible;}
.topbar::before,.topbar::after{display:none;}
.topbar h2{color:var(--ink);font-size:19px;text-shadow:none;letter-spacing:0;}
.topbar h2 i{color:var(--turquoise);}
.topbar .date-chip{background:var(--turquoise-soft);color:var(--turquoise-dark);border:none;box-shadow:none;backdrop-filter:none;padding:8px 16px;font-size:12.5px;font-weight:700;}
.hamburger{background:var(--surface);color:var(--ink);border:1px solid var(--cream-dark);box-shadow:none;backdrop-filter:none;border-radius:10px;}

/* ---------- کارت‌ها ---------- */
.card{background:var(--surface);border:1px solid var(--cream-dark);border-radius:var(--radius);box-shadow:var(--shadow-xs);padding:22px;transition:none;}
.card::before{display:none;}
.card:hover{box-shadow:var(--shadow-xs);}
.card h3{color:var(--ink);font-size:15.5px;font-weight:800;padding-bottom:12px;margin-bottom:16px;}
.card h3 i{color:var(--turquoise);}
.quick-link,.list-item{background:#FAFBFD;border:1px solid var(--cream-dark);border-radius:var(--radius-sm);}
.quick-link:hover{transform:none;box-shadow:none;border-color:var(--turquoise);color:var(--turquoise-dark);background:var(--turquoise-soft);}
.list-item:hover{transform:none;border-color:color-mix(in srgb, var(--turquoise) 45%, transparent);}

/* ---------- فرم‌ها ---------- */
.field label{color:#344054;font-weight:600;font-size:13px;}
.field input,.field select,.field textarea{background:#fff;border:1px solid #D3DAE5;border-radius:var(--radius-sm);padding:11px 13px;}
.field input:hover,.field select:hover,.field textarea:hover{border-color:#B6C0D1;}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--turquoise);box-shadow:var(--ring);}
.field input::placeholder,.field textarea::placeholder{color:#9AA5B8;}
.balance-hint{background:var(--gold-soft);box-shadow:none;border:1px solid rgba(201,162,75,.35);border-radius:var(--radius-sm);}

/* ---------- دکمه‌ها ---------- */
:focus-visible{outline:2px solid var(--turquoise);outline-offset:2px;}
.btn{border-radius:var(--radius-sm);padding:11px 18px;font-weight:700;font-size:13.5px;}
.btn:active{transform:scale(.985);}
.btn-primary{background:var(--turquoise);box-shadow:0 1px 2px rgba(16,24,40,.14);}
.btn-primary:hover{background:var(--turquoise-dark);transform:none;box-shadow:0 1px 2px rgba(16,24,40,.14);}
.btn-gold{background:var(--gold-soft);color:#7A5A12;border:1px solid rgba(201,162,75,.45);box-shadow:none;}
.btn-gold:hover{transform:none;background:#F6E8C2;}
.btn-outline{background:#fff;border:1px solid #CBD3E0;color:var(--ink);}
.btn-outline:hover{background:var(--turquoise-soft);border-color:var(--turquoise);color:var(--turquoise-dark);}
.btn-sm{padding:8px 13px;font-size:12.5px;border-radius:8px;}
.btn-danger,.btn-approve,.btn-reject{border-radius:var(--radius-sm);}

/* ---------- جدول و نشان‌ها ---------- */
table.data-table{border:1px solid var(--cream-dark);border-radius:12px;}
table.data-table th{background:#F7F9FC;color:var(--muted);font-weight:700;font-size:12.5px;letter-spacing:0;}
table.data-table tbody tr:nth-child(even){background:transparent;}
table.data-table tbody tr:hover{background:#F7F9FC;}
.badge{font-weight:700;}
.badge-turquoise{background:var(--turquoise-soft);border-color:color-mix(in srgb, var(--turquoise) 25%, transparent);}

/* ---------- آمار و تب‌ها ---------- */
.stat-card .num{background:none;-webkit-background-clip:unset;background-clip:unset;color:var(--ink);font-size:27px;font-weight:800;}
.stat-card.negative .num{color:var(--red);}
.stat-card .ic{width:48px;height:48px;border-radius:14px;background:var(--turquoise-soft);color:var(--turquoise-dark);box-shadow:none;font-size:21px;}
.mode-tabs button{border:1px solid var(--cream-dark);font-weight:700;}
.mode-tabs button:hover{border-color:var(--turquoise);color:var(--turquoise-dark);}
.mode-tabs button.active{background:var(--turquoise);color:#fff;border-color:var(--turquoise);box-shadow:none;}

/* ---------- مودال ---------- */
.modal-overlay{background:rgba(10,18,34,.5);}
.modal-box{border:none;border-radius:18px;box-shadow:var(--shadow-lg);}
.modal-head h3{color:var(--ink);}
.modal-close{background:var(--cream);border:none;color:var(--muted);}
.modal-close:hover{background:var(--cream-dark);}

/* ---------- صفحهٔ ورود: تنها نقطهٔ پررنگ طراحی (الگوی ستارهٔ هشت‌پر کاشی) ---------- */
.login-wrap{background-color:var(--side);
    background-image:
        radial-gradient(700px 420px at 50% 0%, color-mix(in srgb, var(--turquoise) 28%, transparent), transparent 70%),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%23C9A24B' stroke-opacity='.2' stroke-width='1'%3E%3Crect x='14' y='14' width='28' height='28'/%3E%3Crect x='14' y='14' width='28' height='28' transform='rotate(45 28 28)'/%3E%3C/g%3E%3C/svg%3E");}
.login-wrap::before{display:none;}
.login-card{background:#fff;backdrop-filter:none;border:none;border-radius:var(--radius-lg);}
.login-header{background:#fff;color:var(--ink);padding:34px 24px 6px;}
.login-header::before,.login-header::after{display:none;}
.login-header .emblem{background:var(--turquoise-soft);color:var(--turquoise-dark);box-shadow:none;border:none;}
.login-header .emblem-logo{box-shadow:none;border:1px solid var(--cream-dark);}
.login-header h1{color:var(--ink);font-size:19px;}
.login-header p{color:var(--muted);opacity:1;}
.role-tabs{background:var(--cream);margin:16px 24px 0;padding:4px;border:none;border-radius:12px;gap:4px;}
.role-tabs button{border-bottom:none;border-radius:9px;padding:10px 8px;font-size:14px;font-weight:600;}
.role-tabs button.active{background:#fff;color:var(--turquoise-dark);box-shadow:0 1px 3px rgba(16,24,40,.12);border-bottom:none;}

/* ---------- موبایل ---------- */
@media (max-width:900px){
    .hamburger{background:var(--surface);border-color:var(--cream-dark);margin-bottom:0;}
    .main{padding:16px 14px 56px;}
    .sidebar{width:272px;}
}
@media (max-width:600px){
    .topbar{padding:14px;border-radius:14px;}
    .card{padding:16px;border-radius:14px;}
    .role-tabs{margin:14px 16px 0;}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;}}

/* =====================================================================
   کارت‌ها و جدول‌ها — نسخهٔ ارتقایافته
   ===================================================================== */
:root{
    --row-line:#EDF0F5;
    --hover-bg:#F8FAFD;
    --shadow-md:0 1px 2px rgba(16,24,40,.05), 0 10px 24px -12px rgba(16,24,40,.16);
}

/* ---------- کارت اصلی: تیتر با آیکن‌چیپ ---------- */
.card h3{border-bottom:none;padding-bottom:0;margin-bottom:18px;font-size:15.5px;gap:10px;}
.card h3 > i:first-child{
    display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;
    width:32px;height:32px;border-radius:10px;font-size:14px;
    background:var(--turquoise-soft);color:var(--turquoise-dark);
}
.stat-card{padding:18px 20px;}
.stat-card .lbl{font-size:12.5px;color:var(--muted);font-weight:600;margin-top:2px;}

/* ---------- کارت‌های ردیفی (دانش‌آموز، حضور، پرسش، فروشگاه، قبیله) ---------- */
.student-row,.attendance-item,.question-row,.shop-row,.list-item,.tribe-member{
    background:var(--surface);border:1px solid var(--cream-dark);border-radius:12px;
    box-shadow:none;transition:border-color .18s, box-shadow .18s, background .18s;
}
.student-row,.attendance-item,.question-row{padding:13px 16px;margin-bottom:8px;}
.student-row:hover,.attendance-item:hover,.shop-row:hover,.list-item:hover{
    transform:none;border-color:color-mix(in srgb, var(--turquoise) 40%, var(--cream-dark));
    box-shadow:var(--shadow-md);background:var(--surface);
}
.question-row:hover{
    transform:none;background:var(--hover-bg);border-color:var(--turquoise);box-shadow:var(--shadow-md);
}
.q-seq{background:var(--turquoise);box-shadow:none;border-radius:8px;padding:6px 11px;}
.student-row .s-name,.attendance-item .a-student{font-weight:700;}

/* ---------- کارت‌های شبکه‌ای فروشگاه ---------- */
.shop-card{border-radius:16px;box-shadow:var(--shadow-xs);transition:box-shadow .2s, border-color .2s;}
.shop-card:hover{transform:none;box-shadow:var(--shadow-md);border-color:color-mix(in srgb, var(--turquoise) 35%, var(--cream-dark));}

/* ---------- دکمه‌های وضعیت ---------- */
.status-btn{border:1px solid var(--cream-dark);border-radius:9px;padding:8px 15px;font-weight:600;}
.status-btn:hover{border-color:#B6C0D1;color:var(--ink);background:var(--hover-bg);}

/* ---------- نشان‌های وضعیت: قرص نرم با نقطهٔ رنگی ---------- */
.status-badge,.mini-badge{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:11.5px;padding:4px 11px 4px 10px;border-radius:999px;}
.status-badge::before,.mini-badge::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0;}
.badge{padding:4px 11px;font-weight:700;}

/* ---------- حالت خالی ---------- */
.empty-state{background:#FAFBFD;border:1px dashed #CBD3E0;color:var(--muted);padding:36px 16px;border-radius:14px;}

/* ---------- جدول‌ها: data-table و report-table یکدست ---------- */
table.data-table,.report-table-wrap{
    background:var(--surface);border:1px solid var(--cream-dark);border-radius:14px;box-shadow:var(--shadow-xs);
}
.report-table-wrap{overflow-x:auto;}
table.data-table th,.report-table thead th{
    background:#F7F9FC;color:var(--muted);font-weight:700;font-size:12.5px;
    padding:12px 16px;border-bottom:1px solid var(--cream-dark);letter-spacing:0;
}
table.data-table td{padding:14px 16px;border-bottom:1px solid var(--row-line);vertical-align:middle;}
table.data-table td:first-child{font-weight:600;color:var(--ink);}
table.data-table tbody tr:hover{background:var(--hover-bg);}
table.data-table tbody tr:last-child td{border-bottom:none;}

.report-table{background:var(--surface);}
.report-table tbody td{padding:12px 14px;border-top:1px solid var(--row-line);}
.report-table tbody tr:first-child td{border-top:none;}
.report-table tbody tr:hover{background:var(--hover-bg);}
.report-table-subject{color:var(--ink);font-weight:700;}
.report-table-sub,.report-table-empty{color:var(--muted);}

/* برترین‌ها: رتبه‌های اول و ردیف خودم با نوار رنگی کنار ردیف */
.leaderboard-table tbody tr.leaderboard-top{background:color-mix(in srgb, var(--gold) 10%, #fff);}
.leaderboard-table tbody tr.leaderboard-me{background:var(--turquoise-soft);}
.leaderboard-table tbody tr.leaderboard-top td:first-child{box-shadow:inset -3px 0 0 var(--gold);}
.leaderboard-table tbody tr.leaderboard-me td:first-child{box-shadow:inset -3px 0 0 var(--turquoise);}
.schedule-table th,.schedule-table td{border-inline-start:1px solid var(--row-line);}
.schedule-table th:first-child,.schedule-table td:first-child{border-inline-start:none;}

/* ---------- موبایل ---------- */
@media (max-width:600px){
    table.data-table th,table.data-table td{padding:11px 12px;}
    .student-row,.attendance-item,.question-row{padding:12px 13px;}
    .card h3 > i:first-child{width:28px;height:28px;font-size:13px;}
}

/* =====================================================================
   الهام از سیستم طراحی UI.md — کارت‌های گرد، سایدبار شناور، هدر شیشه‌ای،
   ورود دوپنلی، برگهٔ پایین در موبایل، جدول→کارت در موبایل
   ===================================================================== */
:root{
    --turquoise:#1D5CFF;--turquoise-dark:#1546C9;
    --cream:#F3F5FB;--cream-dark:#E3E7F1;--ink:#0F172A;--muted:#5A647A;
    --green:#0B7A52;--green-soft:#E2F6EC;
    --radius:22px;--radius-sm:12px;--radius-lg:28px;
    --sh:0 1px 2px rgba(15,23,42,.05), 0 14px 34px -14px rgba(15,23,42,.18);
    --shadow:var(--sh);--shadow-xs:var(--sh);
    --grad-ac:linear-gradient(135deg, color-mix(in srgb, var(--turquoise) 82%, #fff), var(--turquoise-dark));
}
html,body{font-size:15px;line-height:1.8;}
body{background-image:
    radial-gradient(900px 420px at 100% -8%, color-mix(in srgb, var(--turquoise) 10%, transparent), transparent 65%),
    radial-gradient(700px 380px at 0% 0%, rgba(18,184,134,.07), transparent 60%);
    background-attachment:fixed;}

/* سایدبار شناور + ریل */
.app{align-items:flex-start;}
.sidebar{position:sticky;top:14px;height:calc(100vh - 28px);margin:14px;width:272px;border-radius:26px;
    background:linear-gradient(170deg,#101c40 0%,#0a1230 62%,color-mix(in srgb, var(--turquoise) 38%, #0a1230) 140%);
    box-shadow:0 24px 50px -24px rgba(8,16,40,.6);transition:width .25s ease;}
.nav-link.active{background:linear-gradient(90deg,color-mix(in srgb, var(--turquoise) 55%, transparent),rgba(255,255,255,.04));}
.nav-link.active::before{inset-inline-start:-14px;}
.rail-toggle{display:flex;align-items:center;justify-content:center;width:100%;margin:0 0 12px;padding:8px;border:none;border-radius:10px;
    background:rgba(255,255,255,.06);color:rgba(255,255,255,.7);font-size:13px;}
.rail-toggle:hover{background:rgba(255,255,255,.12);color:#fff;}
.sidebar.rail{width:92px;padding-inline:12px;}
.sidebar.rail .brand span,.sidebar.rail .user,.sidebar.rail .sidebar-date{display:none;}
.sidebar.rail .brand{justify-content:center;padding-inline:0;}
.sidebar.rail .nav-link,.sidebar.rail .logout-link{font-size:0;justify-content:center;padding:12px 0;gap:0;}
.sidebar.rail .nav-link .ic,.sidebar.rail .logout-link .ic{font-size:17px;width:auto;}
.sidebar.rail .nav-link.active::before{inset-inline-start:-12px;}
.sidebar.rail .nav-badge{position:absolute;top:4px;inset-inline-end:10px;font-size:10px;}
.sidebar.rail .rail-toggle i{transform:scaleX(-1);}

/* هدر شیشه‌ای چسبان و عرض محتوا */
.main{max-width:1240px;margin-inline:auto;padding:14px 22px 64px 14px;}
.topbar{position:sticky;top:calc(14px + env(safe-area-inset-top,0px));z-index:40;margin-bottom:16px;
    background:rgba(255,255,255,.78);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);
    border:1px solid rgba(255,255,255,.7);border-radius:20px;box-shadow:var(--sh);}

/* کارت‌ها: گرد و سایهٔ نرم؛ کارت موجودیت با نوار رنگی ۴px */
.card{border-radius:var(--radius);box-shadow:var(--sh);border-color:var(--cream-dark);padding:20px;}
.card:hover{box-shadow:var(--sh);}
.shop-card{position:relative;overflow:hidden;border-radius:22px;box-shadow:var(--sh);padding:20px 18px 16px;transition:transform .2s ease,border-color .2s ease;}
.shop-card::before{content:'';position:absolute;inset:0 0 auto 0;height:4px;background:var(--grad-ac);}
.shop-card:hover{transform:translateY(-3px);border-color:var(--turquoise);box-shadow:var(--sh);}
.student-row,.attendance-item,.question-row,.shop-row,.list-item,.tribe-member{border-radius:16px;background:#fff;}
.quick-link{border-radius:14px;}

/* کاشی‌های شاخص: آیکن رنگی چرخشی، اولی گرادیانی */
.stat-card .ic{border-radius:14px;}
.stat-card:nth-child(5n+2) .ic{background:#DDF6EC;color:#0B7A52;}
.stat-card:nth-child(5n+3) .ic{background:#FEF0D6;color:#B45309;}
.stat-card:nth-child(5n+4) .ic{background:#FCE4EF;color:#BE185D;}
.stat-card:nth-child(5n) .ic{background:#EDF0F5;color:#475569;}
.stat-card:first-child:not(:only-child){background:var(--grad-ac);border:none;color:#fff;}
.stat-card:first-child:not(:only-child) .num{color:#fff;font-size:34px;}
.stat-card:first-child:not(:only-child) .lbl{color:rgba(255,255,255,.82);}
.stat-card:first-child:not(:only-child) .ic{background:rgba(255,255,255,.18);color:#fff;}

/* ورودی‌ها و دکمه‌ها */
.field input,.field select{min-height:42px;border-radius:12px;background-color:#F6F8FD;border:1px solid var(--cream-dark);}
.field input:focus,.field select:focus,.field textarea:focus{background-color:#fff;box-shadow:0 0 0 4px color-mix(in srgb, var(--turquoise) 18%, transparent);}
.field textarea{border-radius:12px;background:#F6F8FD;border:1px solid var(--cream-dark);}
.field select{appearance:none;-webkit-appearance:none;padding-inline-end:15px;padding-inline-start:38px;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%235A647A' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:left 14px center;}
.btn{min-height:40px;border-radius:12px;}
.btn-primary{background:var(--grad-ac);box-shadow:0 12px 22px -12px color-mix(in srgb, var(--turquoise) 80%, #000);}
.btn-primary:hover{background:var(--grad-ac);filter:brightness(1.07);}
.btn-outline{background:color-mix(in srgb, var(--turquoise) 9%, #fff);border:none;color:var(--turquoise-dark);}
.btn-outline:hover{background:color-mix(in srgb, var(--turquoise) 16%, #fff);}
.mode-tabs button.active{background:var(--grad-ac);}

/* جدول‌ها */
table.data-table,.report-table-wrap{border-radius:18px;box-shadow:var(--sh);}

/* ورود دوپنلی */
.login-wrap{background-color:var(--cream);
    background-image:radial-gradient(800px 460px at 85% 0%, color-mix(in srgb, var(--turquoise) 16%, transparent), transparent 65%),
                     radial-gradient(700px 420px at 0% 100%, rgba(18,184,134,.12), transparent 60%);}
.login-card{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:min-content;align-content:stretch;max-width:900px;border-radius:28px;box-shadow:var(--shadow-lg);}
.login-header{grid-column:1;grid-row:1 / span 6;display:flex;flex-direction:column;justify-content:center;padding:48px 34px;color:#fff;
    background:linear-gradient(155deg,#0b1330 0%,color-mix(in srgb, var(--turquoise) 72%, #0b1330) 100%);}
.login-header::before{display:block;content:'';position:absolute;inset:0;opacity:.5;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%23fff' stroke-opacity='.16' stroke-width='1'%3E%3Crect x='14' y='14' width='28' height='28'/%3E%3Crect x='14' y='14' width='28' height='28' transform='rotate(45 28 28)'/%3E%3C/g%3E%3C/svg%3E");}
.login-header h1{color:#fff;font-size:21px;}
.login-header p{color:rgba(255,255,255,.8);}
.login-header .emblem{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.3);}
.login-header .emblem-logo{border-color:rgba(255,255,255,.4);}
.login-card > :not(.login-header){grid-column:2;}
.login-card .role-tabs{margin-top:34px;}

/* جدول → کارت و پنجره → برگهٔ پایین در موبایل */
@media (max-width:900px){
    .sidebar,.sidebar.rail{position:fixed;top:0;right:0;margin:0;height:100vh;width:min(292px,86vw);border-radius:26px 0 0 26px;transform:translateX(100%);}
    .sidebar.open{transform:translateX(0);}
    .rail-toggle{display:none;}
    .sidebar.rail .brand span,.sidebar.rail .user,.sidebar.rail .sidebar-date{display:revert;}
    .sidebar.rail .nav-link,.sidebar.rail .logout-link{font-size:13.5px;justify-content:flex-start;padding:10px 12px;gap:11px;}
    .main{padding:10px 12px 56px;}
    .login-card{grid-template-columns:1fr;max-width:452px;}
    .login-header{grid-row:auto;padding:26px 20px 20px;}
    .login-card > :not(.login-header){grid-column:1;}
    .login-card .role-tabs{margin-top:16px;}
}
@media (max-width:640px){
    .modal-overlay{align-items:flex-end;padding:0;}
    .modal-box{max-width:none;border-radius:26px 26px 0 0;padding:14px 18px calc(22px + env(safe-area-inset-bottom,0px));max-height:92vh;animation:sheetUp .3s cubic-bezier(.21,1,.28,1) both;}
    .modal-box::before{content:'';display:block;width:42px;height:4px;border-radius:9px;background:#CBD3E0;margin:0 auto 14px;}
    table.data-table{border:none;box-shadow:none;background:transparent;border-radius:0;}
    table.data-table thead{display:none;}
    table.data-table,table.data-table tbody,table.data-table tr,table.data-table td{display:block;width:100%;}
    table.data-table tr{background:#fff;border:1px solid var(--cream-dark);border-radius:16px;box-shadow:var(--sh);margin-bottom:10px;padding:6px 4px;}
    table.data-table tbody tr:nth-child(even),table.data-table tbody tr:hover{background:#fff;}
    table.data-table td,#studentsTable td:nth-child(n){display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;white-space:normal;padding:9px 12px;border:none;text-align:left;}
    table.data-table td::before{content:attr(data-label);color:var(--muted);font-weight:600;font-size:12.5px;flex-shrink:0;}
    table.data-table td[data-label=""]::before{display:none;}
    .btn-primary{width:100%;}
}
@keyframes sheetUp{from{transform:translateY(100%);}to{transform:none;}}

/* حرکت: فقط یک توالی ورود پلکانی؛ اسکلت بارگذاری برای استفاده در صفحات */
@keyframes rise{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
.main > .topbar,.main > .card,.main > .grid-2,.main > .grid-3{animation:rise .45s cubic-bezier(.21,1,.28,1) both;}
.main > :nth-child(3){animation-delay:.05s;}.main > :nth-child(4){animation-delay:.1s;}
.main > :nth-child(5){animation-delay:.15s;}.main > :nth-child(n+6){animation-delay:.2s;}
@keyframes shimmer{to{background-position:-200% 0;}}
.skeleton{border-radius:12px;min-height:16px;background:linear-gradient(90deg,#EAEEF6 25%,#F6F8FD 50%,#EAEEF6 75%);background-size:200% 100%;animation:shimmer 1.4s linear infinite;}

/* =====================================================================
   داشبورد دانش‌آموز — کارت‌های نموداری (حلقه، رادار، میله، توزیع)
   ===================================================================== */
.lv-excellent{--lv:#12B886;--lvs:#DDF6EC;}
.lv-good{--lv:var(--turquoise);--lvs:color-mix(in srgb, var(--turquoise) 12%, #fff);}
.lv-acceptable{--lv:#F59E0B;--lvs:#FEF0D6;}
.lv-needs_effort{--lv:#E5484D;--lvs:#FDE8E8;}
.lv-none{--lv:#94A3B8;--lvs:#EDF0F5;}
.status-badge.excellent{background:#DDF6EC;color:#0B7A52;border-color:rgba(18,184,134,.3);}
.status-badge.good{background:color-mix(in srgb, var(--turquoise) 12%, #fff);color:var(--turquoise-dark);border-color:color-mix(in srgb, var(--turquoise) 28%, transparent);}
.status-badge.acceptable{background:#FEF0D6;color:#9A5B08;border-color:rgba(245,158,11,.4);}
.status-badge.needs_effort{background:#FDE8E8;color:#B42327;border-color:rgba(229,72,77,.3);}

.perf-hero{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:14px;margin-bottom:14px;}
.perf-tile{position:relative;overflow:hidden;background:#fff;border:1px solid var(--cream-dark);border-radius:var(--radius);box-shadow:var(--sh);padding:18px 20px;display:flex;flex-direction:column;gap:12px;}
.perf-tile::before{content:'';position:absolute;inset:0 0 auto 0;height:4px;background:var(--lv,var(--turquoise));}
.perf-tile-head{font-size:13px;font-weight:700;color:var(--muted);display:flex;align-items:center;gap:8px;}
.perf-tile-head i{color:var(--lv,var(--turquoise));}
.perf-main-body{display:flex;align-items:center;gap:16px;}
.perf-big{font-size:24px;font-weight:800;line-height:1.3;color:var(--ink);}
.perf-big small{font-size:13px;font-weight:600;color:var(--muted);}
.perf-sub{font-size:12.5px;color:var(--muted);}
.perf-main{background:var(--grad-ac);border:none;color:#fff;}
.perf-main::before{display:none;}
.perf-main .perf-tile-head,.perf-main .perf-sub,.perf-main .perf-big,.perf-main .perf-tile-head i{color:#fff;}
.perf-main .perf-sub{opacity:.85;}

.ring{position:relative;width:104px;height:104px;flex-shrink:0;}
.ring svg{width:100%;height:100%;transform:rotate(-90deg);}
.ring circle{fill:none;stroke-width:9;stroke-linecap:round;}
.ring-bg{stroke:var(--lvs,#EDF0F5);}
.ring-fg{stroke:var(--lv,var(--turquoise));stroke-dasharray:263.9;stroke-dashoffset:var(--off);animation:ringIn 1.1s cubic-bezier(.21,1,.28,1) both;}
@keyframes ringIn{from{stroke-dashoffset:263.9;}}
.ring-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1;}
.ring-c b{font-size:24px;font-weight:800;font-variant-numeric:tabular-nums;}
.ring-c small{font-size:11px;font-weight:600;opacity:.7;}
.perf-main .ring-bg{stroke:rgba(255,255,255,.25);}
.perf-main .ring-fg{stroke:#fff;}

.dist{display:flex;gap:3px;height:10px;border-radius:99px;overflow:hidden;background:rgba(255,255,255,.2);}
.dist i{background:var(--lv);border-radius:3px;}
.perf-main .dist .lv-excellent{background:#5CE0B5;}.perf-main .dist .lv-good{background:#fff;}
.perf-main .dist .lv-acceptable{background:#FFD27A;}.perf-main .dist .lv-needs_effort{background:#FF9A9D;}
.dist-legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;}
.dist-legend span{display:inline-flex;align-items:center;gap:6px;}
.dist-legend i{width:8px;height:8px;border-radius:50%;background:var(--lv);}
.perf-main .dist-legend .lv-excellent i{background:#5CE0B5;}.perf-main .dist-legend .lv-good i{background:#fff;}
.perf-main .dist-legend .lv-acceptable i{background:#FFD27A;}.perf-main .dist-legend .lv-needs_effort i{background:#FF9A9D;}
.spark{width:100%;height:40px;}
.spark polygon{fill:color-mix(in srgb, var(--lv,var(--turquoise)) 14%, transparent);}
.spark polyline{fill:none;stroke:var(--lv,var(--turquoise));stroke-width:2;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke;}

.perf-report{display:grid;grid-template-columns:minmax(0,260px) 1fr;gap:18px;align-items:center;}
.perf-report:not(:has(.perf-radar)){grid-template-columns:1fr;}
.radar{width:100%;max-width:260px;height:auto;display:block;margin:0 auto;}
.radar .rg{fill:none;stroke:var(--cream-dark);stroke-width:1;}
.radar .ra{stroke:var(--cream-dark);stroke-width:1;}
.radar .rv{fill:color-mix(in srgb, var(--turquoise) 22%, transparent);stroke:var(--turquoise);stroke-width:2;stroke-linejoin:round;animation:rise .8s both;}
.radar .rd{fill:#fff;stroke:var(--turquoise);stroke-width:2;}
.radar text{font-size:9.5px;fill:var(--muted);font-family:inherit;font-weight:600;}
.subj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;}
.subj-tile{position:relative;overflow:hidden;background:#fff;border:1px solid var(--cream-dark);border-radius:16px;padding:16px 14px 13px;display:flex;flex-direction:column;gap:11px;transition:transform .2s ease,border-color .2s ease;}
.subj-tile::before{content:'';position:absolute;inset:0 0 auto 0;height:4px;background:var(--lv);}
.subj-tile:hover{transform:translateY(-3px);border-color:var(--lv);}
.subj-head{display:flex;align-items:center;gap:9px;}
.avatar{width:34px;height:34px;border-radius:11px;background:var(--lvs);color:var(--lv);display:inline-flex;align-items:center;justify-content:center;font-weight:800;flex-shrink:0;}
.subj-name{font-weight:700;font-size:14px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.meter{display:flex;gap:4px;}
.meter span{flex:1;height:7px;border-radius:99px;background:#EAEEF6;}
.meter span.on{background:var(--lv);}
.subj-chips{display:flex;gap:6px;flex-wrap:wrap;}
.chip{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:99px;background:#F1F4F9;color:var(--muted);}
.chip[class*="lv-"]{background:var(--lvs);color:var(--ink);}
.chip i{color:var(--lv,var(--muted));font-size:11px;}

.prog-list{display:flex;flex-direction:column;gap:10px;}
.prog-row{display:grid;grid-template-columns:minmax(80px,140px) 1fr auto auto;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--cream-dark);border-radius:14px;background:#fff;}
.prog-name{font-weight:700;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.prog-bar{height:10px;border-radius:99px;background:var(--lvs);overflow:hidden;}
.prog-bar i{display:block;height:100%;border-radius:99px;background:var(--lv);animation:barIn .9s cubic-bezier(.21,1,.28,1) both;transform-origin:right;}
@keyframes barIn{from{transform:scaleX(0);}}
.prog-val{font-size:12.5px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;}
.prog-val b{color:var(--ink);}
.perf-hint{margin-top:12px;padding:10px 14px;border-radius:12px;background:#FEF0D6;color:#7A4A06;font-size:13px;}
.perf-hint i{margin-inline-end:6px;}
.perf-link{margin-top:14px;font-size:13.5px;font-weight:700;}
.perf-link a{color:var(--turquoise-dark);}

@media (max-width:1100px){.perf-hero{grid-template-columns:1fr 1fr;}.perf-main{grid-column:1 / -1;}}
@media (max-width:760px){.perf-report{grid-template-columns:1fr;}}
@media (max-width:640px){
    .perf-hero{grid-template-columns:1fr;}
    .prog-row{grid-template-columns:1fr auto;}
    .prog-bar{grid-column:1 / -1;order:3;}
    .prog-val{grid-column:1;}
    .ring{width:92px;height:92px;}
}

/* =====================================================================
   داشبورد دانش‌آموز — آلارم‌ها، کارت سکه، کارت غول هفته
   ===================================================================== */
.dash-alerts{display:flex;flex-direction:column;gap:12px;margin-bottom:14px;}
.dash-alerts .alerts-bar,.dash-alerts .attendance-alert{margin-bottom:0;}
.alerts-bar{background:#fff;border:1px solid var(--cream-dark);border-radius:18px;box-shadow:var(--sh);padding:10px 14px;gap:14px;}
.alerts-bell{width:46px;height:46px;border-radius:14px;border:none;background:var(--turquoise-soft);color:var(--turquoise-dark);box-shadow:none;font-size:19px;}
.alerts-bell:hover{transform:none;background:color-mix(in srgb, var(--turquoise) 18%, #fff);}
.alerts-bell-badge{top:-6px;left:-6px;background:#E5484D;box-shadow:0 0 0 3px #fff;}
.alerts-bar:has(.alerts-bell-badge[style*="inline-flex"]) .alerts-bell{animation:bellWob 1.6s ease-in-out 3;transform-origin:50% 10%;}
@keyframes bellWob{0%,100%{transform:rotate(0);}15%{transform:rotate(14deg);}30%{transform:rotate(-12deg);}45%{transform:rotate(8deg);}60%{transform:rotate(-5deg);}}
.alerts-bell-text{display:flex;flex-direction:column;line-height:1.5;}
.alerts-bell-title{font-size:14px;font-weight:800;color:var(--ink);}
.alerts-bell-label{font-size:12.5px;font-weight:500;color:var(--muted);}
.alerts-bar:has(.alerts-bell-badge[style*="inline-flex"]) .alerts-bell-label{color:#C2410C;font-weight:700;}

.attendance-alert{--tone:#12B886;border-radius:18px;padding:16px 18px;gap:14px;color:var(--ink);box-shadow:var(--sh);
    background:radial-gradient(420px 120px at 100% 0%, color-mix(in srgb, var(--tone) 16%, transparent), transparent 70%), #fff;
    border:1px solid color-mix(in srgb, var(--tone) 35%, var(--cream-dark));}
.attendance-alert::before{display:none;}
.attendance-alert.present{--tone:#12B886;background:radial-gradient(420px 120px at 100% 0%, color-mix(in srgb, var(--tone) 16%, transparent), transparent 70%), #fff;border:1px solid color-mix(in srgb, var(--tone) 35%, var(--cream-dark));color:var(--ink);}
.attendance-alert.absent{--tone:#E5484D;background:radial-gradient(420px 120px at 100% 0%, color-mix(in srgb, var(--tone) 16%, transparent), transparent 70%), #fff;border:1px solid color-mix(in srgb, var(--tone) 35%, var(--cream-dark));color:var(--ink);}
.attendance-alert.excused{--tone:#F59E0B;background:radial-gradient(420px 120px at 100% 0%, color-mix(in srgb, var(--tone) 16%, transparent), transparent 70%), #fff;border:1px solid color-mix(in srgb, var(--tone) 35%, var(--cream-dark));color:var(--ink);}
.attendance-alert .alert-icon{width:48px;height:48px;border-radius:15px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:22px;
    background:color-mix(in srgb, var(--tone) 16%, #fff);color:var(--tone);}
.attendance-alert.absent .alert-icon{animation:alertPulse 2.2s ease-out 3;}
@keyframes alertPulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--tone) 45%, transparent);}100%{box-shadow:0 0 0 16px transparent;}}
.attendance-alert .alert-text strong{font-size:15px;}
.attendance-alert .alert-text span{color:var(--muted);opacity:1;}
.attendance-alert .alert-link{align-self:flex-start;text-decoration:none;padding:6px 12px;border-radius:99px;background:color-mix(in srgb, var(--tone) 14%, #fff);color:var(--tone);font-weight:700;}
.attendance-alert .alert-note{color:var(--muted);}
.alert-item{background:#fff;border:1px solid var(--cream-dark);border-radius:14px;}
.alert-item.alert-item-new{background:var(--turquoise-soft);border-color:color-mix(in srgb, var(--turquoise) 35%, transparent);position:relative;}
.alert-item.alert-item-new::after{content:'';position:absolute;top:12px;inset-inline-end:12px;width:8px;height:8px;border-radius:50%;background:#E5484D;}
.alert-item-icon{width:40px;height:40px;border-radius:12px;background:var(--cream);display:inline-flex;align-items:center;justify-content:center;font-size:18px;}

.dash-duo{display:grid;grid-template-columns:1fr 1.15fr;gap:14px;margin-bottom:14px;}
.coin-card,.boss-card{position:relative;overflow:hidden;border-radius:var(--radius);box-shadow:var(--sh);padding:20px;display:flex;flex-direction:column;gap:16px;}
.coin-card a,.boss-card a{text-decoration:none;}

/* سکه */
.coin-card{background:radial-gradient(380px 200px at 100% 0%, #FFF1C9, transparent 65%), #fff;border:1px solid #F1E3B8;}
.coin-top{display:flex;align-items:center;gap:16px;}
.coin-disc{width:74px;height:74px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:30px;color:#7A5200;
    background:radial-gradient(circle at 30% 25%, #FFE9A3, #F5B71C 62%, #D18A06);
    box-shadow:inset 0 0 0 5px rgba(255,255,255,.35), inset 0 -4px 8px rgba(122,82,0,.25), 0 14px 26px -12px rgba(209,138,6,.85);}
.coin-label{font-size:13px;font-weight:700;color:#7A5A12;}
.coin-num{font-size:42px;font-weight:800;line-height:1.1;color:var(--ink);font-variant-numeric:tabular-nums;}
.coin-flow-bar{height:10px;border-radius:99px;background:linear-gradient(90deg,#12B886,#6ED8B4);overflow:hidden;display:flex;justify-content:flex-end;}
.coin-flow-bar i{display:block;height:100%;background:#F59E0B;border-radius:99px;}
.coin-flow-legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:9px;font-size:12.5px;color:var(--muted);}
.coin-flow-legend span{display:inline-flex;align-items:center;gap:6px;}
.coin-flow-legend i{width:9px;height:9px;border-radius:50%;}
.coin-flow-legend .earned i{background:#12B886;}.coin-flow-legend .spent i{background:#F59E0B;}
.coin-flow-legend b{color:var(--ink);font-variant-numeric:tabular-nums;}
.coin-btn,.boss-btn{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border-radius:12px;font-weight:700;font-size:13.5px;margin-top:auto;transition:filter .2s;}
.coin-btn{background:linear-gradient(135deg,#FFD66B,#F5B71C);color:#5C3C00;box-shadow:0 12px 22px -12px rgba(209,138,6,.9);}
.coin-btn:hover,.boss-btn:hover{filter:brightness(1.06);}

/* غول هفته: تنها کارت تیره‌ی داشبورد */
.boss-card{color:#fff;border:none;
    background:radial-gradient(420px 220px at 0% 0%, rgba(255,93,93,.28), transparent 65%),
               radial-gradient(360px 200px at 100% 100%, rgba(120,80,255,.28), transparent 65%),
               linear-gradient(150deg,#150d30,#2b0f3b 55%,#3f1030);
    box-shadow:0 24px 50px -24px rgba(40,10,60,.75);}
.boss-top{display:flex;align-items:center;gap:14px;}
.boss-card .boss-ico{width:68px;height:68px;border-radius:20px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:30px;color:#fff;
    background:radial-gradient(circle at 30% 25%, #FF8A7A, #D8353A 60%, #7E1424);
    box-shadow:0 0 0 1px rgba(255,255,255,.25) inset, 0 0 32px rgba(255,80,80,.5);}
.boss-info{flex:1;min-width:0;}
.boss-kicker{font-size:12.5px;color:rgba(255,255,255,.7);font-weight:600;}
.boss-name{font-size:22px;font-weight:800;line-height:1.3;overflow-wrap:anywhere;}
.boss-chest{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:99px;font-size:12px;font-weight:800;color:#4A3000;background:linear-gradient(135deg,#FFD66B,#F5B71C);animation:chestPulse 2s ease-out infinite;}
@keyframes chestPulse{0%{box-shadow:0 0 0 0 rgba(245,183,28,.55);}100%{box-shadow:0 0 0 14px rgba(245,183,28,0);}}
.boss-hp-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;font-size:13px;font-weight:700;}
.tribe-chip{display:inline-flex;align-items:center;gap:7px;padding:4px 12px;border-radius:99px;background:color-mix(in srgb, var(--tc,#FFB020) 28%, transparent);border:1px solid color-mix(in srgb, var(--tc,#FFB020) 60%, transparent);}
.boss-hp-bar{height:14px;border-radius:99px;background:rgba(255,255,255,.12);overflow:hidden;box-shadow:inset 0 1px 3px rgba(0,0,0,.4);}
.boss-hp-bar i{display:block;height:100%;border-radius:99px;transform-origin:right;animation:barIn 1s cubic-bezier(.21,1,.28,1) both;
    background:linear-gradient(90deg,#FF5D5D,#FF9A5C);box-shadow:0 0 14px rgba(255,93,93,.6);}
.boss-hp-foot{margin-top:8px;font-size:12.5px;color:rgba(255,255,255,.72);}
.boss-level{display:flex;align-items:center;gap:12px;font-size:12.5px;color:rgba(255,255,255,.85);}
.boss-level b{font-size:15px;color:#fff;}
.boss-xp{flex:1;height:6px;border-radius:99px;background:rgba(255,255,255,.14);overflow:hidden;}
.boss-xp i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#7DD3FC,#A78BFA);}
.boss-btn{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);color:#fff;backdrop-filter:blur(6px);}
.boss-btn:hover{background:rgba(255,255,255,.22);}

@media (max-width:900px){.dash-duo{grid-template-columns:1fr;}}
@media (max-width:480px){.coin-num{font-size:36px;}.boss-name{font-size:19px;}.boss-top{flex-wrap:wrap;}}

/* =====================================================================
   داشبورد معلم — هم‌الگو با داشبورد دانش‌آموز
   ===================================================================== */
/* کارت حضور امروز (هم‌خانوادهٔ کارت سکه، با رنگ سبز) */
.coin-card.att-card{background:radial-gradient(380px 200px at 100% 0%, #D7F5E8, transparent 65%), #fff;border:1px solid #BFE8D6;}
.att-card .coin-disc{color:#065F46;background:radial-gradient(circle at 30% 25%, #A7F0CF, #12B886 62%, #0B7A52);
    box-shadow:inset 0 0 0 5px rgba(255,255,255,.35), inset 0 -4px 8px rgba(6,95,70,.25), 0 14px 26px -12px rgba(11,122,82,.8);}
.att-card .coin-label{color:#0B6B49;}
.att-card .coin-flow-bar{background:linear-gradient(90deg,#12B886,#6ED8B4);}
.att-card .coin-flow-bar i{background:#E5484D;}
.coin-flow-legend .excusedl i{background:#F59E0B;}
.att-card .coin-btn{background:linear-gradient(135deg,#34D399,#12B886);color:#053D2B;box-shadow:0 12px 22px -12px rgba(11,122,82,.9);}

/* قبیله‌ها در کارت غول هفته */
.boss-tribes{display:flex;flex-direction:column;gap:12px;}
.boss-tribes .boss-hp-head{margin-bottom:6px;}
.boss-tribes .boss-hp-val{font-size:12px;opacity:.85;white-space:nowrap;}

/* دسترسی سریع */
.qa-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;}
.qa-tile{position:relative;overflow:hidden;display:flex;align-items:center;gap:11px;padding:16px 14px 13px;background:#fff;border:1px solid var(--cream-dark);border-radius:16px;
    color:var(--ink);text-decoration:none;font-weight:700;font-size:14px;transition:transform .2s ease,border-color .2s ease;}
.qa-tile::before{content:'';position:absolute;inset:0 0 auto 0;height:4px;background:var(--lv);}
.qa-tile:hover{transform:translateY(-3px);border-color:var(--lv);}
.qa-tile .avatar{width:38px;height:38px;border-radius:12px;font-size:16px;}
.qa-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.qa-go{color:var(--lv);font-size:12px;opacity:.7;transition:transform .2s;}
.qa-tile:hover .qa-go{transform:translateX(-4px);opacity:1;}

/* ردیف‌های فید (انضباط / تکالیف اخیر) */
.feed-list{display:flex;flex-direction:column;gap:10px;}
.feed-row{position:relative;display:flex;align-items:center;gap:12px;padding:12px 14px;background:#fff;border:1px solid var(--cream-dark);border-radius:16px;transition:transform .2s ease,border-color .2s ease;}
.feed-row::before{content:'';position:absolute;inset-block:10px;inset-inline-start:0;width:4px;border-radius:99px;background:var(--lv,var(--turquoise));}
.feed-click{cursor:pointer;}
.feed-click:hover,.feed-click:focus-visible{transform:translateY(-2px);border-color:var(--lv,var(--turquoise));outline:none;}
.feed-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;}
.feed-title{font-weight:700;font-size:14px;}
.feed-sub{font-size:12.5px;color:var(--muted);overflow-wrap:anywhere;}
.feed-bar{height:7px;margin-top:4px;max-width:320px;}
.feed-row .q-counts{flex-direction:row;gap:6px;}

/* کاشی «ثبت‌نشده» در کارت اصلی تیره‌رنگ */
.perf-main .dist .lv-none{background:rgba(255,255,255,.38);}
.perf-main .dist-legend .lv-none i{background:rgba(255,255,255,.55);}
.perf-main .dist-legend span{color:#fff;}

@media (max-width:600px){
    .feed-row{flex-wrap:wrap;}
    .feed-row > .status-badge{margin-inline-start:46px;}
    .feed-row .q-counts{width:calc(100% - 46px);max-width:calc(100% - 46px);margin-inline-start:46px;box-sizing:border-box;min-width:0;}
    .feed-row .q-counts .mini-badge{flex:1 1 0;min-width:0;justify-content:center;white-space:nowrap;}
    .qa-grid{grid-template-columns:repeat(2,1fr);}
}

/* کیف پول معلم */
.wallet-card{border-radius:var(--radius);box-shadow:var(--sh);padding:20px;margin-bottom:14px;display:flex;flex-direction:column;gap:14px;
    background:radial-gradient(420px 200px at 100% 0%, #E4DCFF, transparent 65%), #fff;border:1px solid #D8CEF5;}
.wallet-top{display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.wallet-disc{width:64px;height:64px;border-radius:20px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:28px;color:#fff;background:linear-gradient(135deg,#8B6CF0,#5B3FD0);box-shadow:0 14px 26px -12px rgba(91,63,208,.8);}
.wallet-info{flex:1;min-width:180px;}
.wallet-label{font-size:13px;font-weight:700;color:#5B3FD0;}
.wallet-num{font-size:38px;font-weight:800;line-height:1.15;color:var(--ink);font-variant-numeric:tabular-nums;}
.wallet-num small{font-size:14px;font-weight:700;color:var(--muted);}
.wallet-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border:none;border-radius:12px;cursor:pointer;font:inherit;font-weight:700;font-size:13.5px;color:#fff;background:linear-gradient(135deg,#8B6CF0,#5B3FD0);box-shadow:0 12px 22px -12px rgba(91,63,208,.9);}
.wallet-btn:hover{filter:brightness(1.07);}
.wallet-btn:disabled{opacity:.6;cursor:wait;}
.wallet-stats{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:12.5px;color:var(--muted);}
.wallet-stats i{color:#7C5CE6;margin-inline-end:4px;}
.wallet-stats b{color:var(--ink);font-variant-numeric:tabular-nums;}
.wallet-recent{display:flex;flex-direction:column;gap:8px;}
.wallet-line{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#fff;border:1px solid var(--cream-dark);border-radius:14px;}
.wallet-line .avatar{background:#EFEAFF;color:#5B3FD0;}
.wl-main{flex:1;min-width:0;font-size:13px;overflow-wrap:anywhere;}
.wl-main small{color:var(--muted);}
.wallet-empty{font-size:13px;color:var(--muted);}
.wallet-pick-head{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;color:var(--muted);margin-bottom:6px;}
.wallet-all{display:inline-flex;align-items:center;gap:6px;cursor:pointer;}
.wallet-students{max-height:240px;overflow:auto;border:1px solid var(--cream-dark);border-radius:12px;padding:6px;margin-bottom:12px;}
.wallet-st{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:8px;cursor:pointer;font-size:13.5px;}
.wallet-st:hover{background:#F6F4FF;}
.wallet-st small{color:var(--muted);margin-inline-start:auto;}
.wallet-msg{padding:10px 14px;border-radius:12px;font-size:13px;margin:10px 0;}
.wallet-msg.ok{background:#DDF6EC;color:#0B7A52;}
.wallet-msg.err{background:#FDE8E8;color:#B42327;}
.wallet-submit{width:100%;margin-top:6px;}

/* =====================================================================
   تحلیل نموداری کارنامه (پنل دانش‌آموز / اولیا)
   ===================================================================== */
.an-card .perf-hero{margin-bottom:16px;}
.an-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
.an-col{border:1px solid var(--cream-dark);border-radius:16px;padding:16px;background:#fff;min-width:0;}
.an-col.good{background:linear-gradient(180deg,#F1FBF6,#fff 60%);border-color:#BFE8D6;}
.an-col.warn{background:linear-gradient(180deg,#FFF7EA,#fff 60%);border-color:#F6DDB0;}
.an-col h4,.an-chart h4,.an-tips h4,.an-matrix-wrap h4{margin:0 0 12px;font-size:14.5px;font-weight:800;display:flex;align-items:center;gap:8px;}
.an-col.good h4 i{color:#12B886;}.an-col.warn h4 i{color:#F59E0B;}
.an-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;}
.an-item{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:12px;background:#fff;border:1px solid var(--cream-dark);}
.an-item > div{display:flex;flex-direction:column;gap:2px;min-width:0;}
.an-item b{font-size:13.5px;}
.an-item span:not(.an-ic){font-size:12.5px;color:var(--muted);line-height:1.8;overflow-wrap:anywhere;}
.an-ic{width:32px;height:32px;border-radius:10px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;font-size:14px;background:#DDF6EC;color:#0B7A52;}
.an-item.tone-warn .an-ic{background:#FEF0D6;color:#9A5B08;}
.an-item.tone-bad .an-ic{background:#FDE8E8;color:#B42327;}
.an-empty{font-size:13px;color:var(--muted);padding:8px 2px;}
.an-tips{background:#F3F0FF;border:1px solid #DCD3F8;border-radius:16px;padding:16px;margin-bottom:14px;}
.an-tips h4 i{color:#7C5CE6;}
.an-tips ul{margin:0;padding-inline-start:20px;display:flex;flex-direction:column;gap:7px;font-size:13px;line-height:1.9;}
.an-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:14px;margin-bottom:14px;}
.an-chart{border:1px solid var(--cream-dark);border-radius:16px;padding:16px;background:#fff;min-width:0;}
.an-canvas{position:relative;height:260px;}
.an-matrix-wrap{border:1px solid var(--cream-dark);border-radius:16px;padding:16px;background:#fff;}
.an-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.an-matrix{width:100%;border-collapse:separate;border-spacing:0 6px;font-size:12.5px;min-width:560px;}
.an-matrix th{font-weight:700;color:var(--muted);text-align:center;padding:4px 6px;white-space:nowrap;}
.an-matrix td{text-align:center;padding:2px 4px;}
.an-matrix th:first-child,.an-subj{text-align:start;font-weight:700;font-size:13px;white-space:nowrap;}
.an-cell{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:74px;padding:6px 8px;border-radius:10px;font-weight:700;background:var(--lvs);color:var(--ink);border:1px solid color-mix(in srgb, var(--lv) 30%, transparent);}
.an-cell small{font-size:10.5px;font-weight:600;opacity:.75;}
.an-cmp{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border-radius:10px;font-weight:700;}
.an-cmp.up{background:#DDF6EC;color:#0B7A52;}.an-cmp.down{background:#FDE8E8;color:#B42327;}.an-cmp.eq{background:#EDF0F5;color:#475569;}
.an-note{margin-top:10px;font-size:11.5px;color:var(--muted);}
@media (max-width:760px){.an-cols{grid-template-columns:1fr;}.an-canvas{height:240px;}}
