@font-face {
  font-family: "Figtree";
  src: url("fonts/Figtree.ttf") format("truetype");
  font-style: normal;
  font-weight: 300 900;
  font-display: swap;
}
:root {
  --navy: #081a42;
  --sidebar: #092253;
  --blue: #1e52b8;
  --mint: #94ffbb;
  --teal: #89c8c8;
  --font-family: "Figtree", Arial, sans-serif;
  font-family: var(--font-family);
  color: #172031;
  background: #f7f7f7;
  font-synthesis: none;
}
* {
  box-sizing: border-box;
}
*,
*::before,
*::after {
  font-family: inherit;
}
body {
  margin: 0;
}
a {
  color: inherit;
}
button,
input,
textarea,
select {
  font: inherit;
}
button,
summary {
  cursor: pointer;
}
button {
  border: 0;
}
button:focus-visible,
a:focus-visible,
summary:focus-visible {
  outline: 3px solid #f4c931;
  outline-offset: 3px;
}
input:focus,
textarea:focus,
select:focus {
  outline: 2px solid #2862b8;
  outline-offset: 1px;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}
[hidden] {
  display: none !important;
}
.skip {
  position: fixed;
  top: -70px;
  background: white;
  padding: 12px;
  z-index: 20;
}
.skip:focus {
  top: 0;
}
.topbar {
  height: 84px;
  background: var(--navy);
  color: white;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 24px;
  gap: 15px;
}
.brand {
  display: flex;
  align-items: center;
  gap: 13px;
}
.brand img {
  display: block;
  object-fit: contain;
}
.brand-ete {
  width: 126px;
  height: auto;
}
.brand-ead {
  width: 60px;
  height: 60px;
}
.account {
  display: flex;
  align-items: center;
  gap: 23px;
}
.register-link {
  text-decoration: none;
  font-size: 14px;
}
.register-link:hover {
  text-decoration: underline;
}
.access,
.profile-menu > summary {
  min-width: 230px;
  background: #2b4673;
  border-radius: 18px;
  padding: 6px 7px 6px 20px;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.avatar {
  display: flex;
  justify-content: center;
  align-items: center;
  background: #e4e4e4;
  border-radius: 50%;
  width: 43px;
  height: 43px;
  color: #252525;
  font-size: 30px;
  position: relative;
  padding-bottom: 10px;
}
.avatar:after {
  content: "";
  position: absolute;
  bottom: 8px;
  width: 21px;
  height: 14px;
  background: #252525;
  border-radius: 50%;
}
.profile-menu {
  position: relative;
}
.profile-menu small {
  display: block;
  color: #bed0ea;
  font-size: 11px;
  margin-top: 3px;
}
.profile-menu summary {
  list-style: none;
}
.dropdown {
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  background: white;
  border: 1px solid #cad1dd;
  min-width: 220px;
  border-radius: 7px;
  z-index: 15;
  box-shadow: 0 8px 25px #06132c25;
  color: #172031;
  padding: 7px;
}
.dropdown a,
.dropdown button {
  display: block;
  width: 100%;
  text-align: left;
  padding: 10px 12px;
  border-radius: 3px;
  text-decoration: none;
  background: white;
  font-size: 13px;
}
.dropdown a:hover,
.dropdown button:hover {
  background: #edf2fa;
}
.layout {
  display: flex;
  min-height: calc(100vh - 84px);
}
.sidebar {
  width: 190px;
  flex-shrink: 0;
  background: var(--sidebar);
  color: #e0e6f1;
  padding: 0 13px;
}
.nav-tools {
  min-height: 68px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #667898;
  gap: 5px;
}
.nav-tools strong {
  font-size: 13px;
}
.nav-tools button {
  background: none;
  color: white;
  font-size: 20px;
  padding: 10px 0 10px 6px;
}
.sidebar nav a {
  display: block;
  text-decoration: none;
  font-size: 12px;
  padding: 12px 0;
  border-bottom: 1px solid #657797;
  line-height: 1.3;
}
.sidebar nav a:hover,
.sidebar nav a[aria-current] {
  background: #244473;
  color: white;
}
.sidebar.collapsed {
  width: 58px;
}
.sidebar.collapsed .nav-tools strong {
  display: none;
}
.sidebar.collapsed nav {
  display: none;
}
.main-column {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
}
main {
  flex: 1;
  position: relative;
  padding: 34px 32px 42px;
}
.amelia-toggle {
  position: absolute;
  right: 0;
  top: 12px;
  border-radius: 6px 0 0 6px;
  background: var(--teal);
  color: #1d3337;
  width: 40px;
  height: 40px;
  font-size: 26px;
  z-index: 2;
}
h1 {
  font-size: 28px;
  font-weight: 500;
  margin: 0 25px 30px 0;
  line-height: 1.2;
}
h2 {
  font-size: 20px;
  font-weight: 600;
}
h3 {
  font-size: 16px;
}
.muted {
  color: #647088;
  font-size: 13px;
  line-height: 1.6;
}
.description {
  white-space: pre-wrap;
  line-height: 1.7;
  max-width: 850px;
}
.flash {
  padding: 12px 17px;
  border: 1px solid #a9d3c5;
  background: #e6f6ed;
  color: #205642;
  border-radius: 7px;
  margin-bottom: 24px;
  font-size: 14px;
}
.flash.error {
  border-color: #edb2b2;
  background: #fcebea;
  color: #922f32;
}
footer {
  font-size: 11px;
  padding: 13px 32px;
  background: #061530;
  color: #d5dfef;
}
.course-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px 30px;
}
.course-card {
  height: 104px;
  border: 1px solid #515151;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  padding-bottom: 25px;
  overflow: hidden;
  text-decoration: none;
  background: #f8f8f8;
}
.course-card svg {
  width: 100px;
  height: 48px;
}
.course-card:hover {
  box-shadow: 0 4px 13px #0b245325;
}
.color-bar {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 26px;
  font-size: 10px;
  border-top: 1px solid #6b6b6b;
  padding: 6px 9px;
  color: white;
}
.color-0 {
  background: #c83136;
}
.color-1 {
  background: #f8cd32;
  color: #273142;
}
.color-2 {
  background: #66992e;
}
.color-3 {
  background: #2054b8;
}
.module-name {
  font-size: 12px;
  color: #42536e;
}
.unit {
  margin: 0 0 30px;
}
.unit h2 {
  font-size: 12px;
  font-weight: 400;
}
.news {
  margin-top: 75px;
  max-width: 100%;
}
.news h2 {
  font-size: 15px;
  border-top: 1px solid #a5a5a5;
  padding-top: 5px;
  font-weight: 400;
}
.news-banner {
  max-width: 100%;
  width: 450px;
  min-height: 72px;
  margin: 8px 0;
  padding: 12px 15px;
  border: 0;
  text-align: left;
}
.enrollment {
  display: flex;
  align-items: center;
  gap: 18px;
  background: linear-gradient(100deg, #deeded, #fcfcfc);
  font-size: 12px;
  color: #229a96;
}
.enrollment > span:first-child {
  background: #319e97;
  color: white;
  padding: 5px;
}
.enrollment > span:last-child {
  color: #50c778;
  font-size: 27px;
  margin-left: auto;
}
.guide {
  display: block;
  color: white;
  background: #173f86;
  font-size: 12px;
  line-height: 1.4;
}
.guide small {
  display: block;
  margin-top: 4px;
  font-size: 9px;
}
.teacher-course {
  width: 310px;
  position: relative;
  border: 1px solid #555;
  border-radius: 3px;
  box-shadow: 0 2px 3px #0002;
  margin: 20px 0 30px;
}
.teacher-course > a {
  display: block;
  text-decoration: none;
  text-align: center;
  padding-top: 25px;
}
.course-symbol {
  display: flex;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background: #101a69;
  color: white;
  font-size: 55px;
  align-items: center;
  justify-content: center;
  margin: 0 auto 20px;
}
.teacher-course-name {
  display: block;
  background: #0d1758;
  color: white;
  font-size: 22px;
  padding: 13px;
}
.course-options {
  position: absolute;
  right: 7px;
  top: 5px;
}
.course-options summary {
  list-style: none;
  font-size: 24px;
  padding: 3px;
}
.course-options summary span {
  font-size: 12px;
}
.course-options .dropdown {
  top: 100%;
  min-width: 245px;
}
.module-toolbar {
  display: flex;
  gap: 20px;
  border-bottom: 1px solid #aaa;
  padding-bottom: 15px;
  margin-right: 18px;
  margin-bottom: 30px;
  align-items: center;
}
.module-toolbar select {
  min-width: 225px;
  max-width: 100%;
}
.module-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 195px;
  gap: 28px;
}
.module-content {
  min-width: 0;
}
.module-content h1 {
  font-size: 25px;
}
.discipline-nav {
  background: #dce3ec;
  padding: 17px 7px 35px;
  min-height: 520px;
}
.discipline-nav a {
  display: block;
  text-decoration: none;
  font-size: 11px;
  line-height: 1.35;
  padding: 12px 5px;
  border-bottom: 1px solid #7c8592;
}
.discipline-nav a:hover {
  background: #cbd4e4;
}
.discipline-nav a[aria-current] {
  background: #374477;
  color: white;
}
.resource-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 30px 24px;
}
.resource-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.video-card,
.document-card,
.resource-row {
  border: 1px solid #565656;
  border-radius: 16px;
  position: relative;
  overflow: hidden;
  background: #f2f2f2;
  box-shadow: 0 2px 3px #0002;
}
.video-card > a:first-of-type {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  height: 115px;
}
.video-card .play {
  font-size: 47px;
  color: #343434;
  height: 80px;
  display: flex;
  align-items: center;
}
.video-label {
  display: block;
  width: 100%;
  background: #2153b8;
  color: white;
  min-height: 29px;
  font-size: 11px;
  font-weight: 400;
  padding: 7px 10px;
  margin-top: auto;
}
.video-cover {
  width: 100%;
  height: 85px;
  object-fit: cover;
}
.info-button {
  position: absolute;
  top: 5px;
  right: 5px;
  background: #eeeeee;
  color: #323232;
  border-radius: 50%;
  padding: 0;
  width: 23px;
  height: 23px;
  font-size: 20px;
  z-index: 1;
}
.document-card {
  min-height: 165px;
  max-width: 180px;
  background: #ddd;
  border-radius: 12px;
}
.document-card > a:first-of-type {
  padding: 30px 12px 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 15px;
  text-decoration: none;
  font-size: 13px;
  overflow-wrap: anywhere;
}
.document-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #c93136;
  color: white;
  border-radius: 50%;
  width: 51px;
  height: 51px;
  font-size: 30px;
  flex-shrink: 0;
  box-shadow: 0 2px 3px #0002;
}
.document-icon.blue {
  background: #7ca1db;
}
.document-card small {
  display: block;
  font-size: 10px;
  margin-top: 5px;
}
.resource-row {
  background: #ddd;
  border: 0;
  border-radius: 17px;
  padding: 14px 17px;
}
.resource-row > a:first-of-type {
  display: flex;
  align-items: center;
  gap: 18px;
  text-decoration: none;
  font-size: 14px;
  padding-right: 12px;
}
.resource-row h2 {
  margin: 0 0 12px;
  font-size: 21px;
}
.resource-row small {
  display: block;
  font-size: 11px;
  color: #65728a;
  margin-top: 5px;
}
.source-link {
  display: block;
  font-size: 11px;
  color: #2156b6;
  text-decoration: none;
  text-align: right;
  margin: 8px 0;
}
.assessment-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 95px;
  height: 95px;
  border-radius: 50%;
  border: 4px double #34443e;
  background: #99ffc3;
  font-size: 55px;
  flex-shrink: 0;
}
.assessment-start {
  display: inline-block;
  background: #17259d;
  color: white;
  padding: 8px 18px;
  border-radius: 6px;
  font-size: 12px;
}
.resource-row p {
  font-size: 12px;
  margin-bottom: 0;
  color: #606b7d;
}
.add-card {
  min-height: 115px;
  border: 1px solid #555;
  border-radius: 15px;
  background: #ddd;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  font-size: 11px;
  color: #363b44;
  gap: 8px;
}
.add-card span {
  font-size: 45px;
  line-height: 1;
}
.resource-grid .add-card {
  max-width: 180px;
}
.empty-state {
  grid-column: 1/-1;
  text-align: center;
  color: #637088;
  background: #eef0f3;
  border: 1px dashed #bdc7d4;
  border-radius: 10px;
  padding: 30px 16px;
  font-size: 14px;
}
.empty-state > span {
  font-size: 30px;
}
.empty-state small {
  font-size: 12px;
}
.section-title {
  font-size: 15px;
  font-weight: 400;
  border-bottom: 1px solid #a7a7a7;
  padding-bottom: 8px;
  margin: 26px 0 20px;
}
.revision {
  display: flex;
  gap: 16px;
  align-items: center;
  text-decoration: none;
  background: #dedede;
  border-radius: 15px;
  padding: 10px 14px;
  box-shadow: 0 2px 3px #0002;
  font-size: 13px;
}
.revision .document-icon {
  width: 35px;
  height: 35px;
  font-size: 23px;
}
.presentation {
  padding: 32px;
  border-radius: 12px;
  background: #eef1f6;
  text-align: center;
  line-height: 1.6;
}
.presentation .course-symbol {
  width: 85px;
  height: 85px;
  font-size: 45px;
}
.primary,
.secondary,
.success {
  display: inline-block;
  border-radius: 7px;
  padding: 10px 18px;
  text-decoration: none;
  font-size: 14px;
  text-align: center;
  line-height: 1.3;
}
.primary {
  background: #204eaa;
  color: white;
}
.secondary {
  background: #e0e5ee;
  color: #223659;
  border: 1px solid #aeb9c9;
}
.success {
  background: var(--mint);
  color: #174635;
  box-shadow: 0 2px 3px #0002;
}
.primary:hover {
  background: #123d92;
}
.success:hover {
  background: #79f5a7;
}
.stack {
  display: flex;
  flex-direction: column;
  gap: 15px;
}
label {
  display: block;
  font-size: 13px;
  color: #394961;
}
input,
textarea,
select {
  width: 100%;
  background: #f4f4f4;
  border: 1px solid #92969d;
  border-radius: 10px;
  color: #202f42;
  padding: 10px 12px;
  margin-top: 6px;
  font-size: 14px;
}
textarea {
  resize: vertical;
  min-height: 100px;
}
select {
  cursor: pointer;
}
input[type="file"] {
  font-size: 11px;
  padding: 8px;
}
input[type="number"] {
  max-width: 160px;
}
.form-actions {
  display: flex;
  align-items: end;
  gap: 15px;
  flex-wrap: wrap;
}
.form-actions > label {
  flex: 1;
}
.field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
}
.auth-card {
  max-width: 450px;
  margin: 25px auto;
  background: white;
  border: 1px solid #d0d7e0;
  border-radius: 13px;
  padding: 35px;
  box-shadow: 0 8px 30px #0b1f4c08;
}
.auth-heading {
  margin-bottom: 25px;
}
.auth-heading h1 {
  margin: 15px 0;
  font-size: 29px;
}
.auth-heading p,
.auth-card > p {
  font-size: 13px;
  color: #647088;
  line-height: 1.5;
}
.auth-card .primary {
  width: 100%;
  margin-top: 10px;
}
.tag {
  display: inline-block;
  border-radius: 30px;
  background: #e6f1f0;
  color: #32695f;
  font-size: 11px;
  padding: 5px 10px;
}
.notice-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
}
.notice-head h2 {
  font-weight: 500;
}
.message-form {
  margin: 15px 0 32px;
}
.message-form textarea {
  min-height: 190px;
}
.message-form .success {
  min-width: 180px;
}
.message-log {
  background: #ddd;
  border-radius: 17px;
  padding: 15px;
  margin: 10px 0;
  box-shadow: 0 2px 3px #0002;
}
.message-log summary {
  display: flex;
  gap: 12px;
  align-items: center;
  list-style: none;
}
.message-log small {
  display: block;
  font-size: 11px;
  margin-top: 3px;
}
.message-log strong {
  font-size: 14px;
}
.message-log time {
  margin-left: auto;
  font-size: 10px;
  color: #5e6879;
}
.message-log p {
  white-space: pre-wrap;
  font-size: 13px;
  line-height: 1.6;
}
.status-dot {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #60e948;
  flex-shrink: 0;
}
.status-dot.red {
  background: #c93338;
}
.message-request {
  padding: 12px 15px;
  background: #dedede;
  border-radius: 15px;
  display: flex;
  align-items: start;
  gap: 13px;
  box-shadow: 0 2px 3px #0002;
}
.message-request h3 {
  margin: 0;
  font-size: 14px;
}
.message-request p {
  font-size: 12px;
  white-space: pre-wrap;
}
.message-request small {
  font-size: 10px;
  color: #5f6b7c;
}
.message-request > div {
  flex: 1;
  min-width: 0;
}
.message-request details {
  max-width: 200px;
}
.message-request summary {
  font-size: 11px;
  list-style: none;
}
.message-request details form {
  margin-top: 15px;
}
.request-avatar {
  width: 45px;
  height: 45px;
  border-radius: 50%;
  background: #aaa;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 30px;
  color: #222;
  flex-shrink: 0;
}
.metrics h2 {
  font-size: 14px;
}
.chart-section {
  border-bottom: 1px solid #aaa;
  padding: 12px 0 25px;
}
.chart-section h3 {
  margin: 0 0 20px;
}
.chart-flex {
  display: flex;
  align-items: center;
  gap: 25px;
  flex-wrap: wrap;
}
.pie {
  width: 155px;
  height: 155px;
  border-radius: 50%;
  border: 1px solid #ddd;
  flex-shrink: 0;
}
.legend {
  padding: 0;
  list-style: none;
  font-size: 12px;
  line-height: 1.8;
}
.legend i {
  display: inline-block;
  width: 12px;
  height: 12px;
  margin-right: 7px;
}
.navy {
  background: #174783;
}
.green {
  background: #65e74a;
}
.red {
  background: #c92e32;
}
.grade-bars {
  height: 170px;
  display: flex;
  gap: 20px;
  align-items: end;
  border-bottom: 1px solid #667085;
  padding: 0 10px;
}
.grade-bars > div {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
}
.grade-bars span {
  background: #174783;
  width: 34px;
  min-height: 5px;
}
.grade-bars small,
.grade-bars strong {
  font-size: 10px;
}
.grade-summary p {
  font-size: 12px;
}
.delivery-bars > div {
  display: grid;
  grid-template-columns: 180px 1fr 25px;
  align-items: center;
  gap: 12px;
  font-size: 12px;
  margin: 13px 0;
}
.delivery-bars meter {
  width: 100%;
  height: 20px;
}
table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
  margin-top: 25px;
}
th,
td {
  text-align: left;
  border-bottom: 1px solid #d1d7e0;
  padding: 12px 8px;
}
th {
  background: #e8ecf3;
}
.lesson-video {
  width: 100%;
  max-width: 900px;
  background: #101726;
  border-radius: 12px;
  max-height: 520px;
}
.back-link {
  display: block;
  margin-bottom: 22px;
  font-size: 12px;
  color: #506582;
}
.answer-form {
  max-width: 800px;
  margin: 25px 0;
}
.submission {
  padding: 20px;
  background: #eef0f4;
  margin: 15px 0;
  border-radius: 10px;
}
.submission h3 {
  margin-top: 0;
}
.amelia-panel {
  position: fixed;
  right: 0;
  top: 84px;
  bottom: 0;
  width: min(440px, 100%);
  background: var(--teal);
  z-index: 18;
  display: flex;
  flex-direction: column;
  padding: 20px;
  box-shadow: -10px 0 35px #05153325;
}
.amelia-panel > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.amelia-panel header button {
  background: none;
  font-size: 27px;
}
.amelia-greeting {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #174951;
  padding: 20px;
}
.amelia-greeting h2 {
  margin-bottom: 0;
}
.amelia-greeting p {
  font-size: 14px;
  line-height: 1.7;
}
.assistant-avatar {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background: white;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 55px;
  color: #18232a;
}
.amelia-panel form {
  display: flex;
  align-items: center;
  border-radius: 18px;
  background: white;
  padding: 5px;
}
.amelia-panel input {
  border: 0;
  background: white;
  margin: 0;
}
.amelia-panel form button {
  background: white;
  color: #2b595e;
  font-size: 24px;
  padding: 10px;
}
.amelia-panel > p {
  font-size: 12px;
  line-height: 1.6;
}
.amelia-action {
  background: var(--teal);
  color: #244b50;
  padding: 9px 12px;
  border-radius: 8px;
  font-size: 12px;
}
.amelia-action:hover {
  background: #72bbbb;
}
dialog {
  border: 1px solid #91969e;
  border-radius: 24px;
  padding: 28px;
  max-width: calc(100% - 32px);
  width: 510px;
  box-shadow: 0 15px 75px #06153045;
  background: #efefef;
  color: #24334a;
}
dialog::backdrop {
  background: #14203955;
  backdrop-filter: blur(2px);
}
dialog h2 {
  font-size: 20px;
  padding-right: 25px;
}
.dialog-close {
  position: absolute;
  right: 15px;
  top: 12px;
  font-size: 27px;
  background: none;
}
.content-dialog {
  width: 740px;
}
.video-editor {
  width: 880px;
}
.content-form {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 22px;
}
.video-editor .content-form {
  grid-template-columns: 280px 1fr;
}
.upload-column {
  display: flex;
  flex-direction: column;
  gap: 13px;
}
.upload-box {
  min-height: 190px;
  background: #dadada;
  border: 1px solid #555;
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  padding: 15px;
  gap: 12px;
  font-size: 13px;
}
.upload-box > span {
  font-size: 50px;
}
.upload-box input {
  max-width: 100%;
  border: 0;
  background: transparent;
  margin: 0;
}
.cover-upload {
  background: #dadada;
  border-radius: 12px;
  border: 1px solid #555;
  padding: 14px;
}
.content-dialog textarea {
  background: #ddd;
}
.stat-row {
  padding: 12px 16px;
  border: 1px solid #8c939c;
  border-radius: 15px;
  margin: 12px 0;
  font-size: 14px;
}
.stat-row b {
  margin-right: 12px;
  color: #123d83;
}
.stat-error {
  color: #922f32;
}
@media (min-width: 1400px) {
  main {
    padding: 40px 55px;
  }
  .module-layout {
    grid-template-columns: minmax(0, 1fr) 215px;
    gap: 40px;
  }
  .course-card {
    height: 125px;
  }
  .video-card > a:first-of-type {
    height: 140px;
  }
  .video-card .play {
    height: 105px;
  }
  .document-card {
    max-width: 210px;
  }
}
@media (max-width: 1000px) {
  .sidebar {
    width: 170px;
  }
  .nav-tools strong {
    font-size: 11px;
  }
  main {
    padding: 30px 22px;
  }
  .module-layout {
    grid-template-columns: minmax(0, 1fr) 160px;
    gap: 20px;
  }
  .discipline-nav a {
    font-size: 10px;
  }
  .resource-grid {
    gap: 25px 15px;
  }
  .resource-row h2 {
    font-size: 17px;
  }
  .assessment-icon {
    width: 70px;
    height: 70px;
    font-size: 40px;
  }
  .course-grid {
    gap: 20px;
  }
  .message-request {
    flex-wrap: wrap;
  }
  .message-request details {
    margin-left: 55px;
  }
  .delivery-bars > div {
    grid-template-columns: 130px 1fr 20px;
  }
}
@media (max-width: 760px) {
  .topbar {
    padding: 10px 14px;
    height: 74px;
  }
  .brand-ete {
    width: 100px;
  }
  .brand-ead {
    width: 50px;
    height: 50px;
  }
  .account {
    gap: 12px;
  }
  .access,
  .profile-menu > summary {
    min-width: 0;
    font-size: 12px;
    padding: 5px 6px 5px 12px;
    gap: 15px;
  }
  .register-link {
    font-size: 12px;
  }
  .avatar {
    width: 34px;
    height: 34px;
    font-size: 23px;
  }
  .avatar:after {
    width: 17px;
    height: 11px;
    bottom: 6px;
  }
  .layout {
    min-height: calc(100vh - 74px);
  }
  .sidebar {
    width: 140px;
    padding: 0 9px;
  }
  .nav-tools strong {
    font-size: 9px;
  }
  .sidebar nav a {
    font-size: 10px;
    padding: 11px 0;
  }
  main {
    padding: 26px 16px;
  }
  .course-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
  }
  .module-layout {
    grid-template-columns: 1fr;
  }
  .discipline-nav {
    min-height: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    padding: 10px;
    order: -1;
  }
  .discipline-nav a {
    padding: 7px;
    border: 1px solid #b1bdcc;
    border-radius: 3px;
    font-size: 10px;
  }
  .module-toolbar {
    margin-bottom: 15px;
    flex-wrap: wrap;
  }
  .module-toolbar select {
    min-width: 0;
    width: 100%;
  }
  .module-content h1 {
    font-size: 23px;
    margin-top: 12px;
  }
  .resource-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .content-form,
  .video-editor .content-form {
    grid-template-columns: 1fr;
  }
  .upload-column {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .upload-box {
    min-height: 135px;
    grid-column: 1/-1;
  }
  .amelia-panel {
    top: 74px;
  }
  .delivery-bars > div {
    grid-template-columns: 1fr 1fr 20px;
  }
  h1 {
    font-size: 25px;
  }
  .auth-card {
    padding: 22px;
  }
  .notice-head {
    align-items: start;
    flex-direction: column;
  }
  .field-row {
    grid-template-columns: 1fr;
  }
  dialog {
    max-height: 85vh;
    overflow: auto;
  }
  .news {
    margin-top: 45px;
  }
  .news-banner {
    font-size: 10px;
  }
  .enrollment {
    gap: 7px;
  }
  .enrollment b {
    font-size: 10px;
  }
  .teacher-course {
    width: min(310px, 100%);
  }
}
@media (max-width: 480px) {
  .sidebar {
    width: 57px;
  }
  .sidebar .nav-tools strong {
    display: none;
  }
  .sidebar nav {
    display: none;
  }
  .sidebar:not(.collapsed).mobile-open {
    width: 145px;
  }
  .sidebar.mobile-open nav {
    display: block;
  }
  .brand {
    gap: 8px;
  }
  .brand-ete {
    width: 80px;
  }
  .brand-ead {
    width: 44px;
    height: 44px;
  }
  .account {
    gap: 10px;
  }
  .access {
    padding: 6px 10px;
  }
  .access .avatar {
    display: none;
  }
  .profile-menu summary > span:first-child {
    max-width: 85px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .profile-menu .avatar {
    display: none;
  }
  .resource-grid {
    gap: 18px 12px;
  }
  .auth-card {
    padding: 20px;
  }
  .message-log time {
    display: none;
  }
  .grade-bars {
    gap: 13px;
  }
  .form-actions {
    align-items: stretch;
  }
  .form-actions > label {
    flex-basis: 100%;
  }
  .topbar {
    padding: 10px;
  }
  .register-link {
    font-size: 11px;
  }
  .module-toolbar select {
    font-size: 12px;
  }
  .upload-column {
    display: flex;
    flex-direction: column;
  }
}
@media (prefers-reduced-motion: no-preference) {
  a,
  button {
    transition:
      background 0.15s,
      box-shadow 0.15s;
  }
}

.video-progress {
  float: right;
  font-size: 9px;
}

.amelia-icon {
  width: 25px;
  height: 25px;
  vertical-align: middle;
}
.amelia-action .amelia-icon {
  width: 17px;
  height: 17px;
  margin-right: 5px;
}
.assistant-avatar .amelia-icon {
  width: 63px;
  height: 63px;
}
.amelia-panel > header strong {
  display: flex;
  align-items: center;
  gap: 8px;
}
.video-editor .stack {
  gap: 9px;
}
.video-editor textarea {
  height: 108px;
  min-height: 80px;
}
.video-editor input,
.video-editor select {
  padding: 8px 10px;
  margin-top: 4px;
}
.video-editor h2 {
  margin-top: 4px;
  margin-bottom: 18px;
}
.video-editor .form-actions {
  margin-top: 4px;
}
.video-editor {
  max-height: 90vh;
  overflow: auto;
}

.card-percentage {
  position: absolute;
  right: 4px;
  bottom: 29px;
  font-size: 9px;
  color: #666;
}

/* Cabeçalho comum: marca de EAD sobre o mesmo azul escuro, com texto branco. */
.brand-ead {
  width: 66px;
  height: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  background: var(--navy);
  color: white;
  text-align: center;
  line-height: 1.05;
  font-style: italic;
  font-weight: 750;
  font-size: 9px;
}
.brand-ead svg {
  display: block;
  width: 66px;
  height: 38px;
  overflow: hidden;
}
.brand-ead > span {
  display: block;
}
@keyframes amelia-enter {
  from {
    transform: translateX(45px);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}
.amelia-panel:not([hidden]) {
  animation: amelia-enter 280ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
}
@media (prefers-reduced-motion: reduce) {
  .amelia-panel:not([hidden]) {
    animation: none;
  }
}
.role-picker {
  padding: 0;
  border: 0;
  margin: 0;
}
.role-picker legend {
  font-size: 13px;
  color: #394961;
  margin-bottom: 10px;
}
.role-choices {
  display: flex;
  gap: 10px;
}
.role-choices label {
  flex: 1;
  display: flex;
  gap: 9px;
  align-items: start;
  border: 1px solid #c5cfdd;
  background: #f4f6fa;
  padding: 12px 10px;
  border-radius: 10px;
  cursor: pointer;
}
.role-choices input {
  width: 15px;
  height: 15px;
  margin: 2px 0 0;
  accent-color: #2054b8;
}
.role-choices small {
  display: block;
  font-size: 10px;
  color: #647088;
  margin-top: 4px;
  line-height: 1.4;
}
.role-choices label:has(input:checked) {
  border-color: #2054b8;
  background: #eaf0fb;
}
.course-catalog {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  align-items: start;
}
.course-catalog .empty-state {
  width: 100%;
}
.course-metadata {
  padding: 12px 15px;
  font-size: 12px;
  background: white;
}
.course-metadata span {
  display: block;
  margin-top: 8px;
  color: #385177;
}
.course-metadata b {
  letter-spacing: 1px;
}
.teacher-course-name {
  overflow-wrap: anywhere;
}
.course-editor {
  max-width: 720px;
  padding: 28px;
  background: #eef1f5;
  border-radius: 16px;
}
.create-course-link {
  margin-bottom: 25px;
}
.join-room {
  display: flex;
  align-items: end;
  gap: 15px;
  margin-bottom: 30px;
  max-width: 650px;
  background: #e9eef5;
  padding: 20px;
  border-radius: 12px;
}
.join-room label {
  flex: 1;
}
.join-room input {
  text-transform: uppercase;
}
.room-code {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  padding: 16px 20px;
  border: 1px solid #bdcbdc;
  border-radius: 12px;
  background: #eaf0f8;
  margin: 20px 0 30px;
}
.room-code strong {
  font-size: 22px;
  letter-spacing: 3px;
  color: #174783;
}
.room-code small {
  font-size: 12px;
  color: #647088;
}
.room-students {
  list-style: none;
  padding: 0;
  font-size: 13px;
  color: #52637d;
}
.room-students li {
  padding: 12px;
  border-bottom: 1px solid #d4dce7;
}
.visitor-welcome {
  background: #eef2f7;
  padding: 30px;
  border-radius: 15px;
  max-width: 800px;
}
.visitor-welcome h2 {
  font-size: 25px;
}
.visitor-welcome p {
  line-height: 1.7;
  color: #61718a;
  max-width: 620px;
  font-size: 14px;
}
.visitor-welcome .form-actions {
  margin-top: 25px;
}
@media (max-width: 760px) {
  .brand-ead {
    width: 52px;
    font-size: 8px;
  }
  .brand-ead svg {
    width: 52px;
    height: 30px;
  }
}
@media (max-width: 480px) {
  .brand-ead {
    width: 44px;
    font-size: 7px;
  }
  .brand-ead svg {
    width: 44px;
    height: 26px;
  }
  .join-room {
    align-items: stretch;
    flex-direction: column;
    padding: 15px;
  }
  .role-choices {
    flex-direction: column;
  }
  .visitor-welcome {
    padding: 22px;
  }
  .course-editor {
    padding: 20px;
  }
}

/* Leitura mais confortável e componentes consistentes com o portal. */
body {
  font-size: 17px;
}
.sidebar nav a {
  font-size: 14px;
}
.nav-tools strong {
  font-size: 14px;
}
.muted,
.stack label,
.description,
.visitor-welcome p,
.join-room p {
  font-size: 15px;
}
.role-choices small,
.course-metadata,
.room-code small {
  font-size: 13px;
}
.register-link {
  font-size: 15px;
}
.discipline-nav a {
  font-size: 13px;
}
h1 {
  font-size: 30px;
}
.visitor-title {
  text-align: center;
  margin: 8px 0 25px;
}
.visitor-welcome {
  margin: 0 auto;
  text-align: center;
  padding: 38px;
}
.visitor-welcome p {
  margin: 18px auto;
}
.visitor-welcome .form-actions {
  justify-content: center;
}
.news {
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}
.join-room {
  display: block;
  max-width: 850px;
  padding: 28px 30px;
  border: 1px solid #cbd6e7;
  background: linear-gradient(115deg, #e8effa, #f3f7fb);
  border-radius: 18px;
  box-shadow: 0 8px 24px #081a4208;
}
.join-room h2 {
  font-size: 25px;
  margin: 16px 0 8px;
}
.join-room p {
  color: #536782;
  line-height: 1.6;
  max-width: 620px;
}
.join-room-fields {
  display: flex;
  align-items: end;
  gap: 15px;
  margin-top: 24px;
}
.join-room-fields label {
  flex: 1;
  max-width: 370px;
  font-size: 14px;
}
.join-room input {
  display: block;
  width: 100%;
  padding: 14px 16px;
  border: 1px solid #acbdd7;
  border-radius: 10px;
  letter-spacing: 3px;
  margin-top: 8px;
  background: white;
  font-size: 19px;
}
.upload-box input[type="file"],
.cover-upload input[type="file"] {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}
.upload-box,
.cover-upload {
  position: relative;
  cursor: pointer;
  border: 1px dashed #8ba5ca !important;
  background: #edf3fc !important;
  border-radius: 14px !important;
  color: #214778 !important;
}
.upload-box:focus-within,
.cover-upload:focus-within {
  outline: 3px solid #eec941;
}
.file-selection {
  display: block;
  padding: 9px 14px;
  margin-top: 12px;
  background: #dce8f8;
  border-radius: 8px;
  font-size: 13px;
  overflow-wrap: anywhere;
}
.cover-upload {
  padding: 14px;
}
.interaction-editor {
  padding: 18px;
  background: #eaf0f8;
  border: 1px solid #c7d3e5;
  border-radius: 12px;
}
.interaction-editor h3 {
  margin-top: 0;
}
.interaction-row {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
  border-bottom: 1px solid #c9d6e6;
  padding: 12px 0;
  font-size: 14px;
}
.interaction-fields {
  display: grid;
  gap: 12px;
}
.question-status {
  font-size: 14px;
  color: #254b7c;
}
.lesson-question {
  padding: 22px;
  border: 1px solid #ccd7e6;
  border-radius: 12px;
  max-width: 760px;
  margin: 18px 0;
  background: #eef3fa;
}
.lesson-question label {
  display: flex;
  align-items: center;
  gap: 10px;
}
.lesson-question input {
  width: auto;
  margin: 0;
}
.contact-page {
  max-width: 1000px;
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 40px;
  margin: 15px auto;
}
.contact-intro p {
  line-height: 1.7;
  color: #54657c;
}
.contact-intro small {
  font-size: 13px;
  line-height: 1.6;
  color: #647088;
}
.contact-form {
  padding: 28px;
  border: 1px solid #ccd6e4;
  border-radius: 16px;
  background: white;
}
@media (max-width: 760px) {
  .contact-page {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .join-room-fields {
    flex-direction: column;
    align-items: stretch;
  }
  .join-room-fields label {
    max-width: none;
  }
  .visitor-welcome {
    padding: 25px;
  }
  .join-room {
    padding: 22px;
  }
}
.upload-box .file-selection {
  font-size: 14px;
  line-height: 1.4;
  color: #214778;
}
.upload-box > span:first-child {
  font-size: 44px;
}
.video-editor .stack label {
  font-size: 15px;
}
.video-editor input,
.video-editor select,
.video-editor textarea {
  font-size: 14px;
}

/* Perfil, navegação e páginas de acompanhamento. */
.avatar:has(img):after {
  display: none;
}
.avatar:has(img) {
  padding: 0;
  overflow: hidden;
}
.avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.large-avatar {
  width: 90px;
  height: 90px;
  font-size: 60px;
}
.large-avatar:after {
  width: 43px;
  height: 27px;
  bottom: 17px;
}
.profile-identity {
  display: flex;
  align-items: center;
  gap: 20px;
}
.check-label {
  display: flex;
  align-items: center;
  gap: 10px;
}
.check-label input {
  width: auto;
}
.sidebar {
  transition:
    width 240ms ease,
    padding 240ms ease;
}
.sidebar nav {
  animation: section-enter 220ms ease;
}
.sidebar.mobile-open {
  animation: amelia-enter 240ms ease;
}
.sidebar nav a {
  transition: background 150ms ease;
}
.main-column main {
  animation: section-enter 200ms ease;
}
@keyframes section-enter {
  from {
    opacity: 0.5;
    transform: translateY(7px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.confirm-dialog {
  width: min(430px, 90vw);
  padding: 25px;
  border: 1px solid #c8d4e5;
  border-radius: 15px;
  box-shadow: 0 16px 50px #06153035;
}
.confirm-dialog p {
  line-height: 1.6;
}
.flash strong {
  margin-right: 6px;
}
.dashboard-welcome {
  padding: 20px 0;
}
.dashboard-welcome h1 {
  margin: 17px 0;
}
.dashboard-welcome p {
  color: #64728a;
}
.dashboard-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin: 20px 0 35px;
}
.dashboard-stats a {
  text-decoration: none;
  border: 1px solid #cbd7e7;
  padding: 22px;
  border-radius: 14px;
  background: #eef3fa;
}
.dashboard-stats strong {
  display: block;
  font-size: 32px;
  color: #2054a2;
}
.dashboard-stats span {
  font-size: 14px;
}
.dashboard-panels {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 25px;
}
.dashboard-panels > section {
  padding: 24px;
  border: 1px solid #d0d9e5;
  border-radius: 14px;
  background: white;
}
.dashboard-module {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  padding: 17px 0;
  text-decoration: none;
  border-bottom: 1px solid #d2dbe6;
  margin-bottom: 18px;
}
.dashboard-module small {
  display: block;
  margin-top: 5px;
  font-size: 13px;
  color: #64718a;
}
.progress-summary {
  width: 110px;
  font-size: 13px;
}
.progress-summary span {
  display: block;
  text-align: right;
  margin-bottom: 6px;
}
progress {
  appearance: none;
  height: 8px;
  width: 100%;
  border: none;
  border-radius: 20px;
  background: #dce5f1;
  overflow: hidden;
}
progress::-webkit-progress-bar {
  background: #dce5f1;
  border-radius: 20px;
}
progress::-webkit-progress-value {
  background: #2c70c8;
  border-radius: 20px;
}
progress::-moz-progress-bar {
  background: #2c70c8;
  border-radius: 20px;
}
.agenda-item {
  display: block;
  padding: 14px 0;
  border-bottom: 1px solid #d1dbe7;
  margin-bottom: 15px;
  text-decoration: none;
}
.agenda-item time {
  display: block;
  font-size: 13px;
  color: #526c94;
  margin-bottom: 6px;
}
.message-picker {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 25px;
  padding: 28px;
  border: 1px solid #cbd6e5;
  border-radius: 16px;
  max-width: 900px;
  background: #eef3fa;
}
.room-teachers strong,
.room-teachers small {
  display: block;
  margin: 7px 0;
}
.calendar-panel {
  padding: 22px;
  border: 1px solid #cbd6e5;
  background: white;
  border-radius: 16px;
  max-width: 1200px;
}
.calendar-heading {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 20px;
}
.calendar-heading h2 {
  margin: 0;
  flex: 1;
  text-align: center;
}
.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 1px;
  background: #d3ddea;
  border: 1px solid #d3ddea;
  border-radius: 10px;
  overflow: hidden;
}
.weekday {
  padding: 13px 8px;
  text-align: center;
  background: #edf2f9;
  font-size: 13px;
}
.calendar-day {
  min-height: 115px;
  padding: 10px;
  background: #fff;
  min-width: 0;
}
.calendar-day.empty {
  background: #f1f4f8;
}
.calendar-day.today {
  background: #eaf2ff;
}
.day-number {
  display: inline-flex;
  width: 26px;
  height: 26px;
  justify-content: center;
  align-items: center;
  font-size: 14px;
}
.today .day-number {
  background: #2056b4;
  color: white;
  border-radius: 50%;
}
.calendar-day a {
  display: block;
  padding: 6px;
  background: #e3edf9;
  border-left: 3px solid #326bb9;
  border-radius: 4px;
  font-size: 11px;
  margin-top: 8px;
  text-decoration: none;
  overflow-wrap: anywhere;
}
.report-identification {
  padding: 20px 24px;
  background: #edf3fb;
  border-radius: 12px;
  margin-bottom: 30px;
}
.report-identification h2 {
  margin-top: 0;
}
.report-identification p {
  font-size: 14px;
}
.report-course {
  margin: 30px 0;
}
.report-module-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  border-bottom: 2px solid #cedae9;
}
.report-module-heading span {
  font-size: 13px;
}
.table-scroll {
  overflow-x: auto;
}
.table-scroll table {
  min-width: 650px;
}
.course-cover {
  width: 100%;
  height: 140px;
  object-fit: cover;
  display: block;
}
.course-hero-image {
  max-width: 650px;
  width: 100%;
  height: 220px;
  object-fit: cover;
  border-radius: 14px;
}
.image-form {
  display: flex;
  gap: 12px;
  align-items: end;
  flex-wrap: wrap;
  padding: 15px 0;
}
.image-form label {
  font-size: 13px;
}
.module-images {
  margin: 20px 0;
}
.module-cover {
  width: 100%;
  height: 110px;
  object-fit: cover;
  display: block;
}
.module-symbol {
  display: block;
  text-align: center;
  font-size: 38px;
  color: #225390;
  padding: 22px;
}
.course-card {
  height: auto;
  min-height: 160px;
  padding-bottom: 16px;
  overflow: hidden;
  border: 1px solid #c2cddd;
  border-radius: 12px;
  box-shadow: 0 4px 14px #06153008;
}
.course-card .module-name {
  display: block;
  padding: 10px 12px;
  font-size: 15px;
  position: static;
}
.module-course-label {
  display: block;
  font-size: 12px;
  color: #66788f;
  padding: 0 12px 12px;
}
.course-card progress {
  display: block;
  margin: 0 12px;
  width: calc(100% - 24px);
}
.course-card .card-percentage {
  position: static;
  display: block;
  text-align: right;
  padding: 0 12px 6px;
  font-size: 12px;
}
.video-label {
  background: #edf3fa !important;
  color: #284365 !important;
}
.video-progress {
  background: #dce8f8;
  padding: 3px 6px;
  border-radius: 5px;
}
.grade-bars {
  min-height: 150px;
}
.grade-bars > div > span {
  background: #2c70c8;
  border-radius: 5px 5px 0 0;
}
.chart-section {
  border: 1px solid #d2dce8;
  border-radius: 12px;
  padding: 20px;
  margin-top: 22px;
}
.delivery-bars meter {
  height: 14px;
}
.metrics {
  margin-top: 25px;
}
body[data-theme="escuro"] {
  background: #101a2b;
  color: #e2e9f4;
  --navy: #081a42;
  --sidebar: #092253;
}
body[data-theme="escuro"] .main-column {
  background: #101a2b;
}
body[data-theme="escuro"]
  :is(
    .auth-card,
    .course-editor,
    .visitor-welcome,
    .join-room,
    .dashboard-stats a,
    .dashboard-panels > section,
    .message-picker,
    .calendar-panel,
    .contact-form,
    .interaction-editor,
    .lesson-question,
    .report-identification,
    .teacher-course,
    .course-metadata,
    .course-card,
    .document-card,
    .resource-row,
    .message-request,
    .message-log,
    .chart-section,
    .presentation,
    .room-code,
    .empty-state,
    dialog,
    .dropdown
  ) {
  background: #1c2b40;
  color: #e2e9f4;
  border-color: #3d506b;
}
body[data-theme="escuro"] :is(input, textarea, select) {
  background: #132136;
  color: #e8edf5;
  border-color: #50647d;
}
body[data-theme="escuro"] :is(.dropdown a, .dropdown button) {
  background: #1c2b40;
  color: #e2e9f4;
}
body[data-theme="escuro"]
  :is(
    .muted,
    .description,
    .dashboard-welcome p,
    .visitor-welcome p,
    .join-room p,
    .contact-intro p,
    .contact-intro small,
    .stack label,
    .module-course-label,
    .course-metadata span,
    .role-choices small,
    .dashboard-module small
  ) {
  color: #b9c9de;
}
body[data-theme="escuro"] .secondary {
  background: #293e5b;
  color: #e4edf8;
  border-color: #50647d;
}
body[data-theme="escuro"] :is(.calendar-day, .weekday) {
  background: #1c2b40;
}
body[data-theme="escuro"] .calendar-day.empty {
  background: #152238;
}
body[data-theme="escuro"] .calendar-day.today {
  background: #2a4367;
}
body[data-theme="escuro"] .calendar-day a {
  background: #2a4262;
  color: #dfedff;
}
body[data-theme="escuro"] :is(th, td) {
  border-color: #41516b;
}
body[data-theme="escuro"] th {
  background: #273d5a;
}
body[data-theme="escuro"] .role-choices label {
  background: #243a58;
  color: #e5edfa;
}
body[data-theme="escuro"] .tag {
  background: #254947;
  color: #caeddf;
}
body[data-theme="escuro"] .upload-box,
body[data-theme="escuro"] .cover-upload {
  background: #233c5d !important;
  color: #dae7fa !important;
}
body[data-theme="escuro"] .file-selection {
  background: #314e74;
  color: #e1ecfb !important;
}
body[data-theme="escuro"] .flash {
  background: #193b35;
  color: #d0f2e2;
}
body[data-theme="escuro"] .flash.error {
  background: #4b282f;
  color: #ffd8de;
}
@media (max-width: 760px) {
  .dashboard-stats {
    grid-template-columns: 1fr;
  }
  .dashboard-panels,
  .message-picker {
    grid-template-columns: 1fr;
  }
  .calendar-panel {
    padding: 10px;
  }
  .calendar-day {
    min-height: 80px;
    padding: 5px;
  }
  .calendar-day a {
    font-size: 10px;
    padding: 3px;
  }
  .calendar-heading {
    gap: 8px;
    flex-wrap: wrap;
  }
  .calendar-heading h2 {
    font-size: 18px;
  }
  .report-module-heading {
    display: block;
  }
}
@media (prefers-reduced-motion: reduce) {
  .sidebar,
  .sidebar nav a {
    transition: none;
  }
  .sidebar nav,
  .sidebar.mobile-open,
  .main-column main {
    animation: none;
  }
}

body[data-theme="escuro"]
  :is(.role-picker legend, .grade-summary, .question-status) {
  color: #bdcde3;
}
body[data-theme="escuro"] .discipline-nav {
  background: #1c2b40;
}
body[data-theme="escuro"] .discipline-nav a {
  color: #e2e9f4;
  border-color: #50647d;
}
.video-card > progress {
  display: block;
  margin: 10px 12px;
  width: calc(100% - 24px);
}
.course-card {
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
}
.course-card .module-name {
  font-weight: 600;
  overflow-wrap: anywhere;
}
.module-symbol {
  width: 100%;
  line-height: 1.2;
}
.module-course-label {
  overflow-wrap: anywhere;
}
.course-card .card-percentage {
  color: #526784;
}
body[data-theme="escuro"] :is(.module-name, .back-link, .card-percentage) {
  color: #bfcfe6;
}
body[data-theme="escuro"] .module-symbol {
  color: #7ca9e5;
}
body[data-theme="escuro"] progress::-webkit-progress-bar {
  background: #394e6b;
}

.photo-adjust-dialog {
  width: min(460px, 94vw);
  border: 1px solid #ccd7e5;
  border-radius: 18px;
  padding: 25px;
  max-height: 92vh;
  overflow: auto;
}
.photo-adjust-dialog h2 {
  margin-top: 0;
}
.photo-crop-stage {
  display: flex;
  justify-content: center;
  padding: 15px;
  background: #e8eef7;
  border-radius: 14px;
}
.photo-crop-stage canvas {
  width: min(260px, 65vw);
  height: auto;
  aspect-ratio: 1;
  border-radius: 50%;
  outline: 3px solid #fff;
  box-shadow: 0 0 0 5px #8ba6cb;
  cursor: grab;
  touch-action: none;
}
.photo-crop-stage canvas:active {
  cursor: grabbing;
}
.crop-controls {
  margin-top: 20px;
  gap: 10px;
}
.crop-controls label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
}
.crop-controls input {
  width: 65%;
  padding: 0;
  accent-color: #326bbc;
}
.photo-adjust-dialog .form-actions {
  justify-content: flex-end;
}
.account-danger { margin-top:32px; border:1px solid #d88891; border-radius:14px; padding:20px; background:#fff5f5; }.account-danger h2 { margin-top:0; color:#a52e3d; }
body[data-theme="escuro"] .account-danger { background:#482b34; border-color:#a55b68; }.delete-content-form { margin:0 0 16px; }
body[data-theme="escuro"] .photo-crop-stage {
  background: #132238;
}
body[data-theme="escuro"] .amelia-panel {
  background: #203d49;
  color: #e0edf2;
  border-left: 1px solid #496777;
}
body[data-theme="escuro"]
  .amelia-panel
  :is(header, .amelia-greeting h2, .amelia-greeting p) {
  color: #dce9f0;
}
body[data-theme="escuro"] #amelia-form {
  background: #132737;
  border: 1px solid #587583;
}
body[data-theme="escuro"] #amelia-form input {
  background: transparent;
  color: #ecf4f8;
  border: 0;
}
body[data-theme="escuro"] #amelia-form input::placeholder {
  color: #acbecb;
}
body[data-theme="escuro"] #amelia-form button {
  background: transparent;
  color: #b8dcdf;
}
body[data-theme="escuro"] .amelia-toggle {
  background: #355e69;
  color: #e6f3f5;
}
body[data-theme="escuro"] .amelia-action {
  background: #355e69;
  color: #e3eff4;
}
body[data-theme="escuro"] .assistant-avatar {
  background: #d9e7ed;
}
body[data-theme="escuro"] #amelia-status {
  color: #c3d9e2;
}

