
    :root {
      --bg: #eef3f8;
      --surface: #ffffff;
      --surface-soft: #f8fafc;
      --ink: #172033;
      --muted: #607086;
      --line: #d9e2ec;
      --primary: #2563eb;
      --primary-dark: #1d4ed8;
      --success: #047857;
      --success-bg: #d1fae5;
      --warning: #b45309;
      --warning-bg: #fef3c7;
      --danger: #dc2626;
      --danger-bg: #fee2e2;
      --violet: #6d28d9;
      --violet-bg: #ede9fe;
      --shadow: 0 18px 48px rgba(15, 23, 42, 0.10);
      font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      color: var(--ink);
      background: var(--bg);
    }
    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      margin: 0;
      min-width: 320px;
      min-height: 100vh;
      background:
        radial-gradient(circle at top left, rgba(37, 99, 235, 0.14), transparent 28rem),
        linear-gradient(135deg, #f8fafc 0%, #eef3f8 48%, #e2e8f0 100%);
    }
    button, input, select, textarea { font: inherit; }
    button {
      border: 0;
      border-radius: 999px;
      padding: 0.78rem 1.05rem;
      font-weight: 800;
      color: white;
      background: var(--primary);
      cursor: pointer;
      box-shadow: 0 10px 22px rgba(37, 99, 235, 0.22);
      transition: transform 0.16s ease, box-shadow 0.16s ease, background 0.16s ease;
    }
    button:hover { transform: translateY(-1px); background: var(--primary-dark); box-shadow: 0 14px 30px rgba(37, 99, 235, 0.28); }
    button:disabled { opacity: 0.5; cursor: not-allowed; transform: none; box-shadow: none; }
    .button-secondary { color: #172033; background: #e2e8f0; box-shadow: none; }
    .button-secondary:hover { color: #0f172a; background: #cbd5e1; box-shadow: none; }
    .button-danger { background: var(--danger); box-shadow: 0 10px 22px rgba(220, 38, 38, 0.18); }
    .button-danger:hover { background: #b91c1c; box-shadow: 0 14px 30px rgba(220, 38, 38, 0.22); }
    .button-violet { background: var(--violet); box-shadow: 0 10px 22px rgba(109, 40, 217, 0.2); }
    .button-violet:hover { background: #5b21b6; }
    .button-small { padding: 0.52rem 0.74rem; font-size: 0.86rem; }
    .app { width: min(1280px, calc(100% - 2rem)); margin: 0 auto; padding: 2rem 0 4rem; }
    .topbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
    .persistence-status{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.65rem 0;padding:.72rem .9rem;border:1px solid #86efac;border-radius:14px;background:#f0fdf4;color:#166534}
    .persistence-status>div{display:grid;gap:.12rem}.persistence-status strong{font-size:.88rem}.persistence-status span{font-size:.76rem;color:#475569}
    .persistence-status.is-error{border-color:#ef4444;background:#fef2f2;color:#991b1b;position:sticky;top:.4rem;z-index:100;box-shadow:0 10px 28px rgba(127,29,29,.16)}
    .persistence-status.is-error span{color:#7f1d1d}.persistence-status button[hidden]{display:none}
    .brand { display: flex; align-items: center; gap: 0.9rem; }
    .brand-icon { display: grid; width: 50px; height: 50px; place-items: center; border-radius: 16px; color: white; background: linear-gradient(135deg, #2563eb, #7c3aed); font-weight: 900; box-shadow: var(--shadow); }
    .brand h1 { margin: 0; font-size: clamp(1.35rem, 4vw, 2.2rem); letter-spacing: -0.04em; }
    .brand p { margin: 0.2rem 0 0; color: var(--muted); line-height: 1.35; }
    .top-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0.55rem; }
    .tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1.4rem 0; padding: 0.45rem; border: 1px solid rgba(148,163,184,.38); border-radius: 22px; background: rgba(255,255,255,.68); backdrop-filter: blur(16px); }
    .tab-button { color: #334155; background: transparent; box-shadow: none; }
    .tab-button:hover, .tab-button.active { color: white; background: var(--primary); box-shadow: 0 10px 22px rgba(37,99,235,.20); }
    .view { display: none; }
    .view.active { display: block; }
    .hero, .panel, .card { border: 1px solid rgba(148,163,184,.34); border-radius: 28px; background: rgba(255,255,255,.86); box-shadow: var(--shadow); backdrop-filter: blur(16px); }
    .hero { padding: clamp(1.4rem, 4vw, 3rem); }
    .hero-badge, .pill { display: inline-flex; align-items: center; width: fit-content; border-radius: 999px; padding: .36rem .7rem; font-size: .78rem; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
    .hero-badge { color: #1d4ed8; background: #dbeafe; }
    .hero h2 { max-width: 980px; margin: 1rem 0; font-size: clamp(2.1rem, 6vw, 4.8rem); line-height: .98; letter-spacing: -.065em; }
    .hero p { max-width: 900px; margin: 0; color: var(--muted); font-size: 1.08rem; line-height: 1.7; }
    .hero-actions, .form-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.25rem; }
    .grid-4, .grid-3, .grid-2 { display: grid; gap: 1rem; margin-top: 1rem; }
    .grid-4 { grid-template-columns: repeat(4, 1fr); }
    .grid-3 { grid-template-columns: repeat(3, 1fr); }
    .grid-2 { grid-template-columns: repeat(2, 1fr); }
    .card { padding: 1.35rem; }
    .card h3 { margin: .4rem 0; }
    .card p { margin: .35rem 0 0; color: var(--muted); line-height: 1.55; }
    .panel { padding: clamp(1.1rem, 3vw, 1.8rem); margin-bottom: 1rem; }
    .panel-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.1rem; }
    .panel-header h2 { margin: 0; font-size: 1.55rem; letter-spacing: -.035em; }
    .panel-header p { margin: .3rem 0 0; color: var(--muted); line-height: 1.5; }
    .form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
    .form-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
    .field { display: grid; gap: .42rem; }
    .field.full { grid-column: 1 / -1; }
    label { font-weight: 800; color: #334155; }
    input, select, textarea { width: 100%; border: 1px solid var(--line); border-radius: 15px; padding: .8rem .9rem; color: var(--ink); background: white; outline: none; }
    textarea { min-height: 110px; resize: vertical; }
    input:focus, select:focus, textarea:focus { border-color: #60a5fa; box-shadow: 0 0 0 4px rgba(96,165,250,.18); }
    button:focus-visible, a:focus-visible, summary:focus-visible, label.button-secondary:focus-within { outline: 3px solid rgba(37,99,235,.48); outline-offset: 3px; }
    .filters { display: grid; grid-template-columns: 1.4fr repeat(4, 1fr); gap: .7rem; margin-bottom: 1rem; }
    .list { display: grid; gap: .8rem; }
    .list-item { border: 1px solid var(--line); border-radius: 20px; padding: 1rem; background: var(--surface-soft); }
    .list-item-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
    .list-item h4 { margin: 0; font-size: 1.05rem; }
    .list-item p { margin: .32rem 0 0; color: var(--muted); line-height: 1.48; }
    .item-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .45rem; min-width: 190px; }
    .tag-row { display: flex; flex-wrap: wrap; gap: .4rem; }
    .tag { display: inline-flex; align-items: center; border-radius: 999px; padding: .28rem .58rem; color: #1e40af; background: #dbeafe; font-size: .78rem; font-weight: 800; }
    .tag-success { color: var(--success); background: var(--success-bg); }
    .tag-warning { color: var(--warning); background: var(--warning-bg); }
    .tag-violet { color: var(--violet); background: var(--violet-bg); }
    .tag-neutral { color: #475569; background: #e2e8f0; }
    .empty-state, .status-box, .info-box { border: 1px dashed #b8c5d4; border-radius: 18px; padding: 1rem; color: var(--muted); background: rgba(248,250,252,.8); line-height: 1.55; }
    .status-box { margin-top: .8rem; border-style: solid; border-color: #86efac; color: #166534; background: #f0fdf4; }
    .warning-box { border: 1px solid #fbbf24; border-radius: 18px; padding: 1rem; color: #92400e; background: #fffbeb; line-height: 1.55; }
    .check-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
    .check-item { display: flex; align-items: flex-start; gap: .65rem; border: 1px solid var(--line); border-radius: 15px; padding: .7rem; background: white; font-weight: 650; line-height: 1.35; }
    .check-item input { width: auto; margin-top: .15rem; }
    .check-item small { display: block; color: var(--muted); font-weight: 500; margin-top: .18rem; }
    .scroll-checks { max-height: 330px; overflow: auto; padding-right: .2rem; }
    .selection-toolbar { display: grid; grid-template-columns: 1.5fr 1fr; gap: .7rem; margin-bottom: .65rem; }
    .selection-status { margin: .55rem 0 0; color: var(--muted); font-size: .9rem; }
    .sorteio-row { display: grid; grid-template-columns: repeat(4, minmax(145px, 1fr)); gap: .7rem; align-items: end; margin-bottom: .9rem; padding: .85rem; border: 1px solid #dbe4ee; border-radius: 12px; background: #f8fafc; }
    .sorteio-row > button { justify-self: start; }
    .sorteio-builder { display: grid; gap: 1rem; }
    .sorteio-hierarchy-grid { display: grid; grid-template-columns: repeat(3, minmax(180px, 1fr)); gap: .8rem; }
    .sorteio-content-grid { display: grid; grid-template-columns: repeat(3, minmax(180px, 1fr)); gap: .8rem; }
    .sorteio-descriptor-panel { border: 1px solid #dbe4ee; border-radius: 14px; padding: .9rem; background: #f8fafc; }
    .sorteio-descriptor-toolbar { display: flex; gap: .55rem; justify-content: space-between; align-items: center; flex-wrap: wrap; margin-bottom: .75rem; }
    .sorteio-descriptor-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(245px, 1fr)); gap: .55rem; max-height: 330px; overflow: auto; padding-right: .25rem; }
    .sorteio-descriptor-option { display: flex; align-items: flex-start; gap: .55rem; border: 1px solid #dbe4ee; border-radius: 10px; padding: .7rem; background: white; cursor: pointer; }
    .sorteio-descriptor-option:hover { border-color: #94a3b8; }
    .sorteio-descriptor-option input { margin-top: .2rem; }
    .sorteio-descriptor-option strong { display: block; }
    .sorteio-descriptor-option small { display: block; color: #64748b; margin-top: .15rem; }
    .sorteio-quota-list { display: grid; gap: .7rem; }
    .sorteio-quota-row { display: grid; grid-template-columns: minmax(270px, 2fr) repeat(4, minmax(82px, .55fr)) auto; gap: .65rem; align-items: end; padding: .85rem; border: 1px solid #dbe4ee; border-radius: 12px; background: #fff; }
    .sorteio-quota-title h4 { margin: 0; }
    .sorteio-quota-title p { margin: .25rem 0 0; color: #64748b; font-size: .88rem; }
    .sorteio-stock { display: flex; gap: .35rem; flex-wrap: wrap; margin-top: .45rem; }
    .sorteio-stock span { font-size: .78rem; border-radius: 999px; padding: .2rem .5rem; background: #eef2ff; color: #3730a3; }
    .sorteio-quota-row .field label { font-size: .82rem; }
    .sorteio-quota-total { min-height: 42px; display: flex; align-items: center; justify-content: center; border: 1px solid #dbe4ee; border-radius: 9px; background: #f8fafc; font-weight: 700; }
    .sorteio-validation-summary { border-left: 4px solid #2563eb; background: #eff6ff; padding: .85rem 1rem; border-radius: 10px; }
    .sorteio-validation-summary.error { border-left-color: #dc2626; background: #fef2f2; color: #991b1b; }
    .sorteio-validation-summary.success { border-left-color: #16a34a; background: #f0fdf4; color: #166534; }

    .simulado-layout { display: grid; grid-template-columns: 1.35fr .9fr; gap: 1rem; align-items: start; }
    .sticky-box { position: sticky; top: 1rem; }
    .print-preview { min-height: 260px; border: 1px solid var(--line); border-radius: 22px; padding: 1.5rem; background: #e9eef5; overflow-x: auto; }
    .print-preview h1 { margin-top: 0; }
    .print-settings { margin-top: 1rem; border: 1px solid var(--line); border-radius: 22px; padding: 1rem; background: var(--surface-soft); }
    .print-settings h3 { margin: 0 0 .85rem; font-size: 1.08rem; }
    .print-options-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
    .print-checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; margin-top: .85rem; }
    .print-check { display: flex; align-items: flex-start; gap: .6rem; border: 1px solid var(--line); border-radius: 14px; padding: .7rem; background: white; font-weight: 700; line-height: 1.35; }
    .print-check input { width: auto; margin-top: .16rem; }
    .print-check small { display: block; margin-top: .2rem; color: var(--muted); font-weight: 500; }
    .page-break-list { display: grid; gap: .5rem; max-height: 260px; overflow: auto; margin-top: .7rem; padding-right: .2rem; }
    .page-break-item { display: flex; align-items: flex-start; gap: .65rem; border: 1px solid var(--line); border-radius: 14px; padding: .65rem .75rem; background: white; font-weight: 700; }
    .page-break-item input { width: auto; margin-top: .18rem; }
    .page-break-item small { display: block; margin-top: .18rem; color: var(--muted); font-weight: 500; }
    .print-document { color: #111827; font-family: Arial, sans-serif; }
    .print-sheet { position: relative; width: 210mm; min-width: 210mm; height: 297mm; min-height: 297mm; max-height: 297mm; box-sizing: border-box; overflow: hidden; margin: 0 auto 1.5rem; background: white; box-shadow: 0 10px 30px rgba(15,23,42,.16); page-break-after: always; break-after: page; page-break-inside: avoid; break-inside: avoid; }
    .print-sheet:last-child { page-break-after: auto; break-after: auto; }
    .print-sheet.margin-estreita { padding: 10mm 12mm 15mm; }
    .print-sheet.margin-normal { padding: 15mm 18mm 19mm; }
    .print-sheet.margin-ampla { padding: 21mm 23mm 23mm; }
    .print-content { height: 100%; min-height: 0; box-sizing: border-box; padding-bottom: 9mm; overflow: hidden; display: flow-root; }
    .print-page-body { display: flow-root; min-height: 0; }
    .print-sheet.has-overflow { outline: 3px solid #dc2626; outline-offset: -3px; }
    .print-overflow-badge { position: absolute; top: 2mm; right: 2mm; z-index: 5; max-width: 72mm; padding: .35rem .5rem; border-radius: 8px; background: #dc2626; color: white; font-size: 10px; font-weight: 800; line-height: 1.25; box-shadow: 0 2px 8px rgba(127,29,29,.24); }
    .print-measure-root { position: fixed; left: -12000px; top: 0; width: 210mm; visibility: hidden; pointer-events: none; z-index: -9999; }
    .print-measure-root .print-sheet { margin: 0; box-shadow: none; }
    .print-header { text-align: center; border-bottom: 1.5px solid #334155; padding-bottom: .75rem; margin-bottom: 1rem; }
    .print-school { font-size: 1.03em; font-weight: 800; text-transform: uppercase; letter-spacing: .025em; }
    .print-header-extra { margin-top: .2rem; font-size: .9em; color: #475569; }
    .print-header h1 { margin: .7rem 0 .25rem; font-size: 1.65em; line-height: 1.16; }
    .print-meta { color: #334155; line-height: 1.45; }
    .print-teacher { margin-top: .35rem; font-size: .92em; }
    .print-continuation-title { margin-bottom: .9rem; padding-bottom: .45rem; border-bottom: 1px solid #94a3b8; font-weight: 800; color: #334155; }
    .student-line { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr); grid-auto-flow: row; gap: .7rem 1rem; margin: 1rem 0; padding: .7rem 0; border-bottom: 1px solid #cbd5e1; } .student-line > div { min-width: 0; overflow-wrap: anywhere; }
    .print-instructions { margin: .8rem 0 1rem; padding: .7rem .85rem; border: 1px solid #cbd5e1; border-radius: 8px; background: #f8fafc; line-height: 1.5; }
    .print-observation { margin: .65rem 0 1rem; color: #334155; font-size: .92em; line-height: 1.45; }
    .question-print { margin: 1.08rem 0; line-height: 1.58; page-break-inside: avoid; break-inside: avoid; }
    .question-print strong { display: block; margin-bottom: .4rem; }
    .answer-key-row { display: block; border-bottom: 1px solid #ddd; padding: .7rem 0; page-break-inside: avoid; break-inside: avoid; }
    .descriptor-note { margin-top: .35rem; color: #475569; font-size: .86rem; }
    .print-footer { position: absolute; left: 0; right: 0; bottom: 5mm; display: flex; justify-content: space-between; gap: 1rem; padding: 0 12mm; color: #64748b; font-size: .78em; }
    .margin-normal .print-footer { padding-inline: 18mm; }
    .margin-ampla .print-footer { padding-inline: 23mm; }
    .print-font-compacta { font-size: 13px; }
    .print-font-normal { font-size: 15px; }
    .print-font-grande { font-size: 17px; }
    .print-page-summary { margin-top: .75rem; }
    .question-config { margin-top: 1rem; border: 1px solid var(--line); border-radius: 20px; padding: 1rem; background: #f8fafc; }
    .question-config h3 { margin: 0 0 .75rem; font-size: 1.05rem; }
    .question-type-help { margin: .6rem 0 0; color: var(--muted); font-size: .9rem; line-height: 1.5; }
    .response-lines { display: grid; gap: .75rem; margin-top: .8rem; }
    .response-line { height: 1.15rem; border-bottom: 1px solid #64748b; }
    .response-box { margin-top: .8rem; min-height: 150px; border: 1px solid #64748b; border-radius: 8px; }
    .response-box.textual { min-height: 330px; background: repeating-linear-gradient(to bottom, transparent 0, transparent 27px, #cbd5e1 28px); }
    .response-box.manual { min-height: 230px; }
    .manual-label { margin-top: .45rem; color: #475569; font-size: .86rem; font-style: italic; }
    .visual-config-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
    .visual-preview { min-height: 92px; margin-top: .8rem; border: 1px dashed #aab8c8; border-radius: 16px; padding: .85rem; background: white; }
    .visual-preview.empty { display: grid; place-items: center; color: var(--muted); }
    .image-upload-row { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; }
    .image-file-name { color: var(--muted); font-size: .9rem; }
    .question-visual { width: min(100%, 720px); margin: .85rem auto 1rem; page-break-inside: avoid; break-inside: avoid; }
    .question-visual.compact { width: min(100%, 420px); margin: .75rem 0 0; }
    .question-visual img { display: block; max-width: 100%; max-height: 430px; margin: 0 auto; object-fit: contain; border-radius: 8px; }
    .question-visual.compact img { max-height: 210px; }
    .question-visual figcaption { margin-top: .45rem; color: #475569; font-size: .86rem; text-align: center; line-height: 1.4; }
    .question-table { width: 100%; border-collapse: collapse; font-size: .95rem; background: white; }
    .question-table th, .question-table td { border: 1px solid #64748b; padding: .48rem .58rem; text-align: center; vertical-align: middle; }
    .question-table th { background: #e2e8f0; font-weight: 800; }
    .question-chart { display: block; width: 100%; height: auto; overflow: visible; }
    .chart-grid-line { stroke: #cbd5e1; stroke-width: 1; }
    .chart-axis { stroke: #334155; stroke-width: 1.4; }
    .chart-label { fill: #334155; font-size: 12px; font-family: Arial, sans-serif; }
    .chart-value { fill: #0f172a; font-size: 12px; font-weight: 700; font-family: Arial, sans-serif; }
    .chart-bar { fill: #94a3b8; stroke: #475569; stroke-width: 1; }
    .chart-line { fill: none; stroke: #334155; stroke-width: 3; }
    .chart-point { fill: white; stroke: #334155; stroke-width: 2; }
    .source-links { display: grid; gap: .45rem; margin-top: 1rem; }
    .source-links a { color: #1d4ed8; font-weight: 750; }
    .footer-note { color: var(--muted); font-size: .9rem; line-height: 1.55; }
    .source-reference { margin-top:.7rem; padding:.7rem .8rem; border-left:3px solid var(--violet); border-radius:10px; background:var(--violet-bg); color:#4c1d95; font-size:.86rem; line-height:1.5; }
    .source-reference a { color:#4c1d95; font-weight:800; text-decoration:underline; }
    .current-simulado-banner { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:1rem; border:1px solid #bfdbfe; border-radius:20px; padding:1rem; background:#eff6ff; }
    .current-simulado-banner h3 { margin:0; font-size:1.08rem; color:#1e3a8a; }
    .current-simulado-banner p { margin:.3rem 0 0; color:#475569; line-height:1.45; }
    .simulado-state { display:inline-flex; align-items:center; width:fit-content; border-radius:999px; padding:.34rem .66rem; font-size:.78rem; font-weight:900; white-space:nowrap; }
    .simulado-state.saved { color:#166534; background:#dcfce7; }
    .simulado-state.draft { color:#92400e; background:#fef3c7; }
    .simulado-state.archived { color:#475569; background:#e2e8f0; }
    .simulados-filters { display:grid; grid-template-columns:1.5fr 1fr 1fr .9fr; gap:.7rem; margin-bottom:1rem; }
    .simulado-card-current { border-color:#60a5fa; box-shadow:0 0 0 3px rgba(96,165,250,.14); }
    .simulado-card-archived { opacity:.78; }
    .simulado-card-meta { display:flex; flex-wrap:wrap; gap:.45rem; margin-top:.65rem; }
    .simulado-dates { margin-top:.65rem; color:#64748b; font-size:.83rem; line-height:1.45; }
    .simulado-card-actions { min-width: 230px; align-items: stretch; }
    .simulado-card-actions button { white-space: nowrap; }
    .simulado-open-button { background: var(--primary); color: #fff; box-shadow: 0 10px 22px rgba(37, 99, 235, .18); }
    .simulado-open-button:hover { background: #1d4ed8; box-shadow: 0 14px 30px rgba(37, 99, 235, .24); }
    .simulado-delete-button { border: 1px solid rgba(220, 38, 38, .22); }

    .school-roster-layout { display:grid; grid-template-columns: .9fr 1.35fr; gap:1rem; align-items:start; }
    .class-card-selected { border-color:#60a5fa; box-shadow:0 0 0 3px rgba(96,165,250,.14); }
    .class-card-archived { opacity:.74; }
    .class-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.65rem; margin-top:.8rem; }
    .class-summary > div { border:1px solid var(--line); border-radius:14px; padding:.7rem; background:white; }
    .class-summary span { display:block; color:var(--muted); font-size:.78rem; font-weight:800; text-transform:uppercase; }
    .class-summary strong { display:block; margin-top:.2rem; font-size:1rem; }
    .student-tools { display:flex; flex-wrap:wrap; gap:.55rem; margin-top:.8rem; }
    .student-list-toolbar { display:grid; grid-template-columns:1.5fr .8fr; gap:.7rem; margin:1rem 0; }
    .student-card-inactive { opacity:.7; }
    .student-code { display:inline-flex; align-items:center; border-radius:999px; padding:.28rem .58rem; color:#4338ca; background:#e0e7ff; font-size:.78rem; font-weight:900; letter-spacing:.035em; }
    .class-detail-banner { border:1px solid #bfdbfe; border-radius:20px; padding:1rem; background:#eff6ff; }
    .class-detail-banner h3 { margin:0; color:#1e3a8a; }
    .class-detail-banner p { margin:.3rem 0 0; color:#475569; line-height:1.5; }
    .bulk-import-help { margin:.45rem 0 0; color:var(--muted); font-size:.88rem; line-height:1.5; }
    .print-class-summary { margin-top:.7rem; }
    .print-batch-separator { break-before:page; page-break-before:always; }
    @media (max-width:1050px) { .school-roster-layout { grid-template-columns:1fr; } }
    @media (max-width:760px) { .class-summary, .student-list-toolbar { grid-template-columns:1fr; } }
    #print-area { display: none; }
    @media (max-width: 1050px) { .grid-4 { grid-template-columns: repeat(2, 1fr); } .filters { grid-template-columns: repeat(2, 1fr); } .simulado-layout { grid-template-columns: 1fr; } .sticky-box { position: static; } }

    .final-editor-panel { margin-top: 1rem; border: 1px solid var(--line); border-radius: 22px; padding: 1rem; background: linear-gradient(180deg,#fff,#f8fafc); }
    .final-editor-panel h3 { margin: 0; }
    .final-editor-intro { display:flex; justify-content:space-between; gap:1rem; align-items:flex-start; flex-wrap:wrap; }
    .final-editor-actions { display:flex; gap:.55rem; flex-wrap:wrap; }
    .final-editor-list { display:grid; gap:1rem; margin-top:1rem; }
    .final-question-editor { border:1px solid #cbd5e1; border-radius:18px; padding:1rem; background:#fff; box-shadow:0 8px 22px rgba(15,23,42,.05); }
    .final-question-editor-header { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; margin-bottom:.8rem; }
    .final-question-editor-header h4 { margin:0; }
    .final-question-editor-header p { margin:.25rem 0 0; color:var(--muted); }
    .final-question-editor-tools { display:flex; gap:.45rem; flex-wrap:wrap; justify-content:flex-end; }
    .rich-toolbar { display:flex; gap:.35rem; flex-wrap:wrap; padding:.55rem; border:1px solid #dbe3ec; border-radius:12px 12px 0 0; background:#f8fafc; }
    .rich-toolbar button { min-width:36px; padding:.42rem .55rem; border-radius:8px; font-size:.86rem; }
    .rich-toolbar .toolbar-separator { width:1px; background:#cbd5e1; margin:0 .15rem; }
    .rich-editor { min-height:74px; border:1px solid #cbd5e1; border-top:0; border-radius:0 0 12px 12px; padding:.75rem; background:#fff; line-height:1.5; outline:none; overflow-wrap:anywhere; }
    .rich-editor:focus { border-color:#6366f1; box-shadow:0 0 0 3px rgba(99,102,241,.12); }
    .rich-editor[data-placeholder]:empty:before { content:attr(data-placeholder); color:#94a3b8; pointer-events:none; }
    .final-editor-label { display:block; font-weight:700; margin:.8rem 0 .35rem; }
    .final-alternatives { display:grid; gap:.65rem; margin-top:.65rem; }
    .final-alternative-row { display:grid; grid-template-columns:46px 1fr auto; gap:.55rem; align-items:start; }
    .final-alternative-label { display:flex; align-items:center; justify-content:center; min-height:44px; border-radius:10px; background:#eef2ff; color:#3730a3; font-weight:800; }
    .final-alternative-editor { min-height:44px; border:1px solid #cbd5e1; border-radius:10px; padding:.62rem .7rem; line-height:1.4; outline:none; background:#fff; }
    .final-alternative-editor:focus { border-color:#6366f1; box-shadow:0 0 0 3px rgba(99,102,241,.12); }
    .final-alternative-actions { display:flex; gap:.35rem; align-items:center; flex-wrap:wrap; }
    .final-answer-radio { display:flex; align-items:center; gap:.3rem; font-size:.82rem; white-space:nowrap; }
    .final-editor-status { margin-top:.8rem; padding:.65rem .8rem; border-radius:12px; background:#eefbf3; color:#166534; font-size:.9rem; }
    .final-editor-empty { padding:1rem; border:1px dashed #cbd5e1; border-radius:14px; color:var(--muted); text-align:center; }
    .question-prompt-rich { display:grid; grid-template-columns:auto 1fr; gap:.4rem; align-items:start; margin-bottom:.45rem; }
    .question-prompt-rich .question-number { font-weight:800; }
    .question-rich-content, .answer-rich-content { overflow-wrap:anywhere; }
    .question-rich-content p, .question-rich-content div, .answer-rich-content p, .answer-rich-content div { margin:0 0 .32rem; }
    .student-alternative { display:grid; grid-template-columns:1.7rem 1fr; gap:.35rem; align-items:start; margin:.22rem 0; }
    .student-alternative-label { font-weight:700; }
    .answer-key-question { margin-bottom:.35rem; }
    .answer-key-correct { display:grid; grid-template-columns:auto 1fr; gap:.4rem; align-items:start; font-weight:700; }
    .editor-help-note { margin:.7rem 0 0; color:var(--muted); font-size:.88rem; }
    .omr-option-cell.unavailable { background:#f1f5f9; color:#94a3b8; font-weight:700; }
    @media screen and (max-width:760px){ .final-alternative-row{grid-template-columns:38px 1fr}.final-alternative-actions{grid-column:2}.final-question-editor-header{flex-direction:column}.final-question-editor-tools{justify-content:flex-start}.final-editor-intro{flex-direction:column}.final-editor-actions{width:100%} }

    @media screen and (max-width: 760px) { .topbar, .persistence-status, .list-item-row, .current-simulado-banner { flex-direction: column; align-items:flex-start; } .top-actions, .item-actions { justify-content: flex-start; min-width: 0; } .grid-4, .grid-3, .grid-2, .form-grid, .form-grid-3, .check-grid, .selection-toolbar, .student-line, .visual-config-grid, .print-options-grid, .print-checks, .sorteio-hierarchy-grid, .sorteio-content-grid { grid-template-columns: 1fr; } .filters, .simulados-filters { grid-template-columns: 1fr; } .sorteio-row, .sorteio-quota-row { grid-template-columns: 1fr; } .print-preview { padding: .7rem; } .print-sheet { min-width: 210mm; } }
    @page { size: A4 portrait; margin: 0; }
    @media print {
      html, body { width: 210mm; min-width: 0; margin: 0; padding: 0; background: white; }
      body, #print-area, #print-area * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
      .app { display: none !important; }
      #print-area { display: block !important; width: 210mm; margin: 0; padding: 0; color: #000; font-family: Arial, sans-serif; }
      #print-area .print-document { width: 210mm; margin: 0; padding: 0; }
      .print-measure-root { display: none !important; }
      #print-area .print-sheet { width: 210mm; min-width: 210mm; height: 297mm; min-height: 297mm; max-height: 297mm; box-sizing: border-box; overflow: hidden; margin: 0; box-shadow: none; page-break-inside: avoid; break-inside: avoid; }
      #print-area .print-sheet.margin-estreita { padding: 10mm 12mm 15mm; }
      #print-area .print-sheet.margin-normal { padding: 15mm 18mm 19mm; }
      #print-area .print-sheet.margin-ampla { padding: 21mm 23mm 23mm; }
      #print-area .print-content { height: 100%; min-height: 0; box-sizing: border-box; padding-bottom: 9mm; overflow: hidden; display: flow-root; }
      #print-area .print-overflow-badge { display: none !important; }
      #print-area .student-line { display: grid !important; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr) !important; grid-auto-flow: row !important; gap: .7rem 1rem !important; width: 100% !important; }
      #print-area .student-line > div { min-width: 0 !important; overflow-wrap: anywhere !important; }
      #print-area .print-footer { bottom: 5mm; padding-inline: 12mm; }
      #print-area .margin-normal .print-footer { padding-inline: 18mm; }
      #print-area .margin-ampla .print-footer { padding-inline: 23mm; }
      .question-print, .answer-key-row, .question-visual { page-break-inside: avoid; break-inside: avoid; }
      #print-area .diagnostic-print-chart{break-inside:avoid;page-break-inside:avoid;margin:.7rem 0}
      #print-area .diagnostic-print-chart svg{min-width:0!important;width:100%!important;max-height:175mm}
      #print-area .diagnostic-print-table{break-inside:auto}.diagnostic-print-table tr{break-inside:avoid;page-break-inside:avoid}
    }


    /* Módulo de folhas de respostas */
    .answer-sheet-settings { display:grid; gap:1rem; }
    .answer-sheet-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.8rem; margin-top:1rem; }
    .answer-sheet-summary > div { border:1px solid var(--border); border-radius:16px; padding:.85rem; background:#f8fafc; }
    .answer-sheet-summary span { display:block; color:var(--muted); font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
    .answer-sheet-summary strong { display:block; margin-top:.3rem; color:var(--text); font-size:1.08rem; }
    .application-list { display:grid; gap:.8rem; }
    .application-card { border:1px solid var(--border); border-radius:18px; padding:1rem; background:#fff; }
    .application-card-current { border-color:#7c3aed; box-shadow:0 0 0 3px rgba(124,58,237,.08); }
    .answer-preview { display:grid; gap:1.25rem; align-items:start; overflow:auto; padding:.8rem; background:#dfe6ef; border-radius:20px; }
    .answer-sheet-document { display:grid; gap:1.2rem; justify-content:center; }
    .answer-sheet-page { position:relative; width:210mm; min-height:297mm; padding:14mm 16mm 16mm; background:#fff; color:#111827; box-shadow:0 16px 36px rgba(15,23,42,.18); font-family:Arial,sans-serif; overflow:hidden; }
    .answer-sheet-page.compact { padding:11mm 14mm 14mm; }
    .omr-marker { position:absolute; width:8mm; height:8mm; background:#000; }
    .omr-marker.tl { top:6mm; left:6mm; } .omr-marker.tr { top:6mm; right:6mm; }
    .omr-marker.bl { bottom:6mm; left:6mm; } .omr-marker.br { bottom:6mm; right:6mm; }
    .answer-sheet-header { display:grid; grid-template-columns:1fr 38mm; gap:8mm; align-items:start; border-bottom:2px solid #111827; padding-bottom:4mm; }
    .answer-sheet-school { font-size:10pt; font-weight:700; text-transform:uppercase; }
    .answer-sheet-header h1 { margin:1.5mm 0 1mm; font-size:18pt; line-height:1.1; }
    .answer-sheet-subtitle { font-size:10pt; color:#374151; }
    .answer-sheet-qr { width:36mm; height:36mm; border:1px solid #111827; padding:1.5mm; display:flex; align-items:center; justify-content:center; background:#fff; }
    .answer-sheet-qr svg { width:100%; height:100%; display:block; }
    .answer-sheet-id-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:3mm; margin:4mm 0 3mm; font-size:10pt; }
    .answer-sheet-id { border:1px solid #111827; min-height:10mm; padding:2mm 2.5mm; }
    .answer-sheet-code-line { display:flex; flex-wrap:wrap; gap:3mm 8mm; padding:2.5mm 0; border-top:1px solid #9ca3af; border-bottom:1px solid #9ca3af; font-size:9pt; }
    .answer-sheet-instructions { margin:3mm 0; padding:2.5mm 3mm; border:1px solid #9ca3af; background:#f9fafb; font-size:9pt; line-height:1.35; }
    .mark-example { display:inline-flex; align-items:center; gap:1.5mm; margin-left:2mm; }
    .mark-example .filled { width:5.5mm; height:5.5mm; border-radius:50%; background:#111; display:inline-block; }
    .omr-table { width:100%; border-collapse:collapse; table-layout:fixed; margin-top:3mm; }
    .omr-table th, .omr-table td { border:1px solid #111827; text-align:center; padding:1.7mm 1mm; }
    .omr-table th { background:#e5e7eb; font-size:9pt; }
    .omr-table td:first-child { width:14mm; font-weight:800; font-size:10pt; }
    .omr-option-cell { width:24mm; }
    .omr-bubble { display:inline-flex; align-items:center; justify-content:center; width:7mm; height:7mm; border:1.3px solid #111827; border-radius:50%; font-size:8.5pt; font-weight:700; background:#fff; }
    .answer-sheet-page.compact .omr-table th, .answer-sheet-page.compact .omr-table td { padding:1.2mm .8mm; }
    .answer-sheet-page.compact .omr-bubble { width:6.3mm; height:6.3mm; }
    .answer-sheet-footer { position:absolute; left:16mm; right:16mm; bottom:8mm; display:flex; justify-content:space-between; gap:8mm; border-top:1px solid #9ca3af; padding-top:2mm; font-size:8pt; color:#374151; }
    .answer-sheet-note { margin-top:3mm; font-size:8pt; color:#4b5563; }
    .manifest-box { border:1px dashed #7c3aed; border-radius:16px; padding:1rem; background:#f5f3ff; color:#4c1d95; }
    .manifest-box strong { color:#5b21b6; }
    @media (max-width:900px){ .answer-sheet-summary{grid-template-columns:1fr 1fr;} .answer-sheet-page{transform-origin:top left;} }
    @media print {
      .answer-sheet-document { display:block; }
      .answer-sheet-page { width:210mm; min-height:297mm; margin:0; box-shadow:none; break-after:page; page-break-after:always; }
      .answer-sheet-page:last-child { break-after:auto; page-break-after:auto; }
      .answer-sheet-footer { left:16mm; right:16mm; }
    }


    /* Correção por imagem — etapas A e B */
    .correction-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:1rem; align-items:start; }
    .scan-upload-zone { border:2px dashed #93a4b8; border-radius:18px; padding:1.15rem; background:#f8fafc; text-align:center; }
    .scan-upload-zone strong { display:block; color:#1e3a8a; margin-bottom:.35rem; }
    .scan-upload-zone p { margin:.25rem 0 .9rem; color:var(--muted); line-height:1.5; }
    .scan-actions { display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center; }
    .scan-actions label { display:inline-flex; align-items:center; justify-content:center; border-radius:999px; padding:.78rem 1.05rem; font-weight:800; cursor:pointer; color:white; background:var(--primary); }
    .scan-actions label:hover { background:var(--primary-dark); }
    .scan-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.7rem; margin:1rem 0; }
    .scan-summary > div { border:1px solid #d9e2ec; border-radius:15px; padding:.75rem; background:#fff; }
    .scan-summary span { display:block; color:var(--muted); font-size:.73rem; font-weight:900; text-transform:uppercase; letter-spacing:.04em; }
    .scan-summary strong { display:block; margin-top:.25rem; font-size:.96rem; }
    .scan-canvas-card { border:1px solid #cbd5e1; border-radius:18px; padding:.85rem; background:#0f172a; color:white; }
    .scan-canvas-card h3 { margin:0 0 .6rem; font-size:1rem; }
    .scan-canvas-card canvas { display:block; width:100%; height:auto; max-height:72vh; object-fit:contain; background:#fff; border-radius:10px; cursor:crosshair; }
    .scan-canvas-card .empty-scan { min-height:260px; display:grid; place-items:center; color:#cbd5e1; text-align:center; padding:1rem; }
    .scan-help { margin:.65rem 0 0; color:#cbd5e1; font-size:.84rem; line-height:1.45; }
    .scan-identification { border:1px solid #c4b5fd; border-radius:18px; padding:1rem; background:#f5f3ff; }
    .scan-identification h3 { margin:0 0 .65rem; color:#5b21b6; }
    .scan-identification dl { display:grid; grid-template-columns:max-content 1fr; gap:.38rem .8rem; margin:0; font-size:.92rem; }
    .scan-identification dt { color:#6b7280; font-weight:800; }
    .scan-identification dd { margin:0; color:#312e81; font-weight:700; overflow-wrap:anywhere; }
    .scan-log { display:grid; gap:.5rem; margin-top:.8rem; }
    .scan-log-row { display:flex; gap:.65rem; align-items:flex-start; border:1px solid #d9e2ec; border-radius:14px; padding:.7rem .8rem; background:#fff; }
    .scan-log-dot { flex:0 0 10px; width:10px; height:10px; border-radius:50%; margin-top:.32rem; background:#94a3b8; }
    .scan-log-row.ok .scan-log-dot { background:#059669; }
    .scan-log-row.warn .scan-log-dot { background:#d97706; }
    .scan-log-row.error .scan-log-dot { background:#dc2626; }
    .scan-log-row strong { display:block; font-size:.9rem; }
    .scan-log-row p { margin:.15rem 0 0; color:var(--muted); font-size:.84rem; line-height:1.4; }
    .manual-points { display:grid; grid-template-columns:repeat(4,1fr); gap:.5rem; margin-top:.7rem; }
    .manual-points span { border-radius:10px; padding:.48rem; background:#e2e8f0; color:#475569; text-align:center; font-size:.76rem; font-weight:900; }
    .manual-points span.active { background:#dbeafe; color:#1d4ed8; }
    .manual-points span.done { background:#d1fae5; color:#047857; }
    .raw-qr { width:100%; min-height:72px; resize:vertical; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:.78rem; }
    .omr-reader-panel { margin-top:1rem; border:1px solid #bfdbfe; border-radius:20px; padding:1rem; background:linear-gradient(135deg,#eff6ff,#f8fafc); }
    .omr-reader-panel h3 { margin:0; color:#1e3a8a; }
    .omr-reader-panel > p { margin:.35rem 0 .9rem; color:#475569; line-height:1.5; }
    .omr-reader-controls { display:grid; grid-template-columns:minmax(190px,.55fr) minmax(0,1.45fr); gap:.8rem; align-items:end; }
    .omr-grid-status { display:grid; grid-template-columns:repeat(4,1fr); gap:.5rem; margin:.75rem 0; }
    .omr-grid-status span { border-radius:10px; padding:.5rem; background:#e2e8f0; color:#475569; text-align:center; font-size:.76rem; font-weight:900; }
    .omr-grid-status span.active { background:#dbeafe; color:#1d4ed8; }
    .omr-grid-status span.done { background:#d1fae5; color:#047857; }
    .omr-reader-summary { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.65rem; margin:.85rem 0; }
    .omr-reader-summary > div { border:1px solid #d9e2ec; border-radius:14px; padding:.7rem; background:#fff; }
    .omr-reader-summary span { display:block; color:#64748b; font-size:.7rem; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }
    .omr-reader-summary strong { display:block; margin-top:.22rem; color:#0f172a; font-size:1.05rem; }
    .omr-grid-info { border:1px solid #cbd5e1; border-radius:14px; padding:.72rem .8rem; background:#fff; color:#475569; font-size:.86rem; line-height:1.45; }
    .omr-results-wrap { margin-top:.8rem; overflow:auto; border:1px solid #cbd5e1; border-radius:16px; background:#fff; }
    .omr-results-table { width:100%; min-width:780px; border-collapse:collapse; }
    .omr-results-table th,.omr-results-table td { padding:.62rem .58rem; border-bottom:1px solid #e2e8f0; text-align:center; font-size:.84rem; }
    .omr-results-table th { position:sticky; top:0; z-index:1; background:#eaf2ff; color:#1e3a8a; font-size:.75rem; letter-spacing:.035em; text-transform:uppercase; }
    .omr-results-table td:first-child,.omr-results-table th:first-child { text-align:left; font-weight:800; }
    .omr-results-table tr:last-child td { border-bottom:0; }
    .omr-score { display:inline-flex; min-width:48px; justify-content:center; border-radius:999px; padding:.25rem .42rem; background:#f1f5f9; color:#475569; font-variant-numeric:tabular-nums; font-weight:800; }
    .omr-score.high { background:#dbeafe; color:#1d4ed8; }
    .omr-result-badge { display:inline-flex; align-items:center; justify-content:center; border-radius:999px; padding:.3rem .58rem; font-size:.75rem; font-weight:900; white-space:nowrap; }
    .omr-result-badge.marked { background:#d1fae5; color:#047857; }
    .omr-result-badge.blank { background:#e2e8f0; color:#475569; }
    .omr-result-badge.multiple { background:#fee2e2; color:#b91c1c; }
    .omr-result-badge.uncertain { background:#fef3c7; color:#92400e; }
    .omr-confidence { font-variant-numeric:tabular-nums; font-weight:800; color:#475569; }
    .omr-empty-result { padding:1rem; text-align:center; color:#64748b; }
    /* Conferência e resultado — etapa C */
    .review-panel { margin-top:1rem; border:1px solid #c4b5fd; border-radius:20px; padding:1rem; background:linear-gradient(135deg,#faf5ff,#f8fafc); }
    .review-panel h3 { margin:0; color:#5b21b6; }
    .review-panel > p { margin:.35rem 0 .9rem; color:#475569; line-height:1.5; }
    .review-toolbar { display:flex; flex-wrap:wrap; gap:.65rem; align-items:center; margin-bottom:.8rem; }
    .review-summary { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:.6rem; margin:.8rem 0; }
    .review-summary > div { border:1px solid #ddd6fe; border-radius:14px; padding:.68rem; background:#fff; }
    .review-summary span { display:block; color:#6b7280; font-size:.68rem; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }
    .review-summary strong { display:block; margin-top:.22rem; color:#312e81; font-size:1.04rem; }
    .review-table-wrap { overflow:auto; border:1px solid #d8b4fe; border-radius:16px; background:#fff; }
    .review-table { width:100%; min-width:1030px; border-collapse:collapse; }
    .review-table th,.review-table td { padding:.58rem .52rem; border-bottom:1px solid #ede9fe; text-align:center; vertical-align:middle; font-size:.82rem; }
    .review-table th { position:sticky; top:0; z-index:2; background:#f3e8ff; color:#5b21b6; font-size:.72rem; letter-spacing:.035em; text-transform:uppercase; }
    .review-table td:first-child,.review-table th:first-child { text-align:left; font-weight:900; }
    .review-table tr:last-child td { border-bottom:0; }
    .review-crop { display:block; width:250px; max-height:74px; object-fit:contain; margin:auto; border:1px solid #cbd5e1; border-radius:9px; background:#fff; }
    .review-no-crop { display:inline-flex; align-items:center; justify-content:center; width:250px; min-height:48px; border:1px dashed #cbd5e1; border-radius:9px; color:#64748b; background:#f8fafc; font-size:.76rem; }
    .review-select { min-width:138px; padding:.5rem .55rem; border:1px solid #cbd5e1; border-radius:10px; background:#fff; font:inherit; font-weight:800; color:#0f172a; }
    .review-select.pending { border-color:#f59e0b; background:#fffbeb; color:#92400e; }
    .review-result { display:inline-flex; align-items:center; justify-content:center; border-radius:999px; padding:.28rem .56rem; font-size:.72rem; font-weight:900; white-space:nowrap; }
    .review-result.correct { background:#d1fae5; color:#047857; }
    .review-result.wrong { background:#fee2e2; color:#b91c1c; }
    .review-result.blank { background:#e2e8f0; color:#475569; }
    .review-result.cancelled { background:#e0e7ff; color:#4338ca; }
    .review-result.pending { background:#fef3c7; color:#92400e; }
    .saved-results { display:grid; gap:.75rem; margin-top:.8rem; }
    .saved-result-card { border:1px solid #d8b4fe; border-radius:16px; padding:.9rem; background:#fff; }
    .saved-result-card h4 { margin:.45rem 0 .25rem; }
    .saved-result-card p { margin:.18rem 0; color:#64748b; font-size:.86rem; }
    .review-empty { border:1px dashed #c4b5fd; border-radius:15px; padding:1rem; text-align:center; color:#6b7280; background:#fff; }
    @media (max-width:1100px){ .review-summary{grid-template-columns:repeat(4,1fr);} }
    @media (max-width:620px){ .review-summary{grid-template-columns:1fr 1fr;} .review-toolbar{align-items:stretch;} .review-toolbar button{width:100%;} }
    @media (max-width:1000px){ .correction-grid{grid-template-columns:1fr;} .scan-summary{grid-template-columns:1fr 1fr;} .omr-reader-summary{grid-template-columns:repeat(3,1fr);} }
    @media (max-width:620px){ .scan-summary,.manual-points,.omr-grid-status,.omr-reader-summary,.omr-reader-controls{grid-template-columns:1fr;} .scan-identification dl{grid-template-columns:1fr;} }

  

    /* Etapa D — processamento em lote e relatórios */
    .batch-toolbar,.report-toolbar{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(180px,.8fr) auto;gap:.8rem;align-items:end}
    .batch-drop{border:2px dashed #94a3b8;border-radius:20px;padding:1.3rem;text-align:center;background:#f8fafc;transition:.18s ease}
    .batch-drop.dragover{border-color:#4f46e5;background:#eef2ff;transform:translateY(-1px)}
    .batch-drop label{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.8rem 1.1rem;background:#2563eb;color:#fff;font-weight:800;cursor:pointer}
    .batch-drop p{margin:.7rem 0 0;color:#64748b}
    .batch-summary,.report-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.7rem;margin:1rem 0}
    .batch-summary>div,.report-summary>div{padding:1rem;border:1px solid #dbe3ef;border-radius:18px;background:#fff}
    .batch-summary span,.report-summary span{display:block;color:#64748b;font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
    .batch-summary strong,.report-summary strong{display:block;margin-top:.3rem;font-size:1.45rem;color:#0f172a}
    .batch-table-wrap,.report-table-wrap{overflow:auto;border:1px solid #dbe3ef;border-radius:18px;background:#fff}
    .batch-table,.report-table{width:100%;border-collapse:collapse;min-width:800px}
    .batch-table th,.batch-table td,.report-table th,.report-table td{padding:.75rem .8rem;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:middle}
    .batch-table th,.report-table th{background:#f8fafc;color:#475569;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;position:sticky;top:0;z-index:1}
    .batch-status{display:inline-flex;border-radius:999px;padding:.3rem .62rem;font-size:.75rem;font-weight:800;white-space:nowrap}
    .batch-status.waiting{background:#e2e8f0;color:#334155}.batch-status.processing{background:#dbeafe;color:#1d4ed8}.batch-status.saved{background:#dcfce7;color:#166534}.batch-status.review{background:#fef3c7;color:#92400e}.batch-status.error{background:#fee2e2;color:#991b1b}
    .report-progress{width:130px;height:10px;border-radius:999px;background:#e2e8f0;overflow:hidden}.report-progress>span{display:block;height:100%;background:#4f46e5;border-radius:inherit}
    .report-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin:.9rem 0}.report-tab{box-shadow:none;background:#e2e8f0;color:#334155}.report-tab.active{background:#4f46e5;color:#fff}
    .report-pane{display:none}.report-pane.active{display:block}
    .report-empty{padding:1.2rem;text-align:center;color:#64748b}
    .student-status{font-weight:800}.student-status.complete{color:#166534}.student-status.partial{color:#92400e}.student-status.none{color:#64748b}
    .batch-note{padding:.9rem 1rem;border-radius:16px;background:#eef2ff;color:#3730a3;margin-top:.8rem;line-height:1.55}
    .report-meta{color:#64748b;font-size:.86rem}
    .diagnostic-toolbar{display:grid;grid-template-columns:minmax(190px,1.1fr) minmax(190px,1.1fr) minmax(160px,.8fr) repeat(3,minmax(120px,.65fr));gap:.75rem;align-items:end;margin:1rem 0}
    .diagnostic-actions{display:flex;gap:.55rem;flex-wrap:wrap;margin:.75rem 0 1rem}
    .diagnostic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1rem 0}
    .diagnostic-card{border:1px solid #dbe3ef;border-radius:20px;background:#fff;padding:1rem;min-width:0}
    .diagnostic-card h3{margin:0;color:#0f172a}.diagnostic-card p{margin:.35rem 0 0;color:#64748b}
    .diagnostic-chart{margin-top:.85rem;overflow:auto;border:1px solid #e2e8f0;border-radius:16px;background:#fff;padding:.45rem}
    .diagnostic-chart svg{display:block;width:100%;min-width:720px;height:auto}
    .diagnostic-legend{display:flex;gap:.85rem;flex-wrap:wrap;margin-top:.7rem;color:#475569;font-size:.82rem}
    .diagnostic-legend span{display:inline-flex;gap:.35rem;align-items:center}.diagnostic-swatch{width:12px;height:12px;border-radius:3px;display:inline-block}
    .diagnostic-note{padding:.75rem .85rem;border-radius:14px;background:#eef2ff;color:#3730a3;font-size:.9rem;margin:.75rem 0}
    .diagnostic-status{display:inline-flex;align-items:center;border-radius:999px;padding:.28rem .58rem;font-size:.76rem;font-weight:900;white-space:nowrap}
    .diagnostic-status.consolidated{background:#dcfce7;color:#166534}.diagnostic-status.developing{background:#fef3c7;color:#92400e}.diagnostic-status.intervention{background:#fee2e2;color:#991b1b}.diagnostic-status.insufficient{background:#e2e8f0;color:#475569}
    .diagnostic-detail-table{min-width:980px}.diagnostic-detail-table td:nth-child(2){min-width:280px}
    .heatmap-wrap{margin-top:1rem;overflow:auto;border:1px solid #dbe3ef;border-radius:18px;background:#fff;max-height:640px}
    .heatmap-table{border-collapse:separate;border-spacing:0;min-width:100%;font-size:.82rem}
    .heatmap-table th,.heatmap-table td{border-right:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;padding:.55rem;text-align:center;min-width:82px}
    .heatmap-table th{position:sticky;top:0;background:#f8fafc;z-index:3;color:#475569}.heatmap-table th:first-child{left:0;z-index:5;min-width:190px;text-align:left}
    .heatmap-table td:first-child{position:sticky;left:0;background:#fff;z-index:2;text-align:left;min-width:190px}
    .heatmap-table tr:last-child td{border-bottom:0}.heatmap-table th:last-child,.heatmap-table td:last-child{border-right:0}
    .heatmap-cell{font-weight:900}.heatmap-cell small{display:block;font-weight:700;opacity:.78;margin-top:.15rem}
    .heat-consolidated{background:#dcfce7;color:#166534}.heat-developing{background:#fef3c7;color:#92400e}.heat-intervention{background:#fee2e2;color:#991b1b}.heat-insufficient{background:#e2e8f0;color:#475569}.heat-empty{background:#f8fafc;color:#94a3b8}
    .diagnostic-print-title{font-size:1.45rem;margin:0 0 .35rem}.diagnostic-print-meta{font-size:.9rem;color:#475569;margin-bottom:.7rem}.diagnostic-print-table{width:100%;border-collapse:collapse;font-size:8.5pt}.diagnostic-print-table th,.diagnostic-print-table td{border:1px solid #cbd5e1;padding:4px 5px;vertical-align:top}.diagnostic-print-table th{background:#f1f5f9;text-align:left}.diagnostic-print-chart svg{width:100%;height:auto;max-height:180mm}.diagnostic-print-heatmap{font-size:7.4pt}.diagnostic-print-heatmap th,.diagnostic-print-heatmap td{padding:3px;text-align:center}
    @media screen and (max-width:1050px){.diagnostic-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.diagnostic-grid{grid-template-columns:1fr}}
    @media screen and (max-width:620px){.diagnostic-toolbar{grid-template-columns:1fr}}
    @media(max-width:900px){.batch-toolbar,.report-toolbar{grid-template-columns:1fr}.batch-summary,.report-summary{grid-template-columns:repeat(2,1fr)}}

    /* Bloco A — matrizes pedagógicas */
    .matrix-tabs{display:flex;flex-wrap:wrap;gap:.55rem;margin:0 0 1rem;padding:.45rem;border:1px solid #dbe3ef;border-radius:18px;background:#f8fafc}
    .matrix-tab{box-shadow:none;background:#e2e8f0;color:#334155}
    .matrix-tab.active{background:#4f46e5;color:#fff}
    .matrix-pane{display:none}
    .matrix-pane.active{display:block}
    .matrix-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin:1rem 0}
    .matrix-summary>div{border:1px solid #dbe3ef;border-radius:16px;padding:.85rem;background:#fff}
    .matrix-summary span{display:block;color:#64748b;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
    .matrix-summary strong{display:block;margin-top:.25rem;font-size:1.25rem;color:#312e81}
    .matrix-source{margin-top:.55rem;font-size:.82rem;color:#64748b}
    .matrix-application-list{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.55rem}
    .matrix-relation{border-left:5px solid #8b5cf6}
    .matrix-relation.pending{border-left-color:#f59e0b}
    .pedagogical-link-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
    .pedagogical-link-grid .full{grid-column:1/-1}
    .cnca-check{align-items:flex-start}
    .cnca-check small{display:block;color:#64748b;margin-top:.22rem}
    .matrix-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-weight:900}
    @media screen and (max-width:900px){.matrix-summary{grid-template-columns:1fr 1fr}.pedagogical-link-grid{grid-template-columns:1fr}}


    .stats-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem;margin:.85rem 0}
    .stat-card{border:1px solid #dbe3ef;border-radius:16px;padding:.85rem;background:#fff;min-width:0}
    .stat-card strong{display:block;font-size:1.35rem;line-height:1.1;color:#312e81}
    .stat-card small{display:block;margin-top:.28rem;color:#64748b;line-height:1.35}
    @media screen and (max-width:1050px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
    @media screen and (max-width:620px){.stats-grid{grid-template-columns:1fr}}
    .quality-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.8rem;margin:1rem 0}
    .quality-summary .stat-card{min-height:112px}
    .quality-toolbar{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center;margin:.85rem 0}
    .quality-config{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;padding:1rem;border:1px solid #cbd5e1;border-radius:16px;background:#f8fafc}
    .quality-config label{display:flex;gap:.55rem;align-items:flex-start;font-weight:800;color:#334155}
    .quality-config small{display:block;color:#64748b;font-weight:500;margin-top:.15rem}
    .quality-grade{display:inline-flex;align-items:center;justify-content:center;min-width:52px;border-radius:999px;padding:.32rem .58rem;font-weight:900;font-size:.78rem}
    .quality-grade.good{background:#dcfce7;color:#166534}.quality-grade.warn{background:#fef3c7;color:#92400e}.quality-grade.bad{background:#fee2e2;color:#991b1b}
    .quality-status{display:inline-flex;border-radius:999px;padding:.3rem .58rem;font-size:.76rem;font-weight:900;white-space:nowrap}
    .quality-status.review{background:#fef3c7;color:#92400e}.quality-status.approved{background:#dcfce7;color:#166534}.quality-status.archived{background:#e2e8f0;color:#475569}
    .quality-issue-list{display:flex;flex-wrap:wrap;gap:.38rem;margin-top:.65rem}
    .quality-issue{display:inline-flex;border-radius:999px;padding:.28rem .52rem;font-size:.73rem;font-weight:800}
    .quality-issue.critical{background:#fee2e2;color:#991b1b}.quality-issue.warning{background:#fef3c7;color:#92400e}.quality-issue.info{background:#e0f2fe;color:#075985}
    .quality-card{border-left:5px solid #cbd5e1}.quality-card.has-critical{border-left-color:#ef4444}.quality-card.has-warning{border-left-color:#f59e0b}.quality-card.is-approved{border-left-color:#22c55e}.quality-card.is-archived{opacity:.72}
    .quality-card-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:start}
    .quality-selects{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));gap:.55rem;margin-top:.75rem}
    .quality-selects label{font-size:.75rem;font-weight:900;color:#475569}.quality-selects select{margin-top:.25rem}
    .answer-distribution{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem;margin-top:1rem}
    .answer-bar{border:1px solid #cbd5e1;border-radius:14px;padding:.75rem;background:#fff}.answer-bar strong{display:flex;justify-content:space-between;gap:.5rem}.answer-track{height:10px;background:#e2e8f0;border-radius:999px;overflow:hidden;margin-top:.5rem}.answer-fill{height:100%;background:#4f46e5;border-radius:999px}
    .quality-editor{margin-top:1rem;border-color:#c4b5fd;background:#faf5ff}
    .quality-editor textarea{min-height:90px}
    .quality-hidden{display:none!important}
    @media screen and (max-width:1100px){.quality-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}
    @media screen and (max-width:760px){.quality-summary,.answer-distribution,.quality-selects{grid-template-columns:1fr}.quality-card-grid{grid-template-columns:1fr}}


    .source-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.8rem;margin:1rem 0}
    .source-card{border-left:5px solid #94a3b8}.source-card.confirmed{border-left-color:#16a34a}.source-card.review{border-left-color:#f59e0b}.source-card.mismatch{border-left-color:#dc2626}.source-card.archived{opacity:.76}
    .source-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1rem;margin:.75rem 0;padding:.75rem;border-radius:12px;background:#f8fafc;border:1px solid #e2e8f0}.source-meta div{min-width:0}.source-meta strong{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b}.source-meta span{display:block;margin-top:.14rem;overflow-wrap:anywhere}
    .source-status{display:inline-flex;border-radius:999px;padding:.3rem .58rem;font-size:.76rem;font-weight:900}.source-status.confirmed{background:#dcfce7;color:#166534}.source-status.review{background:#fef3c7;color:#92400e}.source-status.mismatch{background:#fee2e2;color:#991b1b}.source-status.partial{background:#e0f2fe;color:#075985}
    .rights-note{margin-top:.7rem;padding:.7rem;border-left:4px solid #6366f1;background:#eef2ff;border-radius:10px;font-size:.86rem;color:#312e81}
    @media screen and (max-width:1100px){.source-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}
    @media screen and (max-width:760px){.source-summary,.source-meta{grid-template-columns:1fr}}

      .source-type-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: .8rem; }
    .q2-progress-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.8rem;margin-top:1rem; }
    .q2-progress-card { border:1px solid #cbd5e1;border-radius:14px;padding:1rem;background:#fff; }
    .q2-progress-card strong { display:block;font-size:1.25rem;margin-bottom:.25rem; }
    .q2-spec-list details { border:1px solid #dbe3ee;border-radius:12px;padding:.8rem 1rem;background:#fff;margin-top:.65rem; }
    .q2-spec-list summary { cursor:pointer;font-weight:700; }


    /* v19.22 — correção do menu de administração avançada */
    .tabs{
      align-items:center;
      position:relative;
      z-index:1000;
      overflow:visible;
      isolation:isolate;
      -webkit-backdrop-filter:none;
      backdrop-filter:none;
      background:rgba(255,255,255,.96);
    }
    .view{position:relative;z-index:1}
    .admin-nav{position:relative;display:inline-block;z-index:1001}
    .admin-nav>summary{list-style:none;cursor:pointer;border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:999px;padding:.7rem 1rem;font-weight:800;white-space:nowrap;outline-offset:3px}
    .admin-nav>summary::-webkit-details-marker{display:none}
    .admin-nav>summary:focus-visible{outline:3px solid rgba(79,70,229,.35)}
    .admin-nav[open]>summary{background:#eef2ff;border-color:#a5b4fc;color:#3730a3}
    .admin-nav-menu{
      position:absolute;
      right:0;
      top:calc(100% + .45rem);
      z-index:1002;
      min-width:280px;
      max-width:min(360px,calc(100vw - 2rem));
      padding:.55rem;
      border:1px solid #cbd5e1;
      border-radius:16px;
      background:#fff;
      box-shadow:0 18px 45px rgba(15,23,42,.22);
      display:grid;
      gap:.35rem;
    }
    .admin-nav-menu .tab-button,.admin-nav-menu button{width:100%;text-align:left;justify-content:flex-start;border-radius:10px}
    .home-primary-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-top:1.25rem}
    .home-primary-actions button{min-height:54px}
    .home-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}
    .hidden-counters{display:none!important}
    .advanced-block,.filter-more,.maintenance-history,.admin-note{border:1px solid #dbe3ee;border-radius:14px;background:#f8fafc;margin:1rem 0;padding:.2rem .9rem .9rem}
    .advanced-block>summary,.filter-more>summary,.maintenance-history>summary,.admin-note>summary{cursor:pointer;font-weight:900;color:#334155;padding:.8rem 0}
    .advanced-block[open],.filter-more[open],.maintenance-history[open],.admin-note[open]{background:#fff}
    .advanced-block.full,.filter-more.full{grid-column:1/-1}
    .compact-note{font-size:.86rem;color:#64748b;margin:.35rem 0 0}
    .compact-filters{margin-top:.5rem}
    .maintenance-history>.subpanel:first-of-type{margin-top:.25rem!important}
    .panel-header p:empty{display:none}
    @media screen and (max-width:900px){
      .home-primary-actions,.home-summary{grid-template-columns:1fr 1fr}
      .admin-nav{width:100%}
      .admin-nav>summary{width:max-content;max-width:100%}
      .admin-nav-menu{position:absolute;left:0;right:auto;top:calc(100% + .45rem);min-width:min(320px,calc(100vw - 3rem));max-width:calc(100vw - 3rem)}
    }
    @media screen and (max-width:620px){
      .home-primary-actions,.home-summary{grid-template-columns:1fr}
      .admin-nav-menu{min-width:calc(100vw - 3rem)}
    }



    /* v19.62 — central de aplicações, recuperação e vínculo seguro */
    .application-hub-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;margin:1rem 0}
    .application-hub-action{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:.35rem;min-height:112px;padding:1rem;border:1px solid var(--border);border-radius:18px;background:#fff;color:var(--text);text-align:left;cursor:pointer;box-shadow:0 8px 24px rgba(15,23,42,.04)}
    .application-hub-action:hover{border-color:#8b5cf6;box-shadow:0 10px 30px rgba(124,58,237,.10)}
    .application-hub-action strong{font-size:1rem}.application-hub-action span{font-size:.86rem;color:var(--muted);line-height:1.4}
    .application-hub-action.primary{background:linear-gradient(135deg,#6d28d9,#7c3aed);color:#fff;border-color:#6d28d9}.application-hub-action.primary span{color:#ede9fe}
    .application-central-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin:.9rem 0}
    .application-central-summary>div{border:1px solid var(--border);border-radius:14px;padding:.75rem;background:#f8fafc}.application-central-summary span{display:block;color:var(--muted);font-size:.76rem}.application-central-summary strong{font-size:1.18rem}
    .application-card .application-meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.55rem}.application-card .application-progress{height:8px;border-radius:999px;background:#e2e8f0;overflow:hidden;margin-top:.65rem}.application-card .application-progress>span{display:block;height:100%;background:linear-gradient(90deg,#7c3aed,#2563eb)}
    .application-status{display:inline-flex;align-items:center;border-radius:999px;padding:.22rem .55rem;font-size:.72rem;font-weight:800;background:#ede9fe;color:#5b21b6}.application-status.prepared{background:#dbeafe;color:#1d4ed8}.application-status.confirmed{background:#dcfce7;color:#166534}.application-status.recovered{background:#fef3c7;color:#92400e}.application-status.partial{background:#ffedd5;color:#9a3412}.application-status.complete{background:#dcfce7;color:#166534}
    .recovery-panel{border:2px solid #c4b5fd;background:linear-gradient(180deg,#faf5ff,#fff);border-radius:20px;padding:1rem;margin-top:1rem}.recovery-panel[hidden]{display:none}.recovery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.recovery-assessment{border:1px solid var(--border);border-radius:16px;padding:.9rem;background:#fff;margin-top:.9rem}.recovery-assessment.confirmed{border-color:#86efac;background:#f0fdf4}.recovery-assessment.compatible{border-color:#fde68a;background:#fffbeb}.recovery-assessment.manual{border-color:#fdba74;background:#fff7ed}.recovery-assessment.invalid{border-color:#fca5a5;background:#fef2f2}.recovery-assessment h4{margin:0 0 .45rem}.recovery-checks{display:grid;gap:.3rem;margin:.5rem 0 0;padding:0;list-style:none;font-size:.85rem}.recovery-checks li::before{content:'•';font-weight:900;margin-right:.45rem}.recovery-found-data{border:1px dashed #a78bfa;background:#faf5ff;border-radius:14px;padding:.8rem;margin:.75rem 0;font-size:.86rem}.recovery-found-data dl{display:grid;grid-template-columns:max-content 1fr;gap:.3rem .7rem;margin:.4rem 0 0}.recovery-found-data dt{font-weight:800;color:#5b21b6}.recovery-found-data dd{margin:0;word-break:break-word}
    .application-search{display:flex;gap:.6rem;align-items:end;flex-wrap:wrap;margin:.75rem 0}.application-search .field{flex:1;min-width:230px}
    .inline-file-button{display:inline-flex;align-items:center;justify-content:center;padding:.72rem 1rem;border-radius:12px;border:1px solid var(--border);background:#fff;font-weight:800;cursor:pointer}.inline-file-button:hover{border-color:#7c3aed;color:#6d28d9}
    @media(max-width:850px){.application-hub-actions,.application-central-summary,.recovery-grid{grid-template-columns:1fr}.application-hub-action{min-height:auto}}


    /* v19.63 — aplicação imutável, snapshot e histórico */
    .application-freeze-state { margin: 1rem 0; border: 1px solid #cbd5e1; border-radius: 20px; padding: 1rem 1.1rem; background: #f8fafc; }
    .application-freeze-state.locked { border-color: #86efac; background: #f0fdf4; }
    .application-freeze-state.draft { border-color: #bfdbfe; background: #eff6ff; }
    .application-freeze-state .freeze-row { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
    .application-freeze-state h3 { margin:0 0 .3rem; font-size:1rem; }
    .application-freeze-state p { margin:.18rem 0; color:var(--muted); line-height:1.45; }
    .application-freeze-state .freeze-code { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-weight:900; color:#5b21b6; }
    .application-freeze-state .freeze-actions { display:flex; gap:.5rem; flex-wrap:wrap; }
    .answer-sheet-settings.is-locked { opacity:.84; }
    .answer-sheet-settings.is-locked input:disabled,.answer-sheet-settings.is-locked select:disabled,.answer-sheet-settings.is-locked textarea:disabled { color:#334155; background:#e2e8f0; cursor:not-allowed; }
    .application-history { margin-top:.75rem; border-top:1px dashed #cbd5e1; padding-top:.55rem; }
    .application-history summary { cursor:pointer; color:#475569; font-weight:800; }
    .application-history-list { display:grid; gap:.45rem; margin:.65rem 0 0; padding:0; list-style:none; }
    .application-history-list li { padding:.55rem .65rem; border-radius:12px; background:#f8fafc; color:#475569; font-size:.84rem; }
    .snapshot-chip { display:inline-flex; align-items:center; padding:.28rem .52rem; border-radius:999px; background:#ecfdf5; color:#047857; font-size:.76rem; font-weight:900; }
  

    /* v19.65 — desempenho do banco e fluxo guiado de aplicações */
    .question-results-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:.85rem 0;padding:.8rem .9rem;border:1px solid #cbd5e1;border-radius:16px;background:linear-gradient(135deg,#f8fafc,#eef2ff)}
    .question-results-toolbar>div:first-child{display:grid;gap:.18rem}.question-results-toolbar strong{color:#1e293b}.question-results-toolbar span{font-size:.78rem;color:#64748b}.question-results-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.question-results-actions label{font-size:.78rem;font-weight:800;color:#475569}.question-results-actions select{width:auto;min-width:72px;padding:.55rem .65rem}
    #lista-questoes .question-visual.compact img{content-visibility:auto;contain-intrinsic-size:500px 320px}
    .application-workflow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem;margin:.8rem 0 1rem;padding:.45rem;border:1px solid #dbe3ee;border-radius:18px;background:#f8fafc;position:sticky;top:.4rem;z-index:20;box-shadow:0 8px 20px rgba(15,23,42,.06)}
    .application-workflow button{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:.55rem;align-items:center;text-align:left;background:transparent;color:#334155;border:0;border-radius:13px;padding:.65rem;min-height:58px;box-shadow:none}.application-workflow button:hover,.application-workflow button.active{background:#fff;color:#5b21b6;box-shadow:0 5px 16px rgba(91,33,182,.10)}.application-workflow button>span{grid-row:1/3;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e2e8f0;font-weight:900}.application-workflow button.active>span{background:#7c3aed;color:#fff}.application-workflow button strong{font-size:.84rem}.application-workflow button small{font-size:.68rem;color:#64748b;font-weight:600}
    .application-search-advanced{display:grid;grid-template-columns:minmax(240px,2fr) minmax(170px,1fr) minmax(170px,1fr) auto;align-items:end}.application-search-advanced .field{min-width:0}.application-more{position:relative}.application-more summary{cursor:pointer;list-style:none;border:1px solid #cbd5e1;border-radius:10px;padding:.48rem .65rem;font-size:.78rem;font-weight:800;color:#475569}.application-more summary::-webkit-details-marker{display:none}.application-more>div{position:absolute;right:0;top:calc(100% + .35rem);z-index:30;display:grid;gap:.35rem;min-width:150px;padding:.5rem;border:1px solid #cbd5e1;border-radius:12px;background:#fff;box-shadow:0 14px 32px rgba(15,23,42,.18)}
    #painel-importar-correcao,#painel-conferencia-correcao,#painel-resultados-individuais{scroll-margin-top:92px}
    @media(max-width:900px){.application-workflow{grid-template-columns:repeat(2,minmax(0,1fr));position:static}.application-search-advanced{grid-template-columns:1fr 1fr}.application-search-advanced .field:first-child{grid-column:1/-1}}
    @media(max-width:620px){.question-results-toolbar,.question-results-actions{align-items:stretch}.question-results-actions{width:100%}.question-results-actions button{flex:1}.application-workflow,.application-search-advanced{grid-template-columns:1fr}.application-search-advanced .field:first-child{grid-column:auto}}
    .application-status.draft{background:#e0f2fe;color:#075985}

/* v19.66 — recuperação legada em lote */
.legacy-groups{display:grid;gap:.75rem;margin:1rem 0}.legacy-group-card{border:1px solid #cbd5e1;border-radius:14px;padding:.9rem;background:#f8fafc}.legacy-group-card.confirmed{border-color:#86efac;background:#f0fdf4}.legacy-group-card.warning{border-color:#fcd34d;background:#fffbeb}.legacy-group-card.invalid{border-color:#fca5a5;background:#fef2f2}.legacy-group-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.legacy-group-meta{display:flex;gap:.45rem;flex-wrap:wrap;margin:.55rem 0}.legacy-group-actions{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:.65rem;align-items:end}.legacy-group-actions select{width:100%}.batch-status.duplicate{background:#fef3c7;color:#92400e}.batch-status.grouped{background:#e0e7ff;color:#3730a3}.qr-reader-status{font-size:.84rem;color:#475569}.legacy-confidence{font-weight:800}.legacy-confidence.high{color:#166534}.legacy-confidence.medium{color:#92400e}.legacy-confidence.low{color:#b91c1c}@media(max-width:700px){.legacy-group-actions{grid-template-columns:1fr}.legacy-group-head{display:block}}


/* v19.67 — geometria, cantos parciais, rotação e alinhamento */
.correction-geometry-actions{align-items:center}
.correction-geometry-actions button{min-height:42px}
#correcao-canvas-original{touch-action:none;cursor:crosshair}
#correcao-canvas-original.is-dragging{cursor:grabbing}
.manual-points span.missing{border-color:#fecaca;background:#fff1f2;color:#991b1b}
.manual-points span.active{outline:2px solid #ef4444;outline-offset:2px}
.manual-points span.done{border-color:#86efac;background:#f0fdf4;color:#166534}
.scan-help.marker-ready{color:#166534;font-weight:700}
.scan-help.marker-partial{color:#92400e;font-weight:700}
@media(max-width:760px){.correction-geometry-actions button{flex:1 1 210px}}

/* v19.68 — QR offline e persistência da fila */
.batch-persistence{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1rem 0;padding:.9rem 1rem;border:1px solid #cbd5e1;border-radius:14px;background:#f8fafc}.batch-persistence strong{color:#0f172a}.batch-persistence p{margin:.2rem 0 0;color:#475569;font-size:.9rem}.batch-persistence.is-active{border-color:#818cf8;background:#eef2ff}.batch-persistence.is-warning{border-color:#f59e0b;background:#fffbeb}.batch-persistence.is-error{border-color:#ef4444;background:#fef2f2}@media(max-width:720px){.batch-persistence{align-items:flex-start;flex-direction:column}}

/* v19.69 — PDF digitalizado e fila mista */
.batch-import-status{margin:1rem 0;padding:.9rem 1rem;border:1px solid #cbd5e1;border-radius:14px;background:#f8fafc}.batch-import-status strong{color:#0f172a}.batch-import-status p{margin:.22rem 0 0;color:#475569;font-size:.9rem;line-height:1.45}.batch-import-status.is-working{border-color:#60a5fa;background:#eff6ff}.batch-import-status.is-success{border-color:#86efac;background:#f0fdf4}.batch-import-status.is-warning{border-color:#fbbf24;background:#fffbeb}.batch-import-status.is-error{border-color:#fca5a5;background:#fef2f2}
.batch-file-cell{display:flex;align-items:center;gap:.65rem;min-width:260px}.batch-file-cell>div{display:grid;gap:.18rem}.batch-file-cell small{color:#64748b;font-size:.72rem}.batch-thumbnail,.batch-thumbnail-placeholder{width:54px;height:72px;flex:0 0 54px;border-radius:8px;border:1px solid #cbd5e1;background:#fff;object-fit:cover}.batch-thumbnail-placeholder{display:grid;place-items:center;padding:.25rem;text-align:center;font-size:.62rem;color:#64748b}.batch-drop.is-importing{pointer-events:none;opacity:.68}.batch-table td:first-child{vertical-align:middle}
@media(max-width:720px){.batch-file-cell{min-width:210px}.batch-thumbnail,.batch-thumbnail-placeholder{width:44px;height:60px;flex-basis:44px}}


/* v19.70 — identificação, mapa de páginas e controle de qualidade */
.batch-quality-panel{margin:1rem 0;padding:1rem;border:1px solid #cbd5e1;border-radius:18px;background:linear-gradient(135deg,#f8fafc,#f5f3ff)}
.batch-quality-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.batch-quality-head h3{margin:0 0 .3rem}.batch-quality-head p{margin:0;color:#475569;line-height:1.45}
.batch-quality-filters{display:grid;grid-template-columns:minmax(240px,1.5fr) minmax(180px,.7fr);gap:.75rem;margin:.9rem 0}.batch-quality-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.55rem;margin:.8rem 0}.batch-quality-summary>div{padding:.7rem;border-radius:12px;background:#fff;border:1px solid #e2e8f0;display:grid;gap:.15rem}.batch-quality-summary span{font-size:.7rem;color:#64748b}.batch-quality-summary strong{font-size:1.15rem;color:#1e293b}
.batch-quality-groups{display:grid;gap:.65rem}.quality-group-card{padding:.85rem;border:1px solid #cbd5e1;border-radius:14px;background:#fff}.quality-group-card.good{border-color:#86efac}.quality-group-card.warning{border-color:#fbbf24;background:#fffbeb}.quality-group-card.error{border-color:#fca5a5;background:#fef2f2}.quality-group-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.quality-group-head p{margin:.2rem 0 0;color:#64748b;font-size:.82rem}.proof-signature{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-weight:900;padding:.28rem .55rem;border-radius:999px;background:#ede9fe;color:#5b21b6;white-space:nowrap}.page-map{margin:.55rem 0;padding:.5rem .6rem;border-radius:10px;background:#f8fafc;color:#475569;font-size:.82rem}.quality-group-alerts{display:flex;gap:.4rem;flex-wrap:wrap}.quality-missing{margin:.55rem 0 0;font-size:.78rem;color:#92400e}
.quality-badge{display:inline-flex;align-items:center;padding:.25rem .5rem;border-radius:999px;font-size:.72rem;font-weight:900;white-space:nowrap}.quality-badge.good{background:#dcfce7;color:#166534}.quality-badge.warning{background:#fef3c7;color:#92400e}.quality-badge.error{background:#fee2e2;color:#991b1b}.quality-badge.pending{background:#e2e8f0;color:#475569}.batch-quality-detail,.batch-subline{display:block;margin-top:.28rem;color:#64748b;font-size:.68rem;max-width:220px;line-height:1.35}.batch-table td:nth-child(5){min-width:150px}
@media(max-width:980px){.batch-quality-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.batch-quality-head{display:grid}.batch-quality-filters{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.batch-quality-summary,.batch-quality-filters{grid-template-columns:1fr 1fr}.quality-group-head{display:grid}}


/* v19.71 — OMR auditável e fila de exceções */
.omr-page-confidence{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;margin:.8rem 0}.omr-page-confidence>div{padding:.7rem;border:1px solid #cbd5e1;border-radius:13px;background:#fff}.omr-page-confidence span{display:block;font-size:.7rem;color:#64748b;font-weight:850;text-transform:uppercase;letter-spacing:.035em}.omr-page-confidence strong{display:block;margin-top:.22rem;color:#334155}.omr-page-confidence .confidence-ok{color:#047857}.omr-page-confidence .confidence-review{color:#b45309}
.review-exception-toolbar{display:grid;grid-template-columns:minmax(190px,.65fr) minmax(260px,1fr) minmax(280px,1.2fr);gap:.7rem;align-items:end;margin:.75rem 0;padding:.75rem;border:1px solid #ddd6fe;border-radius:14px;background:#fff}.review-keyboard-help{font-size:.77rem;line-height:1.45;color:#475569;padding:.55rem .65rem;border-radius:10px;background:#f8fafc}.review-table{min-width:1540px}.review-intensities{display:grid;gap:.25rem;min-width:205px}.review-intensity{display:grid;grid-template-columns:18px 1fr 45px;gap:.35rem;align-items:center;font-size:.68rem}.review-intensity>b{color:#334155}.review-intensity>i{height:7px;border-radius:999px;background:#e2e8f0;overflow:hidden}.review-intensity>i>em{display:block;height:100%;background:#6366f1;border-radius:999px}.review-intensity>small{font-variant-numeric:tabular-nums;color:#475569}.review-reason{display:block;margin-top:.4rem;min-width:190px;padding:.42rem .5rem;border:1px solid #cbd5e1;border-radius:8px;font-size:.75rem}.review-history-count{display:block;font-weight:850;color:#4338ca}.review-table tr.review-current td{background:#faf5ff}.omr-confidence.low{background:#fef3c7;color:#92400e}.compact-number{min-width:155px}.batch-quality-filters{grid-template-columns:minmax(220px,1.2fr) minmax(170px,.7fr) minmax(190px,.8fr)}
@media(max-width:1050px){.review-exception-toolbar{grid-template-columns:1fr 1fr}.review-keyboard-help{grid-column:1/-1}.omr-page-confidence{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.review-exception-toolbar,.omr-page-confidence{grid-template-columns:1fr}.batch-quality-filters{grid-template-columns:1fr}}


/* v19.72 — Folha de Respostas V2 e calibração */
.v2-intro{border-color:#0ea5e9;background:#f0f9ff;color:#0c4a6e}.answer-sheet-page.layout-v2{padding-bottom:28mm}.sheet-version-badge{position:absolute;top:1mm;right:1mm;padding:.6mm 1.2mm;border-radius:2mm;background:#111827;color:#fff;font-size:6.5pt;font-weight:900}.answer-sheet-qr{position:relative}.answer-sheet-qr.qr-disabled{font-size:8pt;color:#6b7280;text-align:center}.answer-sheet-v2-id{display:grid;grid-template-columns:2fr 1fr .65fr .8fr .9fr .85fr;gap:2mm;margin:3.5mm 0 2.5mm}.answer-sheet-v2-id>div{border:1px solid #111827;min-height:11mm;padding:1.4mm 1.8mm}.answer-sheet-v2-id span{display:block;font-size:6.5pt;text-transform:uppercase;font-weight:800;color:#4b5563}.answer-sheet-v2-id strong{display:block;margin-top:.8mm;font-size:9pt;line-height:1.1}.v2-code-line{font-size:7.6pt;gap:2mm 6mm}.v2-omr-table .omr-bubble{font-size:7.5pt}.answer-sheet-optical-wrap{position:absolute;left:60mm;bottom:15.5mm;width:90mm;height:8mm;text-align:center;font-size:5.8pt;font-weight:900;letter-spacing:.04em}.answer-sheet-optical-strip{display:grid;grid-template-columns:repeat(64,1fr);height:4.2mm;border:.3mm solid #111827;background:#fff}.answer-sheet-optical-strip .optical-cell{display:block;height:100%}.answer-sheet-optical-strip .optical-cell.dark{background:#000}.answer-sheet-optical-strip .optical-cell.light{background:#fff}.answer-sheet-optical-wrap>span,.answer-sheet-optical-wrap>small{display:block;line-height:1.5}.calibration-panel .button-file{display:inline-flex;cursor:pointer}.calibration-panel .button-file input{display:none}.calibration-results{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.65rem;margin:1rem 0}.calibration-results>div{padding:.75rem;border:1px solid #cbd5e1;border-radius:14px;background:#fff}.calibration-results span{display:block;color:#64748b;font-size:.7rem;font-weight:850;text-transform:uppercase}.calibration-results strong{display:block;margin-top:.3rem}.calibration-results small{display:block;margin-top:.25rem;color:#64748b}.calibration-preview[hidden]{display:none}.calibration-sheet{padding:14mm 16mm 28mm}.calibration-header{display:grid;grid-template-columns:1fr 38mm;gap:8mm;border-bottom:2px solid #111827;padding-bottom:4mm}.calibration-header h1{margin:1.5mm 0;font-size:20pt}.calibration-header p{font-size:9pt}.calibration-ruler.horizontal{width:100mm;height:8mm;margin:8mm auto 5mm;border-left:1mm solid #111;border-right:1mm solid #111;border-bottom:.5mm solid #111;text-align:center;font-size:8pt}.calibration-grid{display:grid;grid-template-columns:1fr 1fr;gap:6mm;margin-top:6mm}.calibration-grid section{border:1px solid #111827;padding:4mm;min-height:47mm}.calibration-grid h3{margin:0 0 4mm;font-size:12pt}.calibration-tones{display:grid;grid-template-columns:repeat(5,1fr);height:24mm;border:1px solid #111}.calibration-tones i{position:relative}.calibration-tones span{position:absolute;bottom:-5mm;left:0;right:0;text-align:center;font-style:normal;font-size:7pt}.calibration-bubbles{display:flex;justify-content:space-around;gap:3mm}.calibration-bubbles>div{text-align:center}.calibration-bubble{display:block;width:12mm;height:12mm;border:1.2mm solid #111;border-radius:50%;margin:auto}.calibration-bubble.fill-1{background:radial-gradient(circle,#aaa 0 35%,#fff 38%)}.calibration-bubble.fill-2{background:radial-gradient(circle,#555 0 55%,#fff 58%)}.calibration-bubble.fill-3{background:#111}.calibration-bubbles small{font-size:7pt}.calibration-lines{display:grid;gap:6mm}.calibration-lines i{display:block;background:#111}.calibration-cross{width:45mm;height:45mm;margin:auto;background:linear-gradient(90deg,transparent calc(50% - .3mm),#111 calc(50% - .3mm),#111 calc(50% + .3mm),transparent calc(50% + .3mm)),linear-gradient(transparent calc(50% - .3mm),#111 calc(50% - .3mm),#111 calc(50% + .3mm),transparent calc(50% + .3mm));border:1px solid #111}.calibration-optical{bottom:16mm}@media(max-width:1050px){.answer-sheet-v2-id{grid-template-columns:1fr 1fr 1fr}.calibration-results{grid-template-columns:1fr 1fr}}@media(max-width:620px){.calibration-results{grid-template-columns:1fr}}

/* v19.72.1 — correção organizada e mapa variável */
.manual-identification-panel{margin-top:1rem;padding:1rem;border:1px solid #d8d2ef;border-radius:16px;background:#faf9ff}.manual-identification-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:.8rem}.manual-identification-head p{margin:.25rem 0 0;color:#5e5872;font-size:.9rem}.manual-identification-grid{grid-template-columns:minmax(180px,1fr) minmax(150px,.65fr) minmax(260px,1.5fr)}.manual-question-map-field{grid-column:auto}.manual-identification-panel .footer-note{margin:.7rem 0 0}.batch-toolbar{scroll-margin-top:1rem}#painel-correcao-lote{scroll-margin-top:1rem}@media(max-width:900px){.manual-identification-grid{grid-template-columns:1fr}.manual-identification-head{flex-direction:column}}


/* v19.72.2 — correção em lote resumida e funcional */
.batch-workspace-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem;margin:1.1rem 0;padding:.45rem;border:1px solid #dbe3ee;border-radius:16px;background:#f8fafc}.batch-workspace-tab{display:grid;gap:.15rem;text-align:left;background:transparent;color:#334155;box-shadow:none;border:0;border-radius:12px;padding:.75rem}.batch-workspace-tab:hover,.batch-workspace-tab.active{background:#fff;color:#5b21b6;box-shadow:0 5px 16px rgba(91,33,182,.10)}.batch-workspace-tab strong{font-size:.88rem}.batch-workspace-tab small{font-size:.69rem;color:#64748b}.batch-workspace-pane{display:none}.batch-workspace-pane.active{display:block}.batch-pane-heading{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin:.8rem 0}.batch-pane-heading h3{margin:0 0 .25rem}.batch-pane-heading p{margin:0;color:#64748b;line-height:1.45}.batch-overview-summary,.batch-pending-summary,.batch-student-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.6rem;margin:.9rem 0}.batch-overview-summary>div,.batch-pending-summary>div,.batch-student-metrics>div{padding:.8rem;border:1px solid #e2e8f0;border-radius:13px;background:#fff}.batch-overview-summary span,.batch-pending-summary span,.batch-student-metrics span{display:block;font-size:.7rem;color:#64748b;text-transform:uppercase;font-weight:800}.batch-overview-summary strong,.batch-pending-summary strong,.batch-student-metrics strong{display:block;margin-top:.2rem;font-size:1.25rem}.batch-overview-groups{display:grid;gap:.7rem}.batch-overview-card{display:flex;justify-content:space-between;gap:1rem;padding:1rem;border:1px solid #dbe3ef;border-radius:16px;background:#fff}.batch-overview-card h4{margin:.45rem 0 .25rem}.batch-overview-card p{margin:0;color:#475569}.batch-summary.compact{margin-top:1rem}.batch-link-feedback{margin:.8rem 0;padding:.9rem 1rem;border-radius:14px;border:1px solid #86efac;background:#f0fdf4}.batch-link-feedback p{margin:.25rem 0;color:#166534}.v19722-group-actions{grid-template-columns:minmax(180px,1.2fr) minmax(150px,.8fr) minmax(120px,.45fr)}.batch-map-details{margin:.75rem 0;padding:.65rem .75rem;border:1px solid #dbe3ef;border-radius:12px;background:#fff}.batch-map-details summary{cursor:pointer;font-weight:800;color:#4338ca}.batch-map-details textarea{width:100%;margin-top:.55rem;resize:vertical}.batch-student-status{display:inline-flex;padding:.28rem .55rem;border-radius:999px;font-size:.74rem;font-weight:850}.batch-student-status.complete{background:#dcfce7;color:#166534}.batch-student-status.review,.batch-student-status.missing{background:#fef3c7;color:#92400e}.batch-student-status.processing{background:#dbeafe;color:#1d4ed8}.batch-student-status.partial{background:#ede9fe;color:#5b21b6}.batch-student-status.waiting,.batch-student-status.none{background:#e2e8f0;color:#475569}.batch-student-detail{margin-top:1rem;padding:1rem;border:1px solid #d8d2ef;border-radius:16px;background:#faf9ff}.batch-student-detail-head{display:flex;justify-content:space-between;gap:1rem}.batch-student-detail-head h4{margin:0}.batch-student-detail-head p{margin:.25rem 0 0;color:#64748b}.batch-student-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.batch-response-grid{display:flex;gap:.35rem;flex-wrap:wrap;margin:.8rem 0}.batch-response-grid span{padding:.3rem .48rem;border-radius:8px;background:#e2e8f0;font-size:.74rem;font-weight:800}.batch-response-grid span.acerto{background:#dcfce7;color:#166534}.batch-response-grid span.erro{background:#fee2e2;color:#991b1b}.batch-response-grid span.em-branco{background:#f1f5f9;color:#475569}.batch-technical-details{margin-top:.7rem;padding:.6rem .75rem;border:1px solid #dbe3ef;border-radius:12px;background:#fff}.batch-technical-details summary{cursor:pointer;font-weight:800;color:#475569}.batch-technical-details>div{padding:.5rem 0;border-bottom:1px solid #eef2f7}.batch-pending-list{display:grid;gap:.65rem}.batch-pending-card{display:flex;justify-content:space-between;gap:1rem;padding:.9rem;border:1px solid #dbe3ef;border-left:5px solid #f59e0b;border-radius:14px;background:#fff}.batch-pending-card.identificacao{border-left-color:#ef4444}.batch-pending-card.duplicata{border-left-color:#8b5cf6}.batch-pending-card.qualidade{border-left-color:#0ea5e9}.batch-pending-card h4{margin:.25rem 0}.batch-pending-card p{margin:0;color:#475569}.batch-pending-type{font-size:.68rem;text-transform:uppercase;font-weight:900;color:#92400e}.batch-pending-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.batch-files-actions{margin:.8rem 0}.batch-student-table{min-width:720px}
@media(max-width:980px){.batch-workspace-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.batch-overview-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.v19722-group-actions{grid-template-columns:1fr 1fr}.batch-overview-card{display:grid}}
@media(max-width:620px){.batch-workspace-tabs,.batch-overview-summary,.batch-pending-summary,.batch-student-metrics,.v19722-group-actions{grid-template-columns:1fr}.batch-pane-heading,.batch-student-detail-head,.batch-pending-card{display:grid}}


/* v19.72.4 — seleção flexível de participantes */
.participant-selection-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin:.7rem 0 .8rem}.participant-selection-intro p{margin:.25rem 0 0;color:var(--muted,#64748b);font-size:.9rem;max-width:64rem}.participant-selection-actions{display:flex;gap:.45rem;flex-wrap:wrap;justify-content:flex-end}.participant-selector{display:grid;gap:.65rem;margin:.55rem 0 1rem}.participant-class{border:1px solid #d9e0ea;border-radius:12px;background:#fff;overflow:hidden}.participant-class>summary{list-style:none;display:flex;align-items:center;gap:.65rem;padding:.75rem .85rem;cursor:pointer;background:#f8fafc}.participant-class>summary::-webkit-details-marker{display:none}.participant-class>summary:after{content:'▾';margin-left:auto;color:#64748b}.participant-class:not([open])>summary:after{content:'▸'}.participant-class-title{display:flex;flex-direction:column;min-width:0}.participant-class-title strong{font-size:.95rem}.participant-class-title small{color:#64748b}.participant-class-count{margin-left:auto;margin-right:.5rem;padding:.15rem .5rem;border-radius:999px;background:#e8eef8;font-size:.78rem;font-weight:700;white-space:nowrap}.participant-students{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.4rem;padding:.7rem}.participant-student{display:flex;align-items:flex-start;gap:.55rem;padding:.5rem .55rem;border-radius:8px}.participant-student:hover{background:#f8fafc}.participant-student span{display:flex;flex-direction:column}.participant-student small{color:#64748b}.participant-class input,.participant-student input{margin-top:.15rem}.participant-selection-summary{border:1px solid #dbeafe;background:#eff6ff;border-radius:10px;padding:.7rem .85rem;margin:.6rem 0 1rem;font-size:.9rem}.participant-selection-summary strong{font-weight:800}.participant-selector.is-locked{opacity:.7;pointer-events:none}.participant-legacy-controls[hidden]{display:none!important}@media(max-width:760px){.participant-selection-intro{flex-direction:column}.participant-selection-actions{justify-content:flex-start}.participant-students{grid-template-columns:1fr}}
