/* =====================================================================
   سامانه مدیریت مالی مدرسه سوره — پوسته بصری ملایم و مینیمال (Soureh Theme v2)
   نکته: این فایل فقط ظاهر را بازطراحی می‌کند و به هیچ کلاس/شناسه‌ای که
   جاوااسکریپت (jQuery / select2 / flatpickr / bootstrap modal / منو)
   به آن وابسته است دست نمی‌زند.
   ===================================================================== */

@import url('https://cdn.jsdelivr.net/gh/rastikerdar/vazirmatn@v33.003/Vazirmatn-font-face.css');

:root{
    /* پالت ملایم و مینیمال — indigo/slate خنثی */
    --sr-bg:        #F7F8FB;
    --sr-surface:   #FFFFFF;
    --sr-border:    #EAEBF1;
    --sr-text:      #262B3A;
    --sr-muted:     #8A93A6;
    --sr-primary:   #5B67E8;
    --sr-primary-d: #4650C7;
    --sr-primary-soft: #EEF0FE;
    --sr-primary-ring: rgba(91,103,232,0.16);
    --sr-accent:    #A5AEFB;
    --sr-thead:     #2B2F3A;
    --sr-success:   #22C55E;
    --sr-success-d: #16A34A;
    --sr-danger:    #EF4444;

    --sr-radius: 0.85rem;
    --sr-radius-sm: 0.6rem;
    --sr-shadow: 0 1px 2px rgba(20,24,40,0.04), 0 4px 14px rgba(20,24,40,0.05);
    --sr-shadow-md: 0 4px 10px rgba(20,24,40,0.05), 0 10px 28px rgba(20,24,40,0.08);
    --sr-transition: all .2s ease;
}

@keyframes sr-fade-up{ from{ opacity:0; transform: translateY(6px); } to{ opacity:1; transform: translateY(0); } }
@keyframes sr-fade-in{ from{ opacity:0; } to{ opacity:1; } }

/* ---------- پایه ---------- */
html, body{
    background: var(--sr-bg) !important;
    color: var(--sr-text);
    font-family: 'Vazirmatn', 'Segoe UI', Tahoma, sans-serif !important;
    font-weight: 400;
    color-scheme: light;
}
h1,h2,h3,h4,h5,h6{ font-weight: 600 !important; }
*{ scrollbar-width: thin; scrollbar-color: var(--sr-accent) transparent; }
::-webkit-scrollbar{ width: 7px; height: 7px; }
::-webkit-scrollbar-thumb{ background: var(--sr-accent); border-radius: 10px; }
::-webkit-scrollbar-track{ background: transparent; }
a{ transition: var(--sr-transition); }


.soureh-app{ display:flex; min-height:100vh; background: var(--sr-bg); }

.soureh-overlay{
    position:fixed; inset:0; z-index:45;
    background: rgba(38,43,58,0.35);
    transition: opacity .2s ease;
}
.soureh-overlay.soureh-hidden{ display:none; }


.soureh-sidebar{
    position:fixed; top:0; right:0; bottom:0; z-index:50;
    width:225px;
    background: var(--sr-surface);
    border-left:1px solid var(--sr-border);
    display:flex; flex-direction:column;
    transition: width .22s ease, transform .22s ease;
    transform: translateX(0);
}
.soureh-sidebar-brand{
    display:flex; align-items:center; gap:12px;
    padding:20px 18px;
    border-bottom:1px solid var(--sr-border);
    flex-shrink:0;
    overflow:hidden;
    white-space:nowrap;
}
.soureh-brand-badge{
    width:38px; height:38px; border-radius:10px;
    background: var(--sr-primary-soft);
    display:flex; align-items:center; justify-content:center;
    color: var(--sr-primary); font-size:1.05rem; flex-shrink:0;
}
.soureh-brand-title{ display:block; font-weight:700; font-size:.95rem; color: var(--sr-text); }
.soureh-brand-sub{ display:block; font-size:.7rem; color: var(--sr-muted); margin-top:1px; font-weight:400; }

