/* App-specific compatibility + components (loads AFTER assets/styles.css) */

/* Layout helpers (legacy classes) */
.container{max-width:1100px;margin:0 auto;padding:16px}

/* 12-column grid used throughout the app */
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:12px}
.col-12{grid-column:span 12}
.col-8{grid-column:span 8}
.col-6{grid-column:span 6}
.col-4{grid-column:span 4}
/* legacy responsive aliases */
.col-md-6{grid-column:span 6}
.col-md-4{grid-column:span 4}
.col-md-8{grid-column:span 8}
@media (max-width:720px){
  .col-8,.col-6,.col-4,.col-md-8,.col-md-6,.col-md-4{grid-column:span 12}
}

/* Buttons + inputs (legacy .btn / .input used in PHP views) */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--blue);color:#fff;border:0;
  border-radius:12px;padding:10px 12px;font-weight:800;
  cursor:pointer;text-decoration:none;line-height:1;
}
.btn:hover{filter:brightness(1.03);text-decoration:none}
.btn.secondary{background:#fff;color:var(--blue);border:1px solid var(--border)}
.btn.danger{background:var(--danger)}
.btn.small{padding:7px 10px;border-radius:10px;font-size:14px}
.btn.utility-clear{
  background:#fff6e5;
  color:#8b5e00;
  border:1px solid #e8c884;
}
.btn.utility-manage{
  background:#e9f7f0;
  color:#206a4e;
  border:1px solid #9fd4ba;
}
.btn.preset-save-new{
  background:#8B5E00;
  color:#fff;
  border:1px solid #8B5E00;
}
.btn.preset-update-existing{
  background:#EEF8EC;
  color:#2F6F3E;
  border:1px solid #B9DDB0;
}
.btn.preset-update-existing:disabled{
  opacity:.48;
  cursor:not-allowed;
}

.input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:#fff}

/* Small tag used in some tables */
.tag{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;border:1px solid rgba(228,231,236,.8);background:rgba(71,142,79,.10);color:var(--blue)}
.tag.secondary{background:rgba(102,112,133,.08);color:var(--muted);border-color:rgba(102,112,133,.18)}

/* Notices (legacy card inline colors replaced by semantic flash) */
.flash{padding:10px 12px;border-radius:12px;margin:12px 0;border:1px solid rgba(228,231,236,.8)}
.flash.success{background:rgba(18,183,106,.08)}
.flash.error{background:rgba(180,35,24,.08)}
.flash.info{background:rgba(47,128,237,.08)}

/* Multi-selection fields: clear association between checkbox + label */
.multi-field{border:1px solid var(--border);border-radius:14px;padding:12px;margin:0;background:#fff}
.multi-field legend{padding:0 6px;font-weight:900;color:var(--text)}
.multi-field .hint{margin-top:6px}
.multi-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.multi-item{
  display:flex;align-items:flex-start;gap:10px;
  padding:10px 10px;border:1px solid rgba(228,231,236,.9);
  border-radius:12px;background:rgba(246,247,251,.6);
}
.multi-item input[type="checkbox"]{margin-top:2px;flex:0 0 auto;width:18px;height:18px}
.multi-item span{line-height:1.25}
.student-already-rated{
  opacity:.52;
  background:#f2f4f7;
  border-style:dashed;
}
.student-already-rated:hover,
.student-already-rated:focus-within{
  opacity:.9;
}
.student-entry-count{
  display:inline-flex;
  margin-left:3px;
  color:var(--muted);
  font-size:12px;
  font-weight:900;
}
.student-already-rated-hint{
  margin-top:8px;
  padding:8px 10px;
  border:1px solid rgba(102,112,133,.22);
  border-radius:10px;
  background:rgba(102,112,133,.06);
  color:var(--muted);
  font-size:13px;
  line-height:1.35;
}

/* School context: make selections distinguishable without changing their data semantics. */
.school-selection,
.school-choice{
  --school-accent:#2f6f3a;
  --school-soft:rgba(47,111,58,.08);
  --school-line:rgba(47,111,58,.28);
}
.school-tone-1{--school-accent:#2f6f3a;--school-soft:rgba(47,111,58,.09);--school-line:rgba(47,111,58,.28)}
.school-tone-2{--school-accent:#246b8f;--school-soft:rgba(36,107,143,.09);--school-line:rgba(36,107,143,.28)}
.school-tone-3{--school-accent:#8a5b11;--school-soft:rgba(138,91,17,.10);--school-line:rgba(138,91,17,.30)}
.school-tone-4{--school-accent:#7a3f78;--school-soft:rgba(122,63,120,.09);--school-line:rgba(122,63,120,.28)}
.school-tone-5{--school-accent:#9b3d2c;--school-soft:rgba(155,61,44,.09);--school-line:rgba(155,61,44,.28)}
.school-selection{
  position:relative;
  padding:12px;
  border:1px solid var(--school-line);
  border-left:5px solid var(--school-accent);
  border-radius:14px;
  background:linear-gradient(135deg,var(--school-soft),rgba(255,255,255,.92));
  box-shadow:0 1px 3px rgba(16,24,40,.04);
}
.school-selection:focus-within{
  border-color:var(--school-accent);
  box-shadow:0 0 0 4px var(--school-soft);
}
.school-selection .school-select{font-weight:800;border-color:var(--school-line);background:rgba(255,255,255,.96)}
.school-selection-label{display:flex;align-items:center;gap:7px;margin:0 0 7px;font-size:13px;font-weight:900;color:var(--school-accent)}
.school-selection-label::before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--school-accent);box-shadow:0 0 0 4px var(--school-soft)}
.school-selection-state{margin-top:7px;font-size:12px;font-weight:800;color:var(--school-accent);line-height:1.3}
.school-selection-note{margin-top:7px;font-size:12px;line-height:1.35;color:var(--muted)}
.school-choice-list{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.school-choice{
  display:flex !important;
  align-items:flex-start;
  gap:10px;
  min-height:62px;
  margin:0 !important;
  padding:11px 12px;
  border:1px solid var(--school-line);
  border-left:5px solid var(--school-accent);
  border-radius:12px;
  background:linear-gradient(135deg,var(--school-soft),#fff);
  color:var(--text);
  cursor:pointer;
  transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease;
}
.school-choice:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(16,24,40,.08)}
.school-choice:focus-within{outline:3px solid var(--school-soft);outline-offset:1px}
.school-choice:has(input:checked){border-color:var(--school-accent);box-shadow:0 0 0 2px var(--school-soft)}
.school-choice input[type="checkbox"]{width:18px;height:18px;flex:0 0 auto;margin:2px 0 0;accent-color:var(--school-accent)}
.school-choice-copy{display:block;min-width:0;line-height:1.25}
.school-choice-name{display:block;font-weight:900;color:var(--school-accent)}
.school-choice-detail{display:block;margin-top:3px;font-size:12px;color:var(--muted)}
.school-choice-status{display:inline-block;margin-left:5px;font-size:11px;font-weight:800;color:var(--muted)}
@media (max-width:560px){.school-choice-list{grid-template-columns:1fr}.school-selection{padding:10px}}

/* Set overview cards (criteria sets) */
.card-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.set-card{
  display:block;border:1px solid var(--border);border-radius:14px;
  padding:12px;background:#fff;box-shadow:var(--shadow);
  color:inherit;text-decoration:none
}
.set-card:hover{filter:brightness(1.01);text-decoration:none}
.set-card.active{outline:3px solid rgba(71,142,79,.25)}
.set-card .meta{font-size:12px;color:var(--muted);margin-top:4px}

/* Settings panels (account.php) */
.settings-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:12px}
.settings-panel{
  height:100%;
  border:1px solid var(--border);
  border-radius:14px;
  padding:14px;
  background:rgba(246,247,251,.72);
}
.settings-panel-title{
  font-size:15px;
  font-weight:900;
  color:var(--text);
  margin-bottom:8px;
}
.settings-panel-note{
  margin-top:6px;
}
.settings-section-heading{
  margin:8px 0 2px;
  font-size:13px;
  font-weight:900;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.06em;
}
.setting-impact{
  display:inline-flex;
  align-items:center;
  margin-left:6px;
  padding:3px 8px;
  border-radius:999px;
  border:1px solid rgba(102,112,133,.22);
  background:#fff;
  color:var(--muted);
  font-size:11px;
  font-weight:800;
  vertical-align:middle;
}
.teacher-school-strip{
  border-bottom:1px solid rgba(228,231,236,.75);
  background:rgba(248,250,252,.86);
}
.teacher-school-strip .wrap{
  padding-top:7px;
  padding-bottom:7px;
}
.teacher-school-label{
  display:inline-flex;
  align-items:center;
  max-width:100%;
  padding:4px 10px;
  border-radius:999px;
  border:1px solid rgba(102,112,133,.18);
  background:#fff;
  color:#475467;
  font-size:12px;
  font-weight:800;
}
.field-error{
  margin-top:6px;
  color:var(--danger);
  font-size:13px;
  font-weight:800;
}
.preset-save-panel{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
  margin-top:12px;
  padding:12px;
  border:1px solid #D8C9A9;
  border-radius:14px;
  background:#FFF8E7;
}
.preset-save-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:flex-end;
  flex:0 0 auto;
}

/* Make table action buttons not wrap too aggressively */
.table .actions{display:flex;flex-wrap:wrap;gap:8px}

/* Better spacing for inline forms inside table cells */
.inline-form{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap}


/* Compatibility for older badge classes */
.badge.ok{background:rgba(18,183,106,.12);border-color:rgba(18,183,106,.20);color:var(--blue)}
.badge.off{background:rgba(180,35,24,.10);border-color:rgba(180,35,24,.20);color:var(--danger)}

/* Drag & drop sorting (teacher/options.php) */
.drag-handle{
  display:inline-block;
  padding:6px 8px;
  border:1px solid rgba(0,0,0,.12);
  border-radius:8px;
  cursor:grab;
  user-select:none;
  line-height:1;
}
.sortable-row.dragging{
  opacity:.55;
}

/* Teacher quick-entry buttons (class+subject combos) */
.quick-combos{display:flex;flex-wrap:wrap;gap:10px}
.quick-combo{min-width:160px}

/* Criteria category accordion (participation_new.php) */
.criteria-accordion{display:flex;flex-direction:column;gap:10px}
.accordion{
  border:1px solid rgba(228,231,236,.9);
  border-radius:14px;
  background:rgba(246,247,251,.55);
  overflow:hidden;
}
.accordion summary{
  cursor:pointer;
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 12px;
  font-weight:900;
}
.accordion summary::-webkit-details-marker{display:none}
.accordion[open] summary{border-bottom:1px solid rgba(228,231,236,.9)}
.accordion .acc-body{padding:12px}
.accordion .acc-meta{display:inline-flex;gap:8px;align-items:center}

/* Stronger visual separation for teachers who prefer higher contrast in entry forms and menus */
.contrast-block{border-radius:14px}

html[data-entry-contrast="high"] .contrast-block,
html[data-entry-contrast="high"] .contrast-form,
html[data-entry-contrast="high"] .multi-field.contrast-panel,
html[data-entry-contrast="high"] .accordion.contrast-panel{
  border:1px solid var(--section-border, var(--brand-primary-ring));
  background:var(--section-bg, var(--brand-primary-soft));
  box-shadow:0 1px 0 rgba(255,255,255,.45) inset;
}

html[data-entry-contrast="high"] .contrast-block{
  padding:12px;
  margin-top:12px;
}

html[data-entry-contrast="high"] .contrast-form{
  padding:12px;
  border-radius:14px;
}

html[data-entry-contrast="high"] .contrast-block .muted,
html[data-entry-contrast="high"] .contrast-form .muted,
html[data-entry-contrast="high"] .multi-field.contrast-panel .muted,
html[data-entry-contrast="high"] .accordion.contrast-panel .muted{
  color:#475467;
}

html[data-entry-contrast="high"] .multi-field.contrast-panel legend,
html[data-entry-contrast="high"] .accordion.contrast-panel .acc-title{
  color:#0f1728;
}

html[data-entry-contrast="high"] .accordion.contrast-panel summary{
  background:var(--section-summary-bg, rgba(255,255,255,.35));
}

html[data-entry-contrast="high"] .accordion.contrast-panel[open] summary{
  border-bottom-color:var(--section-border, var(--brand-primary-ring));
}

html[data-entry-contrast="high"] .accordion.contrast-panel .contrast-block,
html[data-entry-contrast="high"] .accordion.contrast-panel .contrast-form,
html[data-entry-contrast="high"] .accordion.contrast-panel .multi-field.contrast-panel{
  background:transparent;
  border:0;
  box-shadow:none;
  padding:0;
  margin-top:0;
}

html[data-entry-contrast="high"] .section-hours{
  --section-bg:#EAF3FF;
  --section-border:#A8C9F0;
  --section-summary-bg:#DCEBFF;
}

html[data-entry-contrast="high"] .section-preset{
  --section-bg:#F6F1E8;
  --section-border:#D8C9A9;
  --section-summary-bg:#EDE3D1;
}

html[data-entry-contrast="high"] .section-core{
  --section-bg:#EEF8EC;
  --section-border:#B9DDB0;
  --section-summary-bg:#DFF0DB;
}

html[data-entry-contrast="high"] .section-performance{
  --section-bg:#ECF8F8;
  --section-border:#A9D5D5;
  --section-summary-bg:#DDF0F0;
}

html[data-entry-contrast="high"] .section-context{
  --section-bg:#FFF4E7;
  --section-border:#F0CBA1;
  --section-summary-bg:#FBE7CE;
}

html[data-entry-contrast="high"] .section-criteria{
  --section-bg:#F3F4F6;
  --section-border:#CFD4DC;
  --section-summary-bg:#E7EAF0;
}

html[data-entry-contrast="high"] .section-students{
  --section-bg:#FDEFF3;
  --section-border:#E7B8C7;
  --section-summary-bg:#F7DDE5;
}

html[data-entry-contrast="high"] .section-selection{
  --section-bg:#EAF3FF;
  --section-border:#A8C9F0;
  --section-summary-bg:#DCEBFF;
}

html[data-entry-contrast="high"] .section-entry{
  --section-bg:#EEF8EC;
  --section-border:#B9DDB0;
  --section-summary-bg:#DFF0DB;
}

html[data-entry-contrast="high"] .section-overview{
  --section-bg:#F3F4F6;
  --section-border:#CFD4DC;
  --section-summary-bg:#E7EAF0;
}

html[data-entry-contrast="high"] .section-rating{
  --section-bg:#FFF4E7;
  --section-border:#F0CBA1;
  --section-summary-bg:#FBE7CE;
}

html[data-entry-contrast="high"] .section-details{
  --section-bg:#ECF8F8;
  --section-border:#A9D5D5;
  --section-summary-bg:#DDF0F0;
}

/* Menu/navigation cards also follow the contrast preference. The normal design stays calm;
   only high contrast gets stronger visual anchors for faster orientation. */
html[data-entry-contrast="high"] .card > .grid > [class*="col-"] > .card,
html[data-entry-contrast="high"] .card-grid .set-card{
  --menu-accent:#2F6F8F;
  --menu-border:#9FC9E2;
  --menu-bg:#EEF8FD;
  border:2px solid var(--menu-border) !important;
  border-left:8px solid var(--menu-accent) !important;
  background:linear-gradient(135deg,var(--menu-bg) 0%,#fff 100%) !important;
  box-shadow:0 12px 28px rgba(33,88,120,.13);
}

html[data-entry-contrast="high"] .card > .grid > [class*="col-"] > .card:nth-of-type(2n){
  --menu-accent:#4F7D35;
  --menu-border:#B9DDB0;
  --menu-bg:#EEF8EC;
}

html[data-entry-contrast="high"] .card > .grid > [class*="col-"]:nth-of-type(2n) > .card:nth-of-type(1),
html[data-entry-contrast="high"] .card-grid .set-card:nth-of-type(4n+2){
  --menu-accent:#8B6F26;
  --menu-border:#D8C9A9;
  --menu-bg:#FFF8E7;
}

html[data-entry-contrast="high"] .card > .grid > [class*="col-"]:nth-of-type(2n) > .card:nth-of-type(2n),
html[data-entry-contrast="high"] .card-grid .set-card:nth-of-type(4n+3){
  --menu-accent:#A35D2E;
  --menu-border:#E2B488;
  --menu-bg:#FFF4E7;
}

html[data-entry-contrast="high"] .card-grid .set-card:nth-of-type(4n+4){
  --menu-accent:#7B5B9D;
  --menu-border:#C8B5DF;
  --menu-bg:#F5F0FA;
}

html[data-entry-contrast="high"] .card > .grid > [class*="col-"] > .card h1:first-child,
html[data-entry-contrast="high"] .card > .grid > [class*="col-"] > .card h2:first-child,
html[data-entry-contrast="high"] .card > .grid > [class*="col-"] > .card h3:first-child,
html[data-entry-contrast="high"] .card-grid .set-card strong:first-child{
  color:#17364A;
}

html[data-entry-contrast="high"] .card > .grid > [class*="col-"] > .card .muted,
html[data-entry-contrast="high"] .card-grid .set-card .meta,
html[data-entry-contrast="high"] .card-grid .set-card .muted{
  color:#35465B;
}

html[data-entry-contrast="high"] .nav a,
html[data-entry-contrast="high"] .nav .navbtn{
  opacity:1;
  border:1px solid rgba(255,255,255,.38);
  background:rgba(255,255,255,.12);
  box-shadow:0 1px 0 rgba(255,255,255,.18) inset;
}

html[data-entry-contrast="high"] .nav a:hover,
html[data-entry-contrast="high"] .nav .navbtn:hover,
html[data-entry-contrast="high"] .nav a.active{
  background:rgba(255,255,255,.24);
  border-color:rgba(255,255,255,.62);
  text-decoration:none;
}
.timeout-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  padding:2px 6px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.08);
  color:#fff;
  font-size:11px;
  font-weight:900;
  line-height:1;
  white-space:nowrap;
}
.logout-stack{
  display:inline-flex !important;
  flex-direction:column;
  align-items:center;
  gap:2px;
  margin:0;
}
.timeout-pill.is-soon{
  border-color:rgba(255,224,153,.85);
  background:rgba(255,224,153,.22);
  color:#fff6d8;
}

/* Reports */
.report-focus-block{
  border:1px solid var(--border);
  border-radius:16px;
  padding:14px;
  background:#fff;
}
.report-focus-block.report-written{
  border-color:#d6c08d;
  background:#fff8eb;
}
.report-focus-block.report-oral{
  border-color:#d6c08d;
  background:#fff8eb;
}
.report-focus-block.report-recommendation{
  border-color:#b9ddb0;
  background:#eef8ec;
}
.report-judgement{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid var(--border);
  background:#f6f7fb;
}
.report-judgement strong{font-size:16px}
.report-chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border-radius:999px;
  font-size:13px;
  font-weight:800;
  border:1px solid transparent;
}
.report-chip.positive{
  color:#206a4e;
  background:#e9f7f0;
  border-color:#9fd4ba;
}
.report-chip.neutral{
  color:#5b6474;
  background:#eef1f5;
  border-color:#cfd6df;
}
.report-chip.critical{
  color:#9f2d2d;
  background:#fdeeee;
  border-color:#efb3b3;
}
.report-kv{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:10px;
}
.report-kv .item{
  border:1px solid var(--border);
  border-radius:12px;
  padding:10px 12px;
  background:rgba(246,247,251,.65);
}
.report-kv .label{
  display:block;
  font-size:12px;
  color:var(--muted);
  margin-bottom:4px;
}
.report-summary-table th{
  white-space:nowrap;
  vertical-align:bottom;
}
.report-summary-table td{
  vertical-align:top;
  font-size:13px;
}
.report-summary-table td .report-chip{
  margin-bottom:4px;
}
.report-row-warning{
  background:#fff9e8;
}
.report-row-critical{
  background:#fff0f0;
}
.report-student-list{
  display:grid;
  gap:10px;
}
.report-student-card{
  border:1px solid var(--border);
  border-radius:16px;
  background:#fff;
  overflow:hidden;
}
.report-student-card.is-warning{
  background:#fffaf0;
  border-color:#ead7a6;
}
.report-student-card.is-critical{
  background:#fff4f4;
  border-color:#efb3b3;
}
.report-student-card summary{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:14px;
  cursor:pointer;
  list-style:none;
}
.report-student-card summary::-webkit-details-marker{display:none}
.report-student-card[open] summary{
  border-bottom:1px solid var(--border);
}
.report-student-main{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:220px;
}
.report-student-chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:flex-end;
}
.report-student-body{
  padding:14px;
}
.report-count-chip{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:4px 8px;
  border-radius:999px;
  border:1px solid currentColor;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}
.report-count-positive{
  color:#0f5d35;
  background:#e8f6ed;
  border-color:#0f5d35;
}
.report-count-neutral{
  color:#4f5665;
  background:#f2f4f7;
  border-color:#9aa3b2;
}
.report-count-negative{
  color:#a22f2f;
  background:#fdecec;
  border-color:#c75b5b;
}
.report-student-row-card summary.report-student-row-summary{
  display:grid;
  grid-template-columns:minmax(170px,1.2fr) minmax(190px,1.35fr) minmax(135px,1fr) minmax(150px,1fr) minmax(170px,1.15fr) minmax(135px,.9fr);
  gap:12px;
  align-items:stretch;
}
.report-row-cell{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  min-width:0;
}
.report-row-cell strong{
  overflow-wrap:anywhere;
}
.report-row-label{
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.report-mini-note{
  color:var(--muted);
  font-size:12px;
  line-height:1.25;
}
.report-row-participation > span:not(.report-row-label){
  display:flex;
  flex-wrap:wrap;
  gap:5px;
}
.report-inline-events{
  margin-top:12px;
  padding:12px;
  border:1px solid var(--border);
  border-radius:14px;
  background:#f8fafc;
}
.report-inline-events ul{
  margin:8px 0 0 18px;
  padding:0;
}
.report-inline-events li{
  margin:4px 0;
}
@media (max-width:720px){
  .report-student-card summary{
    align-items:flex-start;
    flex-direction:column;
  }
  .report-student-chips{
    justify-content:flex-start;
  }
}
@media (max-width:1020px){
  .report-student-row-card summary.report-student-row-summary{
    grid-template-columns:1fr 1fr;
  }
}
@media (max-width:680px){
  .report-student-row-card summary.report-student-row-summary{
    grid-template-columns:1fr;
  }
}
.participation-save-bar{
  position:sticky;
  bottom:10px;
  z-index:5;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:18px;
  padding:12px;
  border:1px solid var(--border);
  border-radius:16px;
  background:rgba(255,255,255,.96);
  box-shadow:0 14px 40px rgba(16,24,40,.12);
}
.entry-mode-switch{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.entry-mode-switch label{
  display:inline-flex;
  gap:8px;
  align-items:center;
  padding:8px 10px;
  border:1px solid var(--border);
  border-radius:999px;
  background:#fff;
  font-weight:800;
}
.written-grade-table tbody tr:focus-within,
.written-grade-table tbody tr:hover{
  background:#eef8ec;
  outline:2px solid rgba(71,142,79,.22);
  outline-offset:-2px;
}
.single-written-card{
  border:1px solid var(--border) !important;
  border-radius:14px;
  background:#fff;
  padding:12px !important;
}
.final-assessment-table textarea.input{
  min-height:76px;
  resize:vertical;
}
.final-assessment-table .input{
  width:100%;
}
.final-assessment-inline-form{
  margin:0;
}
.final-assessment-table details.accordion{
  border-top-left-radius:0;
  border-top-right-radius:0;
  margin-top:-1px;
}
.final-assessment-table details.accordion summary{
  background:#fafbfc;
}
.final-assessment-table .actions{
  align-items:flex-start;
}
.final-assessment-student-nav{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
  justify-content:space-between;
}
.final-student-context-card{
  border:2px solid #9fc9e2;
  border-left:7px solid #2f6f8f;
  background:linear-gradient(135deg,#eef8fd,#fff);
  box-shadow:0 10px 26px rgba(33,88,120,.1);
}
.final-assessment-student-picker{
  display:flex;
  flex:1 1 420px;
  gap:8px;
  align-items:flex-end;
  min-width:280px;
}
.final-assessment-student-picker .final-assessment-jump label{
  color:#1e526c;
  font-weight:900;
}
.final-assessment-student-picker select.input{
  border-color:#8ebfd9;
  background:#fbfdff;
  font-weight:900;
  font-size:16px;
}
.final-student-status-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  padding-top:10px;
  border-top:1px solid #c8e0ed;
}
.final-assessment-jump{
  flex:1 1 320px;
  margin:0;
}
.final-assessment-arrow{
  flex:0 0 44px;
  width:44px;
  min-width:44px;
  padding-left:0;
  padding-right:0;
  font-size:18px;
}
@media (max-width:720px){
  .final-assessment-student-picker{
    flex-basis:100%;
  }
  .final-assessment-arrow{
    flex-basis:40px;
    width:40px;
    min-width:40px;
  }
}
.btn.is-disabled{
  opacity:.55;
  pointer-events:none;
}
.final-assessment-box-grid .report-focus-block{
  height:100%;
}
.final-context-compact{
  padding:10px 12px;
}
.final-context-strip{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.final-context-strip span{
  display:inline-flex;
  align-items:center;
  padding:6px 9px;
  border-radius:999px;
  border:1px solid var(--border);
  background:#f8fafc;
  font-size:13px;
  font-weight:800;
}
.final-context-details.accordion summary{
  padding:9px 10px;
}
.final-context-details.accordion .acc-body{
  padding:10px;
}
.final-section-heading{
  margin:0;
  font-size:17px;
}
.final-assessment-decision{
  border-width:2px;
}
.final-assessment-decision-form .input,
.final-assessment-decision-form textarea.input{
  width:100%;
}
.final-assessment-decision-form textarea.input{
  min-height:120px;
  resize:vertical;
}
.final-assessment-bulk-entry{
  border:2px solid #d28a18;
  background:linear-gradient(135deg,#fff8e6 0%,#fffdf7 48%,#f7fbff 100%);
  box-shadow:0 12px 32px rgba(93,61,16,.12);
}
.final-assessment-bulk-entry summary{
  background:linear-gradient(90deg,#f6cf72,#fff4d2);
  border-radius:12px 12px 0 0;
}
.final-assessment-bulk-entry .acc-title{
  color:#593b08;
}
.final-bulk-intro{
  border:1px solid #edc56a;
  border-left:6px solid #d28a18;
  border-radius:14px;
  padding:12px 14px;
  background:#fff9ea;
  color:#593b08;
}
.final-bulk-intro div{
  margin-top:6px;
  color:#6c4a13;
}
.final-assessment-section{
  position:relative;
  border-left-width:7px;
}
.final-section-topline{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:flex-start;
}
.final-section-topline > strong{
  padding-top:7px;
  font-size:17px;
}
.final-section-result{
  flex:0 0 min(260px,42%);
  border:2px solid #cbd5df;
  border-radius:14px;
  padding:9px 11px;
  background:#fff;
  text-align:right;
}
.final-section-result .label{
  display:block;
  margin-bottom:3px;
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
}

/* Cross-class overview of saved final assessments */
.final-overview-title-row h1{margin-top:0}
.final-overview-help{
  border-left:6px solid #2f6f8f;
  background:linear-gradient(135deg,#f0f8fc,#fff);
}
.final-overview-filters{
  display:grid;
  grid-template-columns:repeat(5,minmax(150px,1fr)) auto;
  gap:10px;
  align-items:end;
  padding:14px;
  border:1px solid var(--border);
  border-radius:16px;
  background:#f8fafc;
}
.final-overview-filters .input{width:100%}
.final-overview-filter-action{display:flex;align-items:flex-end}
.final-overview-stats{
  display:grid;
  grid-template-columns:repeat(4,minmax(150px,1fr));
  gap:10px;
}
.final-overview-stat{
  display:flex;
  flex-direction:column;
  gap:5px;
  min-height:88px;
  padding:13px 15px;
  border:1px solid var(--border);
  border-left:6px solid #8b98a8;
  border-radius:14px;
  background:#fff;
}
.final-overview-stat span{font-size:13px;color:var(--muted);font-weight:800}
.final-overview-stat strong{font-size:27px;line-height:1}
.final-overview-stat small{color:var(--muted);font-size:11px;font-weight:800}
.final-overview-stat-link{
  color:inherit;
  text-decoration:none;
  transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;
}
.final-overview-stat-link:hover,
.final-overview-stat-link:focus-visible{
  transform:translateY(-2px);
  box-shadow:0 9px 22px rgba(31,49,66,.1);
}
.final-overview-stat-link.is-active{
  outline:3px solid rgba(47,111,143,.22);
  outline-offset:2px;
}
.final-overview-stat.final{border-left-color:#2f7a58;background:#eff9f3}
.final-overview-stat.draft{border-left-color:#b77a18;background:#fff8e8}
.final-overview-stat.open{border-left-color:#7a8797;background:#f4f6f8}
.final-overview-progress{
  position:relative;
  height:30px;
  margin-top:10px;
  overflow:hidden;
  border:1px solid #bdd7c8;
  border-radius:999px;
  background:#edf2ef;
}
.final-overview-progress > div{
  width:var(--completion);
  height:100%;
  background:linear-gradient(90deg,#3a7f5c,#72aa82);
}
.final-overview-progress > span{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
  font-weight:900;
  color:#173e2b;
}
.final-overview-table-wrap{
  overflow:auto;
  border:1px solid var(--border);
  border-radius:16px;
}
.final-overview-table{min-width:1120px;margin:0}
.final-overview-table th{
  position:sticky;
  top:0;
  z-index:1;
  white-space:nowrap;
  background:#e8f1ec;
}
.final-overview-table td{vertical-align:middle}
.final-overview-student-link{color:#245e78;text-decoration-thickness:1px;text-underline-offset:3px}
.final-overview-proposal{font-size:13px;font-weight:850;color:#5f6978}
.final-overview-proposal.positive{color:#2f6f4e}
.final-overview-proposal.critical{color:#944040}
.final-overview-row-draft{background:#fffaf0}
.final-overview-row-open{background:#fafbfc}
.final-overview-grade{
  display:inline-flex;
  width:34px;
  height:34px;
  margin-right:7px;
  align-items:center;
  justify-content:center;
  border:2px solid transparent;
  border-radius:50%;
  font-size:17px;
  font-weight:950;
}
.final-overview-grade.positive{color:#155d3f;background:#e5f6ec;border-color:#87c9a5}
.final-overview-grade.neutral{color:#4f5968;background:#eef1f5;border-color:#c5ccd6}
.final-overview-grade.critical{color:#982929;background:#fdeaea;border-color:#e9a3a3}
.final-overview-status{
  display:inline-flex;
  padding:5px 9px;
  border:1px solid transparent;
  border-radius:999px;
  white-space:nowrap;
  font-size:12px;
  font-weight:900;
}
.final-overview-status.final{color:#155d3f;background:#e5f6ec;border-color:#87c9a5}
.final-overview-status.draft{color:#7a4d0a;background:#fff1c9;border-color:#e5bd63}
.final-overview-status.open{color:#5a6472;background:#eef1f5;border-color:#c9d0d9}

/* Configurable, teacher-owned weighting for grade suggestions */
.assessment-weight-panel{
  padding:24px;
  background:transparent;
}
.assessment-weight-accordion{
  border:1px solid rgba(228,231,236,.78);
  border-radius:14px;
  background:var(--card);
  box-shadow:var(--shadow);
}
.assessment-weight-accordion > summary{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  padding:14px 16px;
  background:var(--card);
}
.assessment-weight-accordion[open] > summary{
  border-bottom:1px solid var(--border);
}
.assessment-weight-accordion > .acc-body{
  padding:0;
}
.assessment-weight-summary-copy{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:3px;
}
.assessment-weight-summary-copy .acc-title{font-size:17px}
.assessment-weight-summary-action{
  flex:0 0 auto;
  padding:5px 9px;
  border:1px solid var(--border);
  border-radius:999px;
  background:var(--bg);
  color:var(--muted);
  font-size:12px;
  font-weight:800;
}
/* The weighting tool sits above the card grid. Give it the same strong anchor as
   the management cards when teachers explicitly choose the high-contrast mode. */
html[data-entry-contrast="high"] .assessment-weight-accordion{
  --weight-accent:#2F6F8F;
  --weight-border:#9FC9E2;
  --weight-bg:#EEF8FD;
  border:2px solid var(--weight-border);
  border-left:8px solid var(--weight-accent);
  background:linear-gradient(135deg,var(--weight-bg) 0%,#fff 100%);
  box-shadow:0 12px 28px rgba(33,88,120,.13);
}
html[data-entry-contrast="high"] .assessment-weight-accordion > summary{
  background:#DCEBFF;
}
html[data-entry-contrast="high"] .assessment-weight-accordion[open] > summary{
  border-bottom-color:var(--weight-border);
}
html[data-entry-contrast="high"] .assessment-weight-summary-copy .acc-title{
  color:#17364A;
}
html[data-entry-contrast="high"] .assessment-weight-summary-copy .muted{
  color:#35465B;
}
html[data-entry-contrast="high"] .assessment-weight-summary-action{
  border-color:var(--weight-border);
  background:#fff;
  color:#17364A;
}
.assessment-weight-heading{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
}
.assessment-weight-lead{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:flex-start;
  border:1px solid #d5e1d9;
  border-radius:14px;
  padding:15px 16px;
  background:#f8fbf9;
}
.assessment-weight-lead strong{
  display:block;
  margin-bottom:4px;
  font-size:17px;
}
.assessment-weight-legal{
  border:1px solid #c8d6df;
  border-left:4px solid #4e7891;
  border-radius:12px;
  padding:0;
  background:#f5f9fc;
}
.assessment-weight-legal > summary{
  padding:10px 12px;
  background:transparent;
}
.assessment-weight-legal > .acc-body{
  padding:0 12px 12px;
}
.assessment-weight-step{
  border:1px solid #d6e0dc;
  border-radius:16px;
  padding:16px;
  margin-top:14px;
  background:#fff;
}
.assessment-weight-step-head{
  display:flex;
  gap:10px;
  align-items:flex-start;
  margin-bottom:12px;
}
.assessment-weight-step-head span{
  display:inline-flex;
  width:28px;
  height:28px;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:#2f6f8f;
  color:#fff;
  font-weight:900;
  line-height:1;
}
.assessment-weight-step-head strong{
  display:block;
  line-height:1.2;
}
.assessment-weight-step-head small{
  display:block;
  margin-top:3px;
  color:var(--muted);
}
.assessment-weight-step-head.compact{
  margin-bottom:10px;
}
.assessment-weight-step-head.compact span{
  width:24px;
  height:24px;
  font-size:12px;
}
.assessment-weight-context{
  display:grid;
  grid-template-columns:minmax(170px,.65fr) minmax(300px,1.6fr) auto;
  gap:10px;
  align-items:end;
}
.assessment-weight-context .input{width:100%}
.assessment-weight-model-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.assessment-weight-model-row span{
  padding:6px 9px;
  border:1px solid #c7d8cc;
  border-radius:999px;
  background:#fff;
  font-size:13px;
}
.assessment-weight-form{
  border:1px solid #c7d8cc;
  border-radius:16px;
  padding:18px;
  background:rgba(255,255,255,.82);
}
.assessment-weight-preset-row{
  display:grid;
  grid-template-columns:minmax(260px,1fr) auto;
  gap:12px;
  align-items:end;
  margin-bottom:14px;
}
.assessment-weight-sum-display{
  min-width:112px;
  border:1px solid var(--border);
  border-radius:12px;
  padding:9px 12px;
  background:#fff;
  text-align:center;
}
.assessment-weight-sum-display span{display:block;font-size:12px}
.assessment-weight-sum-display strong{display:block;font-size:20px}
.assessment-weight-sum-display strong.ok{color:#2f6f3a}
.assessment-weight-sum-display strong.warn{color:#a15f00}
.assessment-weight-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.assessment-weight-field{
  border:1px solid var(--border);
  border-top:5px solid #708090;
  border-radius:14px;
  padding:12px;
  background:#fff;
}
.assessment-weight-field.participation{border-top-color:#4f7d35;background:#f5fbf1}
.assessment-weight-field.oral{border-top-color:#a87924;background:#fffaf0}
.assessment-weight-field.written{border-top-color:#2f6f8f;background:#f2f9fc}
.assessment-weight-field > label,
.assessment-year-weight-grid label{display:block;min-height:38px;font-weight:900}
.assessment-weight-input{display:flex;align-items:center;gap:7px;margin:7px 0}
.assessment-weight-input .input{width:110px;font-size:18px;font-weight:900;text-align:right}
.assessment-weight-input span{font-weight:900}
.assessment-weight-sum-error{margin-top:9px;font-weight:900}
.assessment-weight-existing{
  border:1px solid #c8d6df;
  border-radius:14px;
  padding:10px;
  background:#f7fafc;
}
.assessment-weight-existing-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.assessment-weight-existing-grid span{
  display:flex;
  justify-content:space-between;
  gap:8px;
  border:1px solid var(--border);
  border-radius:10px;
  padding:8px 10px;
  background:#fff;
  color:var(--muted);
  font-size:13px;
}
.assessment-weight-existing-grid strong{
  color:var(--text);
}
.assessment-weight-hint{
  margin-top:8px;
  border-left:5px solid #4e7891;
}
.assessment-weight-hint-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:8px;
}
.assessment-weight-support{
  border:1px solid #d8e1e6;
  border-radius:16px;
  padding:14px;
  margin-top:14px;
  background:#fbfdff;
}
.assessment-year-weighting{
  border:1px solid #d7bf81;
  border-radius:14px;
  padding:12px;
  background:#fff9eb;
}
.assessment-year-weight-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.assessment-semester-model-note{
  border:1px solid #b9c7d5;
  border-radius:12px;
  padding:11px 13px;
  background:#f4f7fa;
  color:#3e5368;
}
.assessment-weight-technical{
  border-radius:12px;
  padding:10px 12px;
  background:#edf5ef;
  color:#2b5535;
  font-size:13px;
  font-weight:800;
}
.final-weight-breakdown{
  margin-top:12px;
  border:1px solid #bad1c0;
  border-radius:14px;
  padding:12px;
  background:#f7fcf8;
}
.final-weight-breakdown-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-bottom:7px;
}
.final-weight-area-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin-top:9px;
}
.final-weight-area{
  border:1px solid #d4ddd7;
  border-radius:12px;
  padding:9px 10px;
  background:#fff;
}
.final-weight-area > span,.final-weight-area > strong,.final-weight-area > small{display:block}
.final-weight-area > span{color:var(--muted);font-size:12px;font-weight:800;margin-bottom:4px}
.final-weight-area > strong{font-size:16px}
.final-weight-area > small{margin-top:4px;color:var(--muted);line-height:1.35}
.final-weight-area.is-missing{background:#f3f4f6;color:#667085}
.final-weight-year-row{
  margin-top:9px;
  border-radius:10px;
  padding:8px 10px;
  background:#edf4f8;
  color:#294d61;
  font-size:13px;
}
.final-weight-warning{
  margin-top:8px;
  border-left:4px solid #c1801c;
  padding:7px 9px;
  background:#fff7df;
  color:#70470b;
  font-size:13px;
}
@media (max-width:900px){
  .assessment-weight-context{grid-template-columns:1fr}
  .assessment-weight-grid,.assessment-year-weight-grid,.final-weight-area-grid,.assessment-weight-preset-row,.assessment-weight-existing-grid{grid-template-columns:1fr}
  .assessment-weight-context-action .btn{width:100%}
}
@media (max-width:1400px){
  .final-overview-filters{grid-template-columns:repeat(3,minmax(150px,1fr))}
}
@media (max-width:720px){
  .final-overview-filters{grid-template-columns:1fr}
  .final-overview-filter-action .btn{width:100%}
  .final-overview-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.final-section-semester{
  border-left-color:#c9d4df;
  background:linear-gradient(135deg,#f8fafc,#fff);
}
.final-performance-group{
  border-left-color:#8b6f26;
  background:linear-gradient(135deg,#fffaf0,#fff);
}
.final-section-performance-heading{
  display:flex;
  align-items:center;
  margin-bottom:12px;
  padding:0 0 10px;
  border-bottom:1px solid #d8c9a9;
  color:#593b08;
}
.final-performance-cards{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.final-performance-card{
  border:1px solid #d8c9a9;
  border-radius:16px;
  padding:12px;
  background:#fff;
}
.final-performance-card-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
}
.final-performance-result{
  flex:0 0 min(230px,42%);
  border:2px solid #d5a038;
  border-radius:14px;
  padding:9px 10px;
  background:linear-gradient(135deg,#fff,#fff8e7);
  text-align:right;
}
.final-performance-result .label{
  display:block;
  color:var(--muted);
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.final-performance-result .final-signal-value{
  font-size:16px;
  overflow-wrap:anywhere;
}
.final-performance-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  margin-top:10px;
  font-size:13px;
}
.final-performance-details{
  margin-top:8px;
  font-size:13px;
  line-height:1.35;
}
@media (max-width:840px){
  .final-performance-cards{grid-template-columns:1fr}
  .final-performance-card-head{flex-direction:column}
  .final-performance-result{width:100%;flex-basis:auto;text-align:left}
}
.final-section-participation{
  border-left-color:#4f7d35;
  background:linear-gradient(135deg,#f4fbef,#fff);
}
.final-section-decision{
  border-left-color:#2f6f3a;
  background:linear-gradient(135deg,#edf8ef,#fff);
}
.final-proposal-result{
  border-color:#5c9670 !important;
  background:linear-gradient(135deg,#f2fbf4,#fff);
  box-shadow:0 8px 20px rgba(35,91,51,.1);
}
.final-proposal-result .final-signal-value{font-size:23px;color:#1f6436}
.final-proposal-result.neutral .final-signal-value{color:#4f5968}
.final-proposal-result.critical .final-signal-value{color:#982929}
.final-decision-evidence-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.final-decision-evidence{
  min-width:0;
  border:1px solid var(--border);
  border-top:5px solid #708090;
  border-radius:14px;
  padding:11px;
  background:#fff;
}
.final-decision-evidence.participation{border-top-color:#4f7d35;background:#f6fbf3}
.final-decision-evidence.oral{border-top-color:#a87924;background:#fffaf0}
.final-decision-evidence.written{border-top-color:#2f6f8f;background:#f3f9fc}
.final-decision-evidence-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:9px;
  margin-bottom:8px;
}
.final-decision-evidence-head span{font-size:12px;font-weight:900;color:#4f5968}
.final-decision-evidence-head strong{
  flex:0 0 auto;
  min-width:42px;
  padding:4px 8px;
  border-radius:10px;
  background:#fff;
  border:1px solid currentColor;
  font-size:19px;
  line-height:1;
  text-align:center;
}
.final-proposal-details > summary{background:#f4f7f5}
.final-proposal-details .final-weight-breakdown{
  margin:0;
  border:0;
  border-radius:0;
  padding:0;
  background:transparent;
}
.final-signal-card{
  border-width:2px !important;
  background:linear-gradient(135deg,#fff,#f8fbff) !important;
  box-shadow:0 8px 20px rgba(36,53,82,.08);
}
.final-grade-card{
  border-color:#d5a038 !important;
}
.final-oral-card{
  border-color:#d5a038 !important;
}
.final-trend-card{
  border-color:#6fa85d !important;
  background:linear-gradient(135deg,#f3fbef,#fff) !important;
}
.final-signal-value{
  display:block;
  font-size:20px;
  line-height:1.18;
  letter-spacing:-.01em;
}
.final-signal-value.positive,
.final-inline-grade.positive{
  color:#1f7549;
}
.final-signal-value.neutral,
.final-inline-grade.neutral{
  color:#495366;
}
.final-signal-value.critical,
.final-inline-grade.critical{
  color:#a22f2f;
}
.final-inline-grade{
  display:inline-flex;
  align-items:center;
  padding:4px 9px;
  border-radius:999px;
  background:#fff;
  border:1px solid currentColor;
  font-weight:900;
}
.final-count-chip{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:5px 9px;
  border-radius:999px;
  border:1px solid currentColor;
  background:#fff;
  font-weight:900;
}
.final-count-item{
  border-width:2px !important;
}
.final-count-positive{
  color:#0f5d35;
  border-color:#0f5d35 !important;
  background:#e8f6ed !important;
}
.final-count-neutral{
  color:#4f5665;
  border-color:#9aa3b2 !important;
  background:#f2f4f7 !important;
}
.final-count-negative{
  color:#a22f2f;
  border-color:#c75b5b !important;
  background:#fdecec !important;
}
.final-low-data-badge{
  display:inline-flex;
  align-items:center;
  margin-top:7px;
  padding:5px 9px;
  border-radius:999px;
  border:1px solid #c75b5b;
  background:#fdecec;
  color:#a22f2f;
  font-size:12px;
  font-weight:900;
}
.final-decision-participation-summary{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin-top:12px;
  padding:10px 12px;
  border:1px solid #b7d6bf;
  border-radius:14px;
  background:#f6fff8;
}
.final-trend-inline{
  font-weight:900;
}
.final-trend-inline.positive{color:#0f5d35}
.final-trend-inline.neutral{color:#4f5665}
.final-trend-inline.critical{color:#a22f2f}
.final-legal-hints{
  border-color:#cfd4dc;
  background:#f8fafc;
}
.final-legal-hints summary{
  background:#eef2f7;
}
.final-decision-context{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.final-decision-context span{
  display:inline-flex;
  align-items:center;
  padding:7px 10px;
  border-radius:999px;
  border:1px solid #b7d6bf;
  background:#f6fff8;
  color:#224f2d;
  font-size:13px;
  font-weight:800;
}
.choice-card{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:12px 14px;
  border:1px solid #cfd6df;
  border-radius:16px;
  background:#f8fafc;
  cursor:pointer;
}
.choice-card input{
  align-self:flex-start;
}
.choice-card:has(input:checked){
  border-color:#7aa87f;
  background:#f1fbf3;
  box-shadow:0 0 0 2px rgba(122,168,127,.18);
}
@media (max-width:840px){
  .final-section-topline{flex-direction:column}
  .final-section-result{width:100%;flex-basis:auto;text-align:left}
  .final-decision-evidence-grid{grid-template-columns:1fr}
}
