[hidden] { display: none !important; }
.entry-tools, .school-modal, #resumeScores { font-family: system-ui, -apple-system, "Segoe UI", sans-serif; }
.school-modal { width: min(460px, 94vw); max-height: 90vh; overflow: auto; margin: auto; padding: 24px; border: 1px solid #b8c9df; border-radius: 14px; color: var(--on-surface, #18283a); background: var(--surface, white); }
.school-modal::backdrop { background: #10203088; }
.school-modal label { display: block; margin: 12px 0; }
.school-modal input:not([type=checkbox]) { display: block; width: 100%; padding: 9px; box-sizing: border-box; border: 1px solid var(--outline); border-radius: 8px; background: var(--secondary); color: var(--on-surface); font: inherit; }
.school-modal button, .entry-tools button, .school-step-actions button { padding: 8px 12px; margin: 0; border-radius: 8px; border: 1px solid var(--outline, #c7d4e3); background: var(--surface, white); color: var(--on-surface, #18283a); font: inherit; font-size: 13px; cursor: pointer; }
.entry-tools { padding: 12px 16px; margin: 12px 0; border: 1px solid var(--grid, #c7d4e3); border-radius: 12px; background: var(--surface, white); width: 100%; max-width: 1050px; }
.entry-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.entry-tools input, .entry-tools select, #resumeSource, #resumeWork { padding: 8px 10px; max-width: 100%; border: 1px solid var(--outline, #c7d4e3); border-radius: 8px; color: var(--on-surface, #18283a); background: var(--secondary, #f5f7fa); font: inherit; font-size: 13px; min-height: 36px; }
.entry-tools details { margin-top: 10px; }
#studentMatching label { display: flex; justify-content: space-between; gap: 12px; margin: 6px 0; }
#binaryHelp, #journalContextHint { font-size: 13px; margin: 8px 0; }
.journal-difference { display: block; font-size: 10px; }
.binary-input { cursor: pointer; font-weight: 700; }
.binary-correct::after { content: '✓'; color: #197347; font-size: 11px; }
.binary-wrong::after { content: '×'; color: #ac2635; font-size: 11px; }
.score-input:focus-visible { outline: 3px solid #176fd1; outline-offset: -3px; }
.dim-filled { opacity: .45; }
.incomplete-status { color: var(--on-surface-variant); }
#resumeScores table { width: 100%; border-collapse: collapse; }
#resumeScores td { border: 1px solid #bdcbd9; padding: 7px; }
body.school-details-open .content > :not(#schoolDetails) { display: none !important; }
body.school-details-open .page-footer { display: none; }
body.school-details-open { max-height: 600px; overflow-y: auto; }
.school-step-actions { display: flex; justify-content: flex-end; gap: 8px; background: var(--surface, white); padding: 10px 0 0; }
#schoolDetails summary { cursor: pointer; }
.popup-journal-scores { max-height: 180px; overflow-y: auto; margin: 8px 0; }
.popup-journal-scores table { width: 100%; border-collapse: collapse; }
.popup-journal-scores td { padding: 6px; border-bottom: 1px solid #bdcbd9; }
.entry-basic { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.name-script-controls { display: inline-flex; gap: 3px; flex-shrink: 0; }
.entry-tools .name-script-controls button { min-height: 30px; min-width: 44px; padding: 4px 7px; white-space: nowrap; }
#entryProgress { margin-left: auto; padding: 6px 10px; border-radius: 8px; color: var(--primary-dark); background: var(--secondary); font-size: 13px; font-weight: 600; }
.advanced-panel { border-top: 1px solid var(--grid, var(--outline)); margin-top: 10px; padding-top: 8px; }
.advanced-panel > summary { cursor: pointer; color: var(--primary-dark); font-size: 13px; font-weight: 600; padding: 6px 0; }
.advanced-panel[open] > summary { margin-bottom: 10px; }
.control-hint { font-size: 12px; color: var(--on-surface-variant); margin: 8px 0; }
.quick-exam-editor { min-width:0; border:1px solid var(--outline-variant, #cad5e3); border-radius:10px; padding:10px; margin:10px 0 14px; }
.quick-exam-editor legend { font-size:13px; font-weight:600; padding:0 5px; }
.quick-directions { display:flex; align-items:center; gap:8px; font-size:13px; }
.quick-directions input { width:auto; margin:0; }
.quick-task-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.quick-task { min-width:0; display:grid; grid-template-columns:1fr 1.5fr; gap:6px; align-items:end; padding:8px; border-radius:8px; background:var(--secondary, #f2f6fb); color:var(--on-surface,#1a1c1e); }
.quick-task strong { grid-column:1/-1; font-size:12px; }
.quick-task label { min-width:0; display:grid; gap:4px; font-size:11px; }
.quick-task:not(:has(select)) label { grid-column:1/-1; }
.quick-task input, .quick-task select { width:100%; min-width:0; padding:7px 5px; font-size:12px; }
.quick-task input[aria-invalid="true"] { border-color:#c62828; }
.quick-task select[data-direction="B"] { border-color:#3b82c4; }
.quick-task select[data-direction="Q"] { border-color:#16816a; }
.quick-task select[data-direction="M"] { border-color:#8758b0; }
.quick-exam-totals { display:block; font-size:12px; font-weight:600; color:var(--primary-dark); margin-top:10px; line-height:1.6; }
.quick-direction-scores { margin-bottom:12px; }
.quick-score-toggle { display:flex; align-items:center; gap:6px; margin-bottom:8px; }
.quick-score-toggle input { width:auto; }
.quick-direction-scores .quick-task-list { grid-template-columns:repeat(3,minmax(0,1fr)); }
.quick-direction-scores label { min-width:0; font-size:12px; }
.quick-direction-scores input[type="number"] { width:100%; min-width:0; padding:8px; border:1px solid var(--outline,#c7c9cf); border-radius:8px; background:var(--surface,#fff); color:var(--on-surface,#1a1c1e); }
.quick-task input[readonly] { background:var(--surface,#edf3f8); color:var(--on-surface,#1a1c1e); font-weight:600; }
@media(max-width:380px) { .quick-task-list { grid-template-columns:1fr; } }
@media(pointer:coarse) { .quick-task input, .quick-task select { min-height:48px; font-size:16px; } }
.entry-tools button:disabled { opacity: .45; cursor: default; }
.entry-tools button:not(:disabled):hover, .school-modal button:hover { border-color: var(--primary); color: var(--primary-dark); }
.entry-tools button:focus-visible, .advanced-panel > summary:focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; }
.entry-tools .danger-action { color: var(--error); }
.entry-tools .success-action { color: var(--success); }
.school-step-actions .primary-action, .school-modal .primary-action { background: var(--primary); border-color: var(--primary); color: white; }
.school-modal button + button { margin-left: 8px; }
.resume-journal-panel > summary { cursor: pointer; color: var(--primary-dark); font-weight: 600; }
.resume-journal-panel label { display: block; margin: 12px 0; color: var(--on-surface-variant); }
.resume-journal-panel select { display: block; width: 100%; margin-top: 6px; }
.resume-journal-panel button { margin-top: 12px; padding: 8px 12px; border: 1px solid var(--outline); border-radius: 8px; background: var(--surface); color: var(--primary-dark); font: inherit; cursor: pointer; }
.entry-tools .entry-actions { margin: 10px 0; }
.entry-basic { gap: 8px; }
.entry-tools .tool-icon, .entry-settings-modal .tool-icon { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; min-width: 36px; padding: 0; }
.entry-basic .tool-field { display: inline-flex; align-items: center; gap: 6px; margin: 0; }
.entry-basic .search-field input { width: 165px; }
.entry-basic .filter-field select { width: 120px; }
.entry-basic .tool-field > svg { color: var(--on-surface-variant); flex-shrink: 0; }
.entry-tools .mode-switch { margin: 0; flex-shrink: 0; border-radius: 8px; }
.entry-tools .mode-chip { width: 36px; height: 34px; border: 0; border-radius: 0; }
.entry-tools .mode-chip.active { background: var(--secondary); color: var(--primary-dark); }
.entry-tools .mode-warn.active { color: #b46e00; }
.entry-tools .mode-strict.active { color: var(--success); }
.entry-settings-modal { width: min(560px, 94vw); }
.exam-reset-area { border-top: 1px solid var(--outline, #c7d4e3); margin-top: 18px; padding-top: 16px; }
.school-modal .danger-action { color: var(--error, #ba1a1a); }
.exam-reset-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; margin-top: 20px; }
.exam-reset-dialog:modal { overscroll-behavior: contain; }
.exam-reset-dialog::backdrop { overflow: hidden; overscroll-behavior: contain; }
.settings-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.settings-heading h2 { font-size: 18px; }
.settings-row-actions { display: flex; gap: 8px; margin-bottom: 18px; }
.settings-row-actions .success-action { color: var(--success); }
.settings-row-actions .danger-action { color: var(--error); }
.journal-settings-grid { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.journal-settings-grid label { flex: 1 1 180px; margin: 10px 0; }
.journal-settings-grid select { min-height: 36px; }
.entry-settings-modal summary { cursor: pointer; font-weight: 600; font-size: 14px; }
.row-action-buttons { display: flex; align-items: center; justify-content: center; gap: 2px; }
.row-action-buttons .icon-btn { width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; padding: 2px; }
.row-action-buttons .copy-row { color: #175ab0; background: #e8f1ff; }
.row-action-buttons .clear-row { color: #8a5200; background: #fff1d6; }
.row-action-buttons .delete { color: #b42336; background: #ffe8ec; }
.row-action-buttons .icon-btn:hover { filter: brightness(.92); }
.row-action-buttons .icon-btn:focus-visible { outline: 2px solid var(--primary); outline-offset: 1px; }
@media screen {
  .grid-tools { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 4px; padding-right: 6px; border-right: 1px solid var(--outline); }
  .grid-tools #copyCells { color: #175ab0; background: #e8f1ff; }
  .grid-tools #clearCells { color: #8a5200; background: #fff1d6; }
  .header-fill-all { display: flex; margin: 3px auto 0; padding: 0; }
  .fill-all-caption { display: block; font-size: 9px; line-height: 12px; font-weight: 400; }
  .header-fill-all:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
  .grid-tools button:disabled { opacity: .45; cursor: default; }
  .grid-tools button:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
  #gridSelectionStatus { min-width: 46px; font-size: 11px; white-space: nowrap; color: var(--on-surface-variant); }
  .scores-grid td.grid-selected { box-shadow: inset 0 0 0 2px #287bdf; }
  .scores-grid td.grid-selected input.score-input { background: #dbeafe !important; color: #143663 !important; }
  body.grid-selecting .scores-grid { -webkit-user-select: none; user-select: none; }
  [data-theme="dark"] .row-action-buttons .copy-row { background: #19395b; color: #a5d0ff; }
  [data-theme="dark"] .row-action-buttons .clear-row { background: #46351d; color: #ffce85; }
  [data-theme="dark"] .row-action-buttons .delete { background: #482431; color: #ffb1bf; }
  [data-theme="dark"] .grid-tools #copyCells { background: #19395b; color: #a5d0ff; }
  [data-theme="dark"] .grid-tools #clearCells { background: #46351d; color: #ffce85; }
  [data-theme="dark"] .scores-grid td.grid-selected input.score-input { background: #234a77 !important; color: #fff !important; }
}
.entry-tools #entrySettings { margin-left: 0; }
.entry-tools label { display: flex; align-items: center; gap: 8px; font-size: 13px; }
#journalControls > button { margin-bottom: 8px; }
#journalControls > select { margin: 0 6px 8px 0; }
.entry-tools .mode-switch { width: fit-content; margin-top: 12px; }
#binaryHelp:empty { display: none; }
.exam-extras { padding: 0 var(--pad-card-x, 14px) 10px; }
.exam-extras .input-group { margin-bottom: 8px; }
.exam-extras .input-group select, .school-modal select { display: block; width: 100%; min-height: 36px; padding: 8px 10px; border: 1px solid var(--outline); border-radius: 8px; background: var(--secondary); color: var(--on-surface); font: inherit; font-size: 13px; }
.exam-extras small { display: block; color: var(--on-surface-variant); font-size: 11px; margin-top: 5px; line-height: 1.4; }
.exam-extras #popupJournalScores { font-size: 12px; margin-bottom: 8px; }
.main-score-action { padding: 0; margin: 0 !important; }
.main-score-action .btn-secondary { width: 100%; min-height: 40px; background: var(--primary); color: white; border-color: var(--primary); }
body.school-details-open #schoolDetails .card-body { padding: 12px 14px; }
body.school-details-open #schoolDetails .input-group { margin-bottom: 10px; }
body.school-details-open #schoolDetails input { min-height: 34px; }
@media (max-width: 600px) { .entry-basic #entryProgress { font-size: 11px; } .entry-tools label { flex-wrap: wrap; } }
@media screen {
  body.compact-workspace { padding: 4px 8px; }
  .compact-workspace .top-bar { position: sticky; top: 0; z-index: 50; display: flex; flex-direction: row; align-items: center; gap: 6px; padding: 5px 8px; margin-bottom: 6px; border-radius: 8px; }
  .compact-workspace .top-title { font-size: 13px; gap: 5px; }
  .compact-workspace .top-title .brand-logo { width: 24px; height: 24px; }
  .compact-workspace .top-actions { gap: 5px; margin-left: auto; }
  .compact-workspace .top-actions .btn-sm { min-height: 30px; padding: 4px 8px; }
  .compact-workspace .top-actions .theme-toggle { width: 30px; height: 30px; }
  .compact-workspace .entry-tools { flex: 1 1 560px; max-width: none; width: auto; margin: 0; padding: 0; border: 0; box-shadow: none; border-radius: 0; }
  .compact-workspace .entry-basic { gap: 5px; flex-wrap: nowrap; align-items: center; }
  .compact-workspace .tool-icon, .compact-workspace .entry-tools .tool-icon { width: 30px; height: 30px; min-width: 30px; padding: 0; }
  .compact-workspace .top-bar > .tool-icon { display: inline-flex; align-items: center; justify-content: center; border-radius: 7px; }
  .compact-workspace .entry-tools .tool-field { flex-wrap: nowrap; gap: 4px; }
  .compact-workspace .entry-tools input, .compact-workspace .entry-tools select { height: 30px; min-height: 30px; padding: 4px 7px; font-size: 12px; }
  .compact-workspace .search-field input { width: 125px; }
  .compact-workspace .filter-field select { width: 98px; }
  .compact-workspace .entry-tools .mode-switch { display: inline-flex; flex-direction: row; align-items: center; margin: 0; height: 30px; border-radius: 7px; }
  .compact-workspace .entry-tools .mode-chip { width: 30px; min-width: 30px; height: 28px; margin: 0; padding: 0; background: var(--surface); color: var(--on-surface-variant); }
  .compact-workspace .entry-tools .mode-chip[aria-checked="true"] { color: white; box-shadow: inset 0 0 0 2px #ffffff44; }
  .compact-workspace .entry-tools .mode-warn[aria-checked="true"] { background: #ac6500; }
  .compact-workspace .entry-tools .mode-strict[aria-checked="true"] { background: #167248; }
  .compact-workspace #entryProgress { padding: 4px 7px; font-size: 11px; white-space: nowrap; }
  .compact-workspace .excel-title { padding: 6px 12px; font-size: 12px; }
  .compact-workspace .table-wrapper { max-height: none; overflow: visible; }
  .compact-workspace .scores-grid thead { position: sticky; inset-block-start: var(--workspace-header-height, 42px); z-index: 4; }
  .compact-workspace .scores-grid thead th { background: var(--secondary); box-shadow: inset 0 -1px var(--grid); }
  .compact-workspace .scores-grid :is(.score-input, .student-name-input) { scroll-margin-top: calc(var(--workspace-header-height, 42px) + var(--workspace-table-header-height, 60px) + 12px); }
  .compact-workspace .mode-hint:empty { display: none; }
  @media (max-width: 1250px) {
    .compact-workspace .entry-basic { flex-wrap: wrap; }
    .compact-workspace .entry-tools { order: 3; flex-basis: 100%; }
    .compact-workspace .top-actions { flex-wrap: nowrap; }
  }
  @media (max-width: 600px) {
    .compact-workspace .entry-basic { flex-wrap: wrap; }
    .compact-workspace .entry-basic .search-field { flex: 1; }
    .compact-workspace .entry-basic .search-field input { width: 100%; min-width: 75px; }
  }
}
@media print {
  .grid-tools, .header-fill-all, .fill-all-caption { display: none !important; }
  .entry-tools { display: none !important; }
  #tableBody tr[hidden] { display: table-row !important; }
  .dim-filled { opacity: 1; }
}