.soureh-sidebar-nav{ flex:1; overflow-y:auto; overflow-x:hidden; padding:16px 10px; }
.soureh-nav-label{
    font-size:.68rem; font-weight:600; color: var(--sr-muted);
    padding: 4px 14px 8px; letter-spacing:.4px; white-space:nowrap; overflow:hidden;
}
.soureh-nav-link{
    display:flex; align-items:center; gap:12px;
    padding:10px 14px; border-radius: var(--sr-radius-sm);
    color: var(--sr-text); font-size:.85rem; font-weight:500;
    margin-bottom:2px; transition: var(--sr-transition);
    white-space:nowrap; overflow:hidden;
}
.soureh-nav-link i{
    font-size:1.15rem; color: var(--sr-muted);
    flex-shrink:0; width:22px; text-align:center;
    transition: var(--sr-transition);
}
.soureh-nav-link span{ overflow:hidden; text-overflow:ellipsis; }
.soureh-nav-link:hover{ background: var(--sr-bg); color: var(--sr-text); }
.soureh-nav-link:hover i{ color: var(--sr-primary); }
.soureh-nav-link.active{
    background: var(--sr-primary-soft); color: var(--sr-primary-d); font-weight:600;
}
.soureh-nav-link.active i{ color: var(--sr-primary); }

/* --- بخش اصلی --- */
.soureh-main{ flex:1; display:flex; flex-direction:column; min-width:0; margin-right:210px; transition: margin-right .22s ease; }

