/* Gradebook & results (5A.4) — navy glass, neon accents; report cards are light and printable. */
.gr-setup { display: grid; gap: 20px; }
.gr-setup h4 { margin: 0 0 4px; color: #fff; display: flex; gap: 8px; align-items: center; }
.gr-setup h4 i { color: var(--cyan); }
.gr-weights { display: flex; gap: 5px; flex-wrap: wrap; align-items: center; margin: 6px 0; }
.gr-bands { display: flex; flex-wrap: wrap; gap: 4px; }
.gr-bands span { font-size: 12px; padding: 3px 8px; border-radius: 8px; background: rgba(47, 139, 255, .18); color: #dfe9ff; }
.gr-bands b { color: #fff; }
.sc-term-row.gr-band { grid-template-columns: 70px 90px 90px minmax(0, 1fr) auto; }
.sc-term-row.gr-comp { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) 80px auto; }
.sc-term-row select { padding: 8px 10px; border-radius: 10px; border: 1px solid #c8d4ee; font: inherit; font-size: 14px; min-width: 0; }
.gr-card { border-left: 4px solid var(--sc); }
.gr-tools { margin: 8px 0; }

/* score table */
.gr-wrap { max-height: 70vh; overflow: auto; border-radius: 12px; border: 1px solid rgba(120, 160, 255, .25); }
.gr-tbl { border-collapse: separate; border-spacing: 0; min-width: 100%; }
.gr-tbl th, .gr-tbl td { white-space: nowrap; }
.gr-tbl thead th { position: sticky; top: 0; z-index: 2; background: #0e1d5c; vertical-align: bottom; }
.gr-tbl .gr-name { position: sticky; left: 0; z-index: 1; background: #0b1850; min-width: 170px; }
.gr-tbl thead .gr-name { z-index: 3; }
.gr-tbl .gr-name b { display: block; color: #fff; }
.gr-tbl .gr-name small, .gr-tbl th small { display: block; color: #93a7da; font-size: 11px; font-weight: 500; text-transform: none; letter-spacing: 0; }
.gr-a span { display: block; color: #fff; text-transform: none; letter-spacing: 0; font-size: 12.5px; }
.gr-ah { display: flex; gap: 3px; margin-top: 4px; }
.gr-mini { border: 1px solid rgba(120, 160, 255, .45); background: rgba(255, 255, 255, .06); color: #c6d6ff; border-radius: 6px; font-size: 11px; padding: 1px 6px; cursor: pointer; }
.gr-mini:hover { background: var(--electric); color: #fff; }
.gr-cell { padding: 4px !important; }
.gr-in { width: 64px; padding: 7px 6px; text-align: center; border-radius: 8px; border: 1px solid rgba(120, 160, 255, .4); background: rgba(6, 13, 43, .7); color: #fff; font: 700 14px var(--font); }
.gr-in:focus { outline: none; border-color: var(--cyan); box-shadow: 0 0 0 3px rgba(25, 211, 255, .25); }
.gr-in.dirty { border-color: rgba(25, 211, 255, .7); }
.gr-in.bad { border-color: var(--red); background: rgba(255, 54, 81, .22); box-shadow: 0 0 10px rgba(255, 54, 81, .45); }
.gr-ro { min-width: 52px; padding: 6px; border-radius: 8px; border: 1px solid transparent; background: transparent; color: #fff; font: 700 14px var(--font); }
.gr-ro.can { cursor: pointer; border-color: rgba(120, 160, 255, .35); }
.gr-ro.can:hover { border-color: var(--gold); box-shadow: 0 0 10px rgba(255, 194, 26, .4); }
.gr-c { color: #a9bbea; text-align: center; font-size: 13px; }
.gr-t { text-align: center; font-weight: 800; color: #fff; }
.gr-t.pass, .gr-tbl .pass { color: #5dff8a; }
.gr-t.fail, .gr-tbl .fail, .gr-fail { color: #ff7d92 !important; }
.gr-tbl tfoot td { background: #0e1d5c; position: sticky; bottom: 0; }
.gr-flow { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 10px; color: #c6d6ff; }
.gr-flow b { padding: 5px 12px; border-radius: 999px; background: linear-gradient(135deg, rgba(31, 107, 255, .4), rgba(139, 61, 255, .4)); border: 1px solid rgba(160, 120, 255, .5); color: #fff; font-size: 13px; }
.gr-flow i { margin: 0 4px; color: var(--cyan); font-size: 11px; }
.gr-status { display: flex; flex-wrap: wrap; gap: 10px; }
.gr-status > span { display: inline-flex; gap: 6px; align-items: center; color: #fff; }

/* remarks & cards */
.gr-remarks { display: grid; gap: 10px; }
.gr-rem { padding: 12px; border-radius: 14px; background: rgba(6, 13, 43, .5); border: 1px solid rgba(120, 160, 255, .3); }
.gr-rem-h { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; align-items: center; margin-bottom: 6px; }
.gr-rem-h b { color: #fff; }
.gr-rem-h small { display: block; color: #93a7da; }
.gr-rem textarea, .gr-rem select { width: 100%; padding: 8px 10px; border-radius: 10px; border: 1px solid rgba(120, 160, 255, .4); background: rgba(6, 13, 43, .6); color: #fff; font: inherit; font-size: 13.5px; }
.gr-rem textarea { min-height: 64px; resize: vertical; }
.gr-rem select { margin-top: 6px; }
.gr-rem textarea:disabled, .gr-rem select:disabled { opacity: .55; }
.gr-rem .field label.lbl { color: #a9bbea; }
.gr-remark { padding: 10px 12px; border-radius: 12px; background: rgba(6, 13, 43, .5); border: 1px solid rgba(120, 160, 255, .3); color: #fff; }
.gr-remark small { display: block; color: #93a7da; margin-bottom: 4px; }
.modal.gr-card-modal { max-width: 900px; width: calc(100vw - 24px); }
.gr-cardwrap { max-height: 72vh; overflow: auto; background: #e8eefb; border-radius: 12px; padding: 12px; }
.gr-cardwrap .rc { box-shadow: 0 6px 24px rgba(6, 13, 43, .2); transform-origin: top left; }

@media (max-width: 900px) {
  .gr-cardwrap .rc { zoom: .55; }
}
@media (max-width: 600px) {
  .gr-in { width: 54px; padding: 8px 4px; }
  .gr-tbl .gr-name { min-width: 120px; }
  .sc-term-row.gr-band, .sc-term-row.gr-comp { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .gr-cardwrap .rc { zoom: .42; }
}

/* ===== Full-year grade sheets (5A.4 improvement) ===== */
.gs-views{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 10px}
.gs-formula{font-size:12px;max-width:640px}
.seg{display:inline-flex;border:1px solid var(--line,rgba(120,160,255,.25));border-radius:999px;overflow:hidden}
.seg button{background:transparent;color:inherit;border:0;padding:6px 12px;font:inherit;font-size:12.5px;cursor:pointer}
.seg button.on{background:linear-gradient(90deg,#2f8bff,#8b3dff);color:#fff}
.gs-pass{color:inherit}.gs-fail{color:#ff5a6e!important;font-weight:700}
.gs-cls td.n,.gs-cls th.n,.gs-grid td.n,.gs-grid th.n{text-align:center}
.gs-cls input,.gs-cls select{min-width:110px}.gs-remrow td{padding-top:0!important;border-top:0!important}.gs-remrow input{width:100%}
.gs-gridwrap{max-height:70vh;overflow:auto}
.gs-grid th,.gs-grid td{padding:4px 5px}.gs-grid .gs-name{position:sticky;left:0;background:var(--panel,#0e1b45);z-index:1;min-width:150px;text-align:left}
.gs-grid .gs-name small{display:block;opacity:.7}.gs-grid thead th{position:sticky;top:0;background:var(--panel,#0e1b45);z-index:2}
.gs-grid thead tr:nth-child(2) th{top:30px}
.gs-semh{border-bottom:2px solid #8b3dff!important}.gs-colh small{display:block;font-weight:400;font-size:10px;opacity:.75}.gs-colh.exam b{color:#ffc54d}.gs-colh i{font-size:10px;opacity:.7;margin-left:3px}
.gs-semavg{background:rgba(139,61,255,.12);font-weight:700}
.gs-in{width:56px;text-align:center;padding:5px 3px;border-radius:7px;border:1px solid rgba(120,160,255,.3);background:rgba(10,20,60,.5);color:inherit;font:inherit}
.gs-in.bad{outline:2px solid #ff5a6e}.gs-in.dirty{border-color:#19d3ff}.gs-ro{opacity:.85}
.gs-submit{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}
.gs-submit>div{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px;border:1px solid rgba(120,160,255,.2);border-radius:10px}
.gs-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.gs-sem{border:1px solid rgba(120,160,255,.25);border-radius:12px;padding:10px;margin-bottom:8px}
.gs-semtop{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:6px}.gs-semtop .sm-n{flex:1;min-width:140px}.gs-semtop .sm-w{width:70px}
.gs-col{grid-template-columns:1.4fr 1fr .8fr .6fr auto!important}
.gs-subpass{display:flex;flex-wrap:wrap;gap:6px 14px}.gs-subpass label{display:flex;align-items:center;gap:6px;font-size:13px}.gs-subpass input[type=number]{width:64px}
.gs-design{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:16px;align-items:start}
.gs-pvwrap{position:sticky;top:70px}.gs-pvwrap .gr-cardwrap{max-height:78vh;overflow:auto}
.gs-assets{display:flex;flex-wrap:wrap;gap:18px}.gs-asset{width:96px;height:96px;border:1px dashed rgba(120,160,255,.4);border-radius:10px;display:grid;place-items:center;margin:4px 0;background:#fff}
.gs-asset img{max-width:90px;max-height:90px}.gs-asset i{color:#7a86ad;font-size:26px}
.gs-portal{max-height:none}
@media (max-width:900px){.gs-design{grid-template-columns:minmax(0,1fr)}.gs-pvwrap{position:static}}
@media (max-width:600px){.gs-col{grid-template-columns:1fr 1fr!important}.gs-grid .gs-name{min-width:110px}.gs-in{width:48px}}
.gs-views~.fs-filters .fs-date{min-width:0;max-width:100%;flex-wrap:wrap}.gs-views~.fs-filters select{max-width:100%;min-width:0}
.gs-cls input,.gs-cls select{background:rgba(3,8,32,.7);color:inherit;border:1px solid rgba(120,160,255,.3);border-radius:8px;padding:6px 8px;font:inherit;font-size:13px}

