/* RMS-LABEL: css/report-sheet.css | Reports — Print report card layout */
/* Report Workspace — A4 sheets, ID cards, tabs (RMS brand) */

.rw-shell {
  font-family: "Segoe UI", system-ui, sans-serif;
  color: #1a2e1a;
}

.rw-topnav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  background: var(--color-primary, #1f4e79);
  color: #fff;
  border-radius: 0.75rem 0.75rem 0 0;
}

.rw-topnav-brand {
  font-weight: 700;
  font-size: 0.95rem;
  margin-right: auto;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.rw-publish-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 1rem;
  padding: 0.65rem 1rem;
  background: #f8fafc;
  border-bottom: 1px solid #e2e8f0;
  font-size: 0.8125rem;
}

.rw-publish-bar.is-live {
  background: #ecfdf5;
  border-bottom-color: #a7f3d0;
}

.rw-publish-label {
  font-weight: 700;
  color: #0f172a;
}

.rw-publish-term {
  color: #475569;
  font-size: 0.75rem;
}

.rw-publish-hint {
  color: #64748b;
  font-size: 0.75rem;
  flex: 1 1 12rem;
}

.rw-publish-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.85rem;
  border-radius: 999px;
  border: 1px solid #cbd5e1;
  background: #fff;
  font-size: 0.75rem;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.rw-publish-toggle.is-on {
  background: #059669;
  border-color: #059669;
  color: #fff;
}

.rw-publish-toggle.is-off {
  background: #fff;
  color: #64748b;
}

.rw-publish-toggle:disabled {
  opacity: 0.6;
  cursor: wait;
}

.rw-publish-link {
  font-size: 0.75rem;
  font-weight: 600;
  color: #1d4ed8;
  text-decoration: none;
}

.rw-publish-link:hover {
  text-decoration: underline;
}

.rw-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}

.rw-tab {
  border: 1px solid rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  padding: 0.4rem 0.75rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}

.rw-tab:hover { background: rgba(255, 255, 255, 0.18); }
.rw-tab.is-active { background: #ffd400; color: #003700; border-color: #ffd400; }
.rw-tab.is-locked { opacity: 0.45; cursor: not-allowed; }

.rw-body {
  background: #e8ecf3;
  border: 1px solid #d1d5db;
  border-top: 0;
  border-radius: 0 0 0.75rem 0.75rem;
  padding: 1rem;
  min-height: 420px;
}

.rw-panel { display: none; }
.rw-panel.is-active { display: block; }

/* Plan cards */
.rw-plans-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.rw-plan-card {
  background: #fff;
  border-radius: 12px;
  border: 2px solid #e5e7eb;
  padding: 1.25rem;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06);
}