body[data-theme="escuro"] .amelia-panel header button {
  color: #dce9f0;
}

.chat-page { display:grid; grid-template-columns:minmax(220px, 310px) 1fr; min-height:620px; border:1px solid #cbd5e1; border-radius:16px; overflow:hidden; background:#fff; }
.chat-contacts { background:#edf3fb; border-right:1px solid #cbd5e1; padding:18px 0; }
.chat-contacts h1 { font-size:20px; margin:0 18px 14px; }
.chat-contact { display:flex; gap:12px; padding:12px 18px; text-decoration:none; border-top:1px solid #d5deeb; align-items:center; }
.chat-contact:hover,.chat-contact.selected { background:#dbe7f8; }
.chat-contact strong,.chat-contact small { display:block; }.chat-contact small { color:#526784; margin-top:3px; }
.chat-conversation { display:flex; min-width:0; flex-direction:column; padding:18px 24px; }.chat-conversation header h2 { margin:0; font-size:18px; }.chat-conversation header p { margin:3px 0 14px; }
.chat-history { flex:1; min-height:420px; overflow:auto; display:flex; flex-direction:column; gap:14px; padding:12px 0; }.chat-bubble { max-width:min(70%, 510px); background:#e3ebf8; border:1px solid #ced9ea; border-radius:12px 12px 12px 3px; padding:11px 13px; }.chat-bubble.mine { margin-left:auto; background:#355586; color:#fff; border-radius:12px 12px 3px 12px; }.chat-bubble p { margin:0; white-space:pre-wrap; }.chat-bubble small { display:block; margin-top:5px; opacity:.72; font-size:11px; }.chat-compose { display:flex; gap:10px; border-top:1px solid #d6dfeb; padding-top:14px; }.chat-compose textarea { flex:1; resize:vertical; min-height:44px; }.chat-compose button { align-self:end; }
.forum-page,.library-page { max-width:1100px; }.forum-create,.forum-opening,.forum-posts article,.forum-topic { border:1px solid #ccd7e5; border-radius:14px; background:#fff; padding:16px; }.forum-create { max-width:680px; margin:22px 0; }.forum-create h2,.forum-topics h2 { margin:0 0 12px; }.forum-topics { max-width:900px; }.forum-topic { display:flex; justify-content:space-between; gap:16px; text-decoration:none; margin:9px 0; }.forum-topic:hover { border-color:#326bbc; background:#f3f7fd; }.forum-topic strong,.forum-topic small { display:block; }.forum-topic small { margin-top:5px; color:#526784; }.forum-opening { margin:18px 0; }.forum-opening h1 { margin:6px 0; }.forum-opening p,.forum-posts p { white-space:pre-wrap; }.forum-posts article { margin:10px 0; }.forum-reply { max-width:720px; margin-top:20px; }.library-courses { display:flex; flex-wrap:wrap; gap:18px; margin:20px 0 34px; }.library-courses article { width:220px; min-height:135px; border:2px solid #326bbc; border-radius:14px; padding:18px; background:linear-gradient(135deg,#e8f0fb,#cbdaf1); }.library-courses span,.document-card span { color:#e43b43; font-size:34px; }.library-courses h2 { margin:10px 0 0; }.resource-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:14px; }.document-card { text-decoration:none; border:2px solid #e43b43; border-radius:12px; padding:16px; background:linear-gradient(#fff,#ffe6e6); min-height:150px; display:flex; flex-direction:column; gap:7px; }.document-card:hover { transform:translateY(-2px); box-shadow:0 6px 16px #19284422; }.document-card small { color:#526784; }
body[data-theme="escuro"] :is(.chat-page,.forum-create,.forum-opening,.forum-posts article,.forum-topic,.library-courses article,.document-card) { background:#1c2b40; border-color:#50647d; color:#e2e9f4; }.chat-contacts { background:#172943; border-color:#50647d; }.chat-contact:hover,.chat-contact.selected { background:#294565; }.chat-bubble { background:#263b58; border-color:#50647d; }.chat-bubble.mine { background:#365d93; }.chat-compose { border-color:#50647d; }
@media (max-width:760px) { .chat-page { grid-template-columns:1fr; }.chat-contacts { border-right:0; border-bottom:1px solid #cbd5e1; }.chat-history { min-height:330px; }.chat-conversation { padding:16px; }.chat-bubble { max-width:85%; }.chat-contact { padding:10px 14px; } }

/* A animação só é ativada durante a troca de tema: não anima o carregamento
   inicial da página nem transições que não sejam relacionadas à aparência. */
body.theme-transition,
body.theme-transition *,
body.theme-transition *::before,
body.theme-transition *::after {
  transition-property: background-color, border-color, color, box-shadow, fill, stroke;
  transition-duration: 360ms;
  transition-timing-function: ease-in-out;
}

@media (prefers-reduced-motion: reduce) {
  body.theme-transition,
  body.theme-transition *,
  body.theme-transition *::before,
  body.theme-transition *::after {
    transition-duration: 0ms;
  }
}

.message-inbox-page { max-width:1180px; }
.message-inbox-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.message-inbox-heading h1 { margin-bottom:4px; }
.message-inbox-heading .primary { white-space:nowrap; }
.message-search-label { display:block; max-width:1000px; margin:36px 0 10px; }
.message-search-label input { width:100%; border-radius:999px; padding:13px 24px; }
.message-inbox-list { overflow:hidden; border:1px solid #c9d4e4; border-radius:10px; background:#e4ebfa; }
.message-inbox-list h2 { margin:0; padding:14px 12px 10px; font-size:20px; }
.inbox-item { border-top:1px solid #c5d0e0; }
.inbox-item summary { display:flex; align-items:center; justify-content:space-between; gap:20px; cursor:pointer; padding:9px 12px; list-style:none; }
.inbox-item summary::-webkit-details-marker { display:none; }
.inbox-item strong,.inbox-item small { display:block; }
.inbox-item strong { font-size:18px; }
.inbox-item small { margin-top:3px; }
.inbox-meta { display:flex; align-items:center; gap:24px; white-space:nowrap; font-size:13px; }
.inbox-meta b { font-size:28px; font-weight:400; transition:transform .2s ease; }
.inbox-item[open] .inbox-meta b { transform:rotate(180deg); }
.inbox-content { border-top:1px solid #c5d0e0; padding:12px; background:#f3f6fd; }
.inbox-content p { margin:0 0 8px; white-space:pre-wrap; }
.inbox-content a { display:inline-block; margin-top:12px; color:#234f85; font-weight:700; }
.empty-inbox { padding:14px; margin:0; }
.message-picker { margin-top:30px; }
.message-picker h2 { margin-bottom:3px; }
body[data-theme="escuro"] .message-inbox-list { background:#1d314d; border-color:#50647d; }
body[data-theme="escuro"] .inbox-item { border-color:#50647d; }
body[data-theme="escuro"] .inbox-content { background:#223a5a; border-color:#50647d; }
body[data-theme="escuro"] .inbox-content a { color:#a9d1ff; }

@media (max-width:640px) {
  .message-inbox-heading { align-items:flex-start; flex-direction:column; }
  .message-search-label { margin-top:22px; }
  .inbox-item summary { align-items:flex-start; }
  .inbox-meta { gap:8px; flex-direction:column-reverse; align-items:flex-end; }
}

.content-source { border:1px solid #c7d3e5; border-radius:14px; padding:14px; background:#eef4fd; }
.content-source legend { font-weight:700; padding:0 5px; }.content-source .muted { margin:0 0 10px; }
.source-options { display:flex; flex-wrap:wrap; gap:10px; margin:10px 0; }.source-options label { display:flex; align-items:center; gap:6px; padding:8px 11px; border:1px solid #b7c7dc; border-radius:9px; background:#fff; cursor:pointer; }
.source-link-field { display:block; margin-top:12px; }.source-link-field input { width:100%; margin-top:6px; }
.library-courses .library-course { width:220px; min-height:135px; border:2px solid #326bbc; border-radius:14px; padding:18px; background:linear-gradient(135deg,#e8f0fb,#cbdaf1); text-decoration:none; color:inherit; }.library-course span,.library-course h2,.library-course small { display:block; }.library-course span { color:#e43b43; font-size:34px; }.library-course h2 { margin:10px 0 4px; }.library-course:hover { transform:translateY(-2px); box-shadow:0 6px 16px #19284422; }
.interaction-page-heading { margin-bottom:18px; }.interaction-page-heading h1 { margin-bottom:4px; }.interaction-workspace { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(310px,.9fr); gap:22px; align-items:start; }.interaction-preview,.interaction-config { border:1px solid #c7d3e5; border-radius:16px; padding:20px; background:#fff; }.interaction-preview h2,.interaction-config > .muted { margin-top:0; }.interaction-preview video { width:100%; max-height:510px; background:#071321; border-radius:12px; }.interaction-config .interaction-editor { padding:0; border:0; background:transparent; }.interaction-time-row { display:flex; gap:10px; align-items:end; }.interaction-time-row label { flex:1; }.interaction-time-row button { margin-bottom:0; white-space:nowrap; }.interaction-fields select { width:100%; }
body[data-theme="escuro"] .content-source,body[data-theme="escuro"] .interaction-preview,body[data-theme="escuro"] .interaction-config { background:#1c2b40; border-color:#50647d; color:#e2e9f4; }.content-source .source-options label { color:#1d3555; }body[data-theme="escuro"] .content-source .source-options label { background:#223a5a; border-color:#50647d; color:#e2e9f4; }body[data-theme="escuro"] .library-course { background:linear-gradient(135deg,#1d3654,#27476d); border-color:#5f9ddd; color:#e2e9f4; }
@media (max-width:850px) { .interaction-workspace { grid-template-columns:1fr; }.interaction-preview { order:0; }.interaction-config { order:1; } }
