:root {
  --font-bangers: 'Bangers', cursive;
}

.my-resources-alert {
    color: white;
    background-color: rgb(35, 68, 105, 0.8);
}

.modules-container {
    display: flex;
    flex-direction: column;
    gap: 32px;
    margin: 50px;
}
  
.module {
    background: #fff;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
  
.module-header {
    position: relative;
}
  
.module-header .overlay {
    background: rgba(0,0,0,0.6);
    padding: 30px;
    flex-wrap: wrap;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(5px);
    box-shadow: rgba(17, 17, 26, 0.1) 0px 1px 0px, rgba(17, 17, 26, 0.1) 0px 8px 24px, rgba(17, 17, 26, 0.1) 0px 16px 48px;
}

.module-overlay-title {
    font-size: 30px ;
    text-align: left;
    padding-bottom: 5px;
    border-bottom: 1px solid white;
    font-family: var(--font-bangers) !important;
    letter-spacing: 1px;
}

.module-overlay-text {
    font-style: italic;
}

.module-content {
    display: flex;
    gap: 16px;
    /* padding: 0 40px; */
    /* justify-content: space-between; */
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-around;
    overflow-x: auto;
    background-color: transparent;
}

.module-content.accordion {
  padding: 40px;
}

.module-card {
    flex: 0 0 auto;
    font-family: var(--font-bangers) !important;
    color: rgb(99, 99, 99);
    letter-spacing: 1px !important;
    border: 1px Solid rgb(203, 203, 203);
    box-shadow: rgba(99, 99, 99, 0.2) 0px 2px 8px 0px;
}

.resource-card-title {
    padding-bottom: 3px;
    border-bottom: 0.75px Solid rgb(99, 99, 99);
}
  
.resource-card-text {
    color: rgb(203, 75, 82);
    margin: 20px 0 !important;
}

.resource-card-button {
    margin: 3px;
    letter-spacing: 1px;
}

.module-content.cue-cards .module-card,
.module-content.materials .module-card,
.module-content.videos .module-card {
  font-family: var(--font-bangers) !important;
  color: rgb(99, 99, 99);
  letter-spacing: 1px !important;
}

.Material-Preview-Canvas {
    width: 900px;
}

.Material-Preview-Header {
    color: white;
    background-color: rgb(35, 68, 105);
    box-shadow: rgba(17, 17, 26, 0.1) 0px 1px 0px, rgba(17, 17, 26, 0.1) 0px 8px 24px, rgba(17, 17, 26, 0.1) 0px 16px 48px;
}

.preview-panel-title {
    color: white;
    background-color: rgb(35, 68, 105);
}

.file-wrapper .module-content h5 {
  margin: 2rem 0 1rem;
  font-size: 1.6rem;
  color: #234469;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  border-bottom: 2px solid #234469;
  padding-bottom: 0.5rem;
}

/* page-specific layout */
.grades-page {
    padding: 20px;
  }
  .grade-overview {
    margin-bottom: 30px;
  }
  /* keep donut charts aligned and wrap on small widths */
  .grades-charts {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    gap: 20px;
  }
  .grades-chart {
    flex: 0 0 200px;
    text-align: center;
  }
  /* tables stacking */
  .grades-tables > div {
    margin-top: 30px;
  }

/* ── Bubble Base ───────────────────────────────────────────── */
.bubble {
  flex: 0 0 auto;
  width: 35px;
  height: 35px;
  background-color: #ddd;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: bold;
  transition: background-color 0.3s, color 0.3s;
}
.bubble.active {
  background-color: rgb(35, 68, 105);
  color: white;
}

/* ── Scoped Bubble Colors ─────────────────────────────────── */
.bubbles.activities {
  display: flex;
  gap: 8px;
  margin-bottom: 1rem;
}
/* Correct = Green */
.bubbles.activities .bubble.completed {
  background-color: #4caf50 !important;
  color: white !important;
}
/* Incorrect = Red */
.bubbles.activities .bubble.failed {
  background-color: #f44336 !important;
  color: white !important;
}

/* ── Instruction Text ────────────────────────────────────── */
.instruction-text {
  margin-top: 40px;
  margin-bottom: 20px;
  font-style: italic;
  color: #ddd;
  font-weight: bold;
}

/* ── Sentence Box ────────────────────────────────────────── */
.sentence-form {
  border: 2px solid #ddd;
  background-color: #dddddd69;
  padding: 1rem;
  border-radius: 8px;
  transition: border-color 0.2s, background-color 0.2s;
}
.sentence-form.correct {
  border-color: #4caf50;
  background-color: rgba(76, 175, 80, 0.1);
}
.sentence-form.incorrect {
  border-color: #f44336;
  background-color: rgba(244, 67, 54, 0.1);
}

/* ── Word Styling ────────────────────────────────────────── */
.sentence-text {
  color: #ddd;
}

.sentence-text .word {
  cursor: pointer;
  display: inline-block;
  margin: 0 8px;
  padding: 2px 4px;
  transition: transform 0.2s, background-color 0.2s, color 0.2s;
}

.sentence-text .word:hover {
  color: rgb(35, 68, 105);
  background-color: rgb(233, 198, 3);
  border-radius: 4px;
  font-weight: bold;
  transform: scale(1.1);
}

.word.selected {
  color: rgb(35, 68, 105);
  background-color: rgb(233, 198, 3);
  border-radius: 4px;
  font-weight: bold;
  transform: scale(1.1);
}

/* ── Button Row & Finish Placement ───────────────────────── */
.button-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 1rem;
}