.rw-plan-card.is-current { border-color: var(--color-primary, #1f4e79); }
.rw-plan-price { font-size: 1.75rem; font-weight: 800; color: var(--color-primary, #1f4e79); }
.rw-plan-features { margin-top: 0.75rem; font-size: 0.78rem; line-height: 1.45; color: #4b5563; }
.rw-plan-features li { margin-bottom: 0.35rem; padding-left: 1rem; position: relative; }
.rw-plan-features li::before { content: "✓"; position: absolute; left: 0; color: #1f7a45; font-weight: 700; }

/* Toolbar */
.rw-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  margin-bottom: 1rem;
}

.rw-toolbar input[type="search"] {
  flex: 1;
  min-width: 180px;
  border: 1px solid #d1d5db;
  border-radius: 0.375rem;
  padding: 0.45rem 0.75rem;
  font-size: 0.85rem;
}

.rw-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  border-radius: 0.375rem;
  padding: 0.45rem 0.85rem;
  font-size: 0.78rem;
  font-weight: 600;
  border: 1px solid transparent;
  cursor: pointer;
  background: var(--color-primary, #1f4e79);
  color: #fff;
}

.rw-btn-secondary { background: #fff; color: var(--color-primary, #1f4e79); border-color: #cbd5e1; }

/* A4 wrapper */
.rw-a4-stage {
  background: #374151;
  padding: 24px;
  border-radius: 8px;
  overflow-x: auto;
}

.rw-a4-sheet {
  width: 210mm;
  min-height: 297mm;
  max-width: 210mm;
  background: #fff;
  border: 1.5pt solid #aaa;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.35);
  margin: 0 auto 1.5rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 8.5pt;
  color: #111;
  position: relative;
  box-sizing: border-box;
  --rs-p: #1f4e79;
  --rs-s: #2e75b6;
  --rs-t: #ffffff;
}

/* A4 sheet layout is fixed — never stack columns inside the sheet */
.rw-a4-sheet .rs-info-grid { grid-template-columns: repeat(6, 1fr); }
.rw-a4-sheet .rs-triple-grid { grid-template-columns: repeat(3, 1fr); }
.rw-a4-sheet .rs-comments-grid { grid-template-columns: repeat(3, 1fr); }
.rw-a4-sheet .rs-attendance-row { grid-template-columns: repeat(4, 1fr); }

.rw-layout-premium .rw-premium-sidebar {
  display: grid;
  grid-template-columns: 1fr 220px;
  gap: 1rem;
  align-items: start;
}

.rw-premium-sidebar-panel {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 0.75rem;
  font-family: "Segoe UI", sans-serif;
  font-size: 0.72rem;
}

.rw-premium-sidebar-panel h4 {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-primary, #1f4e79);
  margin: 0 0 0.5rem;
  font-weight: 700;
}

/* Report header banner */
.rs-banner {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  gap: 12pt 14pt;
  align-items: center;
  margin: 8pt 12pt 0;
  padding: 12pt 14pt;
  background: linear-gradient(135deg, var(--rs-p), var(--rs-s));
  color: var(--rs-t);
  position: relative;
  box-sizing: border-box;
  border-radius: 4pt;
}

.rs-banner::before,
.rs-banner::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 4pt;
  background: rgba(0, 0, 0, 0.25);
}

.rs-banner::before { left: 0; }
.rs-banner::after { right: 0; }

.rs-logo-box,
.rs-photo-box {
  background: #fff;
  border-radius: 6pt;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  display: grid;
  place-items: center;
  overflow: hidden;
  cursor: pointer;
}

.rs-logo-box { width: 56pt; height: 56pt; flex-shrink: 0; }
.rs-photo-box { width: 50pt; height: 60pt; border: 1.5pt dashed rgba(255, 255, 255, 0.7); flex-shrink: 0; margin-left: 2pt; }

.rs-banner-school {
  min-width: 0;
  padding: 0 8pt;
}

.rs-badge-wrap {
  text-align: right;
  padding: 0 6pt;
  flex-shrink: 0;
}

.rs-logo-box img,
.rs-photo-box img { width: 100%; height: 100%; object-fit: cover; }

.rs-logo-ph,
.rs-photo-ph {
  font-size: 7pt;
  text-align: center;
  color: #6b7280;
  padding: 4pt;
  line-height: 1.2;
}

.rs-school-name { font-size: 14pt; font-weight: 700; line-height: 1.15; }
.rs-school-meta { font-size: 7.5pt; opacity: 0.92; margin-top: 3pt; }
.rs-motto { font-size: 7pt; font-style: italic; opacity: 0.88; margin-top: 4pt; }

.rs-sheet-label {
  display: inline-block;
  background: rgba(255, 255, 255, 0.15);
  border: 1px solid rgba(255, 255, 255, 0.35);
  padding: 4pt 8pt;
  border-radius: 4pt;
  font-size: 8pt;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.rs-session-tag {
  display: inline-block;
  margin-top: 4pt;
  font-size: 7pt;
  background: #ffd400;
  color: #003700;
  padding: 2pt 6pt;
  border-radius: 999px;
  font-weight: 700;
}

/* Student info grid */
.rs-sheet-body {
  padding: 10pt 14pt 12pt;
}

.rs-sheet-section {
  margin-top: 8pt;
  margin-bottom: 8pt;
}

.rw-a4-sheet .rs-academic {
  padding: 0 2pt 6pt;
}

.rw-a4-sheet .rs-triple {
  padding: 4pt 2pt 6pt;
}

.rs-info-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  border-bottom: 3pt solid var(--rs-p);
}

.rs-info-cell {
  padding: 5pt 6pt;
  border-right: 1px solid #e5e7eb;
  border-bottom: 1px solid #e5e7eb;
}

.rs-info-cell:nth-child(6n) { border-right: 0; }
.rs-info-label { font-size: 6pt; text-transform: uppercase; letter-spacing: 0.06em; color: #6b7280; }
.rs-info-value { font-size: 8pt; font-weight: 700; margin-top: 2pt; }
.rs-info-value[contenteditable="true"] {
  outline: none;
  min-height: 1.1em;
  cursor: text;
}
.rs-info-value[contenteditable="true"]:focus {
  background: #fffbeb;
  box-shadow: inset 0 0 0 1px #fcd34d;
}

.rs-attendance-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-bottom: 2pt solid var(--rs-s);
  background: #f8fafc;
}

.rs-attendance-row .rs-info-cell { text-align: center; }

/* Section title bar */
.rs-section-bar {
  display: flex;
  align-items: stretch;
  margin: 8pt 0 4pt;
  min-height: 18pt;
}

.rs-section-stripe { width: 5pt; background: var(--rs-p); }
.rs-section-label {
  background: var(--rs-p);
  color: var(--rs-t);
  padding: 3pt 10pt;
  font-size: 7.5pt;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  white-space: nowrap;
}

.rs-section-fade {
  flex: 1;
  background: linear-gradient(to right, var(--rs-s), transparent);
  opacity: 0.35;
}

/* Academic table */
.rs-academic { padding: 0 8pt; }
.rs-table { width: 100%; border-collapse: collapse; font-size: 8pt; }
.rs-table th {
  background: var(--rs-p);
  color: var(--rs-t);
  padding: 4pt 5pt;
  border: 1px solid rgba(0, 0, 0, 0.1);
  text-align: center;
  font-weight: 700;
}

.rs-table th:first-child { text-align: left; }
.rs-table td { padding: 3pt 5pt; border: 1px solid #e5e7eb; text-align: center; }
.rs-table td:first-child { text-align: left; font-weight: 600; }
.rs-table tbody tr:nth-child(even) { background: #f3f4f6; }
.rs-table tfoot td { background: var(--rs-s); color: var(--rs-t); font-weight: 700; }

.rs-summary-strip {
  display: flex;
  margin: 6pt 8pt 0;
  border-radius: 4pt;
  overflow: hidden;
  font-size: 7.5pt;
  font-weight: 700;
}

.rs-summary-seg {
  flex: 1;
  padding: 5pt 8pt;
  text-align: center;
}

.rs-summary-seg:nth-child(odd) { background: var(--rs-p); color: var(--rs-t); }
.rs-summary-seg:nth-child(even) { background: #fff; color: var(--rs-p); border: 1px solid #e5e7eb; }

/* 3-column domains */
.rs-triple { padding: 0 8pt 6pt; }
.rs-triple-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border: 1px solid #d1d5db;
}

.rs-triple-grid .rs-domain-table td { padding: 2pt 4pt; font-size: 6.5pt; }
.rs-triple-grid .rs-triple-col h5 { padding: 3pt 4pt; font-size: 6.5pt; }
.rs-triple-grid .rs-key { font-size: 5.5pt; padding: 2pt 4pt 4pt; }

.rs-triple-col { border-right: 1px solid #d1d5db; }
.rs-triple-col:last-child { border-right: 0; }
.rs-triple-col h5 {
  margin: 0;
  padding: 4pt 6pt;
  font-size: 7pt;
  background: #f3f4f6;
  border-bottom: 1px solid #d1d5db;
  text-align: center;
  font-weight: 700;
}

.rs-domain-table { width: 100%; border-collapse: collapse; font-size: 7pt; }
.rs-domain-table td { padding: 3pt 5pt; border-bottom: 1px solid #eee; }
.rs-domain-table td:last-child { text-align: center; width: 52pt; }

.rs-dots { display: inline-flex; gap: 3pt; }
.rs-dot {
  width: 7pt;
  height: 7pt;
  border-radius: 50%;
  border: 1pt solid #d1d5db;
  display: inline-block;
}

.rs-dot.is-on { background: var(--rs-p); border-color: var(--rs-p); }
.rs-key { font-size: 6pt; color: #6b7280; padding: 3pt 6pt 5pt; text-align: center; }

/* Comments + promotion */
.rs-comments-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid #d1d5db;
  margin: 0 8pt 8pt;
}

.rs-comment-col {
  border-right: 1px solid #d1d5db;
  min-height: 52pt;
  padding: 6pt;
  font-size: 7.5pt;
  line-height: 1.35;
}

.rs-comment-col:last-child { border-right: 0; }
.rs-comment-title { font-size: 6.5pt; font-weight: 700; text-transform: uppercase; color: var(--rs-p); margin-bottom: 4pt; }
.rs-comment-body { outline: none; min-height: 36pt; }
.rs-comment-body:focus { background: #fffbeb; }

.rs-promo-badge {
  border-radius: 6pt;
  padding: 8pt;
  text-align: center;
}

.rs-promo-badge.is-promoted { background: #ecfdf5; border: 1pt solid #6ee7b7; color: #065f46; }
.rs-promo-badge.is-distinction { background: #ecfdf5; border: 1pt solid #34d399; color: #064e3b; }
.rs-promo-badge.is-merit { background: #eff6ff; border: 1pt solid #93c5fd; color: #1e3a8a; }
.rs-promo-badge.is-credit { background: #f0fdf4; border: 1pt solid #86efac; color: #166534; }
.rs-promo-badge.is-trial { background: #fffbeb; border: 1pt solid #fcd34d; color: #92400e; }
.rs-promo-badge.is-repeat { background: #fef2f2; border: 1pt solid #fca5a5; color: #991b1b; }
.rs-promo-badge.is-withheld { background: #fef2f2; border: 1pt solid #fca5a5; color: #991b1b; }
.rs-promo-badge.is-pending { background: #fffbeb; border: 1pt solid #fcd34d; color: #92400e; }
.rs-promo-title { font-size: 9pt; font-weight: 800; margin-top: 4pt; }
.rs-promo-sub { font-size: 7pt; margin-top: 3pt; opacity: 0.85; }
.rs-promo-next {
  display: inline-block;
  margin-top: 6pt;
  padding: 2pt 8pt;
  border-radius: 999px;
  background: var(--rs-p);
  color: #fff;
  font-size: 7pt;
  font-weight: 700;
}
.rs-promo-term {
  display: block;
  margin-top: 5pt;
  font-size: 7pt;
  font-weight: 600;
  opacity: 0.9;
}
.rs-promo-prev {
  display: block;
  margin-top: 5pt;
  font-size: 7pt;
  font-weight: 600;
  opacity: 0.85;
}
.rs-promo-repeat {
  display: inline-block;
  margin-top: 6pt;
  padding: 2pt 8pt;
  border-radius: 999px;
  background: #991b1b;
  color: #fff;
  font-size: 7pt;
  font-weight: 700;
}

.rw-promo-key-table {
  width: 100%;
  margin-top: 0.5rem;
  border-collapse: collapse;
  font-size: 0.68rem;
}
.rw-promo-key-table th,
.rw-promo-key-table td {
  border: 1px solid #d1d5db;
  padding: 0.25rem 0.4rem;
  text-align: left;
}
.rw-promo-key-table th {
  background: #ecfdf5;
  font-weight: 700;
}

/* Footer */
.rs-footer {
  margin: 4pt 0 0;
  padding-top: 10pt;
  border-top: 3pt solid var(--rs-p);
  display: grid;
  grid-template-columns: 1fr 1.2fr 1fr;
  gap: 8pt;
  font-size: 7pt;
}

.rs-sig-line { border-top: 1pt solid #111; margin-top: 18pt; padding-top: 3pt; text-align: center; min-height: 28pt; }
.rs-sig-drawn { display: block; max-height: 26pt; max-width: 100%; margin: 0 auto 4pt; object-fit: contain; }
.rs-sig-role { font-size: 6pt; color: #6b7280; }
.rs-hash {
  font-family: ui-monospace, monospace;
  font-size: 5.5pt;
  background: #f3f4f6;
  border: 1pt solid #e5e7eb;
  padding: 4pt;
  margin-top: 4pt;
  word-break: break-all;
}

.rs-hash-verified { color: #1f7a45; font-weight: 700; font-size: 6pt; margin-top: 2pt; }

.rs-barcode {
  margin: 8pt 12pt 10pt;
  padding: 8pt 10pt;
  border: 1pt dashed #9ca3af;
  text-align: center;
  display: block;
}

.rs-barcode-link {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}

.rs-barcode-link:hover {
  border-color: var(--rs-p);
  background: #f8fafc;
}

.rs-barcode-hint {
  font-size: 6pt;
  color: #64748b;
  margin-top: 3pt;
  letter-spacing: 0.04em;
}

.rs-barcode-lines {
  height: 28pt;
  background: repeating-linear-gradient(90deg, #111 0 2pt, #fff 2pt 4pt, #111 4pt 5pt, #fff 5pt 8pt);
  margin-bottom: 4pt;
}

.rs-barcode-code { font-family: monospace; font-size: 8pt; letter-spacing: 0.15em; }

/* Settings form */
.rw-settings-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr 1fr;
}

@media (max-width: 900px) {
  .rw-settings-grid { grid-template-columns: 1fr; }
  .rw-layout-premium .rw-premium-sidebar { grid-template-columns: 1fr; }
}

@media print {
  body * { visibility: hidden; }
  .rw-print-root,
  .rw-print-root * { visibility: visible; }
  .rw-print-root { position: absolute; left: 0; top: 0; width: 100%; }
  .no-print,
  .no-print-root .no-print { display: none !important; }
  @page { size: A4 portrait; margin: 6mm; }
  .rw-a4-stage { background: #fff; padding: 0; }
  .rw-a4-sheet {
    width: 100% !important;
    max-width: 100% !important;
    min-height: auto !important;
    height: auto !important;
    box-shadow: none !important;
    border: 0 !important;
    margin: 0 auto !important;
    page-break-after: always;
    page-break-inside: avoid;
    overflow: visible;
    font-size: 8pt;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .rw-a4-sheet .rs-info-grid { grid-template-columns: repeat(6, 1fr) !important; }
  .rw-a4-sheet .rs-triple-grid { grid-template-columns: repeat(3, 1fr) !important; }
  .rw-a4-sheet .rs-comments-grid { grid-template-columns: repeat(3, 1fr) !important; }
  .rw-a4-sheet .rs-attendance-row { grid-template-columns: repeat(4, 1fr) !important; }
  .rw-a4-sheet .rs-banner {
    margin: 4pt 8pt 0;
    padding: 10pt 12pt;
    gap: 10pt 14pt;
  }
  .rw-a4-sheet .rs-sheet-body { padding: 8pt 10pt 10pt; }
  .rw-a4-sheet .rs-academic { padding: 0 4pt; }
  .rw-a4-sheet .rs-triple { padding: 0 4pt 4pt; }
  .rw-a4-sheet .rs-table { font-size: 7pt; }
  .rw-a4-sheet .rs-table td,
  .rw-a4-sheet .rs-table th { padding: 2pt 3pt; }
  .rw-a4-sheet [contenteditable] { outline: none !important; background: transparent !important; }

  /* ID card print — front and back both visible */
  .rw-id-print-root {
    padding: 4mm;
    background: #fff;
  }
  .rw-id-print-root .rw-id-stack {
    display: flex !important;
    flex-direction: column !important;
    gap: 3mm !important;
    break-inside: avoid;
    page-break-inside: avoid;
    margin-bottom: 6mm;
    visibility: visible !important;
  }
  .rw-id-print-root .rw-id-card {
    display: block !important;
    visibility: visible !important;
    break-inside: avoid;
    page-break-inside: avoid;
    overflow: visible;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .rw-id-print-root .rw-id-modern-back,
  .rw-id-print-root .rw-id-back {
    display: block !important;
    visibility: visible !important;
  }
}

.rw-settings-card {
  background: #fff;
  border-radius: 12px;
  border: 1px solid #e5e7eb;
  padding: 1rem;
}

.rw-settings-card h3 {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--color-primary, #1f4e79);
  margin: 0 0 0.75rem;
}

.rw-field { margin-bottom: 0.65rem; }
.rw-field label { display: block; font-size: 0.68rem; font-weight: 600; color: #6b7280; margin-bottom: 0.2rem; }
.rw-field input,
.rw-field select,
.rw-field textarea {
  width: 100%;
  border: 1px solid #d1d5db;
  border-radius: 0.375rem;
  padding: 0.4rem 0.55rem;
  font-size: 0.78rem;
}

.rw-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; }
.rw-premium-only { opacity: 0.5; pointer-events: none; }
.rw-premium-only.is-enabled { opacity: 1; pointer-events: auto; }

.rw-color-swatches { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: 0.35rem; }
.rw-swatch {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 2px solid #fff;
  box-shadow: 0 0 0 1px #cbd5e1;
  cursor: pointer;
}

/* ID cards */
.rw-id-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1rem;
  align-items: center;
}

.rw-id-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.rw-id-pair {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 0.5rem;
}

.rw-id-card {
  width: 85.6mm;
  height: 54mm;
  border-radius: 3mm;
  overflow: hidden;
  border: 1px solid #cbd5e1;
  position: relative;
  font-family: "Segoe UI", sans-serif;
  font-size: 7pt;
}

.rw-id-front-classic { background: linear-gradient(135deg, var(--rs-p) 0%, #fff 62%); }
.rw-id-classic-inner { padding: 6pt 8pt; height: 100%; box-sizing: border-box; display: flex; flex-direction: column; gap: 5pt; }
.rw-id-classic-head { display: flex; gap: 6pt; align-items: center; }
.rw-id-classic-logo { width: 20pt; height: 20pt; object-fit: cover; border-radius: 4pt; }
.rw-id-classic-logo-ph { font-size: 14pt; }
.rw-id-classic-school { font-size: 6.5pt; font-weight: 800; color: var(--rs-p); text-transform: uppercase; line-height: 1.1; }
.rw-id-classic-type { font-size: 5.5pt; font-weight: 700; color: #475569; margin-top: 1pt; }
.rw-id-classic-body { display: grid; grid-template-columns: 32pt 1fr; gap: 6pt; align-items: center; flex: 1; }
.rw-id-classic-photo {
  width: 32pt; height: 32pt; border-radius: 4pt; border: 2pt solid var(--rs-p);
  overflow: hidden; background: #fff; display: grid; place-items: center;
  font-weight: 800; font-size: 11pt; color: var(--rs-p); cursor: pointer;
}
.rw-id-classic-photo img { width: 100%; height: 100%; object-fit: cover; }
.rw-id-classic-fields { font-size: 5.5pt; line-height: 1.35; }
.rw-id-classic-fields span { display: block; color: #64748b; font-size: 5pt; text-transform: uppercase; letter-spacing: 0.06em; }
.rw-id-classic-fields strong { display: block; font-size: 6.5pt; color: #0f172a; margin-bottom: 2pt; }
.rw-id-classic-back-body { padding: 6pt 8pt; font-size: 6pt; line-height: 1.35; }
.rw-id-classic-back-sig { margin-top: 4pt; font-size: 5.5pt; color: #64748b; border-top: 1px solid #cbd5e1; padding-top: 4pt; }
.rw-id-classic-sig-img { max-height: 16pt; max-width: 60pt; display: block; margin-bottom: 2pt; }

.rw-id-front-split { background: #fff; color: #111; border: 1px solid #dbeafe; display: flex; flex-direction: column; }
.rw-id-split-top {
  background: linear-gradient(90deg, var(--rs-p), var(--rs-s));
  color: #fff;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 5pt;
  align-items: center;
  padding: 5pt 7pt;
}
.rw-id-split-logo { width: 16pt; height: 16pt; object-fit: cover; border-radius: 3pt; }
.rw-id-split-school { font-size: 6pt; font-weight: 800; text-transform: uppercase; line-height: 1.1; }
.rw-id-split-badge { font-size: 5pt; font-weight: 800; background: rgba(255,255,255,0.2); padding: 2pt 5pt; border-radius: 999px; }
.rw-id-split-body { display: grid; grid-template-columns: 32pt 1fr; gap: 6pt; padding: 6pt 7pt; align-items: center; flex: 1; }
.rw-id-split-photo {
  width: 32pt; height: 32pt; border-radius: 50%; border: 2pt solid var(--rs-p);
  overflow: hidden; display: grid; place-items: center; font-weight: 800; color: var(--rs-p); cursor: pointer;
}
.rw-id-split-photo img { width: 100%; height: 100%; object-fit: cover; }
.rw-id-split-name { font-size: 9pt; font-weight: 800; line-height: 1.1; }
.rw-id-split-reg { font-family: ui-monospace, monospace; font-size: 6.5pt; color: var(--rs-p); margin-top: 2pt; }
.rw-id-split-meta { font-size: 5.5pt; color: #64748b; margin-top: 3pt; }

.rw-id-exam-front { background: #fff; border: 1px solid #cbd5e1; padding: 6pt 7pt; display: flex; flex-direction: column; gap: 5pt; }
.rw-id-exam-head { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px dashed #cbd5e1; padding-bottom: 4pt; }
.rw-id-exam-badge { font-size: 6pt; font-weight: 800; background: #ffd400; color: #003700; padding: 2pt 6pt; border-radius: 999px; }
.rw-id-exam-session { font-size: 5.5pt; color: #64748b; }
.rw-id-exam-student { display: grid; grid-template-columns: 28pt 1fr; gap: 6pt; align-items: center; }
.rw-id-exam-photo {
  width: 28pt; height: 28pt; border-radius: 4pt; border: 2pt solid var(--rs-p);
  overflow: hidden; display: grid; place-items: center; font-weight: 800; font-size: 10pt; color: var(--rs-p); cursor: pointer;
}
.rw-id-exam-photo img { width: 100%; height: 100%; object-fit: cover; }
.rw-id-exam-name { font-size: 8pt; font-weight: 800; }
.rw-id-exam-reg { font-size: 5.5pt; color: #475569; margin-top: 1pt; }
.rw-id-exam-subjects-title { font-size: 5.5pt; font-weight: 800; text-transform: uppercase; color: var(--rs-p); margin-bottom: 2pt; }
.rw-id-exam-subjects-list { margin: 0; padding-left: 10pt; font-size: 5.5pt; line-height: 1.35; columns: 2; column-gap: 8pt; }
.rw-id-exam-empty { list-style: none; margin-left: -10pt; color: #94a3b8; font-style: italic; }

.rw-teacher-editor {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 0.75rem;
  margin-bottom: 1rem;
}
.rw-teacher-editor h4 { font-size: 0.8rem; font-weight: 800; color: var(--color-primary, #1f4e79); margin: 0 0 0.5rem; }

.rw-id-qr-slot,
.rw-qr-slot {
  width: 18mm;
  height: 18mm;
  min-width: 18mm;
  min-height: 18mm;
  display: grid;
  place-items: center;
  border: 1px solid #cbd5e1;
  border-radius: 2pt;
  background: #fff;
  overflow: hidden;
  font-size: 0;
  line-height: 0;
  color: transparent;
}

.rw-qr-img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  image-rendering: pixelated;
}

.rw-id-qr-caption-below,
.rs-qr-label {
  font-size: 5pt;
  color: #64748b;
  text-align: center;
  margin-top: 2pt;
  letter-spacing: 0.03em;
}

.rw-id-qr-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
}

.rw-id-back-details { min-width: 0; }

.rw-id-back-address {
  font-size: 5.5pt;
  color: #64748b;
  margin: 2pt 0 4pt;
  line-height: 1.3;
}

.rw-id-photo-ph {
  position: relative;
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  background: linear-gradient(145deg, #f8fafc, #e2e8f0);
}

.rw-id-photo-ring {
  position: absolute;
  inset: 3pt;
  border: 1px dashed rgba(31, 78, 121, 0.35);
  border-radius: inherit;
  pointer-events: none;
}

.rw-id-photo-icon {
  font-size: 11pt;
  line-height: 1;
  opacity: 0.85;
}

.rw-id-photo-label {
  position: absolute;
  bottom: 2pt;
  font-size: 4.5pt;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--rs-p, #1f4e79);
}

.rw-id-photo-tap { cursor: pointer; }

.rs-verify-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10pt;
  align-items: center;
  margin: 8pt 12pt 10pt;
  padding: 8pt 10pt;
  border: 1pt dashed #9ca3af;
  border-radius: 4pt;
}

.rs-qr-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
}

.rs-report-qr {
  width: 16mm;
  height: 16mm;
  min-width: 16mm;
  min-height: 16mm;
}

.public-report-stage {
  background: #374151;
  padding: 24px;
  border-radius: 8px;
  overflow-x: auto;
}

@media print {
  .public-report-stage { background: #fff; padding: 0; }
  .no-print { display: none !important; }
  #public-report-sheet { box-shadow: none !important; }
}

.rw-id-front-clean { background: #fff; border: 2pt solid var(--rs-p); }
.rw-id-front-dark { background: linear-gradient(135deg, #111827, var(--rs-p)); color: #fff; }

.rw-id-back {
  background: #f9fafb;
  margin-top: 4px;
}

.rw-id-back-stripe {
  height: 10pt;
  background: linear-gradient(90deg, #111, #444, #111);
  margin: 6pt 8pt;
}

/* Modern ID card */
.rw-id-stack {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.rw-id-select {
  display: block;
  font-size: 0.72rem;
  font-weight: 600;
  margin-bottom: 0.35rem;
  font-family: "Segoe UI", sans-serif;
}

.rw-id-modern-front {
  background: #fff;
  color: #111;
  border: 1px solid #dbeafe;
  display: grid;
  grid-template-columns: 5pt 1fr;
  overflow: hidden;
}

.rw-id-modern-accent {
  background: linear-gradient(180deg, var(--rs-p), var(--rs-s));
}

.rw-id-modern-body {
  padding: 7pt 8pt 6pt;
  display: flex;
  flex-direction: column;
  gap: 6pt;
  height: 100%;
  box-sizing: border-box;
}

.rw-id-modern-head {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 6pt;
  align-items: center;
}

.rw-id-modern-logo {
  width: 22pt;
  height: 22pt;
  border-radius: 6pt;
  background: #f1f5f9;
  display: grid;
  place-items: center;
  overflow: hidden;
  font-size: 10pt;
}

.rw-id-modern-logo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.rw-id-modern-school-name {
  font-size: 6.5pt;
  font-weight: 800;
  color: var(--rs-p);
  line-height: 1.1;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.rw-id-modern-school-sub {
  font-size: 5.5pt;
  color: #64748b;
  margin-top: 1pt;
}

.rw-id-modern-badge {
  font-size: 5.5pt;
  font-weight: 800;
  background: var(--rs-p);
  color: #fff;
  padding: 2pt 5pt;
  border-radius: 999px;
  letter-spacing: 0.06em;
}

.rw-id-modern-main {
  display: grid;
  grid-template-columns: 34pt 1fr;
  gap: 7pt;
  align-items: center;
  flex: 1;
}

.rw-id-modern-photo {
  width: 34pt;
  height: 34pt;
  border-radius: 50%;
  border: 2pt solid var(--rs-p);
  overflow: hidden;
  background: linear-gradient(135deg, #e2e8f0, #f8fafc);
  display: grid;
  place-items: center;
  font-weight: 800;
  font-size: 12pt;
  color: var(--rs-p);
  cursor: pointer;
}

.rw-id-modern-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.rw-id-modern-name {
  font-size: 10pt;
  font-weight: 800;
  line-height: 1.1;
  color: #0f172a;
}

.rw-id-modern-reg {
  font-family: ui-monospace, monospace;
  font-size: 7pt;
  font-weight: 700;
  color: var(--rs-p);
  margin-top: 2pt;
  letter-spacing: 0.05em;
}

.rw-id-modern-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 3pt;
  margin-top: 4pt;
}

.rw-id-modern-meta span {
  font-size: 5.5pt;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
  padding: 1pt 5pt;
  color: #475569;
}

.rw-id-modern-foot {
  display: flex;
  justify-content: space-between;
  gap: 4pt;
  border-top: 1px dashed #cbd5e1;
  padding-top: 4pt;
}

.rw-id-modern-chip {
  font-size: 5.5pt;
  font-weight: 700;
  color: #64748b;
}

.rw-id-modern-chip-gold {
  background: #ffd400;
  color: #003700;
  padding: 1pt 6pt;
  border-radius: 999px;
}

.rw-id-modern-back {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.rw-id-modern-back-bar {
  height: 8pt;
  background: linear-gradient(90deg, var(--rs-p), var(--rs-s));
}

.rw-id-modern-back-body {
  padding: 6pt 8pt;
  font-size: 6pt;
  line-height: 1.35;
}

.rw-id-modern-back-body strong {
  font-size: 6.5pt;
  color: var(--rs-p);
}

.rw-id-modern-back-note {
  font-style: italic;
  color: #64748b;
  margin: 3pt 0;
}

.rw-id-modern-back-row {
  display: grid;
  grid-template-columns: 28pt 1fr;
  gap: 6pt;
  margin: 5pt 0;
  align-items: center;
}

.rw-id-modern-qr {
  width: 28pt;
  height: 28pt;
  border: 1px solid #cbd5e1;
  background:
    linear-gradient(90deg, #111 33%, transparent 33%, transparent 66%, #111 66%) 0 0 / 3pt 3pt,
    linear-gradient(#111 33%, transparent 33%, transparent 66%, #111 66%) 0 0 / 3pt 3pt;
  opacity: 0.85;
}

.rw-id-modern-back-label {
  font-size: 5pt;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #94a3b8;
}

.rw-id-modern-back-value {
  font-size: 6.5pt;
  font-weight: 700;
  margin-bottom: 2pt;
}

.rw-id-modern-back-sig {
  border-top: 1px solid #cbd5e1;
  padding-top: 4pt;
  font-size: 5.5pt;
  color: #64748b;
}

.rw-id-modern-sig-img {
  max-height: 18pt;
  max-width: 70pt;
  display: block;
  margin-bottom: 2pt;
}

.rw-id-modern-back-sig-label {
  display: block;
  font-size: 5pt;
  font-weight: 700;
  color: var(--rs-p);
}

.rw-offline-banner {
  background: #fffbeb;
  border: 1px solid #fcd34d;
  color: #92400e;
  padding: 0.6rem 1rem;
  font-size: 0.78rem;
  border-radius: 0 0 0.5rem 0.5rem;
}

.rw-offline-banner strong {
  font-weight: 700;
}

.rw-sig-canvas {
  width: 100%;
  max-width: 420px;
  height: 120px;
  border: 1px dashed #94a3b8;
  border-radius: 8px;
  background: #fff;
  touch-action: none;
  cursor: crosshair;
}

.rw-sync-status {
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.25rem 0.5rem;
  border-radius: 999px;
}

.rw-sync-status.is-synced { color: #166534; background: #ecfdf5; }
.rw-sync-status.is-pending { color: #92400e; background: #fffbeb; }
.rw-sync-status.is-offline { color: #475569; background: #f1f5f9; }
.rw-sync-status.is-syncing { color: #1d4ed8; background: #eff6ff; }

.rw-id-print-root .rw-id-stack {
  break-inside: avoid;
  page-break-inside: avoid;
  margin-bottom: 8mm;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