.soureh-header{
    position: sticky; top:0; z-index:20;
    height:60px; flex-shrink:0;
    background: rgba(247,248,251,0.85);
    backdrop-filter: blur(8px);
    border-bottom:1px solid var(--sr-border);
    transition: box-shadow .2s;
}
.soureh-header.soureh-scrolled{ box-shadow: var(--sr-shadow); background: rgba(255,255,255,0.92); }
.soureh-header-inner{ height:100%; display:flex; align-items:center; justify-content:space-between; padding:0 20px; gap:12px; }
.soureh-header-right{ display:flex; align-items:center; gap:12px; min-width:0; }
.soureh-page-title{ font-size:.98rem; font-weight:600 !important; color: var(--sr-text); margin:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.soureh-icon-btn{
    width:36px; height:36px; border-radius: var(--sr-radius-sm);
    display:flex; align-items:center; justify-content:center;
    color: var(--sr-muted); font-size:1.15rem; flex-shrink:0;
    transition: var(--sr-transition);
    border: none;
}
.soureh-icon-btn:hover{ background: var(--sr-primary-soft); color: var(--sr-primary); }

.soureh-content{ flex:1; padding: 20px 24px; animation: sr-fade-up .3s ease; }
.soureh-footer{ padding:12px 24px; text-align:center; font-size:.76rem; color: var(--sr-muted); border-top:1px solid var(--sr-border); }

/* --- حالت جمع‌شده (آیکون‌محور) — یک کلاس واحد روی ریشه، بدون قوانین متناقض --- */
.soureh-app.soureh-collapsed .soureh-sidebar{ width:72px; }
.soureh-app.soureh-collapsed .soureh-main{ margin-right:72px; }
.soureh-app.soureh-collapsed .soureh-brand-title,
.soureh-app.soureh-collapsed .soureh-brand-sub,
.soureh-app.soureh-collapsed .soureh-nav-label,
.soureh-app.soureh-collapsed .soureh-nav-link span{ display:none; }
.soureh-app.soureh-collapsed .soureh-nav-link{ justify-content:center; padding:10px; }
.soureh-app.soureh-collapsed .soureh-sidebar-brand{ justify-content:center; padding:20px 0; }

/* --- موبایل/تبلت: اسلاید کامل از کنار --- */
@media (max-width:1024px){
    .soureh-sidebar{ transform: translateX(100%); width:210px !important; }
    .soureh-sidebar.soureh-open{ transform: translateX(0); }
    .soureh-main, .soureh-app.soureh-collapsed .soureh-main{ margin-right:0 !important; }
    .soureh-app.soureh-collapsed .soureh-sidebar:not(.soureh-open){ transform: translateX(100%); }
    .soureh-app.soureh-collapsed .soureh-brand-title,
    .soureh-app.soureh-collapsed .soureh-brand-sub,
    .soureh-app.soureh-collapsed .soureh-nav-label,
    .soureh-app.soureh-collapsed .soureh-nav-link span{ display:block; }
    .soureh-app.soureh-collapsed .soureh-nav-link{ justify-content:flex-start; padding:10px 14px; }
    .soureh-app.soureh-collapsed .soureh-sidebar-brand{ justify-content:flex-start; padding:20px 18px; }
}
@media (max-width:640px){
    .soureh-sidebar{ width:85% !important; max-width:290px; }
    .soureh-header-inner{ padding:0 14px; }
    .soureh-content{ padding:14px; }
    .soureh-page-title{ font-size:.85rem; }
}

/* --- کارت‌های آماری داشبورد --- */
.soureh-stats-grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap:14px; margin-bottom:18px; }
@media (max-width:992px){ .soureh-stats-grid{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width:560px){ .soureh-stats-grid{ grid-template-columns: 1fr; } }
.soureh-stat-card{
    border-radius: var(--sr-radius);
    padding: 1rem 1.15rem;
    background: var(--sr-surface);
    border: 1px solid var(--sr-border);
    transition: var(--sr-transition);
}
.soureh-stat-card:hover{ box-shadow: var(--sr-shadow); }
.soureh-stat-icon{
    width:40px; height:40px; border-radius: 10px;
    display:flex; align-items:center; justify-content:center;
    background: var(--sr-primary-soft); color: var(--sr-primary); font-size:1.05rem;
}

/* --- آیکون‌های SVG مدرن --- */
.sr-icon{ display:inline-flex; align-items:center; justify-content:center; line-height:0; }
.sr-icon svg{ display:block; width:100%; height:100%; fill:none; stroke:currentColor; }
.soureh-nav-link .sr-icon svg{ width:19px; height:19px; }
.soureh-icon-btn .sr-icon svg{ width:19px; height:19px; }
.soureh-brand-badge .sr-icon svg{ width:20px; height:20px; }
.soureh-stat-icon .sr-icon svg{ width:21px; height:21px; }

/* --- آیکون‌های عملیاتی جدول‌ها (ویرایش/حذف/بازگشت) --- */
.sr-icon-edit{ color: var(--sr-primary); transition: var(--sr-transition); }
.sr-icon-edit:hover{ color: var(--sr-primary-d); }
.sr-icon-danger{ color: var(--sr-danger); transition: var(--sr-transition); }
.sr-icon-danger:hover{ color:#C81E1E; }
.sr-icon-muted-disabled{ color:#C7CBD6; cursor:not-allowed; }
.sr-icon-back{ color: var(--sr-muted); vertical-align:middle; margin-inline-start:6px; }
a:has(> .sr-icon-edit), a:has(> .sr-icon-danger), a:has(> .sr-icon-muted-disabled){ display:inline-flex; }

/* =====================================================================
   المان‌های عمومی محتوا (کارت‌ها، فرم‌ها، جدول‌ها، مودال‌ها)
   ===================================================================== */

.card{
    border: 1px solid var(--sr-border) !important;
    border-radius: var(--sr-radius) !important;
    box-shadow: var(--sr-shadow) !important;
    transition: var(--sr-transition);
}
.card-header{ border-bottom: 1px solid var(--sr-border) !important; border-radius: var(--sr-radius) var(--sr-radius) 0 0 !important; }
.card-header .card-title{ font-weight: 600 !important; color: var(--sr-text); }

.form-header, .modal-header{
    border-radius: var(--sr-radius) var(--sr-radius) 0 0 !important;
    box-shadow: none !important;
}
.modal-content{
    border: none !important;
    border-radius: var(--sr-radius) !important;
    box-shadow: var(--sr-shadow-md) !important;
    animation: sr-fade-up .2s ease;
    overflow: hidden;
}
.modal-footer{ border-top: 1px solid var(--sr-border) !important; }
.btn-close{ transition: var(--sr-transition); }
.btn-close:hover{ opacity: .65; }

.btn{ border-radius: var(--sr-radius-sm) !important; font-weight: 500 !important; transition: var(--sr-transition) !important; box-shadow:none !important; }
.btn:hover{ filter: brightness(1.04); }
.btn-primary{ background: var(--sr-primary) !important; border: none !important; }
.btn-primary:hover{ background: var(--sr-primary-d) !important; }
.btn-label-primary{ background: var(--sr-primary-soft) !important; color: var(--sr-primary-d) !important; border: none !important; }
.btn-label-primary:hover{ background: var(--sr-accent) !important; color:#fff !important; }
.btn-label-secondary{ background:#F2F3F6 !important; border:none !important; color:var(--sr-muted) !important; }
.btn-outline-primary{ border-color: var(--sr-primary) !important; color: var(--sr-primary) !important; }
.btn-outline-primary:hover{ background: var(--sr-primary) !important; border-color: var(--sr-primary) !important; color: #fff !important; }
.btn-success{ background: var(--sr-success) !important; border:none !important; }
.btn-danger{ background: var(--sr-danger) !important; border:none !important; }
.btn-outline-warning{
    color: var(--sr-text) !important;
    border-color: var(--sr-border) !important;
    background: var(--sr-surface) !important;
}
.btn-outline-warning:hover{
    background: var(--sr-bg) !important;
    border-color: var(--sr-muted) !important;
    color: var(--sr-text) !important;
}

.input-group-text{
    background: var(--sr-bg) !important;
    border-color: var(--sr-border) !important;
    color: var(--sr-muted) !important;
    font-size: .85rem;
    font-weight: 500;
}
.input-group .form-control{ border-color: var(--sr-border) !important; }
.input-group:focus-within .form-control,
.input-group:focus-within .input-group-text{
    border-color: var(--sr-primary) !important;
}

.form-control, .form-select, .select2-selection, .flatpickr-input{
    border-radius: var(--sr-radius-sm) !important;
    border: 1px solid var(--sr-border) !important;
    background: var(--sr-surface) !important;
    color: var(--sr-text) !important;
    transition: var(--sr-transition);
    font-weight: 400;
}
.form-select{ color-scheme: light; }
.form-select option{ color: var(--sr-text); background: var(--sr-surface); }
.form-control:focus, .form-select:focus{
    border-color: var(--sr-primary) !important;
    box-shadow: 0 0 0 .16rem var(--sr-primary-ring) !important;
}
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple{
    border-radius: var(--sr-radius-sm) !important; border-color: var(--sr-border) !important; min-height: 38px;
}
.select2-container--default .select2-selection__rendered{ color: var(--sr-text) !important; }
.select2-container--default.select2-container--focus .select2-selection,
.select2-dropdown{ border-color: var(--sr-primary) !important; }
.select2-dropdown{ background: var(--sr-surface) !important; color-scheme: light; }
.select2-results__options{ background: var(--sr-surface) !important; }
.select2-container--default .select2-results__option{ color: var(--sr-text) !important; }
.select2-container--default .select2-results__option--highlighted[aria-selected]{
    background: var(--sr-primary) !important;
    color: #fff !important;
}
.select2-container--default .select2-results__option[aria-selected="true"]{
    background: var(--sr-primary-soft) !important;
    color: var(--sr-primary-d) !important;
}
.select2-search--dropdown .select2-search__field{
    border-radius: var(--sr-radius-sm) !important;
    border: 1px solid var(--sr-border) !important;
    color: var(--sr-text) !important;
    background: var(--sr-surface) !important;
}
.form-label{ font-weight: 500 !important; color: var(--sr-text); font-size:.87rem; }

.table{ border-radius: var(--sr-radius-sm); overflow:hidden; }
.table thead{ background: var(--sr-thead) !important; }
.table thead th, .tableTH{ color:#fff !important; font-weight:500 !important; border:none !important; font-size:.83rem; }
.table tbody tr{ transition: background-color .15s ease; }
.table tbody tr:hover{ background-color: var(--sr-bg) !important; }
.table .selected{ background-color: var(--sr-primary-soft) !important; }

.alert{ border: none !important; border-inline-start: 3px solid currentColor; border-radius: var(--sr-radius-sm) !important; }
.badge{ border-radius: 999px !important; font-weight: 500 !important; }
.pagination .page-link{ border-radius: 999px !important; margin: 0 2px; border: 1px solid var(--sr-border) !important; color: var(--sr-text); }
.pagination .page-item.active .page-link{ background: var(--sr-primary) !important; border-color: var(--sr-primary) !important; }

.content-footer{ background: transparent !important; color: var(--sr-muted); border-top: 1px solid var(--sr-border); font-size: .8rem; }

.swal2-popup{ border-radius: var(--sr-radius) !important; font-family: 'Vazirmatn', sans-serif !important; }
.swal2-styled.swal2-confirm{ background: var(--sr-primary) !important; border-radius: var(--sr-radius-sm) !important; }
