.evaluation-shell{display:grid;gap:14px}
.evaluation-panel{
  min-height:560px;
  border:1px solid rgba(123,205,255,.18);
  border-radius:22px;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:linear-gradient(180deg,rgba(15,32,52,.96),rgba(8,17,29,.96));
  box-shadow:0 20px 38px rgba(0,0,0,.32);
}
.evaluation-top{
  flex-shrink:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  border-bottom:1px solid rgba(123,205,255,.16);
  background:rgba(6,12,21,.88);
}
.evaluation-top strong{font-size:15px}
.evaluation-status{
  color:var(--muted);
  font:700 11px/1.3 var(--font-display);
  letter-spacing:.14em;
  text-transform:uppercase;
  white-space:nowrap;
}
.evaluation-body{
  flex:1;
  min-height:0;
  overflow:auto;
  display:grid;
  gap:14px;
  align-content:start;
  padding:16px;
  background:
    linear-gradient(180deg,rgba(40,84,132,.18),rgba(9,20,34,.10)),
    radial-gradient(circle at top,rgba(37,208,255,.08),transparent 34%);
}
.evaluation-card{
  min-width:0;
  border:1px solid rgba(123,205,255,.18);
  border-radius:20px;
  padding:15px;
  background:rgba(0,0,0,.20);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.02);
}
.evaluation-card h3{
  margin:0 0 10px;
  font-size:18px;
  line-height:1.35;
}
.evaluation-card p{
  margin:0 0 10px;
  color:#d6f4ff;
  line-height:1.72;
  word-break:keep-all;
}
.evaluation-muted{
  color:var(--muted)!important;
  font-size:13px;
  line-height:1.65!important;
}
.evaluation-lock{
  min-height:420px;
  display:grid;
  place-items:center;
  padding:24px;
  text-align:center;
}
.evaluation-lock-box{
  width:min(520px,100%);
  border:1px solid rgba(123,205,255,.22);
  border-radius:22px;
  padding:22px 20px;
  background:rgba(0,0,0,.24);
  box-shadow:0 16px 38px rgba(0,0,0,.28);
}

.attendance-shell{
  display:grid;
  gap:14px;
}
.attendance-overview{
  display:grid;
  grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
  gap:14px;
  align-items:stretch;
}
.attendance-profile{
  display:grid;
  gap:10px;
  align-content:start;
}
.attendance-profile p,
.attendance-guide p{
  margin:0;
  color:#d6f4ff;
  line-height:1.7;
}
.attendance-grade-chip{
  display:inline-flex;
  width:max-content;
  max-width:100%;
  border-radius:999px;
  padding:7px 11px;
  color:#041018;
  background:linear-gradient(90deg,var(--blue),var(--blue-2));
  box-shadow:0 0 16px rgba(37,208,255,.22);
  font:900 11px/1 var(--font-display);
  letter-spacing:.08em;
}
.attendance-board{
  display:grid;
  gap:13px;
}
.attendance-board-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}
.attendance-month-nav{
  display:flex;
  align-items:center;
  gap:8px;
}
.attendance-nav-btn,
.attendance-check-btn{
  border:0;
  border-radius:14px;
  cursor:pointer;
  font:900 11px/1 var(--font-display);
  letter-spacing:.08em;
  transition:transform .12s ease,opacity .18s ease,background .18s ease;
}
.attendance-nav-btn{
  width:38px;
  height:38px;
  border:1px solid rgba(124,205,255,.28);
  display:grid;
  place-items:center;
  color:#dff8ff;
  background:rgba(255,255,255,.045);
  font-size:20px;
}
.attendance-check-btn{
  min-height:38px;
  padding:0 14px;
  color:#041018;
  background:linear-gradient(90deg,var(--blue),var(--blue-2));
  box-shadow:0 0 16px rgba(37,208,255,.22);
}
.attendance-nav-btn:hover:not(:disabled),
.attendance-check-btn:hover:not(:disabled){transform:translateY(-1px)}
.attendance-nav-btn:disabled,
.attendance-check-btn:disabled{
  opacity:.42;
  cursor:not-allowed;
}
.attendance-month-title{
  min-width:154px;
  text-align:center;
  color:#edf8ff;
  font:900 18px/1.2 var(--font-display);
  letter-spacing:.08em;
}
.attendance-calendar{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:6px;
}
.attendance-weekday{
  min-height:30px;
  display:grid;
  place-items:center;
  color:#9bd8fb;
  font:900 10px/1 var(--font-display);
  letter-spacing:.08em;
}
.attendance-day{
  position:relative;
  min-height:74px;
  overflow:hidden;
  border:1px solid rgba(123,205,255,.16);
  border-radius:14px;
  background:rgba(0,0,0,.19);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
}
.attendance-day.is-empty{
  border-color:rgba(123,205,255,.06);
  background:rgba(255,255,255,.018);
  box-shadow:none;
}
.attendance-day.is-today{
  border-color:rgba(94,231,255,.56);
  box-shadow:0 0 18px rgba(37,208,255,.13),inset 0 1px 0 rgba(255,255,255,.04);
}
.attendance-day-num{
  position:absolute;
  top:7px;
  left:8px;
  z-index:2;
  color:#e9f7ff;
  font:900 11px/1 var(--font-display);
  letter-spacing:.04em;
  text-shadow:0 1px 8px rgba(0,0,0,.72);
}
.attendance-mark{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  pointer-events:none;
  filter:drop-shadow(0 0 10px rgba(255,255,255,.08));
}
.attendance-day.is-missed .attendance-mark{opacity:.94}
.attendance-day.is-checked .attendance-mark{opacity:.98}
.attendance-miss-text{
  position:absolute;
  left:50%;
  bottom:16px;
  z-index:3;
  transform:translateX(-50%);
  color:var(--miss);
  font:900 10px/1 var(--font-display);
  letter-spacing:.12em;
  text-shadow:0 0 8px rgba(191,47,118,.36);
}
.attendance-empty-note{
  border:1px dashed rgba(124,205,255,.22);
  border-radius:16px;
  padding:13px;
  color:var(--muted);
  line-height:1.7;
  background:rgba(255,255,255,.03);
}
.attendance-guide .attendance-empty-note{
  margin-top:10px;
  padding:9px 11px;
  border-radius:13px;
  line-height:1.55;
  font-size:14px;
}
