/**

 * 浅蓝可换背景 + 首页深蓝大卡片 + 参考图青绿渐变按钮（黑字）

 */

:root {

  --screen-bg-color: #a8dcff;

  --screen-bg-gradient:

    radial-gradient(ellipse 85% 65% at 8% 12%, rgba(255, 255, 255, 0.72) 0%, transparent 52%),

    radial-gradient(ellipse 75% 55% at 92% 88%, rgba(196, 181, 253, 0.42) 0%, transparent 50%),

    radial-gradient(ellipse 55% 45% at 72% 18%, rgba(254, 215, 226, 0.28) 0%, transparent 48%),

    linear-gradient(135deg, #93c9ff 0%, #b8c8ff 36%, #c9d4ff 52%, #9fd4ff 100%);

  --screen-bg-photo: none;



  /* 参考图「添加作业」：黄绿 → 青绿，文字纯黑 */

  --ui-green-btn: linear-gradient(90deg, #d4ff4d 0%, #b8f52a 22%, #7aed9a 52%, #5eead4 88%, #4dd4e8 100%);

  --ui-green-btn-shadow: 0 4px 16px rgba(94, 234, 212, 0.35);

  --ui-green-btn-text: #000000;



  --ui-card-bg: linear-gradient(168deg, rgba(59, 130, 246, 0.8) 0%, rgba(37, 99, 235, 0.8) 42%, rgba(29, 78, 216, 0.8) 100%);

  --ui-card-bg-soft: linear-gradient(168deg, rgba(69, 140, 255, 0.8) 0%, rgba(43, 114, 239, 0.8) 48%, rgba(34, 104, 232, 0.8) 100%);

  /* 首页底部导航：更透，与上方大卡片区分 */
  --ui-card-bg-nav: linear-gradient(168deg, rgba(59, 130, 246, 0.6) 0%, rgba(37, 99, 235, 0.6) 42%, rgba(29, 78, 216, 0.6) 100%);

  --ui-card-border: rgba(191, 219, 254, 0.55);

  --ui-card-highlight: inset 0 1px 0 rgba(255, 255, 255, 0.22);

  --ui-card-shadow: 0 16px 40px rgba(29, 78, 216, 0.28);

  --ui-blur-card: none;



  --ui-on-card: #ffffff;

  --ui-on-card-muted: rgba(255, 255, 255, 0.84);

  --ui-on-card-dim: rgba(219, 234, 254, 0.78);

  --ui-on-card-title: #ffffff;

  --ui-accent-blue: #93c5fd;

  /* 子页浅色卡片（参考值日安排） */
  --ui-panel-light: rgba(255, 255, 255, 0.92);
  --ui-panel-light-head: #e8f2ff;
  --ui-panel-shadow: 0 12px 32px rgba(59, 130, 246, 0.12);
  --ui-on-panel: #2d3436;
  --ui-on-panel-muted: #546e7a;
  --ui-on-panel-dim: #78909c;
  --ui-on-panel-title: #2563eb;
  --ui-on-panel-accent: #1d4ed8;

}



.screen {

  background: transparent;

  isolation: isolate;

}



.screen-bg {

  position: absolute;

  inset: 0;

  z-index: 0;

  pointer-events: none;

  background-color: var(--screen-bg-color);

  background-image: var(--screen-bg-gradient);

  background-size: cover;

  background-position: center;

  background-repeat: no-repeat;

}



/* 本地图在下层铺满，仅加很轻的蒙层，避免被默认渐变盖住 */

.screen-bg--photo {

  background-image:

    linear-gradient(180deg, rgba(255, 255, 255, 0.06) 0%, rgba(174, 214, 255, 0.04) 100%),

    var(--screen-bg-photo);

  background-size: cover, cover;

  background-position: center, center;

}



.screen-bg::after {

  display: none;

}



.screen > .view,

.screen > .album-viewer,

.screen > .album-lightbox {

  z-index: 1;

}



/* 参考图绿渐变 + 黑字（首页操作按钮） */

.view--dashboard .btn-detail:not(.btn-detail--ghost),

.view--dashboard .pill-btn {

  background: var(--ui-green-btn);

  color: var(--ui-green-btn-text);

  font-weight: 700;

  box-shadow: var(--ui-green-btn-shadow);

  border: 1px solid rgba(255, 255, 255, 0.45);

}



.view--dashboard .btn-detail--ghost {

  background: rgba(255, 255, 255, 0.12);

  color: rgba(219, 234, 254, 0.95);

  font-weight: 600;

  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.22);

  border: none;

}



/* —— 首页：深蓝大卡片（参考图） —— */

.view--dashboard .card {

  background: var(--ui-card-bg);

  backdrop-filter: none;

  -webkit-backdrop-filter: none;

  border: none;

  border-radius: 14px;

  backdrop-filter: blur(10px);

  -webkit-backdrop-filter: blur(10px);

  box-shadow: var(--ui-card-shadow), var(--ui-card-highlight);

  color: var(--ui-on-card);

}



.view--dashboard .card::before,

.view--dashboard .card__wave {

  display: none;

}



.view--dashboard .card--schedule {

  background: var(--ui-card-bg-soft);

}



.view--dashboard .card__head h2 {

  color: var(--ui-on-card);

  font-weight: 700;

}



.view--dashboard .card__title-row h3,

.view--dashboard .schedule-head__title {

  color: var(--ui-on-card-title);

  font-weight: 700;

}



.view--dashboard .card__subtitle,

.view--dashboard .info-rows,

.view--dashboard .notice-item__text p,

.view--dashboard .notice-item__text time,

.view--dashboard .attendance-stats {

  color: var(--ui-on-card-muted);

}



.view--dashboard .notice-item__text h4,

.view--dashboard .roster-name {

  color: var(--ui-on-card);

}



.view--dashboard .info-rows li {

  border-bottom-color: rgba(255, 255, 255, 0.14);

}



.view--dashboard .link-btn {

  color: #bfdbfe;

}



.view--dashboard .donut {

  background: conic-gradient(#7dd3fc calc(var(--pct) * 1%), rgba(255, 255, 255, 0.14) 0);

}



.view--dashboard .donut__inner {

  background: rgba(29, 78, 216, 0.92);

  color: var(--ui-on-card-muted);

  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12);

}



.view--dashboard .donut__inner strong {

  color: #ffffff;

}



.view--dashboard .n--blue { color: #bae6fd; }

.view--dashboard .n--red { color: #fecaca; }

.view--dashboard .n--yellow { color: #fde68a; }



.view--dashboard .schedule-view-btn,

.view--dashboard .day-picker {

  background: rgba(255, 255, 255, 0.14);

  color: #f0f9ff;

  border: 1px solid rgba(255, 255, 255, 0.2);

  box-shadow: none;

}



.view--dashboard .schedule-view-btn.is-active,

.view--dashboard .day-picker[aria-expanded="true"] {

  background: rgba(255, 255, 255, 0.95);

  color: #1d4ed8;

  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.35);

}



.view--dashboard .schedule-cell {

  background: rgba(255, 255, 255, 0.22);

  border: none;

  box-shadow: none;

}



.view--dashboard .schedule-cell--empty {

  background: rgba(255, 255, 255, 0.12);

  color: rgba(255, 255, 255, 0.65);

  opacity: 1;

}



.view--dashboard .schedule-cell__bar {

  background: rgba(255, 255, 255, 0.45);

}



.view--dashboard .schedule-cell strong {

  color: #ffffff;

}



.view--dashboard .schedule-cell__teacher,

.view--dashboard .schedule-cell__time {

  color: rgba(219, 234, 254, 0.88);

}



/* 进行中：同款绿渐变 + 黑字 */

.view--dashboard .schedule-grid .schedule-cell--live {

  background: var(--ui-green-btn) !important;

  border: none;

  box-shadow: var(--ui-green-btn-shadow);

  z-index: 1;

}



.view--dashboard .schedule-grid .schedule-cell--live strong,

.view--dashboard .schedule-grid .schedule-cell--live .schedule-cell__teacher,

.view--dashboard .schedule-grid .schedule-cell--live .schedule-cell__time {

  color: var(--ui-green-btn-text);

}



.view--dashboard .schedule-grid .schedule-cell--live .schedule-cell__teacher {

  opacity: 0.88;

}



.view--dashboard .schedule-list__row--live {

  background: var(--ui-green-btn) !important;

  box-shadow: var(--ui-green-btn-shadow);

}



.view--dashboard .schedule-list__row--live .schedule-list__subject,

.view--dashboard .schedule-list__row--live .schedule-list__time,

.view--dashboard .schedule-list__row--live .schedule-list__teacher {

  color: var(--ui-green-btn-text);

}



.view--dashboard .schedule-cell__tag {

  background: rgba(0, 0, 0, 0.72);

  color: #fff;

}



.view--dashboard .roster-list li {

  border-bottom-color: rgba(255, 255, 255, 0.12);

}



.view--dashboard .roster-av {

  background: rgba(255, 255, 255, 0.2);

  color: #e0f2fe;

}



.view--dashboard .roster-role {

  color: #bfdbfe;

}



.view--dashboard .schedule-head__bar {

  background: linear-gradient(180deg, #4ade80, #22c55e);

}



.view--dashboard .top-header {

  grid-template-columns: minmax(0, 1fr) auto auto;

  gap: 8px 6px;

  background: transparent;

  backdrop-filter: none;

  -webkit-backdrop-filter: none;

  border-bottom: none;

  box-shadow: none;

  color: #1e3a8a;

}



.view--dashboard .top-header__countdown {

  justify-self: end;

  background: transparent;

  border: none;

  box-shadow: none;

  color: #1e40af;

  padding-right: 0;

}



.view--dashboard .top-header__right {

  justify-self: start;

  gap: 10px;

}



.view--dashboard .top-header__weather {

  border-left: none;

}



.view--dashboard .bottom-nav {

  display: flex;

  justify-content: center;

  align-items: flex-end;

  background: var(--ui-card-bg-nav);

  backdrop-filter: blur(10px);

  -webkit-backdrop-filter: blur(10px);

  border: none;

  border-radius: 14px;

  box-shadow: var(--ui-card-shadow), var(--ui-card-highlight);

}



/* 首页两行网格：考勤与校园通知同高 */

.view--dashboard .dashboard {

  grid-template-rows: minmax(0, 1fr) minmax(0, 1fr);

}



.view--dashboard .dashboard__col {

  display: contents;

}



.view--dashboard .card--class {

  grid-column: 1;

  grid-row: 1;

  min-height: 0;

}



.view--dashboard .card--attendance {

  grid-column: 1;

  grid-row: 2;

  min-height: 0;

}



.view--dashboard .card--schedule {

  grid-column: 2;

  grid-row: 1;

  min-height: 0;

}



.view--dashboard .card--notice {

  grid-column: 2;

  grid-row: 2;

  min-height: 0;

  display: flex;

  flex-direction: column;

}



.view--dashboard .card--notice .notice-item {

  flex: 1;

  min-height: 0;

}



.view--dashboard .card--roster {

  grid-column: 3;

  grid-row: 1 / span 2;

  min-height: 0;

}



.view--dashboard .bottom-nav__group {

  grid-column: unset;

  display: flex;

  align-items: flex-end;

  justify-content: center;

  flex-wrap: wrap;

  gap: 2px 4px;

  width: 100%;

  max-width: 100%;

}



.view--dashboard .bottom-nav__item--checkin {

  grid-column: unset;

  justify-self: unset;

}



.view--dashboard .bottom-nav__item {

  color: rgba(219, 234, 254, 0.92);

  font-weight: 500;

}



.view--dashboard .bottom-nav__item--active {

  color: #ffffff;

  font-weight: 700;

}



.view--dashboard .bottom-nav__icon {

  background: rgba(255, 255, 255, 0.14);

  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12);

}



.view--dashboard .bottom-nav__item--active .bottom-nav__icon {

  background: rgba(255, 255, 255, 0.28);

  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18), inset 0 0 0 1px rgba(255, 255, 255, 0.35);

}



.view--dashboard .bottom-nav__settings {

  grid-column: unset;

  justify-self: unset;

}



/* 子页：同样淡白卡片 */

.view--sub,

.view--apps,

.view--schedule {

  background: transparent;

}



.view--sub .module-body {

  background: transparent;

}



.view--sub .module-header,

.view--checkin .checkin-hero,

.view--checkin .checkin-face,

.view--checkin .checkin-card,

.view--checkin .checkin-form,

.view--checkin .checkin-records,

.view--checkin .checkin-mini-stats li,

.leave-dialog__panel,

.repair-dialog__panel,

.view--sub .settings-group {

  background: var(--ui-card-bg) !important;

  backdrop-filter: var(--ui-blur-card) !important;

  -webkit-backdrop-filter: var(--ui-blur-card) !important;

  border: 1px solid var(--ui-card-border) !important;

  box-shadow: var(--ui-card-shadow), var(--ui-card-highlight) !important;

  color: var(--ui-on-card);

}



.view--sub .module-header {

  background: transparent !important;

  backdrop-filter: none !important;

  -webkit-backdrop-filter: none !important;

  border: none !important;

  box-shadow: none !important;

  color: #1e3a8a !important;

  margin-bottom: 2px;

}



.view--sub .module-header h1 {

  color: #1e3a8a;

}



.view--sub .module-header .back-btn--dark {

  color: #1d4ed8;

  background: rgba(255, 255, 255, 0.55);

  border-radius: 999px;

  padding: 4px 12px;

}



.view--leave .leave-profile {

  background: var(--ui-card-bg-soft) !important;

}



.view--leave .leave-profile__name,

.view--leave .leave-card__who,

.view--repair .repair-card__title,

.checkin-hero__clock {

  color: var(--ui-on-card);

}



.view--leave .leave-profile__greet,

.view--leave .leave-profile__class,

.view--leave .leave-card__time,

.view--leave .leave-card__reason,

.view--repair .repair-card__desc,

.checkin-hero__date,

.checkin-hero__prompt {

  color: var(--ui-on-card-muted);

}



/* 页面背景上的 Tab：浅底深字；选中青绿 */

.view--leave .leave-tabs__btn,

.view--repair .repair-tabs__btn,

.checkin-subnav__btn,

.view--sub .module-tabs button {

  background: rgba(255, 255, 255, 0.58);

  color: #1e3a8a;

  border: 1px solid rgba(255, 255, 255, 0.75);

  box-shadow: 0 2px 8px rgba(59, 130, 246, 0.1);

}



.view--leave .leave-tabs__btn.is-active,

.view--repair .repair-tabs__btn.is-active {

  background: var(--ui-green-btn);

  color: var(--ui-green-btn-text);

  font-weight: 700;

  border-color: rgba(255, 255, 255, 0.45);

}



/* —— 考勤打卡 —— */

.view--checkin .checkin-hero,

.view--checkin .checkin-face,

.view--checkin .checkin-card,

.view--checkin .checkin-form,

.view--checkin .checkin-records,

.view--checkin .checkin-mini-stats li {

  border: none !important;

}



.view--checkin .checkin-form__row,

.view--checkin .checkin-form__row > span {

  color: #eef3ff;

  font-weight: 600;

}



.view--checkin .checkin-form__row select,

.view--checkin .checkin-form__row input,

.view--checkin .checkin-form__row textarea {

  background: rgba(255, 255, 255, 0.8);

  color: #2d3436;

  border: 1px solid rgba(255, 255, 255, 0.55);

}



.view--checkin .checkin-face,

.view--checkin .checkin-card {

  color: var(--ui-on-card-muted);

}



.view--checkin .checkin-hero__nfc {

  color: #bae6fd;

}



.view--checkin .checkin-mini-stats strong {

  color: #ffffff;

}



.view--checkin .checkin-mini-stats li:nth-child(2) strong {

  color: #fde68a;

}



.view--checkin .checkin-mini-stats li:nth-child(3) strong {

  color: #fecaca;

}



.view--checkin .checkin-mini-stats span {

  color: rgba(219, 234, 254, 0.92);

}



.view--checkin .checkin-records__tip {

  color: #eef3ff;

  font-weight: 600;

}



.view--checkin .checkin-records__link {

  color: #bae6fd;

}



.view--checkin .checkin-records .data-table {

  background: rgba(255, 255, 255, 0.96);

}



.view--checkin .checkin-records .data-table th {

  background: #e8f2ff;

  color: #1d4ed8;

}



.view--checkin .checkin-records .data-table td {

  color: #2d3436;

}



.view--leave .leave-form__row input,

.view--leave .leave-form__row textarea,

.view--leave .leave-form__row select {

  background: rgba(15, 40, 100, 0.25);

  border-color: rgba(191, 219, 254, 0.35);

  color: var(--ui-on-card);

}



.view--leave .leave-type-toggle__btn.is-active {

  background: var(--ui-green-btn);

  color: var(--ui-green-btn-text);

  font-weight: 700;

}



/* 行政课表页：对齐首页深蓝卡片 + 课表格子 22% 浅白 */

.view--schedule .sub-header--schedule {

  background: transparent;

  border: none;

  box-shadow: none;

}



.view--schedule .sub-header--schedule .back-btn--dark {

  color: #1e3a8a;

}



.view--schedule .schedule-page {

  border: none !important;

  color: var(--ui-on-card);

}



.view--schedule .schedule-head__title {

  color: #ffffff;

}



.view--schedule .schedule-head__bar {

  background: linear-gradient(180deg, #4ade80, #22c55e);

}



.view--schedule .schedule-view-btn,

.view--schedule .day-picker {

  background: rgba(255, 255, 255, 0.14);

  color: #f0f9ff;

  border: none;

  box-shadow: none;

}



.view--schedule .schedule-view-btn.is-active,

.view--schedule .day-picker[aria-expanded="true"] {

  background: var(--ui-green-btn) !important;

  color: var(--ui-green-btn-text) !important;

  font-weight: 700;

  box-shadow: var(--ui-green-btn-shadow);

  border: 1px solid rgba(255, 255, 255, 0.45) !important;

}



.view--schedule .schedule-calendar__day-head {

  background: rgba(255, 255, 255, 0.22);

  color: #ffffff;

  border: none;

}



.view--schedule .schedule-calendar__day-head.is-today {

  background: var(--ui-green-btn);

  color: var(--ui-green-btn-text);

  font-weight: 700;

}



.view--schedule .schedule-calendar__time {

  color: var(--ui-on-card-dim);

}



.view--schedule .schedule-calendar__cell {

  background: rgba(255, 255, 255, 0.22);

  border: none;

  box-shadow: none;

}



.view--schedule .schedule-calendar__cell strong {

  color: #ffffff;

}



.view--schedule .schedule-calendar__cell span {

  color: var(--ui-on-card-dim);

}



.view--schedule .schedule-calendar__cell--empty {

  background: rgba(255, 255, 255, 0.12);

  opacity: 1;

  color: rgba(255, 255, 255, 0.45);

}



.view--schedule .schedule-calendar__cell--live {

  background: var(--ui-green-btn);

  box-shadow: var(--ui-green-btn-shadow);

  border: none;

}



.view--schedule .schedule-calendar__cell--live strong,

.view--schedule .schedule-calendar__cell--live span {

  color: var(--ui-green-btn-text);

}



.view--schedule .schedule-grid .schedule-cell {

  background: rgba(255, 255, 255, 0.22);

  border: none;

}



.view--schedule .schedule-grid .schedule-cell strong {

  color: #ffffff;

}



.view--schedule .schedule-grid .schedule-cell__teacher,

.view--schedule .schedule-grid .schedule-cell__time {

  color: var(--ui-on-card-dim);

}



.view--schedule .schedule-grid .schedule-cell--live {

  background: var(--ui-green-btn);

  box-shadow: var(--ui-green-btn-shadow);

}



.view--schedule .schedule-grid .schedule-cell--live strong,

.view--schedule .schedule-grid .schedule-cell--live .schedule-cell__teacher,

.view--schedule .schedule-grid .schedule-cell--live .schedule-cell__time {

  color: var(--ui-green-btn-text);

}



.view--schedule .schedule-list__row {

  background: rgba(255, 255, 255, 0.22);

  border: none;

}



.view--schedule .schedule-list__subject {

  color: #ffffff;

}



.view--schedule .schedule-list__time,

.view--schedule .schedule-list__teacher {

  color: var(--ui-on-card-dim);

}



.view--schedule .schedule-list__day-title {

  color: #bfdbfe;

}



.view--schedule .schedule-list__row--live {

  background: var(--ui-green-btn);

  border: none;

}



.view--schedule .schedule-list__row--live .schedule-list__subject,

.view--schedule .schedule-list__row--live .schedule-list__time,

.view--schedule .schedule-list__row--live .schedule-list__teacher {

  color: var(--ui-green-btn-text);

}



.view--sub .settings-group {

  border: none !important;

  background: transparent !important;

  box-shadow: var(--ui-card-shadow);

  overflow: hidden;

  margin-bottom: 12px;

  border-radius: 14px;

}



.view--sub .settings-group h3 {

  background: var(--ui-card-bg) !important;

  color: #ffffff;

  border-bottom: none;

  border-radius: 0;

  margin: 0;

}



.view--sub .settings-row {

  background: rgba(255, 255, 255, 0.8);

  color: #1e40af;

  border-top: none;

  margin: 0;

}



.view--sub .settings-group .settings-row + .settings-row {

  border-top: 1px solid rgba(30, 58, 138, 0.08);

}



.view--sub .settings-group .settings-row:last-child {

  border-radius: 0;

}



.view--sub .settings-row span:first-child {

  color: #1e3a8a;

  font-weight: 600;

}



.view--sub .settings-row .muted-dark {

  color: #334155 !important;

  font-weight: 500;

}



.view--sub .settings-row input[type="range"] {

  width: 120px;

  height: 6px;

  accent-color: #7aed9a;

  background: transparent;

  cursor: pointer;

}



.view--sub .settings-row input[type="range"]::-webkit-slider-runnable-track {

  height: 6px;

  border-radius: 999px;

  background: linear-gradient(90deg, #d4ff4d 0%, #b8f52a 35%, #7aed9a 65%, #5eead4 100%);

  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.35);

}



.view--sub .settings-row input[type="range"]::-webkit-slider-thumb {

  -webkit-appearance: none;

  width: 16px;

  height: 16px;

  margin-top: -5px;

  border-radius: 50%;

  background: linear-gradient(135deg, #d4ff4d 0%, #5eead4 100%);

  border: 2px solid rgba(255, 255, 255, 0.85);

  box-shadow: 0 2px 8px rgba(94, 234, 212, 0.45);

}



.view--sub .settings-row input[type="range"]::-moz-range-track {

  height: 6px;

  border-radius: 999px;

  background: linear-gradient(90deg, #d4ff4d 0%, #b8f52a 35%, #7aed9a 65%, #5eead4 100%);

  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.35);

}



.view--sub .settings-row input[type="range"]::-moz-range-thumb {

  width: 14px;

  height: 14px;

  border-radius: 50%;

  background: linear-gradient(135deg, #d4ff4d 0%, #5eead4 100%);

  border: 2px solid rgba(255, 255, 255, 0.85);

  box-shadow: 0 2px 8px rgba(94, 234, 212, 0.45);

}



.settings-wallpaper__pick {

  background: var(--ui-green-btn);

  color: var(--ui-green-btn-text);

  box-shadow: var(--ui-green-btn-shadow);

}



.settings-wallpaper__reset {

  background: rgba(255, 255, 255, 0.75);

  color: #37474f;

}



.settings-hint {

  color: var(--ui-on-card-dim);

}



.settings-row--wallpaper {

  flex-wrap: wrap;

  gap: 8px;

}



.settings-wallpaper {

  display: flex;

  flex-wrap: wrap;

  gap: 8px;

  align-items: center;

}



.settings-wallpaper__pick,

.settings-wallpaper__reset {

  border: none;

  border-radius: 999px;

  padding: 6px 14px;

  font-size: 12px;

  font-family: inherit;

  cursor: pointer;

  font-weight: 600;

}



.checkin-hero__btn,

.leave-form__submit,

.repair-submit-btn,

.leave-card__btn:not(.leave-card__btn--ghost),

.repair-dialog__btn:not(.repair-dialog__btn--ghost):not(.repair-dialog__btn--danger),

.leave-dialog__btn:not(.leave-dialog__btn--ghost):not(.leave-dialog__btn--danger) {

  background: var(--ui-green-btn) !important;

  color: var(--ui-green-btn-text) !important;

  font-weight: 700;

  box-shadow: var(--ui-green-btn-shadow);

  border: 1px solid rgba(255, 255, 255, 0.45) !important;

}



.checkin-subnav__btn.is-active,

.repair-tabs__btn.is-active,

.leave-tabs__btn.is-active,

.module-tabs button.is-active {

  background: var(--ui-green-btn) !important;

  color: var(--ui-green-btn-text) !important;

  font-weight: 700;

  box-shadow: var(--ui-green-btn-shadow);

  border: 1px solid rgba(255, 255, 255, 0.45) !important;

}



/* —— 故障报修 —— */

.view--repair .repair-card {

  border: none !important;

}



.view--repair .repair-card__title {

  color: #ffffff;

}



.view--repair .repair-card__desc {

  color: var(--ui-on-card-muted);

}



.view--repair .repair-card__meta {

  color: var(--ui-on-card-dim);

}



.view--repair .repair-card__foot {

  border-top-color: rgba(255, 255, 255, 0.12);

}



.view--repair .repair-card__link {

  color: #93c5fd;

}



.view--repair .repair-card__link--primary {

  color: #bae6fd;

}



.view--repair .repair-step__label {

  color: rgba(219, 234, 254, 0.8);

}



.view--repair .repair-step--done .repair-step__label {

  color: #ffffff;

}



.view--repair .repair-step__time {

  color: rgba(191, 219, 254, 0.72);

}



.view--repair .repair-step--done .repair-step__time {

  color: rgba(219, 234, 254, 0.88);

}



.view--repair .repair-empty {

  color: var(--ui-on-card-muted);

  border: none !important;

}



.view--repair .repair-form__row,

.view--repair .repair-form__row > span {

  color: #eef3ff;

  font-weight: 600;

}



.view--repair .repair-form__row select,

.view--repair .repair-form__row input,

.view--repair .repair-form__row textarea {

  background: rgba(255, 255, 255, 0.95);

  color: #2d3436;

}



.view--repair .repair-dialog__panel h2 {

  color: #ffffff;

}



.view--repair .repair-detail__row dt {

  color: var(--ui-on-card-dim);

}



.view--repair .repair-detail__row dd {

  color: #ffffff;

}



/* —— 学生请假 —— */

.view--leave .leave-form__row,

.view--leave .leave-form__row > span {

  color: #eef3ff;

  font-weight: 600;

}



.view--leave .leave-card__meta,

.view--leave .leave-empty {

  color: var(--ui-on-card-muted);

}



.view--leave .leave-card {

  background: rgba(255, 255, 255, 0.12) !important;

  border: none !important;

  backdrop-filter: none !important;

}



.view--leave .leave-card__who {

  color: #ffffff;

}



.view--leave .leave-card__time,

.view--leave .leave-card__reason {

  color: var(--ui-on-card-muted);

}



.view--leave .leave-card__link {

  color: #93c5fd;

}



.view--leave .leave-card__btn--ghost {

  background: rgba(255, 255, 255, 0.14);

  color: #dbeafe;

  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.22);

}



.view--leave .leave-type-toggle__btn {

  background: rgba(255, 255, 255, 0.14);

  color: #f0f9ff;

}



/* —— 座位表 —— */

.view--seats .seat-map {

  border: none !important;

}



.view--seats .seat-map__col-head,

.view--seats .seat-map__row-head {

  color: #ffffff;

  font-size: 11px;

  text-shadow: 0 1px 2px rgba(15, 40, 100, 0.35);

}



.view--seats .seat-cell--empty .seat-cell__desk {

  background: rgba(255, 255, 255, 0.22);

  color: rgba(255, 255, 255, 0.75);

  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.15);

}



.view--seats .seat-cell--present .seat-cell__desk {

  color: #0d3d26;

}



.view--seats .seat-cell--late .seat-cell__desk {

  color: #0a2e4d;

}



.view--seats .seat-cell--absent .seat-cell__desk {

  color: #4a0f0f;

}



.view--seats .seat-cell--leave .seat-cell__desk {

  color: #2d3436;

}



.view--seats .seat-cell__bar {

  height: 5px;

  box-shadow: 0 0 4px rgba(0, 0, 0, 0.2);

}



.view--seats .seat-legend {

  color: #eef3ff;

  font-weight: 500;

}



.view--seats .seat-map__btn {

  background: rgba(255, 255, 255, 0.8);

  color: #1e3a8a;

  border: 1px solid rgba(255, 255, 255, 0.55);

  box-shadow: 0 2px 8px rgba(15, 40, 100, 0.12);

}



.view--seats .seat-map__btn:hover {

  background: rgba(255, 255, 255, 0.92);

}



/* —— 浅色主卡片：请假 / 报修 / 行政课表 / 座位表（参考值日安排） —— */

.view--leave .leave-main,

.view--leave .leave-profile,

.view--repair .repair-card,

.view--schedule .schedule-page,

.view--seats .seat-map {

  background: var(--ui-panel-light) !important;

  backdrop-filter: blur(14px) !important;

  -webkit-backdrop-filter: blur(14px) !important;

  border: none !important;

  box-shadow: var(--ui-panel-shadow) !important;

  color: var(--ui-on-panel);

}



/* 学生请假 */

.view--leave .leave-profile__greet,

.view--leave .leave-profile__class {

  color: var(--ui-on-panel-muted);

}



.view--leave .leave-profile__name {

  color: var(--ui-on-panel);

}



.view--leave .leave-tabs__btn {

  background: rgba(255, 255, 255, 0.85);

  color: var(--ui-on-panel-title);

  border: 1px solid rgba(52, 136, 255, 0.15);

}



.view--leave .leave-card {

  background: rgba(248, 251, 255, 0.95) !important;

  box-shadow: inset 0 0 0 1px rgba(52, 136, 255, 0.1);

}



.view--leave .leave-card__who {

  color: var(--ui-on-panel);

}



.view--leave .leave-card__time,

.view--leave .leave-card__reason,

.view--leave .leave-card__meta {

  color: var(--ui-on-panel-muted);

}



.view--leave .leave-card__link {

  color: var(--ui-on-panel-accent);

}



.view--leave .leave-card__btn--ghost {

  background: rgba(232, 242, 255, 0.95);

  color: var(--ui-on-panel-accent);

  box-shadow: inset 0 0 0 1px rgba(52, 136, 255, 0.2);

}



.view--leave .leave-form__row,

.view--leave .leave-form__row > span {

  color: var(--ui-on-panel);

}



.view--leave .leave-form__row input,

.view--leave .leave-form__row textarea,

.view--leave .leave-form__row select {

  background: rgba(255, 255, 255, 0.8);

  color: var(--ui-on-panel);

  border-color: rgba(52, 136, 255, 0.22);

}



.view--leave .leave-type-toggle__btn {

  background: rgba(255, 255, 255, 0.85);

  color: var(--ui-on-panel-muted);

  border: 1px solid rgba(52, 136, 255, 0.12);

}



.view--leave .leave-empty {

  color: var(--ui-on-panel-dim);

}



/* 故障报修 */

.view--repair .repair-card__title {

  color: var(--ui-on-panel);

}



.view--repair .repair-card__desc {

  color: var(--ui-on-panel-muted);

}



.view--repair .repair-card__meta {

  color: var(--ui-on-panel-dim);

}



.view--repair .repair-card__foot {

  border-top-color: #f1f3f5;

}



.view--repair .repair-card__link {

  color: var(--ui-on-panel-accent);

}



.view--repair .repair-card__link--primary {

  color: #3488ff;

}



.view--repair .repair-step__label {

  color: var(--ui-on-panel-dim);

}



.view--repair .repair-step--done .repair-step__label {

  color: var(--ui-on-panel);

}



.view--repair .repair-step__time {

  color: #90a4ae;

}



.view--repair .repair-empty {

  color: var(--ui-on-panel-dim);

  background: var(--ui-panel-light) !important;

}



.view--repair .repair-form__row,

.view--repair .repair-form__row > span {

  color: var(--ui-on-panel);

}



.view--repair .repair-dialog__panel {

  background: var(--ui-panel-light) !important;

  color: var(--ui-on-panel);

}



.view--repair .repair-dialog__panel h2 {

  color: var(--ui-on-panel);

}



.view--repair .repair-detail__row dt {

  color: var(--ui-on-panel-dim);

}



.view--repair .repair-detail__row dd {

  color: var(--ui-on-panel);

}



/* 行政课表（子页） */

.view--schedule .schedule-page {

  color: var(--ui-on-panel);

}



.view--schedule .schedule-head__title {

  color: var(--ui-on-panel-title);

}



.view--schedule .schedule-view-btn,

.view--schedule .day-picker {

  background: rgba(255, 255, 255, 0.9);

  color: var(--ui-on-panel);

  border: 1px solid rgba(52, 136, 255, 0.15);

}



.view--schedule .schedule-grid .schedule-cell {

  background: rgba(232, 242, 255, 0.95);

  border: none;

  box-shadow: inset 0 0 0 1px rgba(52, 136, 255, 0.08);

}



.view--schedule .schedule-grid .schedule-cell strong {

  color: var(--ui-on-panel);

}



.view--schedule .schedule-grid .schedule-cell__teacher,

.view--schedule .schedule-grid .schedule-cell__time {

  color: var(--ui-on-panel-dim);

}



.view--schedule .schedule-grid .schedule-cell__bar {

  background: #cfd8dc;

}



.view--schedule .schedule-calendar__day-head {

  background: var(--ui-panel-light-head);

  color: var(--ui-on-panel-accent);

}



.view--schedule .schedule-calendar__day-head.is-today {

  background: var(--ui-green-btn);

  color: var(--ui-green-btn-text);

}



.view--schedule .schedule-calendar__time {

  color: var(--ui-on-panel-dim);

}



.view--schedule .schedule-calendar__cell {

  background: rgba(248, 251, 255, 0.95);

  box-shadow: inset 0 0 0 1px rgba(52, 136, 255, 0.08);

}



.view--schedule .schedule-calendar__cell strong {

  color: var(--ui-on-panel);

}



.view--schedule .schedule-calendar__cell span {

  color: var(--ui-on-panel-dim);

}



.view--schedule .schedule-calendar__cell--empty {

  background: rgba(241, 245, 249, 0.9);

  color: #b2bec3;

}



.view--schedule .schedule-list__day-title {

  color: var(--ui-on-panel-accent);

}



.view--schedule .schedule-list__row {

  background: rgba(248, 251, 255, 0.95);

}



.view--schedule .schedule-list__subject {

  color: var(--ui-on-panel);

}



.view--schedule .schedule-list__time,

.view--schedule .schedule-list__teacher {

  color: var(--ui-on-panel-muted);

}



/* 进行中：与全站按钮同款绿渐变（浅色课表页需覆盖上方普通格子样式） */

.view--schedule .schedule-grid .schedule-cell--live {

  background: var(--ui-green-btn) !important;

  box-shadow: var(--ui-green-btn-shadow);

}



.view--schedule .schedule-grid .schedule-cell--live strong,

.view--schedule .schedule-grid .schedule-cell--live .schedule-cell__teacher,

.view--schedule .schedule-grid .schedule-cell--live .schedule-cell__time {

  color: var(--ui-green-btn-text);

}



.view--schedule .schedule-grid .schedule-cell--live .schedule-cell__tag {

  background: rgba(0, 0, 0, 0.62);

  color: #fff;

}



.view--schedule .schedule-list__row--live {

  background: var(--ui-green-btn) !important;

  box-shadow: var(--ui-green-btn-shadow);

}



.view--schedule .schedule-list__row--live .schedule-list__subject,

.view--schedule .schedule-list__row--live .schedule-list__time,

.view--schedule .schedule-list__row--live .schedule-list__teacher {

  color: var(--ui-green-btn-text);

}



.view--schedule .schedule-calendar__cell--live {

  background: var(--ui-green-btn);

  box-shadow: var(--ui-green-btn-shadow);

}



.view--schedule .schedule-calendar__cell--live strong,

.view--schedule .schedule-calendar__cell--live span {

  color: var(--ui-green-btn-text);

}



.view--schedule .schedule-list__row--live {

  background: var(--ui-green-btn);

  box-shadow: var(--ui-green-btn-shadow);

}



.view--schedule .schedule-list__row--live .schedule-list__subject,

.view--schedule .schedule-list__row--live .schedule-list__time,

.view--schedule .schedule-list__row--live .schedule-list__teacher {

  color: var(--ui-green-btn-text);

}



.view--schedule .schedule-list__row--live .schedule-list__badge {

  background: rgba(0, 0, 0, 0.55);

  color: #fff;

}



/* 座位表 */

.view--seats .seat-map {

  color: var(--ui-on-panel);

}



.view--seats .seat-map__col-head,

.view--seats .seat-map__row-head {

  color: var(--ui-on-panel-accent);

  text-shadow: none;

  font-weight: 700;

}



.view--seats .seat-cell--empty .seat-cell__desk {

  background: rgba(241, 245, 249, 0.95);

  color: #b2bec3;

  box-shadow: inset 0 0 0 1px rgba(52, 136, 255, 0.1);

}



.view--seats .seat-legend {

  color: var(--ui-on-panel-muted);

}



.view--seats .seat-map__btn {

  background: rgba(255, 255, 255, 0.85);

  color: var(--ui-on-panel-accent);

  border: 1px solid rgba(52, 136, 255, 0.18);

}



.view--seats .seat-map__btn--primary {

  background: var(--ui-green-btn);

  color: var(--ui-green-btn-text);

  border: none;

  box-shadow: var(--ui-green-btn-shadow);

}



.view--seats .seat-dialog__panel h2 {

  color: var(--ui-on-panel-title);

}



.view--seats .seat-dialog__btn:not(.seat-dialog__btn--ghost) {

  background: var(--ui-green-btn);

  color: var(--ui-green-btn-text);

  box-shadow: var(--ui-green-btn-shadow);

}



.view--duty .module-body--duty {

  padding: 0 12px 12px;

}



.view--duty .duty-table {

  box-shadow: var(--ui-panel-shadow);

}



.view--duty .duty-dialog__btn:not(.duty-dialog__btn--ghost):not(.duty-dialog__btn--danger) {

  background: var(--ui-green-btn);

  color: var(--ui-green-btn-text);

  box-shadow: var(--ui-green-btn-shadow);

}


