:root{
  --admin-primary:#17344f;
  --admin-primary-2:#285777;
  --admin-success:#2c7a68;
  --admin-warning:#c99a47;
  --admin-danger:#b55d46;
  --admin-info:#2f6d90;

  --admin-bg:#f7fafc;
  --admin-bg-soft:#eef3f7;
  --admin-card:#ffffff;
  --admin-border:#d9e3ec;

  --admin-text:#20384f;
  --admin-muted:#6c8091;

  --admin-shadow:0 12px 28px rgba(17,34,49,.08);
  --admin-radius:10px;
  --admin-radius-sm:6px;
}

html{
  scroll-behavior:smooth;
}

body.admin-body,
body.login-body,
body.student-body{
  font-family:'Segoe UI',system-ui,-apple-system,sans-serif;
  background:linear-gradient(180deg,#f8fafb 0%, #f1f4f7 100%);
  color:var(--admin-text);
}

/* =========================
   Navbar
========================= */
.glass-navbar{
  background:linear-gradient(180deg,#17344f 0%, #132d44 100%) !important;
  border-bottom:1px solid rgba(255,255,255,.08);
  box-shadow:0 10px 24px rgba(16,31,46,.14);
}

.brand-pill{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  text-align: center;
}

.brand-pill i{
  width:38px;
  height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  background:linear-gradient(180deg,#2a5070,#17344f);
  color:#fff;
  font-size:2rem !important;
}

/* =========================
   Layout
========================= */
.dashboard-shell{
  max-width:1280px;
  padding-top:24px;
  padding-bottom:32px;
}

.dashboard-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:16px;
  margin-bottom:20px;

  background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(248,252,255,.96));
  border:1px solid var(--admin-border);
  border-radius:var(--admin-radius);
  box-shadow:var(--admin-shadow);
  padding:20px 22px;
}

.dashboard-title-wrap h1{
  margin:0;
  font-size:2rem;
  font-weight:800;
  color:var(--admin-primary);
  letter-spacing:-.02em;
}

.dashboard-title-wrap p{
  margin:6px 0 0;
  color:var(--admin-muted);
}

.dashboard-quick-links{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.section-anchor{
  scroll-margin-top:110px;
}

/* =========================
   Cards / Panels
========================= */
.card,
.panel-card,
.card-clean,
.modal-content,
.login-card,
.student-page-header,
.profile-card-pro{
  background:var(--admin-card);
  border:1px solid var(--admin-border) !important;
  border-radius:var(--admin-radius) !important;
  box-shadow:var(--admin-shadow) !important;
}

.section-card-title{
  margin-bottom:4px;
  font-weight:800;
  color:var(--admin-primary);
}

.section-card-subtitle{
  margin-bottom:0;
  color:var(--admin-muted);
}

/* =========================
   Stats Cards
========================= */
.stats-card{
  position: relative;
  overflow: hidden;
  padding: 20px;
  color: whitesmoke;
  border-radius: 10px;
}

.stats-card::before{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.10), transparent 45%);
  pointer-events: none;
}

