:root{--c1:#caf0f8;--c2:#90e0ef;--c3:#00b4d8;--c4:#0077b6;--c5:#03045e;--success:#198754;--danger:#dc3545;--warning:#f59e0b}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Vazirmatn,sans-serif;background:#f7fcfd;color:#14213d}.sidebar{position:fixed;right:0;top:0;bottom:0;width:270px;background:var(--c5);color:#fff;padding:18px;z-index:1050;overflow-y:auto;transition:transform .25s ease,box-shadow .25s ease;display:flex;flex-direction:column;box-shadow:-8px 0 28px #03045e22}.sidebar-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.sidebar-close{display:block;border:0;background:transparent;color:#fff;font-size:30px;line-height:1;cursor:pointer}.user-box{background:#ffffff12;border:1px solid #ffffff20;border-radius:14px;padding:12px;margin-bottom:16px}.user-box span{display:block;color:var(--c2);font-size:12px;margin-top:4px}.sidebar a{color:#e9fbff;text-decoration:none;display:block;padding:11px 12px;border-radius:10px;margin:4px 0;transition:.2s}.sidebar a:hover{background:var(--c4);color:#fff}.logout-link{margin-top:auto!important;background:#ffffff0b}.main-content{margin-right:270px;transition:margin-right .25s ease;padding:24px;min-height:100vh}.topbar{background:#fff;border:1px solid var(--c1);border-radius:16px;padding:14px 18px;margin-bottom:20px;box-shadow:0 4px 18px #0077b612}.topbar{position:relative}
.topbar-logout{position:absolute;left:18px;top:50%;transform:translateY(-50%);background:#dc3545!important;color:#fff!important;padding:8px 16px;border-radius:6px;text-decoration:none!important;display:inline-block;line-height:1.5;z-index:2}
.topbar-logout:hover{background:#bb2d3b!important;color:#fff!important}
.topbar-date{font-size:12px;color:#486581;margin-top:4px}.card{border:1px solid var(--c1);border-radius:18px;box-shadow:0 5px 25px #0077b610;background:#fff}.stat{font-size:28px;font-weight:800;color:var(--c5)}.table{vertical-align:middle}.table thead th{background:var(--c1);color:var(--c5);white-space:nowrap}.table-hover tbody tr:hover{background:#caf0f833}.badge{font-size:.85rem}.btn{border-radius:10px}.btn-primary{background:var(--c4);border-color:var(--c4)}.btn-primary:hover{background:var(--c5);border-color:var(--c5)}.btn-success{background:var(--success);border-color:var(--success)}.btn-danger{background:var(--danger);border-color:var(--danger)}.btn-warning{background:var(--warning);border-color:var(--warning);color:#111}.form-control,.form-select{border-radius:10px;border-color:#b8dfe8}.form-control:focus,.form-select:focus{border-color:var(--c3);box-shadow:0 0 0 .2rem #00b4d833}.menu-toggle{position:fixed;right:285px;top:16px;z-index:1100;border:0;border-radius:12px;background:var(--c4);color:#fff;width:46px;height:46px;font-size:22px;box-shadow:0 5px 20px #03045e33;cursor:pointer}.sidebar-backdrop{display:none}.sidebar.closed{transform:translateX(100%)}.main-content.menu-closed{margin-right:0}.password-wrap{position:relative}.password-wrap input{padding-left:48px}.password-eye{position:absolute;left:7px;top:50%;transform:translateY(-50%);border:0;background:transparent;font-size:20px;cursor:pointer;z-index:2}.action-buttons{white-space:nowrap}.mobile-stack{display:flex;gap:8px;flex-wrap:wrap}.delay-box{display:none}.delay-box.show{display:block}.report-table{min-width:900px}.teacher-dropdown{position:relative;min-width:260px}.teacher-dropdown-toggle{text-align:right;background:#fff;cursor:pointer}.teacher-dropdown-menu{display:none;position:absolute;right:0;top:calc(100% + 5px);width:100%;min-width:260px;max-height:260px;overflow:auto;background:#fff;border:1px solid var(--c2);border-radius:12px;box-shadow:0 10px 30px #03045e22;padding:8px;z-index:20}.teacher-dropdown.show .teacher-dropdown-menu{display:block}.teacher-option{display:flex;gap:8px;align-items:center;padding:9px;border-radius:8px;cursor:pointer}.teacher-option:hover{background:var(--c1)}.teacher-option input{accent-color:var(--c4)}
@media(min-width:992px){.sidebar-close{font-size:24px}.sidebar-backdrop{display:none!important}.sidebar.closed + .main-content{margin-right:0}.sidebar.closed ~ .main-content{margin-right:0}}
@media(max-width:991.98px){.sidebar{transform:translateX(100%);width:min(88vw,320px)}.sidebar.open{transform:translateX(0)}.sidebar-close{display:block}.sidebar-backdrop{position:fixed;inset:0;background:#03045e66;z-index:1040}.sidebar-backdrop.show{display:block}.main-content{margin-right:0;padding:76px 12px 20px}.menu-toggle{right:14px;top:14px}.topbar{padding:12px 14px}.table-responsive{font-size:13px}.card{border-radius:14px}.teacher-dropdown{width:100%}}
@media(max-width:575.98px){.btn{font-size:13px}.stat{font-size:24px}.main-content{padding-left:8px;padding-right:8px}.action-buttons .btn{margin-bottom:4px}}
/* تقویم جلالی گزارش‌ها */
.calendar-field{position:relative;min-width:0}
.calendar-display{
    width:100%;
    display:block;
    text-align:right;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    background:#fff;
    color:#14213d;
    cursor:pointer;
    border:1px solid #b8dfe8;
    min-height:46px;
}
.calendar-display:hover{background:#f8fdff}
.calendar-popup{
    display:none;
    position:absolute;
    top:calc(100% + 8px);
    right:0;
    width:310px;
    max-width:min(310px,calc(100vw - 24px));
    padding:12px;
    background:#fff;
    border:1px solid var(--c2);
    border-radius:14px;
    box-shadow:0 12px 35px #03045e26;
    z-index:2000;
}
.calendar-popup.show{display:block}
.calendar-head{
    display:grid;
    grid-template-columns:40px 1fr 40px;
    align-items:center;
    gap:6px;
    margin-bottom:10px;
}
.calendar-head strong{
    text-align:center;
    color:var(--c5);
    font-size:14px;
}
.calendar-head button{
    width:40px;
    height:36px;
    border:1px solid var(--c2);
    border-radius:9px;
    background:#fff;
    color:var(--c5);
    font-size:22px;
    line-height:1;
    cursor:pointer;
}
.calendar-head button:hover{background:var(--c1)}
.calendar-week,
.calendar-days{
    display:grid;
    grid-template-columns:repeat(7,1fr);
    gap:4px;
}
.calendar-week{
    margin-bottom:5px;
}
.calendar-week span{
    text-align:center;
    font-size:11px;
    font-weight:700;
    color:#486581;
    padding:4px 0;
}
.calendar-days span{
    min-height:34px;
}
.calendar-day{
    width:100%;
    height:34px;
    border:1px solid transparent;
    border-radius:8px;
    background:#fff;
    color:#14213d;
    cursor:pointer;
    font-family:inherit;
    font-size:13px;
}
.calendar-day:hover{background:var(--c1);border-color:var(--c2)}
.calendar-day.selected{
    background:var(--c4);
    border-color:var(--c4);
    color:#fff;
    font-weight:700;
}
.calendar-today{
    width:100%;
    margin-top:10px;
    min-height:38px;
    border:1px solid var(--c4);
    border-radius:9px;
    background:#fff;
    color:var(--c4);
    font-family:inherit;
    cursor:pointer;
}
.calendar-today:hover{
    background:var(--c4);
    color:#fff;
}
.selected-date-label{
    margin-top:6px;
    font-size:12px;
    color:#486581;
    text-align:right;
}
.topbar{position:relative}

.topbar-logout{
    position:absolute;
    left:18px;
    top:50%;
    transform:translateY(-50%);
    background:#dc3545!important;
    color:#fff!important;
    padding:8px 16px;
    border-radius:6px;
    text-decoration:none!important;
    display:inline-block;
    line-height:1.5;
    z-index:2;
}

.topbar-logout:hover{
    background:#bb2d3b!important;
    color:#fff!important;
}
@media(max-width:575.98px){
    .calendar-popup{
        right:auto;
        left:0;
        width:300px;
    }
}
