:root{
  color-scheme:dark;
  --eh-bg:#050816;
  --eh-surface:rgba(12,20,44,.78);
  --eh-surface-strong:rgba(14,24,52,.94);
  --eh-line:rgba(148,184,255,.18);
  --eh-line-strong:rgba(96,224,255,.42);
  --eh-text:#f4f7ff;
  --eh-muted:#aeb9d7;
  --eh-cyan:#59e7ff;
  --eh-green:#45efb4;
  --eh-purple:#b47cff;
  --eh-danger:#ff7f9d;
  --eh-warning:#ffd166;
  --eh-shadow:0 28px 70px rgba(0,0,0,.34);
}

*{box-sizing:border-box}

html{min-height:100%;background:var(--eh-bg)}

body{
  margin:0;
  min-height:100vh;
  font-family:Inter,"Plus Jakarta Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased;
}

body.ehadir-system,
body.ehadir-landing{
  color:var(--eh-text);
  background:
    radial-gradient(circle at 8% 12%,rgba(39,201,223,.14),transparent 29%),
    radial-gradient(circle at 92% 7%,rgba(136,78,242,.20),transparent 31%),
    linear-gradient(145deg,#04101e 0%,#080b1d 48%,#15102f 100%);
  background-attachment:fixed;
}

body.ehadir-system::before{
  position:fixed;
  z-index:-1;
  inset:0;
  content:"";
  opacity:.12;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:54px 54px;
  mask-image:linear-gradient(to bottom,transparent,#000 22%,transparent 95%);
}

.app-header{
  position:relative;
  z-index:20;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  width:min(1180px,calc(100% - 36px));
  margin:18px auto 0;
  padding:11px 17px;
  overflow:hidden;
  background:linear-gradient(135deg,rgba(255,255,255,.10),rgba(255,255,255,.035));
  border:1px solid rgba(255,255,255,.13);
  border-radius:20px;
  box-shadow:0 22px 54px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.12);
  backdrop-filter:blur(20px);
}

.app-header::after{
  position:absolute;
  right:-60px;
  bottom:-95px;
  width:220px;
  height:170px;
  content:"";
  background:radial-gradient(circle,rgba(95,213,255,.22),transparent 68%);
  pointer-events:none;
}

.app-brand{
  position:relative;
  z-index:1;
  display:flex;
  min-width:0;
  align-items:center;
  gap:12px;
  color:inherit;
  text-decoration:none;
}

.header-logo{
  width:48px;
  height:48px;
  flex:0 0 auto;
  padding:4px;
  object-fit:contain;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.13);
  border-radius:14px;
  filter:drop-shadow(0 7px 15px rgba(75,217,255,.22));
}