.stats-card::after{
  content: "";
  position: absolute;
  width: 120px;
  height: 120px;
  right: -35px;
  top: -35px;
  background: rgba(255,255,255,0.08);
  border-radius: 50%;
  pointer-events: none;
}
.bg-gradient1{
  background:
    radial-gradient(circle at top right, rgba(255,255,255,0.18), transparent 30%),
    radial-gradient(circle at bottom left, rgba(255,255,255,0.08), transparent 35%),
    linear-gradient(180deg, #1f3c57, #274b69);
}

.bg-gradient2{
  background:
    radial-gradient(circle at top right, rgba(255,255,255,0.16), transparent 30%),
    radial-gradient(circle at bottom left, rgba(255,255,255,0.08), transparent 35%),
    linear-gradient(180deg, #7d6240, #9a784a);
}

.bg-gradient3{
  background:
    radial-gradient(circle at top right, rgba(255,255,255,0.16), transparent 30%),
    radial-gradient(circle at bottom left, rgba(255,255,255,0.08), transparent 35%),
    linear-gradient(180deg, #2f6f67, #3f847a);
}

.bg-gradient4{
  background:
    radial-gradient(circle at top right, rgba(255,255,255,0.14), transparent 30%),
    radial-gradient(circle at bottom left, rgba(255,255,255,0.07), transparent 35%),
    linear-gradient(180deg, #526473, #687a88);
}

/* =========================
   Buttons
========================= */
.btn{
  border-radius:var(--admin-radius-sm) !important;
  box-shadow:none !important;
  font-weight:700;
  padding:10px 16px;
}

.btn-sm{
  padding:8px 14px !important;
}

.btn-primary{
  background:var(--admin-primary) !important;
  border-color:var(--admin-primary) !important;
  color:#fff !important;
}

.btn-success{
  background:#1f6f52 !important;
  border-color:#1f6f52 !important;
  color:#fff !important;
}

.btn-danger{
  background:var(--admin-danger) !important;
  border-color:var(--admin-danger) !important;
  color:#fff !important;
}

.btn-info{
  background:var(--admin-info) !important;
  border-color:var(--admin-info) !important;
  color:#fff !important;
}

.btn-warning{
  background:#f2eadc !important;
  border:1px solid #dec698 !important;
  color:#664a19 !important;
}

.btn-secondary,
.btn-outline-dark,
.btn-light,
.btn-soft{
  background:var(--admin-bg-soft) !important;
  border:1px solid var(--admin-border) !important;
  color:var(--admin-primary) !important;
}

.btn-soft:hover,
.btn-outline-dark:hover,
.btn-secondary:hover{
  background:#e7eef4 !important;
  color:var(--admin-primary) !important;
}

/* =========================
   Forms
========================= */
.form-control,
.form-select,
.input-group-text{
  min-height:48px;
  border-radius:4px !important;
  border:1px solid #ccd8e3 !important;
  box-shadow:none !important;
}

.form-control:focus,
.form-select:focus{
  border-color:#95aabd !important;
  box-shadow:0 0 0 .15rem rgba(24,52,77,.08) !important;
}

.form-label{
  font-weight:700;
  color:var(--admin-text);
}

/* =========================
   Tables
========================= */
.table{
  margin-bottom:0;
  --bs-table-bg:transparent;
}

.table thead th{
  background:#eef3f7 !important;
  color:var(--admin-primary) !important;
  border-bottom:1px solid var(--admin-border) !important;
  font-size:.85rem;
  font-weight:800;
  vertical-align:middle;
  padding:14px 16px !important;
}

.table td{
  color:var(--admin-text) !important;
  vertical-align:middle;
  padding:14px 16px !important;
  border-color:#edf2f7 !important;
}

.table tbody tr:hover{
  background:#f7fafc !important;
}

.table-dark th,
.table thead.table-dark th{
  background:var(--admin-primary) !important;
  color:#fff !important;
  border-color:var(--admin-primary) !important;
}

.table-success,
.modal-header.bg-success{
  background:#eef3f7 !important;
  color:var(--admin-primary) !important;
  border-color:var(--admin-border) !important;
}

.table-responsive{
  border-radius:var(--admin-radius);
  overflow:hidden;
  border:1px solid var(--admin-border);
  box-shadow:var(--admin-shadow);
  background:#fff;
}
.students-table-wrap{
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border: 1px solid #d9e3ec;
  border-radius: 12px;
  background: #fff;
}

.students-table{
  min-width: 830px; /* mobile pe slide ke liye important */
  margin-bottom: 0;
}

.students-table th,
.students-table td{
  white-space: nowrap;
}

.table-action-group{
  display: flex;
  gap: 8px;
  flex-wrap: nowrap; /* buttons next line me na jaye */
}

.table-action-group .btn{
  white-space: nowrap;
}

@media (max-width: 767px){
  .students-table{
    min-width: 780px;
  }
}
/* =========================
   Pagination
========================= */
.pagination .page-link{
  border-radius:4px !important;
  border:1px solid var(--admin-border) !important;
  background:#fff;
  color:var(--admin-primary) !important;
  margin:0 4px;
  font-weight:700;
}

.pagination .active .page-link{
  background:var(--admin-primary) !important;
  border-color:var(--admin-primary) !important;
  color:#fff !important;
}

/* =========================
   Modal
========================= */
.modal-header,
.modal-footer{
  border-color:var(--admin-border) !important;
}

.modal-header.bg-success .btn-close{
  filter:none;
}

/* =========================
   Login
========================= */
.login-shell{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
}

.login-card{
  max-width:460px;
  width:100%;
  padding:30px;
  background:rgba(255,255,255,.97) !important;
}

.login-card h2{
  font-weight:800;
  color:var(--admin-primary);
}

.login-card p,
.login-card .subtext{
  color:var(--admin-muted);
}

.login-note{
  background:#f5f8fa !important;
  border:1px solid var(--admin-border) !important;
  color:var(--admin-muted) !important;
  padding:12px 14px;
  border-radius:6px !important;
}

/* =========================
   Sidebar / Student Pages
========================= */
.sidebar{
  width:270px;
  min-height:100vh;
  position:fixed;
  inset:0 auto 0 0;
  background:linear-gradient(180deg,#17344f 0%, #132d44 100%) !important;
  padding:24px 18px;
  border-right:1px solid rgba(255,255,255,.08);
}

.sidebar h5{
  color:#fff;
  font-weight:800;
  margin-bottom:10px;
}

.sidebar .sidebar-subtitle{
  color:rgba(255,255,255,.72);
  font-size:.9rem;
  margin-bottom:18px;
}

.sidebar a{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 14px !important;
  margin-bottom:8px;
  text-decoration:none;
  border-radius:4px !important;
  border:1px solid rgba(255,255,255,.08) !important;
  color:rgba(255,255,255,.85) !important;
  transition:.2s ease;
}

.sidebar a:hover{
  background:rgba(255,255,255,.08) !important;
  color:#fff !important;
}

.sidebar a.active{
  background:#fff !important;
  color:var(--admin-primary) !important;
  box-shadow:none !important;
}

.main{
  margin-left:270px;
  padding:26px !important;
}

.student-page-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:16px;
  margin-bottom:22px;
  padding:22px 24px;
  border-radius:12px;
  background:
    linear-gradient(135deg, rgba(24,52,79,0.96), rgba(34,72,99,0.94)),
    radial-gradient(circle at top right, rgba(255,255,255,0.08), transparent 30%);
  border:1px solid rgba(255,255,255,0.08);
  box-shadow:0 14px 32px rgba(17,34,49,.12);
}

.student-page-header h1{
  margin:0;
  font-size:1.9rem;
  font-weight:800;
  color:#ffffff !important;
  letter-spacing:-0.02em;
}

.student-page-header p{
  margin:6px 0 0;
  color:rgba(255,255,255,0.78) !important;
  max-width:640px;
}

.student-toolbar{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.student-page-header .btn-outline-dark{
  background:rgba(255,255,255,0.10) !important;
  color:#ffffff !important;
  border:1px solid rgba(255,255,255,0.18) !important;
}

.student-page-header .btn-outline-dark:hover{
  background:rgba(255,255,255,0.18) !important;
  color:#ffffff !important;
}

.student-page-header .btn-success{
  background:linear-gradient(180deg,#2c7a68,#245f52) !important;
  border:1px solid rgba(255,255,255,0.10) !important;
  color:#fff !important;
}

.card-clean{
  background:#ffffff !important;
  border:1px solid #d9e3ec !important;
  border-radius:12px !important;
  box-shadow:0 12px 28px rgba(17,34,49,.08) !important;
  padding:20px;
}

.card-clean h6{
  color:#17344f;
}

.card-clean .text-muted{
  color:#6c8091 !important;
}

.progress{
  height:12px !important;
  background:#e8eef4 !important;
  border-radius:999px !important;
  overflow:hidden;
  margin-top:10px;
}

.progress-bar{
  background:linear-gradient(90deg,#17344f,#2a5a7b) !important;
  color:#fff !important;
  font-size:.75rem;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:999px !important;
}

#progressText{
  color:#17344f !important;
  font-weight:800 !important;
}

@media (max-width: 767px){
  .student-page-header{
    padding:18px;
    align-items:flex-start;
  }

  .student-page-header h1{
    font-size:1.55rem;
  }

  .student-toolbar{
    width:100%;
  }

  .student-toolbar .btn{
    width:100%;
  }
}

/* =========================
   Progress / Chips
========================= */
.progress{
  height:10px !important;
  background:#ecf2f6 !important;
  border-radius:6px !important;
}

.progress-bar{
  background:var(--admin-primary) !important;
  border-radius:6px !important;
}


.progress-card{
  background:linear-gradient(180deg,#ffffff 0%, #f8fbfd 100%) !important;
}

.student-name-cell{
  display:flex;
  align-items:center;
  gap:12px;
  font-weight:700;
  color:var(--admin-primary);
}

.student-avatar,
.avatar-circle,
.mini-icon,
.calendar-header-btn,
.day{
  border-radius:6px !important;
}

/* =========================
   Calendar
========================= */
.calendar,
.calendar-weekdays{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:10px;
}

.calendar-weekdays{
  margin-bottom:10px;
}

.calendar-weekdays div{
  text-align:center;
  font-weight:700;
  color:#5f7386 !important;
  background:#fff;
  border:1px solid var(--admin-border) !important;
  border-radius:6px !important;
  padding:10px;
  box-shadow:var(--admin-shadow);
}

.day{
  min-height:76px;
  padding:10px;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  flex-direction:column;
  background:#fff !important;
  border:1px solid var(--admin-border) !important;
  box-shadow:var(--admin-shadow);
}

.day-number{
  font-weight:800;
}

.day.today{
  background:#f6f0e4 !important;
  border-color:#ead7b4 !important;
}

.day.present{
  background:var(--admin-primary) !important;
  color:#fff !important;
}

.day.present .day-number{
  color:#fff !important;
}

.day.empty{
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
}

.day-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  background:#fff;
  display:inline-block;
  align-self:flex-end;
}

/* =========================
   Profile cards
========================= */
.profile-cover{
  height:110px;
  background:linear-gradient(180deg,#17344f 0%, #27506f 100%) !important;
  border-radius:10px 10px 0 0;
}

.profile-main{
  position:relative;
  margin-top:-42px;
  padding:0 26px 22px;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap;
}

.profile-identity{
  display:flex;
  align-items:center;
  gap:16px;
}

.avatar-circle{
  width:86px;
  height:86px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  border:6px solid #fff;
  color:var(--admin-primary);
  font-size:2rem;
  box-shadow:var(--admin-shadow);
}

.profile-eyebrow{
  font-size:.80rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#c99a47;
  font-weight:800;
  margin-bottom:0px;
}
.bi-person-fill {
    font-size: 81px;
    color: darkgoldenrod;
}
.profile-identity h4{
  margin:0;
  font-size:1.55rem;
  font-weight:800;
  color:var(--admin-primary);
  margin-top: 20px;
  color: #132d44;
}

.profile-meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:10px;
}

.profile-meta span{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:8px 12px;
  background:var(--admin-bg-soft);
  border:1px solid var(--admin-border);
  color:var(--admin-muted);
  border-radius:6px;
  font-size:.88rem;
  font-weight:700;
}

.profile-highlight-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  padding:0 26px 20px;
}

.profile-mini-card{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 14px;
  border-radius:8px !important;
  border:1px solid var(--admin-border) !important;
  background:#fff;
  box-shadow:var(--admin-shadow);
}

.profile-mini-card small{
  display:block;
  color:var(--admin-muted);
  margin-bottom:2px;
}

.profile-mini-card h6{
  margin:0;
  font-size:1.05rem;
  font-weight:800;
}

.mini-icon{
  width:46px;
  height:46px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.2rem;
  color:#fff;
}

.icon-blue{background:#285777;}
.icon-yellow{background:#c99a47;}
.icon-green{background:#2c7a68;}
.icon-red{background:#b55d46;}

.profile-date-strip{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  padding:0 26px 26px;
}

.profile-date-strip div{
  border:1px solid var(--admin-border);
  border-radius:8px;
  padding:16px 18px;
  background:#fff;
  box-shadow:var(--admin-shadow);
}

.profile-date-strip span{
  display:block;
  color:var(--admin-muted);
  font-size:.85rem;
  margin-bottom:4px;
}

.profile-date-strip strong{
  font-size:1rem;
}

.status-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:12px 16px;
  border-radius:999px;
  font-weight:800;
}

.status-badge.active{
  background:#e9fdf1;
  color:#15803d;
  border:1px solid #bbf7d0;
}

.status-badge.completed{
  background:#eff6ff;
  color:#1d4ed8;
  border:1px solid #bfdbfe;
}

/* =========================
   Responsive
========================= */
@media (max-width:991px){
  .dashboard-title-wrap h1{
    font-size:1.7rem;
  }

  .sidebar{
    width:100%;
    min-height:auto;
    position:relative;
    padding:16px 14px;
  }

  .main{
    margin-left:0;
    padding:16px !important;
  }

  .sidebar-nav{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
  }

  .sidebar a{
    margin-bottom:0;
  }

  .profile-highlight-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:767px){
  .glass-navbar{
    padding-left:14px !important;
    padding-right:14px !important;
  }

  .glass-navbar{
    flex-wrap:wrap;
    gap:12px;
  }

  .glass-navbar .ms-auto{
    width:100%;
    margin-left:0 !important;
    justify-content:flex-start;
    flex-wrap:wrap;
  }

  .dashboard-header,
  .student-page-header{
    align-items:flex-start;
  }

  .dashboard-quick-links,
  .student-toolbar{
    width:100%;
  }

  .dashboard-quick-links .btn,
  .student-toolbar .btn{
    width:100%;
  }

  .stats-card{
    padding:18px 14px !important;
  }

  .stats-card h3{
    font-size:1.65rem;
  }

  .table th,
  .table td{
    padding:12px 10px !important;
  }

  .calendar,
  .calendar-weekdays{
    gap:6px;
  }

  .calendar-weekdays div{
    padding:8px 4px;
    font-size:.8rem;
  }

  .day{
    min-height:62px;
    padding:8px;
  }

  .profile-main,
  .profile-highlight-grid,
  .profile-date-strip{
    padding-left:18px;
    padding-right:18px;
  }

  .profile-highlight-grid,
  .profile-date-strip{
    grid-template-columns:1fr;
  }

  .login-card{
    padding:24px;
  }
}

@media (max-width:575px){
  .brand-pill{
    width:100%;
    justify-content:center;
  }

  .profile-identity{
    align-items:flex-start;
  }

  .avatar-circle{
    width:72px;
    height:72px;
    font-size:1.7rem;
  }

  .profile-identity h4{
    font-size:1.28rem;
  }
}
/* ===== Student page fix ===== */
.student-body{
  background: linear-gradient(180deg,#f8fafb 0%, #f1f4f7 100%) !important;
  color: #20384f;
}

.sidebar{
  width: 270px;
  min-height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
  padding: 24px 18px;
  background: linear-gradient(180deg,#17344f 0%, #132d44 100%) !important;
  border-right: 1px solid rgba(255,255,255,.08);
}

.sidebar h5{
  color: #fff;
  font-weight: 800;
  margin-bottom: 10px;
}

.sidebar-subtitle{
  color: rgba(255,255,255,.75);
  font-size: .92rem;
  margin-bottom: 18px;
  line-height: 1.5;
}

.sidebar-nav{
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.sidebar-nav a,
.sidebar > a{
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  padding: 12px 14px;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,.08);
  color: rgba(255,255,255,.88);
  background: transparent;
  transition: all .2s ease;
  cursor: pointer;
}

.sidebar-nav a:hover,
.sidebar > a:hover{
  background: rgba(255,255,255,.08);
  color: #fff;
}

.sidebar-nav a.active{
  background: #fff !important;
  color: #17344f !important;
  font-weight: 700;
}

.sidebar hr{
  border-color: rgba(255,255,255,.12);
  margin: 16px 0;
}

.main{
  margin-left: 270px;
  padding: 26px !important;
}

.student-page-header{
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 20px;
  padding: 20px 22px;
  background: #fff;
  border: 1px solid #d9e3ec;
  border-radius: 10px;
  box-shadow: 0 12px 28px rgba(17,34,49,.08);
}

.student-page-header h1{
  margin: 0;
  font-size: 1.8rem;
  font-weight: 800;
  color: #17344f;
}

.student-page-header p{
  margin: 6px 0 0;
  color: #6c8091;
}

.student-toolbar{
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.card-clean{
  background: #fff;
  border: 1px solid #d9e3ec !important;
  border-radius: 10px !important;
  box-shadow: 0 12px 28px rgba(17,34,49,.08) !important;
  padding: 20px;
  margin-bottom: 18px;
}

/* section toggle */
.section{
  display: none;
}

.section.active{
  display: block;
}

/* list items */
.list-group-item{
  border: 1px solid #e6edf3 !important;
  border-radius: 8px !important;
  margin-bottom: 10px;
}

/* calendar */
.calendar-topbar{
  gap: 10px;
}

.calendar-weekdays,
.calendar{
  display: grid;
  grid-template-columns: repeat(7, minmax(0,1fr));
  gap: 8px;
}

.calendar-weekdays div{
  text-align: center;
  font-weight: 700;
  padding: 10px 6px;
  background: #f3f6f9;
  border: 1px solid #d9e3ec;
  border-radius: 6px;
  color: #5f7386;
}

.day{
  min-height: 72px;
  padding: 8px;
  background: #fff;
  border: 1px solid #d9e3ec;
  border-radius: 6px;
}

.day.today{
  background: #f6f0e4 !important;
  border-color: #ead7b4 !important;
}

.day.present{
  background: #17344f !important;
  color: #fff !important;
}

/* mobile */
@media (max-width: 991px){
  .sidebar{
    width: 100%;
    min-height: auto;
    position: relative;
    padding: 16px 14px;
  }

  .sidebar-nav{
    flex-direction: row;
    flex-wrap: wrap;
  }

  .sidebar-nav a,
  .sidebar > a{
    margin-bottom: 0;
  }

  .main{
    margin-left: 0;
    padding: 16px !important;
  }
}

@media (max-width: 767px){
  .student-page-header{
    padding: 16px;
  }

  .student-toolbar{
    width: 100%;
  }

  .student-toolbar .btn{
    width: 100%;
  }

  .calendar-weekdays,
  .calendar{
    gap: 6px;
  }

  .calendar-weekdays div{
    font-size: .78rem;
    padding: 8px 4px;
  }

  .day{
    min-height: 58px;
    padding: 6px;
  }
}
.login-header{
  display: flex;
  flex-direction: column;
  align-items: center;
}

.login-brand{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 10px 18px;
  min-height: 56px;
}

.login-brand i{
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}

.login-brand span{
  line-height: 1;
  font-weight: 700;
  white-space: nowrap;
}

.login-title{
  font-size: 1.9rem;
  font-weight: 800;
  color: #17344f;
  line-height: 1.2;
}

.login-subtext{
  max-width: 360px;
  color: #6c8091;
  line-height: 1.6;
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 575px){
  .login-brand{
    padding: 9px 14px;
  }

  .login-brand span{
    font-size: 0.92rem;
  }

  .login-title{
    font-size: 1.55rem;
  }

  .login-subtext{
    font-size: 0.92rem;
  }
}
.login-shell{
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.login-card{
  width: 100%;
  max-width: 460px;
  padding: 32px 28px;
  background: rgba(255,255,255,0.98) !important;
}

.login-card h2{
  font-size: 1.9rem;
  font-weight: 800;
  color: #17344f;
}

.login-card .subtext{
  color: #6c8091;
  font-size: 0.96rem;
}

.login-card .brand-pill{
  padding: 10px 16px;
  border-radius: 10px;
}

.login-card .brand-pill i{
  width: 38px;
  height: 38px;
}

.login-note{
  background: #f5f8fa;
  border: 1px solid #d9e3ec;
  color: #6c8091;
  padding: 12px 14px;
  border-radius: 8px;
  font-size: 0.92rem;
  line-height: 1.5;
}

#loginMessage{
  border-radius: 8px !important;
}

.login-back-link{
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #17344f;
  font-weight: 600;
  text-decoration: none;
  transition: 0.2s ease;
}

.login-back-link:hover{
  color: #285777;
}

#togglePassword{
  border-left: 0 !important;
}

@media (max-width: 575px){
  .login-card{
    padding: 24px 18px;
  }

  .login-card h2{
    font-size: 1.6rem;
  }
}