/* Teacher announcements */
.announcement-page-shell { display: grid; gap: 1rem; width: 100%; max-width: none; min-width: 0; box-sizing: border-box; }
.announcement-page-shell *,
.announcement-page-shell *::before,
.announcement-page-shell *::after { box-sizing: border-box; }
.announcement-page-shell input,
.announcement-page-shell select,
.announcement-page-shell textarea { max-width: 100%; }
.announcement-page-shell .notice { overflow-wrap: anywhere; }
.announcement-header { align-items: flex-start; }
.announcement-create-shell { display: grid; gap: 1rem; }
.announcement-create-heading { margin-bottom: 0; }
.announcement-create-heading h3 { margin: 0 0 .25rem; }
.announcement-wizard-tabs { margin-bottom: 0; }
.announcement-wizard-tabs .wizard-tab { min-height: 100%; }
.announcement-wizard-tabs .wizard-tab h3 { margin: 0 0 .2rem; }
.announcement-form { display: grid; gap: 1rem; }
.announcement-step-panel { display: grid; gap: 1rem; min-width: 0; }
.announcement-class-toolbar { display: grid; gap: .75rem; grid-template-columns: minmax(0, 1fr) auto; align-items: end; min-width: 0; }
.announcement-class-fieldset { display: grid; gap: .65rem; margin: 0; padding: 0; border: 0; min-width: 0; }
.announcement-class-fieldset legend { font-weight: 800; color: var(--color-text, #111827); padding: 0; }
.announcement-class-list.assignment-groups-list { min-height: 0; max-width: 100%; overflow: visible; border: 1px solid var(--color-border, #e5e7eb); border-radius: 16px; background: #FBFCFF; padding: 6px; display: grid; gap: 6px; align-content: start; }
.announcement-class-option,
.announcement-class-list .assignment-group-option { display: block; margin: 0; cursor: pointer; }
.announcement-class-list .assignment-group-option-input { position: absolute; opacity: 0; pointer-events: none; }
.announcement-class-list .assignment-group-option-surface { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 12px; min-height: 46px; border: 1px solid rgba(178, 51, 36, 0.18); border-radius: 12px; background: rgba(255,255,255,0.98); transition: border-color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast); box-sizing: border-box; }
.announcement-class-list .assignment-group-option-info { min-width: 0; display: flex; align-items: baseline; gap: 4px; flex-wrap: wrap; overflow-wrap: anywhere; }
.announcement-class-list .assignment-group-option-name { font-weight: 700; color: var(--color-text, #111827); }
.announcement-class-list .assignment-group-option-meta { font-size: 0.82rem; font-weight: 700; color: var(--color-muted, #667085); }
.announcement-class-list .assignment-group-option-check { flex: 0 0 auto; width: 26px; height: 26px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; background: rgba(255,255,255,0.96); border: 1px solid rgba(15, 23, 42, 0.12); color: transparent; font-weight: 900; box-shadow: none; }
.announcement-class-list .assignment-group-option-input:focus-visible + .assignment-group-option-surface { outline: 3px solid rgba(178, 51, 36, 0.18); outline-offset: 2px; }
.announcement-class-list .assignment-group-option-input:checked + .assignment-group-option-surface { background: linear-gradient(180deg, rgba(178, 51, 36, 0.10), rgba(255,255,255,0.98)); border-color: rgba(178, 51, 36, 0.34); box-shadow: none; }
.announcement-class-list .assignment-group-option-input:checked + .assignment-group-option-surface .assignment-group-option-check { background: var(--gradient-primary, linear-gradient(135deg, #b23324, #d56b5e)); border-color: transparent; color: #fff; }
.announcement-class-pagination { display: flex; justify-content: flex-end; margin-top: .35rem; min-height: 32px; }
.announcement-class-pagination.hidden { display: none !important; }
.announcement-class-page-row { display: inline-flex; align-items: center; gap: 6px; justify-content: flex-end; }
#announcement-status[data-tone="success"] { border-color: #bbf7d0; background: #f0fdf4; color: #166534; }
#announcement-status[data-tone="error"] { border-color: #fecaca; background: #fef2f2; color: #991b1b; }
#announcement-status[data-tone="info"] { border-color: #dbeafe; background: #eff6ff; color: #1d4ed8; }
@media (max-width: 720px) {
  .announcement-wizard-tabs.two { grid-template-columns: 1fr; }
  .announcement-class-toolbar { grid-template-columns: 1fr; }
  .announcement-class-pagination { justify-content: flex-start; }
  .announcement-class-page-row { justify-content: flex-start; }
  .announcement-step-panel .wizard-footer { align-items: stretch; }
  .announcement-step-panel .wizard-footer .inline-actions,
  .announcement-step-panel .wizard-footer .action-button,
  .announcement-step-panel .wizard-footer .wizard-nav-button { width: 100%; }
}
@media (max-width: 540px) {
  .announcement-create-shell,
  .announcement-step-panel { gap: .85rem; }
  .announcement-class-list .assignment-group-option-surface { align-items: flex-start; }
}




.announcement-filter-row,
.student-announcements-filters { display: grid; gap: .85rem; align-items: end; min-width: 0; }
.announcement-filter-field { display: grid; gap: .35rem; min-width: 0; font-weight: 700; color: var(--text, #111827); }
.announcement-filter-field input,
.announcement-filter-field select { width: 100%; min-width: 0; }
.teacher-announcement-pagination { justify-content: flex-end; }

/* Student announcements feed */
.student-announcements-shell { gap: 1rem; }
.student-announcements-filters { display: grid; grid-template-columns: minmax(0, 1fr) minmax(180px, 260px); gap: .85rem; align-items: end; min-width: 0; }
.announcement-feed-list { display: grid; gap: .9rem; min-width: 0; }
.announcement-feed-card { display: grid; gap: .65rem; min-width: 0; padding: 1rem; border: 1px solid var(--border, #e5e7eb); border-radius: 1.1rem; background: var(--surface, #fff); box-shadow: 0 10px 24px rgba(15, 23, 42, .04); }
.announcement-feed-card.unopened { border-color: color-mix(in srgb, var(--accent, #991b1b) 28%, #e5e7eb); }
.announcement-feed-card.pinned { background: color-mix(in srgb, var(--accent, #991b1b) 5%, #fff); }
.announcement-feed-card h3 { margin: 0; font-size: 1.05rem; }
.announcement-feed-card-topline { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.announcement-teacher-name { font-weight: 700; color: var(--text, #111827); }
.announcement-pin { border: 1px solid color-mix(in srgb, var(--accent, #991b1b) 35%, #e5e7eb); border-radius: 999px; padding: .15rem .45rem; font-size: .78rem; color: var(--accent, #991b1b); background: color-mix(in srgb, var(--accent, #991b1b) 7%, #fff); }
.announcement-preview { margin: 0; color: var(--muted, #667085); overflow-wrap: anywhere; }
.announcement-body { padding: .85rem; border-radius: .85rem; background: #fff; border: 1px solid var(--border, #e5e7eb); overflow-x: auto; max-width: 100%; overflow-wrap: anywhere; }
.announcement-body p:first-child { margin-top: 0; }
.announcement-body p:last-child { margin-bottom: 0; }
.announcement-feed-actions { display: flex; flex-wrap: wrap; gap: .55rem; align-items: center; }
.announcement-feed-actions .pill-button.active { color: var(--accent, #991b1b); border-color: color-mix(in srgb, var(--accent, #991b1b) 35%, #e5e7eb); background: color-mix(in srgb, var(--accent, #991b1b) 8%, #fff); }
.announcement-feed-actions .pill-button.is-loading { opacity: .72; cursor: progress; }
.announcement-feed-actions .pill-button[aria-busy="true"] { border-style: dashed; }
.announcement-feed-pagination { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; justify-content: flex-end; }
@media (max-width: 720px) {
  .student-announcements-filters { grid-template-columns: 1fr; }
  .announcement-feed-pagination { justify-content: flex-start; }
}
@media (max-width: 540px) {
  .announcement-feed-card { padding: .85rem; border-radius: .95rem; }
  .announcement-feed-actions { align-items: stretch; }
  .announcement-feed-actions .pill-button { width: 100%; justify-content: center; }
  .announcement-feed-pagination .pill-button { flex: 1 1 100%; }
}


/* Teacher announcement management */
.teacher-announcement-home { gap: 1rem; }
.teacher-announcement-tabs.segment-group { width: max-content; max-width: 100%; }
.teacher-announcement-tabs .segment-toggle { min-width: 8.5rem; justify-content: center; }
.announcement-wizard-tabs .wizard-tab.disabled,
.announcement-wizard-tabs .wizard-tab:disabled { cursor: not-allowed; opacity: .62; }
.announcement-step-gate-hint { margin-top: -.25rem; }
.teacher-announcement-existing-shell { display: grid; gap: 1rem; }
.teacher-announcement-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) minmax(160px, 220px) auto; gap: .85rem; align-items: end; min-width: 0; }
.teacher-announcement-management-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 1rem; align-items: start; min-width: 0; }
.teacher-announcement-list { display: grid; gap: .65rem; min-width: 0; }
.teacher-announcement-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .75rem; width: 100%; text-align: left; padding: .85rem; border: 1px solid var(--border, #e5e7eb); border-radius: 1rem; background: var(--surface, #fff); cursor: pointer; }
.teacher-announcement-row:hover,
.teacher-announcement-row.selected { border-color: color-mix(in srgb, var(--accent, #991b1b) 30%, #e5e7eb); background: color-mix(in srgb, var(--accent, #991b1b) 5%, #fff); }
.teacher-announcement-row-main,
.teacher-announcement-row-stats { display: grid; gap: .25rem; }
.teacher-announcement-row-main strong { color: var(--text, #111827); overflow-wrap: anywhere; }
.teacher-announcement-row-main small,
.teacher-announcement-row-stats { color: var(--muted, #667085); font-size: .86rem; }
.teacher-announcement-row-stats { text-align: right; }
.announcement-status-pill { display: inline-flex; align-items: center; width: max-content; border-radius: 999px; border: 1px solid #e5e7eb; padding: .15rem .5rem; font-size: .78rem; font-weight: 700; color: #475467; background: #fff; }
.announcement-status-pill.published { color: #166534; border-color: #bbf7d0; background: #f0fdf4; }
.announcement-status-pill.draft { color: #1d4ed8; border-color: #bfdbfe; background: #eff6ff; }
.announcement-status-pill.archived { color: #92400e; border-color: #fed7aa; background: #fff7ed; }
.teacher-announcement-detail-card { display: grid; gap: .85rem; padding: 1rem; border: 1px solid var(--border, #e5e7eb); border-radius: 1.1rem; background: var(--surface, #fff); box-shadow: 0 10px 24px rgba(15, 23, 42, .04); }
.teacher-announcement-detail-header h3 { margin: .4rem 0 .15rem; }
.teacher-announcement-stat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; }
.teacher-announcement-stat-grid article { display: grid; gap: .15rem; border: 1px solid var(--border, #e5e7eb); border-radius: .9rem; padding: .75rem; background: #fff; }
.teacher-announcement-stat-grid strong { font-size: 1.15rem; }
.teacher-announcement-stat-grid span { color: var(--muted, #667085); font-size: .85rem; }
.teacher-announcement-class-tags { display: flex; flex-wrap: wrap; gap: .4rem; }
.teacher-announcement-class-tags span { border: 1px solid var(--border, #e5e7eb); border-radius: 999px; padding: .2rem .5rem; color: var(--muted, #667085); background: #fff; font-size: .85rem; }
.teacher-announcement-versions summary { cursor: pointer; font-weight: 700; }
.teacher-announcement-version-list { display: grid; gap: .5rem; margin: .65rem 0 0; padding-left: 1.25rem; }
.teacher-announcement-detail-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .75rem; }
.pill-button.danger { color: #991b1b; border-color: #fecaca; background: #fef2f2; }
#teacher-announcement-existing-status[data-tone="success"] { border-color: #bbf7d0; background: #f0fdf4; color: #166534; }
#teacher-announcement-existing-status[data-tone="error"] { border-color: #fecaca; background: #fef2f2; color: #991b1b; }
#teacher-announcement-existing-status[data-tone="info"] { border-color: #dbeafe; background: #eff6ff; color: #1d4ed8; }
@media (max-width: 920px) {
  .teacher-announcement-toolbar,
  .teacher-announcement-management-grid { grid-template-columns: 1fr; }
  .teacher-announcement-row { grid-template-columns: 1fr; }
  .teacher-announcement-row-stats { text-align: left; }
  .teacher-announcement-toolbar .pill-button { width: 100%; justify-content: center; }
}
@media (max-width: 540px) {
  .teacher-announcement-tabs .pill-button,
  .teacher-announcement-tabs .segment-toggle,
  .teacher-announcement-detail-actions .pill-button { width: 100%; justify-content: center; }
  .teacher-announcement-detail-card { padding: .85rem; border-radius: .95rem; }
  .teacher-announcement-row { padding: .8rem; }
}

@media (max-width: 640px) {
  .teacher-announcement-stat-grid { grid-template-columns: 1fr; }
}

/* Announcement inspector */
.announcement-inspect-modal-panel {
  width: min(1120px, calc(100vw - 32px));
  max-height: calc(100vh - 36px);
  overflow: hidden;
  display: grid;
  grid-template-rows: auto 1fr;
}

.announcement-inspect-header {
  align-items: flex-start;
}

.announcement-inspect-scroll {
  overflow: auto;
  padding-right: 6px;
  display: grid;
  gap: 18px;
}

.announcement-inspect-section {
  display: grid;
  gap: 12px;
  padding: 18px 0 0;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.announcement-inspect-section:first-child {
  border-top: 0;
  padding-top: 8px;
}

.announcement-inspect-meta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.teacher-announcement-history-item {
  display: grid;
  gap: 8px;
}

.announcement-version-body {
  max-height: 220px;
  overflow: auto;
}

.teacher-announcement-versions .version-history {
  margin-top: .5rem;
}

@media (max-width: 720px) {
  .announcement-inspect-modal-panel {
    width: calc(100vw - 20px);
  }
}