.app-brand__copy{display:flex;min-width:0;flex-direction:column}
.app-brand__copy strong{color:#f9fbff;font-size:.98rem;font-weight:850;letter-spacing:.01em}
.app-brand__copy small{overflow:hidden;color:#aeb8d7;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}

.theme-switcher{
  position:relative;
  z-index:2;
  display:flex;
  flex:0 0 auto;
  gap:5px;
  padding:4px;
  background:rgba(3,10,27,.48);
  border:1px solid rgba(147,178,244,.18);
  border-radius:12px;
}

.theme-choice{
  display:inline-flex;
  min-height:34px;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:6px 9px;
  color:#aeb9d7;
  font:inherit;
  font-size:.69rem;
  border:0;
  border-radius:9px!important;
  background:transparent;
  box-shadow:none;
  cursor:pointer;
}
.theme-choice b{font-size:.68rem}
.theme-choice:hover{color:#fff;transform:none!important}
.theme-choice.active{color:#071225;background:linear-gradient(135deg,var(--eh-cyan),var(--eh-green));box-shadow:0 7px 18px rgba(69,239,180,.15)}

.site-content{
  width:100%;
  max-width:1180px;
  min-height:calc(100vh - 190px);
  margin:0 auto;
  padding:22px 18px;
}

body.ehadir-system .app,
body.ehadir-system .panel,
body.ehadir-system .box,
body.ehadir-system .card,
body.ehadir-system .site-content > div:not(.ehadir-portal),
body.ehadir-system .site-content > main{
  color:var(--eh-text);
  background:linear-gradient(145deg,rgba(16,27,57,.88),rgba(8,15,35,.78))!important;
  border:1px solid var(--eh-line)!important;
  box-shadow:var(--eh-shadow),inset 0 1px 0 rgba(255,255,255,.07)!important;
  backdrop-filter:blur(16px);
}

body.ehadir-system .app,
body.ehadir-system .panel,
body.ehadir-system .box,
body.ehadir-system .site-content > div:not(.ehadir-portal),
body.ehadir-system .site-content > main{border-radius:24px}

body.ehadir-system h1,
body.ehadir-system h2,
body.ehadir-system h3,
body.ehadir-system h4,
body.ehadir-system h5,
body.ehadir-system h6{color:var(--eh-text)!important}

body.ehadir-system p,
body.ehadir-system .subtitle,
body.ehadir-system .text-muted,
body.ehadir-system .text-secondary{color:var(--eh-muted)!important}

body.ehadir-system a{color:var(--eh-cyan)}
body.ehadir-system a:hover{color:#fff}

body.ehadir-system label{color:#dfe8ff}

body.ehadir-system input:not([type="checkbox"]):not([type="radio"]),
body.ehadir-system select,
body.ehadir-system textarea,
body.ehadir-system .form-control,
body.ehadir-system .form-select,
body.ehadir-system .input-group-text{
  color:var(--eh-text)!important;
  background:rgba(4,11,28,.72)!important;
  border-color:rgba(147,178,244,.27)!important;
  border-radius:11px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
}

body.ehadir-system input::placeholder,
body.ehadir-system textarea::placeholder{color:#7684a7!important;opacity:1}
body.ehadir-system select{color-scheme:dark}
body.ehadir-system option,
body.ehadir-system optgroup{color:#e7edff;background:#0b1530}

body.ehadir-system input:focus,
body.ehadir-system select:focus,
body.ehadir-system textarea:focus{
  outline:none;
  border-color:var(--eh-cyan)!important;
  box-shadow:0 0 0 3px rgba(89,231,255,.13),0 0 25px rgba(89,231,255,.08)!important;
}

body.ehadir-system button,
body.ehadir-system .btn{
  border-radius:11px!important;
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
}

body.ehadir-system button:hover,
body.ehadir-system .btn:hover{transform:translateY(-2px);filter:brightness(1.08)}

body.ehadir-system table{
  width:100%;
  overflow:hidden;
  color:var(--eh-text)!important;
  background:rgba(7,14,33,.64);
  border:1px solid var(--eh-line)!important;
  border-radius:16px;
  box-shadow:0 18px 42px rgba(0,0,0,.22);
}

body.ehadir-system table th,
body.ehadir-system .table > :not(caption) > * > th{
  color:#dff9ff!important;
  background:rgba(55,94,142,.34)!important;
  border-color:var(--eh-line)!important;
}

body.ehadir-system table td,
body.ehadir-system .table > :not(caption) > * > td{
  color:#e7edff!important;
  background:rgba(9,18,40,.54)!important;
  border-color:var(--eh-line)!important;
}

body.ehadir-system table tbody tr:hover td{background:rgba(44,75,123,.34)!important}

body.ehadir-system .bg-white,
body.ehadir-system .bg-gray-50,
body.ehadir-system .bg-blue-50{
  color:var(--eh-text)!important;
  background:rgba(13,24,51,.86)!important;
  border-color:var(--eh-line)!important;
}

body.ehadir-system .text-gray-500,
body.ehadir-system .text-gray-600,
body.ehadir-system .text-gray-700,
body.ehadir-system .text-gray-800{color:var(--eh-muted)!important}

body.ehadir-system .dashboard-title{color:#fff!important}
body.ehadir-system .dashboard-subtitle{color:var(--eh-muted)!important}
body.ehadir-system .menu-card{
  color:#fff!important;
  border:1px solid rgba(255,255,255,.15);
  box-shadow:0 20px 42px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.12)!important;
}
body.ehadir-system .menu-card:hover{color:#fff!important;box-shadow:0 28px 55px rgba(0,0,0,.36),0 0 28px rgba(89,231,255,.12)!important}
body.ehadir-system .menu-card .menu-title,
body.ehadir-system .menu-card .menu-icon{color:#fff!important}
body.ehadir-system a.btn-primary,
body.ehadir-system a.btn-success,
body.ehadir-system a.btn-danger,
body.ehadir-system a.btn-warning,
body.ehadir-system a[style*="color:#fff"],
body.ehadir-system a[style*="color: #fff"],
body.ehadir-system a[style*="color:#ffffff"],
body.ehadir-system a[style*="color:white"]{color:#fff!important}
body.ehadir-system .card-header,
body.ehadir-system .card-header h1,
body.ehadir-system .card-header h2,
body.ehadir-system .attendance-list__heading{color:#fff!important}
body.ehadir-system .text-white{color:#fff!important}
body.ehadir-system .teacher-menu__action,
body.ehadir-system .teacher-menu__action:hover,
body.ehadir-system .teacher-menu__action-label,
body.ehadir-system .teacher-menu__action-note,
body.ehadir-system .teacher-menu__action-icon,
body.ehadir-system .teacher-menu__action-arrow{color:#fff!important}

body.ehadir-system [style*="color:#111827"],
body.ehadir-system [style*="color: #111827"]{color:var(--eh-text)!important}
body.ehadir-system [style*="color:#374151"],
body.ehadir-system [style*="color:#4b5563"],
body.ehadir-system [style*="color:#6b7280"]{color:var(--eh-muted)!important}
body.ehadir-system [style*="background:#ffffff"],
body.ehadir-system [style*="background:#fff"],
body.ehadir-system [style*="background: #fff"],
body.ehadir-system [style*="background:#f9fafb"],
body.ehadir-system [style*="background:#f3f4f6"]{
  color:var(--eh-text)!important;
  background:rgba(10,20,44,.82)!important;
  border-color:var(--eh-line)!important;
}
body.ehadir-system pre{color:#dfe8ff;background:rgba(4,11,28,.72)!important;border:1px solid var(--eh-line);border-radius:12px}

body.ehadir-system .alert,
body.ehadir-system [class*="background:#fee2e2"],
body.ehadir-system [class*="background:#dcfce7"]{border:1px solid rgba(255,255,255,.12)}

.site-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  width:min(1180px,calc(100% - 36px));
  margin:0 auto 18px;
  padding:14px 16px;
  color:#8490b1;
  font-size:.74rem;
  background:rgba(255,255,255,.025);
  border:1px solid rgba(255,255,255,.07);
  border-radius:16px;
}

.site-footer__status{display:inline-flex;align-items:center;gap:7px}
.site-footer__status i{width:7px;height:7px;background:var(--eh-green);border-radius:50%;box-shadow:0 0 12px var(--eh-green)}

html[data-theme="light"]{
  color-scheme:light;
  --eh-bg:#eef5ff;
  --eh-surface:rgba(255,255,255,.86);
  --eh-surface-strong:rgba(255,255,255,.96);
  --eh-line:rgba(48,84,132,.18);
  --eh-line-strong:rgba(4,145,172,.38);
  --eh-text:#17233d;
  --eh-muted:#5c6984;
  --eh-cyan:#087f9a;
  --eh-green:#07845f;
  --eh-purple:#6d45bc;
  --eh-danger:#c23555;
  --eh-warning:#a56908;
  --eh-shadow:0 25px 60px rgba(47,72,113,.18);
  background:#eef5ff;
}

html[data-theme="light"] body.ehadir-system,
html[data-theme="light"] body.ehadir-landing{
  color:var(--eh-text);
  background:
    radial-gradient(circle at 8% 12%,rgba(42,191,213,.18),transparent 30%),
    radial-gradient(circle at 92% 7%,rgba(154,119,231,.16),transparent 31%),
    linear-gradient(145deg,#f5fbff 0%,#eef4ff 52%,#f4efff 100%);
}
html[data-theme="light"] body.ehadir-system::before{opacity:.32;background-image:linear-gradient(rgba(46,82,127,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(46,82,127,.08) 1px,transparent 1px)}
html[data-theme="light"] .app-header{background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(241,247,255,.88));border-color:rgba(48,84,132,.16);box-shadow:0 18px 42px rgba(47,72,113,.16),inset 0 1px 0 #fff}
html[data-theme="light"] .app-brand__copy strong{color:#18243e}
html[data-theme="light"] .app-brand__copy small{color:#66738e}
html[data-theme="light"] .header-logo{background:#fff;border-color:rgba(48,84,132,.14)}
html[data-theme="light"] .theme-switcher{background:rgba(224,235,249,.8);border-color:rgba(48,84,132,.16)}
html[data-theme="light"] .theme-choice{color:#53627e}
html[data-theme="light"] .theme-choice:hover{color:#17233d}
html[data-theme="light"] .theme-choice.active{color:#fff;background:linear-gradient(135deg,#0c8fab,#07845f)}

html[data-theme="light"] body.ehadir-system .app,
html[data-theme="light"] body.ehadir-system .panel,
html[data-theme="light"] body.ehadir-system .box,
html[data-theme="light"] body.ehadir-system .card,
html[data-theme="light"] body.ehadir-system .site-content > div:not(.ehadir-portal),
html[data-theme="light"] body.ehadir-system .site-content > main{
  color:var(--eh-text)!important;
  background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(242,247,255,.9))!important;
  border-color:var(--eh-line)!important;
  box-shadow:var(--eh-shadow),inset 0 1px 0 #fff!important;
}
html[data-theme="light"] body.ehadir-system h1,
html[data-theme="light"] body.ehadir-system h2,
html[data-theme="light"] body.ehadir-system h3,
html[data-theme="light"] body.ehadir-system h4,
html[data-theme="light"] body.ehadir-system h5,
html[data-theme="light"] body.ehadir-system h6{color:#17233d!important}
html[data-theme="light"] body.ehadir-system .dashboard-title{color:#17233d!important}
html[data-theme="light"] body.ehadir-system .dashboard-subtitle{color:#5c6984!important}
html[data-theme="light"] body.ehadir-system p,
html[data-theme="light"] body.ehadir-system .subtitle,
html[data-theme="light"] body.ehadir-system .text-muted,
html[data-theme="light"] body.ehadir-system .text-secondary{color:#5c6984!important}
html[data-theme="light"] body.ehadir-system label{color:#263650!important}
html[data-theme="light"] body.ehadir-system input:not([type="checkbox"]):not([type="radio"]),
html[data-theme="light"] body.ehadir-system select,
html[data-theme="light"] body.ehadir-system textarea,
html[data-theme="light"] body.ehadir-system .form-control,
html[data-theme="light"] body.ehadir-system .form-select,
html[data-theme="light"] body.ehadir-system .input-group-text{color:#17233d!important;background:#fff!important;border-color:rgba(48,84,132,.24)!important}
html[data-theme="light"] body.ehadir-system select{color-scheme:light}
html[data-theme="light"] body.ehadir-system option,
html[data-theme="light"] body.ehadir-system optgroup{color:#17233d;background:#fff}
html[data-theme="light"] body.ehadir-system .student-name--rmt{color:#2563eb!important}
html[data-theme="light"] body.ehadir-system .attendance-summary__item--absent .attendance-summary__number{color:#dc2626!important}
html[data-theme="light"] body.ehadir-system table{color:#17233d!important;background:rgba(255,255,255,.9)!important;border-color:rgba(48,84,132,.18)!important;box-shadow:0 16px 38px rgba(47,72,113,.12)!important}
html[data-theme="light"] body.ehadir-system table th{color:#16324d!important;background:#dcecf7!important;border-color:rgba(48,84,132,.18)!important}
html[data-theme="light"] body.ehadir-system table td{color:#263650!important;background:rgba(255,255,255,.9)!important;border-color:rgba(48,84,132,.14)!important}
html[data-theme="light"] body.ehadir-system table tbody tr:hover td{background:#edf7fc!important}
html[data-theme="light"] body.ehadir-system .bg-white,
html[data-theme="light"] body.ehadir-system .bg-gray-50{color:#17233d!important;background:#fff!important;border-color:rgba(48,84,132,.18)!important}
html[data-theme="light"] body.ehadir-system .bg-blue-50{color:#1e3a5f!important;background:#eff8ff!important;border-color:rgba(37,99,235,.18)!important}
html[data-theme="light"] body.ehadir-system .settings-card{color:#17233d!important;background:rgba(255,255,255,.86)!important;border-color:rgba(48,84,132,.18)!important}
html[data-theme="light"] body.ehadir-system .settings-tab{color:#53627e!important;background:rgba(226,236,249,.72)!important;border-color:rgba(48,84,132,.16)!important}
html[data-theme="light"] body.ehadir-system .settings-tab.active{color:#fff!important;background:linear-gradient(135deg,#0c8fab,#07845f)!important}
html[data-theme="light"] body.ehadir-system .settings-note{color:#66738e!important}
html[data-theme="light"] body.ehadir-system .settings-btn--muted{color:#1d4ed8!important;background:#eff6ff!important;border-color:#bfdbfe!important}
html[data-theme="light"] body.ehadir-system .settings-btn--danger{color:#9f1239!important;background:#ffe4e6!important;border-color:#fda4af!important}
html[data-theme="light"] body.ehadir-system .settings-btn--success{color:#047857!important;background:#d1fae5!important;border-color:#6ee7b7!important}
html[data-theme="light"] body.ehadir-system .settings-status.on{color:#047857!important;background:#d1fae5!important;border-color:#6ee7b7!important}
html[data-theme="light"] body.ehadir-system .settings-status.off{color:#9f1239!important;background:#ffe4e6!important;border-color:#fda4af!important}
html[data-theme="light"] body.ehadir-system pre{color:#263650!important;background:#f5f8fc!important;border-color:rgba(48,84,132,.16)!important}
html[data-theme="light"] body.ehadir-system [style*="color:#111827"],
html[data-theme="light"] body.ehadir-system [style*="color:#374151"],
html[data-theme="light"] body.ehadir-system [style*="color:#4b5563"],
html[data-theme="light"] body.ehadir-system [style*="color:#6b7280"]{color:#33435f!important}
html[data-theme="light"] body.ehadir-system [style*="background:#ffffff"],
html[data-theme="light"] body.ehadir-system [style*="background:#fff"],
html[data-theme="light"] body.ehadir-system [style*="background: #fff"],
html[data-theme="light"] body.ehadir-system [style*="background:#f9fafb"],
html[data-theme="light"] body.ehadir-system [style*="background:#f3f4f6"]{color:#17233d!important;background:#fff!important;border-color:rgba(48,84,132,.18)!important}
html[data-theme="light"] .site-footer{color:#68758f;background:rgba(255,255,255,.58);border-color:rgba(48,84,132,.13)}

html[data-theme="light"] body.ehadir-landing .ehadir-portal{background:linear-gradient(145deg,rgba(255,255,255,.9),rgba(237,244,255,.82))!important;border-color:rgba(48,84,132,.16)!important;box-shadow:0 28px 65px rgba(47,72,113,.18)!important}
html[data-theme="light"] body.ehadir-landing .ehadir-portal__grid{opacity:.3!important}
html[data-theme="light"] body.ehadir-landing .ehadir-portal__heading{color:#53627e!important}
html[data-theme="light"] body.ehadir-landing .ehadir-role{box-shadow:0 24px 46px rgba(47,72,113,.16),inset 0 1px 0 rgba(255,255,255,.8)!important}
html[data-theme="light"] body.ehadir-landing .ehadir-role--parent{background:linear-gradient(145deg,rgba(218,251,246,.96),rgba(209,239,246,.9))!important;border-color:rgba(7,132,95,.35)!important}
html[data-theme="light"] body.ehadir-landing .ehadir-role--teacher{background:linear-gradient(145deg,rgba(235,225,255,.96),rgba(220,230,255,.92))!important;border-color:rgba(109,69,188,.35)!important}
html[data-theme="light"] body.ehadir-landing .ehadir-role__title{color:#17233d!important}
html[data-theme="light"] body.ehadir-landing .ehadir-role__desc{color:#53627e!important}
html[data-theme="light"] body.ehadir-landing .ehadir-role__label{color:#38506d!important}
html[data-theme="light"] body.ehadir-landing .ehadir-role__button{color:#17233d!important;background:rgba(255,255,255,.68)!important;border-color:rgba(48,84,132,.16)!important}
html[data-theme="light"] body.ehadir-landing .ehadir-portal__utility a{color:#445674!important}
html[data-theme="light"] body.ehadir-landing .ehadir-portal__utility a:hover{color:#087f9a!important}

html[data-theme="dark"] body.ehadir-system .class-picker__card,
html[data-theme="dark"] body.ehadir-system .info-card,
html[data-theme="dark"] body.ehadir-system .status-card,
html[data-theme="dark"] body.ehadir-system .gps-card,
html[data-theme="dark"] body.ehadir-system .attendance-summary__item,
html[data-theme="dark"] body.ehadir-system .attendance-list,
html[data-theme="dark"] body.ehadir-system .attendance-actions a,
html[data-theme="dark"] body.ehadir-system .senarai-pendamping,
html[data-theme="dark"] body.ehadir-system .pendamping-dropdown summary,
html[data-theme="dark"] body.ehadir-system .pendamping-list,
html[data-theme="dark"] body.ehadir-system .penapis-tarikh,
html[data-theme="dark"] body.ehadir-system .kelas-button{
  color:#e7edff!important;
  background:rgba(9,18,40,.9)!important;
  border-color:rgba(147,178,244,.22)!important;
}
html[data-theme="dark"] body.ehadir-system .attendance-list__row{color:#e7edff!important;background:rgba(9,18,40,.72)!important;border-color:rgba(147,178,244,.16)!important}
html[data-theme="dark"] body.ehadir-system .attendance-list__row.is-absent{background:rgba(124,32,55,.28)!important}
html[data-theme="dark"] body.ehadir-system .attendance-summary__item--rmt-absent{color:#ffc6a8!important;background:rgba(143,61,22,.25)!important;border-color:rgba(251,146,60,.3)!important}
html[data-theme="dark"] body.ehadir-system .kelas-button.aktif{color:#fff!important;background:#2563eb!important;border-color:#4f86f7!important}
html[data-theme="dark"] body.ehadir-system .class-picker__card:hover,
html[data-theme="dark"] body.ehadir-system .attendance-actions a:hover{background:rgba(31,54,91,.95)!important;border-color:rgba(89,231,255,.35)!important}
html[data-theme="dark"] body.ehadir-system .teacher-menu__surface{color:#e7edff!important;background:linear-gradient(145deg,rgba(16,27,57,.96),rgba(8,15,35,.92))!important;border-color:rgba(147,178,244,.2)!important;box-shadow:0 22px 48px rgba(0,0,0,.3)!important}
html[data-theme="dark"] body.ehadir-system .teacher-menu__identity{color:#f4f7ff!important;background:rgba(87,67,153,.2)!important;border-color:rgba(180,124,255,.25)!important}
html[data-theme="dark"] body.ehadir-system .teacher-menu__identity-icon{color:#bca8ff!important;background:rgba(255,255,255,.08)!important}
html[data-theme="dark"] body.ehadir-system .teacher-menu__name{color:#f4f7ff!important}
html[data-theme="dark"] body.ehadir-system .teacher-menu__meta{color:#b7c2df!important}
html[data-theme="dark"] body.ehadir-system .teacher-menu__footer a{color:#8fefff!important}
html[data-theme="dark"] body.ehadir-system .teacher-menu__footer .teacher-menu__logout{color:#ff9aad!important}

html[data-theme="dark"] body.ehadir-system .attendance-page__topbar{color:#e7edff!important;background:linear-gradient(145deg,rgba(16,27,57,.96),rgba(8,15,35,.92))!important;border-color:rgba(147,178,244,.2)!important}
html[data-theme="dark"] body.ehadir-system .attendance-page__title{color:#f4f7ff!important}
html[data-theme="dark"] body.ehadir-system .attendance-page__teacher{color:#aeb9d7!important}
html[data-theme="dark"] body.ehadir-system .attendance-page__date{color:#b9d5ff!important;background:rgba(37,99,235,.2)!important}
html[data-theme="dark"] body.ehadir-system .attendance-summary__number{color:#e7edff!important}
html[data-theme="dark"] body.ehadir-system .attendance-summary__item--absent .attendance-summary__number{color:#ff5f73!important}
html[data-theme="dark"] body.ehadir-system .attendance-summary__item--present .attendance-summary__number{color:#4ade80!important}
html[data-theme="dark"] body.ehadir-system .attendance-summary__item--rmt-present .attendance-summary__number{color:#4ade80!important}
html[data-theme="dark"] body.ehadir-system .attendance-summary__item--rmt-absent .attendance-summary__number{color:#ffad7a!important}
html[data-theme="dark"] body.ehadir-system .student-name{color:#e7edff!important}
html[data-theme="dark"] body.ehadir-system .student-name--rmt{color:#8eb8ff!important}
html[data-theme="dark"] body.ehadir-system .student-rmt-label{color:#a8c8ff!important;background:rgba(37,99,235,.2)!important}
html[data-theme="dark"] body.ehadir-system .student-reason{color:#ffabb5!important}

html[data-theme="dark"] body.ehadir-system .info-label,
html[data-theme="dark"] body.ehadir-system .section-label,
html[data-theme="dark"] body.ehadir-system .status-title{color:#aeb9d7!important}
html[data-theme="dark"] body.ehadir-system .info-value,
html[data-theme="dark"] body.ehadir-system .gps-title{color:#eef3ff!important}
html[data-theme="dark"] body.ehadir-system .status-note,
html[data-theme="dark"] body.ehadir-system .gps-subtitle,
html[data-theme="dark"] body.ehadir-system #gpsStatus{color:#b7c2df!important}
html[data-theme="dark"] body.ehadir-system .status-value.success{color:#63efac!important}

html[data-theme="dark"] body.ehadir-system .rekod-kawalan-senarai .card,
html[data-theme="dark"] body.ehadir-system .rekod-kawalan-senarai .card-body,
html[data-theme="dark"] body.ehadir-system .rekod-kawalan-senarai .panel-kelas,
html[data-theme="dark"] body.ehadir-system .rekod-kawalan-senarai .penapis-tarikh,
html[data-theme="dark"] body.ehadir-system .rekod-kawalan-kelas .card,
html[data-theme="dark"] body.ehadir-system .rekod-kawalan-kelas .card-body,
html[data-theme="dark"] body.ehadir-system .rekod-kawalan-edit .card,
html[data-theme="dark"] body.ehadir-system .rekod-kawalan-edit .card-body{color:#e7edff!important;background:linear-gradient(145deg,rgba(16,27,57,.96),rgba(8,15,35,.92))!important;border-color:rgba(147,178,244,.2)!important}
html[data-theme="dark"] body.ehadir-system .rekod-kawalan-senarai #tajuk-kelas{color:#f4f7ff!important}

body.ehadir-landing .site-content{max-width:1240px;padding:18px}

@media(max-width:700px){
  body.ehadir-system,body.ehadir-landing{background-attachment:scroll}
  .app-header{width:calc(100% - 20px);margin-top:10px;padding:10px 12px;border-radius:16px}
  .header-logo{width:43px;height:43px}
  .theme-choice{width:34px;padding:6px}
  .theme-choice b{display:none}
  .site-content{padding:14px 10px}
  .site-footer{width:calc(100% - 20px);margin-bottom:10px;align-items:flex-start;flex-direction:column}
  body.ehadir-system table{display:block;overflow-x:auto;white-space:nowrap}
  body.ehadir-system .app-header,
  body.ehadir-system .app,
  body.ehadir-system .panel,
  body.ehadir-system .box,
  body.ehadir-system .card,
  body.ehadir-system .site-content > div,
  body.ehadir-system .site-content > main{backdrop-filter:none!important}
  .ehadir-portal__orbit,.ehadir-portal__core{animation:none!important}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

@media print{
  :root{color-scheme:light}
  body,body.ehadir-system{color:#000!important;background:#fff!important}
  .app-header,.site-footer{display:none!important}
  .site-content{max-width:none;min-height:0;padding:0}
  body.ehadir-system table,body.ehadir-system table th,body.ehadir-system table td{color:#000!important;background:#fff!important;border-color:#999!important;box-shadow:none}
}

/* Installer */
.installer-shell{
  display:grid;
  min-height:100vh;
  padding:32px 16px;
  place-items:center;
}

.installer-card{
  width:min(820px,100%);
  padding:clamp(24px,4vw,42px);
  background:linear-gradient(145deg,rgba(16,27,57,.94),rgba(8,15,35,.88));
  border:1px solid var(--eh-line);
  border-radius:30px;
  box-shadow:var(--eh-shadow),inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter:blur(20px);
}

.installer-card--small{max-width:620px;text-align:center}
.installer-heading{text-align:center}
.installer-heading h1,.installer-card h1{margin:8px 0;color:#fff;font-size:clamp(2rem,5vw,3rem);letter-spacing:-.045em}
.installer-heading p,.installer-card p{color:var(--eh-muted);line-height:1.6}
.installer-kicker{color:var(--eh-cyan);font-size:.72rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase}

.installer-requirements{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;margin:24px 0}
.installer-requirements span{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;color:var(--eh-muted);font-size:.72rem;background:rgba(255,255,255,.04);border:1px solid var(--eh-line);border-radius:999px}
.installer-requirements i{width:7px;height:7px;border-radius:50%}
.installer-requirements .ok i{background:var(--eh-green);box-shadow:0 0 10px var(--eh-green)}
.installer-requirements .fail i{background:var(--eh-danger);box-shadow:0 0 10px var(--eh-danger)}

.installer-form{background:transparent!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important}
.installer-form fieldset{margin:0 0 18px;padding:20px;background:rgba(4,11,28,.38);border:1px solid var(--eh-line);border-radius:18px}
.installer-form legend{padding:0 9px;color:#dff9ff;font-size:.95rem;font-weight:850}
.installer-form label{display:block;margin-bottom:13px;color:#dfe8ff;font-size:.82rem;font-weight:700}
.installer-form input{width:100%;margin-top:6px;padding:11px 12px}
.installer-form small{display:block;color:var(--eh-muted);font-size:.73rem}
.installer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.installer-grid--host{grid-template-columns:minmax(0,1fr) 130px}

.installer-button{display:inline-flex;width:100%;min-height:48px;align-items:center;justify-content:center;padding:12px 20px;color:#071225!important;font-weight:900;text-decoration:none;background:linear-gradient(135deg,var(--eh-cyan),var(--eh-green));border:0;border-radius:13px;box-shadow:0 15px 34px rgba(69,239,180,.16);cursor:pointer}
.installer-button:hover{color:#071225!important;filter:brightness(1.08);transform:translateY(-2px)}
.installer-button:disabled{cursor:not-allowed;filter:grayscale(1);opacity:.5;transform:none}

.installer-message{margin:18px 0;padding:13px 15px;border-radius:13px;font-size:.86rem;line-height:1.5}
.installer-message--error{color:#ffd6df;background:rgba(151,25,59,.25);border:1px solid rgba(255,127,157,.35)}
.installer-message--success{color:#cffff0;background:rgba(18,112,82,.25);border:1px solid rgba(69,239,180,.32)}
.installer-card code{color:#dff9ff;background:rgba(255,255,255,.07);padding:2px 6px;border-radius:6px}

@media(max-width:620px){
  .installer-shell{padding:10px}
  .installer-card{padding:22px 15px;border-radius:22px}
  .installer-grid,.installer-grid--host{grid-template-columns:1fr}
}
