:root{--navy:#132743;--ink:#172b46;--muted:#6f8095;--line:#e5ebf2;--blue:#1766cc;--bg:#f5f7fb;--white:#fff}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font:14px/1.5 Inter,system-ui,-apple-system,Segoe UI,sans-serif}a{color:#1766cc;text-decoration:none}a:hover{text-decoration:underline}.shell{display:flex;min-height:100vh}.sidebar{width:246px;flex-shrink:0;background:#132744;color:#cfdaea;padding:27px 15px;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;gap:10px;align-items:center;color:white;font-size:21px;font-weight:800;margin:0 8px 47px}.brand:hover{text-decoration:none}.brand small{display:block;font-weight:500;color:#90a8c7;font-size:10px;letter-spacing:1.1px;text-transform:uppercase}.brandmark{background:#2e7bdb;color:#fff;padding:8px 15px;border-radius:11px}.navtitle{font-size:10px;letter-spacing:1.8px;font-weight:800;color:#7891b0;margin:27px 14px 11px}.navlink{color:#d1ddeb;display:block;padding:10px 13px;border-radius:8px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.navlink:hover{background:#213b5e;color:white;text-decoration:none}.navlink small{float:right;color:#7891b0}.bottom{margin-top:60px;font-size:11px;color:#7e93ab;padding:0 10px}.online{display:block;color:#74cda9;margin-top:8px}.main{min-width:0;flex:1}.topbar{height:70px;background:white;display:flex;align-items:center;justify-content:space-between;padding:0 35px;border-bottom:1px solid var(--line);color:#72849b;font-size:12px}.avatar{background:#ecf2fc;color:#2863b4;border-radius:50%;padding:10px;font-weight:700}.content{max-width:1700px;margin:auto;padding:34px 37px 55px}.heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.heading h1{font-size:29px;letter-spacing:-.9px;margin:3px 0 5px}.heading p{margin:0;color:var(--muted)}.titlelight{font-weight:450;color:#596b80}.eyebrow{color:#2871cb;font-size:11px;font-weight:800;letter-spacing:1.6px}.actions{display:flex;gap:8px;flex-wrap:wrap}.btn{display:inline-flex;justify-content:center;align-items:center;border:1px solid #d8e0eb;color:#344763;border-radius:7px;background:#fff;padding:10px 15px;cursor:pointer;font-size:12px;font-weight:700;white-space:nowrap;font-family:inherit}.btn:hover{background:#f0f6fc;text-decoration:none}.btn.primary{background:#206dca;color:white;border-color:#206dca}.btn.primary:hover{background:#155bb2}.btn.danger,.linkdanger{color:#b73939}.cards{display:flex;gap:16px;margin:25px 0;flex-wrap:wrap}.metric{flex:1;min-width:160px;background:white;border:1px solid var(--line);border-radius:10px;padding:18px 22px;box-shadow:0 2px 11px #1d38510a}.metric span{display:block;font-size:12px;color:#7789a1}.metric b{display:block;font-size:28px;letter-spacing:-.8px;margin:4px 0}.metric small{color:#8596a9}.metric.mini{min-width:95px;padding:13px 18px}.metric.mini b{font-size:24px}.panel{background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 2px 12px #17324d08;min-width:0;margin-bottom:20px}.panelhead{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 22px;border-bottom:1px solid var(--line)}h2{font-size:17px;margin:0}h3{font-size:14px;margin:16px 0}.muted{color:var(--muted);font-size:12px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px}td,th{padding:13px 14px;text-align:left;border-bottom:1px solid #eaf0f5;vertical-align:middle}th{color:#697e97;background:#f7f9fc;font-weight:800;font-size:11px;text-transform:uppercase;letter-spacing:.4px}th small{display:block;text-transform:none;letter-spacing:0;margin-top:4px;font-weight:500}tbody tr:hover{background:#fafcff}.empty{text-align:center;padding:35px;color:#8797aa}.pill{background:#edf4fd;border-radius:15px;color:#336cba;padding:5px 9px;font-size:11px;font-weight:700}.tabbar{display:flex;gap:30px;border-bottom:1px solid #dfe6ee;margin:0 0 20px}.tabbar a{padding:12px 3px;color:#6b7b90;font-weight:650;font-size:12px}.tabbar a.selected{color:#1865c6;border-bottom:3px solid #2375d9}.toolbar{display:flex;gap:7px;flex-wrap:wrap}.toolbar input{width:210px}.grade-table{white-space:nowrap}.grade-table td,.grade-table th{text-align:center;padding:11px 9px}.grade-table .leftsticky{text-align:left;position:sticky;left:0;background:#fff;z-index:1;min-width:175px}.grade-table th.leftsticky{background:#f7f9fc;z-index:2}.studentname{font-weight:750;color:#263e59}.mono{font-family:ui-monospace,Consolas,monospace;color:#7b8ca2}.score{width:62px!important;padding:7px 5px!important;text-align:center;background:#f8fbff!important;border-color:#dee8f6!important}.total{background:#e6f7f9!important;color:#13616d}.grade{display:inline-block;min-width:37px;border-radius:5px;padding:6px;color:#21725b;background:#d7f7e6;font-weight:800}.grade.F{color:#b43b3b;background:#ffe3e3}.grade.pending{color:#64798e;background:#edf1f5}.grade.P{background:#fff0cd;color:#8b6600}.grade.C{background:#e7eefc;color:#335cb5}.note-link{font-size:12px}.strong{font-weight:800}.panelend{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 22px;border-top:1px solid var(--line)}.twocol{display:grid;grid-template-columns:1fr 1fr;gap:20px}.inner{padding:21px}.task{border:1px solid #e6edf5;border-radius:7px;margin-bottom:8px;padding:11px}.task summary{cursor:pointer;display:flex;justify-content:space-between;font-weight:700}.task summary small{display:block;color:#92a0af;font-weight:400}.task summary b{color:#1b71c7}.task form{margin-top:13px}label{display:block;font-size:12px;font-weight:700;color:#546780;margin:0 0 15px}input,select,textarea{display:block;width:100%;border:1px solid #dce4ed;border-radius:6px;background:white;padding:10px 11px;color:#203450;font:inherit;margin-top:6px;outline-color:#71a9ec}textarea{resize:vertical;line-height:1.6}input[type=file]{padding:9px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.formpanel{padding:26px 30px;max-width:1100px}.section-title{font-size:15px;font-weight:800;padding-bottom:10px;margin:15px 0 20px;border-bottom:1px solid var(--line)}.uploadform{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.uploadform input{flex:1;min-width:160px}.uploadform select{min-width:180px}.smalllink{font-size:12px;display:inline-block;margin-top:9px}hr{border:0;border-top:1px solid var(--line);margin:24px 0}.note{border-bottom:1px solid var(--line);padding:14px 0}.note:first-child{padding-top:0}.note p{white-space:pre-wrap}.notetop{display:flex;justify-content:space-between;align-items:center}.notetop small{color:#8999aa}.linkdanger{border:0;background:none;cursor:pointer;padding:0;font:inherit;font-size:12px}.alert{background:#e9f6ef;border:1px solid #b6dec7;border-radius:7px;color:#276344;padding:11px 15px;margin-bottom:20px}.alert.error{background:#fff2f2;color:#a63232;border-color:#f2b5b5}.check{display:flex;align-items:center;gap:9px;margin:0}.check input{width:auto;margin:0}@media(max-width:1100px){.sidebar{width:200px}.twocol{grid-template-columns:1fr}.content{padding:23px}.heading{align-items:flex-start;flex-direction:column}}@media(max-width:650px){.sidebar{display:none}.topbar{height:53px;padding:0 16px}.content{padding:16px}.formgrid{grid-template-columns:1fr}.panelhead{align-items:flex-start;flex-direction:column}.panelend{flex-direction:column;align-items:flex-start}.heading h1{font-size:23px}}

/* Academic Management: TAFE assessment grade colours */
.mark-cell.mark-LF,.mark-LF{background:#ff9b9b!important}.mark-cell.mark-F,.mark-F{background:#ffcd69!important}.mark-cell.mark-MF,.mark-MF{background:#ffe3aa!important}.mark-cell.mark-P,.mark-P{background:#caff9c!important}.mark-cell.mark-C,.mark-C{background:#c7f9f9!important}.mark-cell.mark-D,.mark-D{background:#98cafd!important}.mark-cell.mark-HD,.mark-HD{background:#cbc9ff!important}.mark-cell.mark-pending{background:#fff!important}.mark-cell input{background:transparent!important;color:#17314e;text-align:right;font-weight:600}.guide-fields{max-width:1100px}.guide-row{margin-bottom:12px}.guide-row textarea{min-height:56px;width:100%;font:inherit}.guide-group{padding:16px;border-top:1px solid #d6e0eb}.band-legend{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0}.band-legend span{padding:7px 10px;border-radius:4px;font-size:12px;font-weight:700}

/* v6: assessment names and academic contacts */
.unit-contacts{display:flex;gap:8px 24px;flex-wrap:wrap;margin-top:13px;color:#536b87;font-size:13px}.unit-contacts strong{color:#243d5b}.grade-table th.assessment-heading{text-align:left;min-width:180px;white-space:normal;vertical-align:bottom}.grade-table th.assessment-heading small{text-align:left}

/* v7: seven-band grade summary and assessment numbering */
.grade-summary{margin:0 0 20px;padding:17px 22px}.grade-summary-title{display:flex;gap:15px;flex-wrap:wrap;align-items:baseline;margin-bottom:14px}.grade-summary-title strong{font-size:15px}.grade-summary-title span{font-size:12px;color:#6f8095}.grade-summary-bands{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.grade-summary-band{padding:12px 9px;border-radius:7px;background:#f4f7fb;border:1px solid #e6edf5;min-width:0}.grade-summary-band .grade-summary-label{display:flex;justify-content:space-between;align-items:center;gap:4px;font-weight:800;color:#344c66}.grade-summary-band .threshold{font-weight:600;color:#687e96;background:#fff;padding:2px 5px;border-radius:3px;font-size:10px}.grade-summary-band strong{display:block;font-size:23px;margin-top:7px;color:#203d5a}.grade-summary-band small{display:block;font-size:10px;color:#73859a}.assessment-number{display:inline-block;color:#527398;font-size:10px;font-weight:800;letter-spacing:.2px;margin-right:3px}@media(max-width:980px){.grade-summary-bands{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:540px){.grade-summary-bands{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v8: compact numbered assessment grid, with key above results */
.assessment-key{padding:15px 22px 18px;border-bottom:1px solid var(--line);background:#fbfcff}
.assessment-key-heading{font-size:12px;font-weight:800;color:#344f70;margin-bottom:10px}
.assessment-key-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px 17px}
.assessment-key-item{display:flex;align-items:flex-start;gap:9px;min-width:0;font-size:12px}
.assessment-key-index{background:#e8f0fc;color:#165eae;border:1px solid #cddff6;border-radius:5px;min-width:27px;padding:4px;text-align:center;font-weight:850}
.assessment-key-item strong{display:block;color:#2d4b6e;font-weight:750;white-space:normal}
.assessment-key-item small{display:block;color:#768ba5;margin-top:3px}
.grade-table th.assessment-index-heading{text-align:center;min-width:75px;width:90px;font-size:14px;vertical-align:middle}

/* Version 9: visibly separate grade-grid columns and left-align ID and grades. */
.grade-table{border-collapse:separate;border-spacing:0}
.grade-table th,.grade-table td{border-right:1px solid #cbd6e3;border-bottom:1px solid #dce5ef}
.grade-table th:last-child,.grade-table td:last-child{border-right:0}
.grade-table th:nth-child(2),.grade-table td:nth-child(2){text-align:left}
.grade-table th:nth-last-child(2),.grade-table td:nth-last-child(2){text-align:left}
.grade-table td:nth-last-child(2) .grade{display:inline-block;text-align:left}
.grade-table .leftsticky{border-right:1px solid #b8c8d9}
/* Compact semester/year badges for the sidebar unit links */
.sidebar .navlink small{font-size:10px;letter-spacing:0;white-space:nowrap}

/* v10: neutral assessment cells; colour reserved for total results only. */
.grade-table td.mark-cell,.grade-table td.mark-cell.mark-pending{background:#fff!important}
.grade-table td.mark-cell input.score{background:#fff!important}
.grade-table td .grade{background:transparent!important;color:#354964!important;padding:0;border-radius:0}
.grade-table th.assessment-index-heading small{display:block;font-size:11px;font-weight:500;color:#6b7d96;text-align:center;margin-top:2px}
.grade-table td.total.mark-pending{background:#fff!important;color:#64798e}

/* v11: compact overview and one-line search controls */
.cards{gap:10px;margin:13px 0 12px}.cards .metric{padding:11px 16px;min-height:74px}.cards .metric b{font-size:24px;margin:2px 0}.cards .metric small{font-size:10px}
.grade-summary{padding:9px 13px;margin:0 0 12px}.grade-summary-title{margin-bottom:7px;gap:10px}.grade-summary-bands{gap:5px}.grade-summary-band{padding:7px 8px}.grade-summary-band strong{font-size:17px;margin-top:3px}.grade-summary-band small{font-size:9px}.grade-summary-label{font-size:11px}.grade-summary-band .threshold{font-size:9px}
.results-search{display:flex;flex-flow:row nowrap;align-items:center;gap:7px}.results-search label{margin:0;width:auto;white-space:nowrap;font-size:12px}.results-search input,.results-search select{margin:0;height:36px}.results-search select{width:155px;min-width:140px}.results-search input{width:170px;min-width:120px}.results-search .btn{height:36px;padding:7px 17px}.results-search>*{flex-shrink:0}
@media(max-width:850px){.panelhead{flex-wrap:wrap}.results-search{width:100%;overflow-x:auto;padding:2px 0}.results-search input{flex:1;min-width:125px}}

/* v12: search label remains visible at desktop and tablet widths */
#results .panelhead{gap:10px;padding:12px 16px;min-width:0}
#results .panelhead>div{min-width:190px;flex:1 1 auto}
#results .panelhead h2{font-size:15px}
#results .panelhead .muted{font-size:10px}
#results .results-search{display:flex;align-items:center;justify-content:flex-end;flex:0 0 auto;gap:8px;min-width:0;max-width:100%;margin:0}
#results .results-search label{display:inline-block!important;visibility:visible;opacity:1;flex:0 0 51px;width:51px;min-width:51px;margin:0;font-size:12px;line-height:36px;overflow:visible;white-space:nowrap;color:#314d6a}
#results .results-search select{flex:0 0 150px;width:150px;min-width:0}
#results .results-search input{flex:0 1 168px;width:168px;min-width:100px}
#results .results-search .btn{flex:0 0 auto}
/* v12: condensed KPI and grade distribution without dropping information */
.cards{gap:8px;margin:8px 0 8px}.cards .metric{padding:7px 12px;min-height:55px}.cards .metric span{font-size:10px}.cards .metric b{font-size:19px;line-height:1.2;margin:2px 0}.cards .metric small{font-size:9px}
.grade-summary{padding:6px 10px;margin:0 0 9px}.grade-summary-title{margin-bottom:4px;gap:7px}.grade-summary-title strong{font-size:12px}.grade-summary-title span{font-size:10px}.grade-summary-bands{gap:4px}.grade-summary-band{padding:4px 6px;border-radius:5px}.grade-summary-band .grade-summary-label{font-size:10px}.grade-summary-band .threshold{font-size:9px;padding:1px 4px}.grade-summary-band strong{font-size:15px;line-height:1.2;margin-top:1px}.grade-summary-band small{font-size:9px;line-height:1.1;display:block}
@media(max-width:1120px){#results .panelhead{flex-wrap:wrap}#results .results-search{width:100%;justify-content:flex-start;flex-wrap:wrap}#results .results-search input{flex:1 1 150px}}
@media(max-width:500px){#results .results-search label{flex-basis:100%;line-height:1.2}#results .results-search select{flex:1 1 155px}#results .results-search input{flex:1 1 150px}.grade-summary-bands{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v13: prevent clipping of search dropdown choices and input placeholder. */
#results .panelhead { flex-wrap:wrap; align-items:center; }
#results .panelhead > div { flex:1 1 230px; }
#results .results-search { flex:0 1 auto; display:flex; flex-wrap:wrap; justify-content:flex-end; align-items:center; width:auto; max-width:100%; gap:8px; }
#results .results-search label { flex:0 0 auto; width:auto; min-width:52px; margin:0; }
#results .results-search select { flex:0 0 185px; width:185px; min-width:185px; padding:8px 30px 8px 11px; font-size:12px; white-space:nowrap; text-overflow:clip; }
#results .results-search input { flex:0 1 215px; width:215px; min-width:200px; padding:8px 11px; font-size:12px; }
#results .results-search input::placeholder { color:#687c96; opacity:1; }
#results .results-search .btn { flex:0 0 auto; }
@media(max-width:1050px) {
 #results .results-search { flex:1 1 100%; justify-content:flex-start; }
}
@media(max-width:580px) {
 #results .results-search { gap:7px; }
 #results .results-search select { flex:1 1 175px; min-width:175px; }
 #results .results-search input { flex:1 1 200px; min-width:185px; }
}

/* v14: Windows Chromium native SELECT text vertical clipping fix.
   A fixed 36px control with 8px vertical padding clipped descenders on Windows. */
#results .results-search select {
  box-sizing:border-box;
  height:42px;
  min-height:42px;
  line-height:normal;
  padding:0 36px 0 12px;
  font-size:13px;
  width:195px;
  min-width:195px;
  flex:0 0 195px;
  text-overflow:clip;
  appearance:auto;
  -webkit-appearance:menulist;
}
#results .results-search input {height:42px;min-height:42px;line-height:normal;padding:0 12px;font-size:13px;}
#results .results-search .btn {height:42px;min-height:42px;}
@media(max-width:580px){#results .results-search select{flex:1 1 195px;min-width:195px;}}

/* v15 student notes and cross-unit risk history */
.risk-types{border:1px solid #dbe5ee;border-radius:7px;margin:10px 0 16px;padding:12px;display:flex;gap:14px;flex-wrap:wrap}.risk-types legend{font-weight:650;color:#bd3140;padding:0 5px}.risk-types label{display:inline-flex;align-items:center;gap:5px;font-size:13px}.risk-types input{width:auto}.entry-list{margin-top:22px}.entry-list h3{font-size:14px;margin-bottom:10px}.enrolments{display:flex;gap:8px;flex-wrap:wrap}.history-table{width:100%;border-collapse:collapse}.history-table th,.history-table td{border-bottom:1px solid #dbe5ee;text-align:left;padding:10px 12px}.history-table th{background:#f3f7fb}.student-row[hidden]{display:none}.note p{white-space:pre-wrap;overflow-wrap:anywhere}

/* Version 16: enrolment navigation and listings */
.enrolment-menu{margin:5px 10px 8px;color:#dce8ff}.enrolment-menu summary{cursor:pointer;list-style:none;padding:10px 13px;border-radius:7px;font-size:13px}.enrolment-menu summary::-webkit-details-marker{display:none}.enrolment-menu summary:hover,.enrolment-menu[open] summary{background:rgba(255,255,255,.09)}.enrolment-submenu{display:flex;flex-direction:column;margin:2px 0 8px 24px}.enrolment-submenu a{padding:8px 10px;color:#dce8ff;text-decoration:none;font-size:13px;border-left:1px solid #567496}.enrolment-submenu a:hover{background:rgba(255,255,255,.09);color:white}.enrolment-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}.enrolment-tab{padding:9px 12px;border:1px solid #d7e1ed;border-radius:8px;background:white;color:#25537c;text-decoration:none}.enrolment-tab.selected{background:#1764c9;color:white;border-color:#1764c9}.enrolment-tab span{font-size:12px;margin-left:5px;opacity:.8}.enrolment-table-wrap{overflow-x:auto}.enrolment-table-wrap table{min-width:860px}.enrolment-row[hidden]{display:none}.status-form{display:flex;align-items:center;gap:6px}.status-form select{min-width:104px;min-height:35px;padding:5px}.status-form .btn{padding:8px 12px}.status-pill{display:inline-block;border-radius:30px;padding:5px 9px;background:#e4f4e8;color:#236b43;font-size:12px}.status-pill.withdrawn{background:#fff0e0;color:#99521a}

.unit-enrolment-list th,.unit-enrolment-list td{text-align:left;padding:11px 14px}.unit-enrolment-list td:first-child{white-space:nowrap;width:110px}.unit-enrolment-list td:last-child{white-space:nowrap;width:180px}

/* v23 campus selector: native dropdown styled like the search box */
.sidebar .campus-selector{margin:3px 8px 12px}
.sidebar .campus-selector select{display:block;width:100%;height:42px;min-height:42px;box-sizing:border-box;padding:0 28px 0 11px;margin:0;border:1px solid #ced9e7;border-radius:7px;background:#fff;color:#1f3857;font-size:12px;line-height:normal;white-space:nowrap;appearance:auto;-webkit-appearance:menulist;cursor:pointer}
.sidebar .campus-selector select:focus{outline:2px solid #73a9ea;outline-offset:2px}

/* Southbank unit catalogue */
.southbank-list{width:100%;border-collapse:collapse;margin-top:12px}.southbank-list th{text-align:left;padding:12px 10px;border-bottom:1px solid #d6dfeb}.southbank-list td{padding:16px 10px;border-bottom:1px solid #d6dfeb;vertical-align:top}.southbank-list td:first-child{width:28%;font-weight:700}.southbank-list td a{font-size:1.1rem;color:#087c91}
/* v33 document-order study guide editor */
.guide-editor{max-width:none;width:100%;margin-bottom:24px;overflow:hidden;box-sizing:border-box}
.guide-section-title{margin:0;padding:14px 22px;background:#c00000;color:#fff;font-size:18px;line-height:1.4}
.guide-section-title small{display:block;font-size:12px;font-weight:400;margin-top:4px;color:#fff}
.guide-section-body{padding:22px}.guide-field{display:block;margin:0 0 16px}.guide-field textarea{width:100%;box-sizing:border-box;font-weight:400;line-height:1.5;min-height:70px;resize:vertical}
.guide-fixed-text{white-space:pre-wrap;line-height:1.6}.guide-nav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px}.guide-nav a{padding:6px 10px;border:1px solid #d6dfeb;border-radius:5px;background:white;font-size:12px}
.guide-table-scroll{overflow-x:auto;max-width:100%;margin:16px 0}.guide-edit-table{border-collapse:collapse;width:100%;min-width:650px;table-layout:auto}.guide-edit-table td{border:1px solid #c8d0dc;padding:7px;vertical-align:top;min-width:110px;text-align:left}.guide-edit-table textarea{display:block;width:100%;min-width:100px;min-height:75px;box-sizing:border-box;resize:vertical;border:1px solid #d6dfeb;font-size:13px;font-weight:400;line-height:1.5;white-space:pre-wrap}.guide-edit-table tr:first-child td{background:#edf2f8}.staff-edit-table{min-width:1150px}.staff-edit-table td{min-width:140px}.guide-savebar{display:flex;gap:12px;align-items:center;position:sticky;bottom:0;background:#fff;padding:15px;border-top:1px solid #d6dfeb;z-index:5}.guide-editor[id]{scroll-margin-top:20px}#title-page-preview{width:100%;height:980px;border:1px solid #d6dfeb;margin-top:18px;background:#eee}#title-page-preview[hidden]{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