.finish-button {
  margin-left: auto;
}

.mastery-key {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 10px;
  /* margin-top: 10px; */
  padding: 20px 40px;
  justify-content: space-evenly;
  background: #f5f5f5;
  border-radius: 0 0 8px 8px;
}

.mastery-key-title {
  grid-column: 1 / -1;
  font-size: 20px;
  font-weight: 600;
  /* margin-bottom: 10px; */
  color: rgb(35, 68, 105);
  text-align: center;
  letter-spacing: 1px;
  font-family: var(--font-bangers)
}

.key-item {
  display: flex;
  align-items: center;
}

.key-label {
  font-weight: bold;
  font-size: 1.1rem;
  margin-right: 0.5rem;
  line-height: 1.2;
  min-width: 3ch;
  text-align: center;
  padding: 0.2rem 0.4rem;
  border-radius: 4px;
  color: #fff;
}

/* colors matching your markers */
.key-label.m1,.key-label.m2,
.key-label.m3 { background: #4caf50; }   /* green */
.key-label.mcp { background: #d62728; }  /* red */
.key-label.mq { background: purple; }

.key-text {
  font-size: 0.9rem;
  line-height: 1.3;
  color: #333;
}

.sentence-emoji-container {
  background: linear-gradient(90deg, #b0f0c8, #74cd74);
  padding: 10px 0;
}

.title-sentence-container{
  display: flex;
  justify-content: space-between;
}

/* Toggle wrapper */
.sentence-toggle-graph {
  display: flex;
  justify-content: center;    
}

/* ButtonGroup overrides */
.sentence-toggle-graph .btn {
  border-radius: 0;
  padding: 0.5rem 1.2rem;
  font-weight: 500;
  transition: background-color 0.2s, color 0.2s;
  font-family: var(--font-bangers) !important;
  letter-spacing: 1px;
}
.sentence-toggle-graph .btn:first-child {
  border-top-left-radius: 0.25rem;
  border-bottom-left-radius: 0.25rem;
}
.sentence-toggle-graph .btn:last-child {
  border-top-right-radius: 0.25rem;
  border-bottom-right-radius: 0.25rem;
}
.sentence-toggle-graph .btn.active,
.sentence-toggle-graph .btn:hover {
  background-color: #234469;
  color: #fff;
  border-color: #234469;
}
.sentence-toggle-graph .btn:not(.active) {
  background-color: #f0f0f0;
  color: #333;
}

/* Placeholder styling */
.compound-placeholder {
  text-align: center;
  padding: 2rem;
  color: #666;
  font-style: italic;
  border: 2px dashed #ccc;
  border-radius: 8px;
  margin-bottom: 2rem;
}

/* Enhanced styles for the prompt container, prompt text, and essay textbox */
.essay-prompt-container {
  /* background: rgba(255, 255, 255, 0.92);
  padding: 1.25rem 1.5rem;
  border-radius: 0.75rem;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); */
  margin-bottom: 1.5rem;
}

.prompt-heading {
  color: rgb(35, 68, 105);
  letter-spacing: 1px;
  font-family: var(--font-bangers);
}

.essay-prompt {
  font-size: 1.125rem;
  font-weight: 600;
  color: #2c3e50;
  line-height: 1.6;
  margin: 0;
}

.essay-textbox {
  width: 100%;
  min-height: 260px;
  padding: 1rem;
  border: 1px solid #ccd0d5;
  border-radius: 0.5rem;
  box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.04);
  font-size: 1rem;
  line-height: 1.5;
  resize: vertical;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.essay-textbox:focus {
  outline: none;
  border-color: #1f77b4;
  box-shadow: 0 0 0 3px rgba(31, 119, 180, 0.2);
}

/* Letters: tight spacing */
.char {
  display: inline-block;
  padding: 1px 4px;
  margin: 0 0.5px;              /* tiny inter-letter gap */
  border-radius: 4px;
  transition: background-color .15s, color .15s, box-shadow .15s, transform .05s;
  user-select: none;
  color: #ddd;
}

/* Clickable letters */
.char.clickable { cursor: pointer; }

/* Hover only when not selected */
.char.clickable:not(.selected):hover {
  background-color: var(--word-hover-bg, rgb(233, 198, 3));
  color: var(--word-selected-fg, #0c4a6e);
}

/* Selected letter */
.char.selected {
  background-color: var(--word-selected-bg, rgb(233, 198, 3));
  color: var(--word-selected-fg, #0c4a6e);
  cursor: default;
}

/* Punctuation/others minimal styling */
.char.non-letter {
  opacity: .6;
  cursor: default;
  padding: 0 1px;
  margin: 0;
}

/* WORD GAP: widen spaces visibly more than letters */
.char.space {
  display: inline-block;
  width: var(--word-gap, 0.9rem); /* ← increase this for larger word spacing */
  margin: 0 var(--word-gap-side, 0.15rem);
  padding: 0;
  line-height: 1;
  pointer-events: none; /* spaces aren't clickable */
  background: transparent;
  box-shadow: none;
}

.punct-preview {
  font-weight: 700;
  margin-left: 2px;
  color: rgb(233, 198, 3);
}

.punct-chooser .btn {
  min-width: 48px;
  font-weight: 700;
  font-size: 1.1rem;
}

/* layout row */
.semicolon-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .2rem; /* tiny gap between tokens/slots */
}

/* words (reuse your existing word token style if you have one) */
.word-token {
  display: inline-block;
  margin: 0 .15rem;
  color: #ddd;
}

/* slot buttons */
.slot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin: 0 .05rem;
  border-radius: 6px;
  border: 2px dashed var(--slot-border, #94a3b8);
  background: transparent;
  color: var(--slot-ink, #ddd);
  opacity: .75;                     /* faded by default */
  font-weight: 700;
  line-height: 1;
  transition: background-color .15s, border-color .15s, opacity .15s, box-shadow .15s;
  cursor: pointer;
}

.slot:hover {
  opacity: 1;
  background: var(--slot-hover-bg, rgb(233, 198, 3));
  color: #0c4a6e;
  border: none;
}

.slot.selected {
  opacity: 1;
  background: var(--slot-selected-bg, rgb(233, 198, 3));
  color: #0c4a6e;
  border: none;
}

.slot:disabled,
.slot.selected:hover {
  cursor: default;
}

.punct-button {
  color: #ddd;
  border-color: #ddd;
}

.punct-button.is-active,  .punct-button:hover{
  color: #0c4a6e;
  background-color: rgb(233, 198, 3);
  border: none;
}
