.homework-form {
  padding: 15px;
  margin: 12px 0 22px;
  border: 1px dashed #8ea9d3;
  border-radius: 15px;
  background: #f8fbff;
}
.homework-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.homework-card {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 15px;
  background: linear-gradient(145deg, #fff, #f7faff);
  overflow-wrap: anywhere;
}
.homework-card h3 { margin: 0 0 8px; }
.homework-meta { font-size: 13px; color: #64748b; }
.homework-library-launch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.homework-library-button{position:relative;min-height:88px;padding:15px 18px;text-align:left;font-size:18px;background:linear-gradient(135deg,#3978e8,#5c9bf3);box-shadow:0 10px 24px rgba(57,120,232,.2)}.homework-library-button:nth-child(2){background:linear-gradient(135deg,#7b54d8,#a272ef)}.homework-library-button span{float:right;min-width:34px;padding:4px 9px;border-radius:999px;background:#fff;color:#24456f;text-align:center}.homework-library-button small{display:block;margin-top:7px;font-size:13px;font-weight:650;opacity:.9}.homework-library-dialog{width:min(1180px,96vw);height:min(900px,94vh);max-width:none!important;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}.homework-library-content{overflow:auto;padding:16px}.homework-filters{position:sticky;top:-16px;z-index:4;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:-16px -16px 16px;padding:14px 16px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:blur(8px)}.homework-filters label{margin:0;font-weight:800}.homework-status{display:inline-flex;margin:7px 0;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:900}.homework-status.not-submitted{background:#fff1d4;color:#815300}.homework-status.waiting{background:#e8f2ff;color:#1f5aa8}.homework-status.reviewed{background:#e8fbef;color:#14753b}.homework-status.graded{background:#f0eaff;color:#6940a5}
.submitted {
  color: var(--green);
  font-weight: 750;
  background: #eafaf4;
  padding: 9px;
  border-radius: 10px;
}
.relation-ok { color: var(--green); font-weight: 800; align-self: center; }
.relation-pending { color: #9a6700; font-weight: 800; align-self: center; }
.role-badge {
  display: inline-block;
  background: #edf2ff;
  border-radius: 99px;
  padding: 3px 8px;
  font-size: 12px;
}
.role-control {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin: 3px 0;
  font-size: 12px;
}
.role-control select { width: auto; margin: 0; padding: 5px 7px; }
.homework-card textarea { min-height: 70px; }
.answer-text {
  margin: 10px 0;
  padding: 12px;
  border-left: 4px solid var(--blue);
  border-radius: 8px;
  background: #eef5ff;
}
.admin-user-grid { display: grid; gap: 12px; }
.admin-user-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: #fafcff;
}
.admin-user-fields { display: grid; grid-template-columns: 1fr 1fr 160px; gap: 9px; }
.admin-user-fields label { margin: 3px 0; }
.storage-summary { padding: 12px; border-radius: 12px; background: #eef5ff; font-weight: 750; }
.storage-actions { align-items: end; padding-bottom: 12px; }
.role-hierarchy { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.permission-card { position: relative; padding: 16px; border: 2px solid var(--line); border-radius: 17px; overflow: hidden; }
.permission-card h3 { margin: 0 0 4px; }
.permission-card p { margin: 0 0 8px; color: #64748b; font-weight: 750; }
.permission-card ul { margin: 8px 0; padding-left: 20px; }
.permission-card li { margin: 5px 0; }
.permission-card .level-number { position: absolute; right: 10px; top: 8px; font-size: 40px; font-weight: 950; opacity: .12; }
.admin-level { background: linear-gradient(145deg, #fff6cc, #fff); border-color: #e8b833; }
.teacher-level { background: linear-gradient(145deg, #e8f1ff, #fff); border-color: #78a1ee; }
.parent-level { background: linear-gradient(145deg, #f2eaff, #fff); border-color: #aa83e8; }
.student-level { background: linear-gradient(145deg, #e8fff1, #fff); border-color: #71c895; }
.approval-warning { margin: 10px 0; padding: 11px; border: 1px solid #efbd57; border-radius: 12px; background: #fff7df; color: #754d00; font-weight: 750; }
.approval-panel { margin: 12px 0 16px; padding: 14px; border: 2px solid #efbd57; border-radius: 16px; background: #fffbef; }
.approval-panel h3 { margin-top: 0; }
.role-request-card { padding: 13px; border: 1px solid #efbd57; border-radius: 13px; background: #fff; }
@media (max-width: 750px) {
  .admin-user-fields { grid-template-columns: 1fr; }
  .admin-user-card { grid-template-columns: 1fr; }
  .role-hierarchy { grid-template-columns: 1fr; }
}
@media (max-width: 750px) {
  .homework-grid { grid-template-columns: 1fr; }
  .homework-card { padding: 12px; }
  .role-control { display: flex; align-items: stretch; flex-direction: column; }
  .role-control select { width: 100%; }
  .homework-library-launch,.homework-filters{grid-template-columns:1fr}.homework-library-dialog{width:100%;height:94dvh;border-radius:22px 22px 0 0}.homework-library-content{padding:10px}.homework-filters{top:-10px;margin:-10px -10px 12px;padding:10px}
}
.homework-gate {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  padding: 12px;
  border: 1px solid #f0cf75;
  border-radius: 13px;
  background: #fff8dc;
  font-weight: 750;
}
.homework-gate input { width: auto; margin-top: 3px; }
.learning-locked {
  pointer-events: none;
  opacity: .62;
  filter: grayscale(.25);
}
.learning-lock-note {
  padding: 10px 12px;
  border: 1px solid #f0c36b;
  border-radius: 12px;
  background: #fff6d9;
  color: #765000;
  font-weight: 700;
}
.birthday-notice {
  margin-top: 12px;
  padding: 11px;
  border: 1px solid #f4ca63;
  border-radius: 14px;
  background: linear-gradient(135deg, #fff9da, #fff0fa);
  line-height: 1.65;
}
.birthday-notice:empty { display: none; }
.birthday-self {
  padding: 8px;
  border-radius: 10px;
  background: #fff;
  color: #a23472;
  font-weight: 900;
  animation: birthday-pulse 1.4s ease-in-out infinite alternate;
}
.discipline-form { border-color: #ef9a9a; background: #fff8f8; }
.grade-box {
  margin-top: 12px;
  padding: 13px;
  border: 1px solid #91c6f4;
  border-radius: 14px;
  background: #f2f9ff;
}
.grade-box h4 { margin: 0 0 8px; }
@keyframes birthday-pulse {
  from { transform: scale(1); box-shadow: 0 0 0 rgba(240, 93, 156, 0); }
  to { transform: scale(1.015); box-shadow: 0 5px 20px rgba(240, 93, 156, .2); }
}
.xp-claim-zone {
  margin: 14px 0 20px;
  padding: 16px;
  border: 2px solid #f0b429;
  border-radius: 18px;
  background: linear-gradient(135deg, #fff9d9, #fff0c2 55%, #ffe4f2);
  box-shadow: 0 10px 28px rgba(240, 180, 41, .2);
}
.xp-claim-zone h3 { margin: 0 0 4px; color: #805400; }
.xp-claim-zone > p { margin: 4px 0 12px; }
.xp-claim-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 9px;
  padding: 12px;
  border-radius: 14px;
  background: rgba(255,255,255,.9);
}
.xp-claim-button {
  flex: 0 0 auto;
  border: 0;
  background: linear-gradient(135deg, #ff9f1c, #ff477e);
  box-shadow: 0 7px 18px rgba(255, 71, 126, .3);
  animation: claim-bounce 1.1s ease-in-out infinite alternate;
}
.xp-reward-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  padding: 18px;
  overflow: hidden;
  background: rgba(14, 29, 57, .72);
  backdrop-filter: blur(7px);
}
.xp-reward-overlay.hidden { display: none; }
.xp-reward-card {
  position: relative;
  z-index: 2;
  width: min(440px, 94vw);
  padding: 30px 24px;
  border: 4px solid #ffd24d;
  border-radius: 28px;
  background: linear-gradient(145deg, #fff, #fff6c7);
  text-align: center;
  box-shadow: 0 25px 80px rgba(0,0,0,.35);
  animation: reward-pop .65s cubic-bezier(.2,1.6,.4,1);
}
.xp-trophy { font-size: 74px; animation: trophy-dance .7s ease-in-out infinite alternate; }
.xp-reward-card h2 { margin: 5px 0; color: #8a5200; }
.xp-reward-amount {
  font-size: clamp(42px, 10vw, 68px);
  font-weight: 950;
  color: #ff477e;
  text-shadow: 0 3px #fff, 0 7px 18px rgba(255,71,126,.25);
}
.xp-star {
  position: absolute;
  top: -40px;
  z-index: 1;
  font-style: normal;
  font-size: 24px;
  animation: xp-star-fall 2.4s linear forwards;
}
@keyframes claim-bounce { to { transform: translateY(-3px) scale(1.035); } }
@keyframes reward-pop { from { opacity: 0; transform: scale(.35) rotate(-8deg); } to { opacity: 1; transform: scale(1) rotate(0); } }
@keyframes trophy-dance { to { transform: rotate(8deg) scale(1.08); } }
@keyframes xp-star-fall { to { transform: translateY(110vh) rotate(620deg); opacity: .2; } }
@media (max-width: 600px) {
  .xp-claim-card { align-items: stretch; flex-direction: column; }
  .xp-claim-button { width: 100%; }
}

.homework-admin-launch,.friend-popup-launch{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}
.friend-popup-launch{grid-template-columns:repeat(2,minmax(0,1fr))}
.friend-popup-launch button{display:flex;align-items:center;justify-content:center;gap:8px}
.friend-popup-launch span{min-width:25px;padding:2px 7px;border-radius:999px;background:#fff;color:#315b91;font-weight:900}
.compact-list-dialog{width:min(760px,94vw);max-height:88vh}
.form-popup-dialog{width:min(820px,94vw);max-height:92vh}
.planning-dialog{width:min(1080px,96vw);max-height:94vh}
.reward-goal-card{border:1px solid #d8e5f2;border-radius:18px;padding:15px;background:linear-gradient(145deg,#fff,#f7fbff);margin:10px 0}
.reward-goal-card.approved{border-color:#69c98a;background:#f1fff5}.reward-goal-card.rejected{border-color:#ff9c9c;background:#fff5f5}
.reward-review{display:grid;grid-template-columns:120px 1fr;gap:10px;margin-top:12px}.reward-review .row-actions{grid-column:1/-1}
.timetable-grid{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));gap:9px;overflow-x:auto;padding-bottom:8px}
.timetable-day{min-height:170px;border:1px solid #d8e5f2;border-radius:16px;padding:10px;background:#f8fbff}.timetable-day h3{text-align:center;margin:0 0 9px}
.timetable-entry{border-left:5px solid #55a6ec;border-radius:10px;background:#fff;padding:8px;margin:7px 0;box-shadow:0 3px 10px #26496a14}
.attachment-list{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.attachment-link{display:inline-flex;gap:6px;align-items:center;padding:8px 11px;border:1px solid #cfe0ef;border-radius:12px;background:#f6fbff;text-decoration:none}
@media(max-width:750px){.homework-admin-launch,.friend-popup-launch{grid-template-columns:1fr}.reward-review{grid-template-columns:1fr}.timetable-grid{grid-template-columns:repeat(7,minmax(130px,1fr))}}
