:root { color-scheme:light; --ink:#211a35; --muted:#6f6780; --accent:#8058db; --accent-soft:#eee7ff; --pink-soft:#fff0f7; --border:#e7def4; --surface:rgba(255,255,255,.95); --shadow:0 18px 48px rgba(76,48,118,.11); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; color:var(--ink); background:linear-gradient(145deg,#f8f5ff,#fff9fc 55%,#f7f5fb); }
.page { width:min(100% - 1.25rem,1180px); margin:0 auto; padding:2rem 0 3rem; }
.hero { margin-bottom:1rem; padding:1.6rem; border:1px solid var(--border); border-radius:26px; background:linear-gradient(120deg,var(--accent-soft),var(--pink-soft)); box-shadow:var(--shadow); }
.eyebrow { margin:0 0 .35rem; color:var(--accent); font-size:.76rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
h1,h2 { margin:0; letter-spacing:-.035em; }
h1 { font-size:clamp(1.9rem,6vw,3.2rem); }
h2 { font-size:1.2rem; }
.date { margin:.5rem 0 0; color:var(--muted); font-weight:650; }
.notice,.panel,.general-observations { border:1px solid var(--border); border-radius:22px; background:var(--surface); box-shadow:var(--shadow); }
.notice { padding:1.25rem; color:var(--muted); text-align:center; }
.general-observations { margin-bottom:1rem; padding:1.1rem; }
.general-observations h2 { margin-bottom:.65rem; }
#generalObservationsText { margin:0; color:var(--muted); line-height:1.65; overflow-wrap:anywhere; white-space:pre-wrap; }
.graduates-access { display:flex; gap:1rem; align-items:center; justify-content:space-between; margin-bottom:1rem; padding:.85rem 1rem; color:var(--ink); background:linear-gradient(110deg,#fff,var(--accent-soft)); border:1px solid var(--border); border-radius:18px; box-shadow:0 10px 28px rgba(76,48,118,.07); text-decoration:none; }
.graduates-access span:first-child { display:grid; gap:.18rem; }
.graduates-access strong { font-size:.95rem; }
.graduates-access small { color:var(--muted); line-height:1.4; }
.graduates-access__action { flex:none; color:var(--accent); font-size:.82rem; font-weight:800; }
.graduates-access:hover { border-color:color-mix(in srgb,var(--accent) 38%,var(--border)); }
.panel { padding:1.1rem; }
.hidden { display:none!important; }
.toolbar { display:flex; gap:1rem; align-items:end; justify-content:space-between; margin-bottom:.65rem; }
.toolbar label { display:grid; width:min(100%,310px); gap:.35rem; color:var(--muted); font-size:.76rem; font-weight:750; }
input { width:100%; min-height:2.7rem; padding:.65rem .8rem; color:var(--ink); background:#fff; border:1px solid var(--border); border-radius:12px; font:inherit; }
input:focus-visible,button:focus-visible,.graduates-access:focus-visible { outline:3px solid color-mix(in srgb,var(--accent) 36%,transparent); outline-offset:2px; }
.result-count { margin:.4rem 0 .8rem; color:var(--muted); font-size:.82rem; }
.points-note { margin:-.25rem 0 .85rem; color:var(--muted); font-size:.82rem; line-height:1.5; }
.table-wrap { overflow-x:auto; border:1px solid var(--border); border-radius:15px; }
table { width:100%; border-collapse:collapse; background:#fff; font-size:.83rem; }
th,td { padding:.78rem .65rem; border-bottom:1px solid var(--border); text-align:center; vertical-align:middle; }
th:first-child,td:first-child { width:220px; min-width:220px; text-align:left; }
th { background:#faf8ff; }
th button { padding:0; color:var(--ink); background:none; border:0; font:inherit; font-weight:800; cursor:pointer; }
tbody tr:last-child td { border-bottom:0; }
td:first-child { overflow-wrap:anywhere; font-weight:750; }
td.observations { min-width:280px; max-width:430px; text-align:left; line-height:1.5; overflow-wrap:anywhere; white-space:pre-wrap; }
.cards { display:none; }
.empty { margin:1rem 0 0; padding:1rem; color:var(--muted); text-align:center; }
@media (max-width:760px) {
  .page { padding-top:.65rem; }
  .hero { padding:1.25rem; border-radius:22px; }
  .toolbar { align-items:stretch; flex-direction:column; }
  .graduates-access { align-items:flex-start; flex-direction:column; }
  .toolbar label { width:100%; }
  .table-wrap { display:none; }
  .cards { display:grid; gap:.7rem; }
  .review-card { padding:1rem; border:1px solid var(--border); border-radius:16px; background:#fff; }
  .review-card h3 { margin:0 0 .75rem; overflow-wrap:anywhere; font-size:1rem; }
  .review-card dl { display:grid; grid-template-columns:1fr auto; gap:.45rem .8rem; margin:0; }
  .review-card dt { color:var(--muted); }
  .review-card dd { margin:0; font-weight:800; }
  .review-card .invalid { margin-top:.3rem; padding-top:.6rem; color:var(--accent); border-top:1px solid var(--border); }
  .review-card .observations { grid-column:1 / -1; }
  .review-card dt.observations { margin-top:.3rem; padding-top:.7rem; border-top:1px solid var(--border); }
  .review-card dd.observations { font-weight:500; line-height:1.55; overflow-wrap:anywhere; white-space:pre-wrap; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; } }
