/**
 * ============================================================================
 *  ELEVSAMMANSTÄLLNING: vågrät rullning i stället för hopklämda kolumner
 * ============================================================================
 *  #test-report-student-table har table-layout: fixed, vilket tvingar in
 *  tabellen i containerns bredd. Med 40+ uppgifter får varje kolumn ungefär ett
 *  tecken: "-0,2" blir "-(" och sifferraden blir "101112131415". Här får
 *  tabellen i stället ta den bredd den behöver, och wrappern rullar i sidled.
 *
 *  ROLLBACK — två oberoende avstängningar, båda enradiga:
 *    1. Ta bort klassen we-report-hscroll på #test-report-student-table-wrapper
 *       i single-we_test.php. Allt nedan slutar gälla direkt.
 *    2. Ta bort wp_enqueue_style('wp_education_report_scroll', ...) i
 *       wp-education-test.php, eller radera den här filen.
 *
 *  Inget av detta rör tabellens markup, så en rollback återställer exakt det
 *  gamla utseendet.
 * ============================================================================
 */

/* Wrappern rullar i båda led. Vertikal rullning behövs för att rubrikraden ska
   kunna fästas med position: sticky — sticky fäster mot närmaste scroll-
   container, och sätter man overflow-x: auto blir overflow-y ändå auto enligt
   spec. Då måste containern ha en höjd att fästa mot, annars finns inget att
   rulla inuti och rubriken sitter aldrig fast. */
.we-report-hscroll
{
	overflow: auto;
	max-height: calc(100vh - 260px);
}

/* I förstorat läge täcker panelen hela fönstret och kan ta mer höjd. */
.ibox.fullscreen .we-report-hscroll
{
	max-height: calc(100vh - 130px);
}

/* Låt tabellen bli så bred som innehållet kräver i stället för att klämma.
   border-collapse: separate krävs för att klistrade celler ska målas rätt —
   med collapse (Bootstraps standard) ritas de över grannkolumnen i stället för
   att ligga kvar i sin egen ruta. */
.we-report-hscroll #test-report-student-table
{
	table-layout: auto;
	width: max-content;
	min-width: 100%;
	border-collapse: separate;
	border-spacing: 0;
}

/* Uppgiftskolumnerna: tillräckligt breda för ett tvåsiffrigt tal eller ett
   kort svar, utan radbrytning mitt i värdet. */
.we-report-hscroll #test-report-student-table .col_question
{
	min-width: 28px;
	white-space: nowrap;
}

/* Elevnamnet ska stå kvar när man drar i sidled, annars tappar läraren
   orienteringen. Endast namnkolumnen klistras, och med left: 0 — inga
   pixelavstånd att gissa. Kolumnerna före den (status, rättningsknapp) rullar
   in under namnet när man drar åt höger, och i oscrollat läge ligger allt kvar
   på sin naturliga plats. Ett tidigare försök satte left: 44px, vilket sköt
   namnet inåt och lade det över första uppgiftskolumnen redan från start.
   Bakgrund krävs — annars syns innehållet under. */
/* Statuskolumnen först, klistrad mot vänsterkanten. Bredden låses till 40px —
   samma värde som style.css redan sätter — så att namnkolumnens offset nedan
   blir exakt och de inte kan lägga sig över varandra. */
#test-report-student-table-wrapper.we-report-hscroll #test-report-student-table td.col_student-status,
#test-report-student-table-wrapper.we-report-hscroll #test-report-student-table th.col_student-status
{
	position: sticky;
	left: 0;
	z-index: 3;
	width: 40px;
	min-width: 40px;
	max-width: 40px;
	background-color: #FFFFFF;
}

/* Specificiteten är medvetet hög: style.css sätter
   "#test-report #test-report-student-table th.col_student-name { position: relative }",
   vilket annars övertrumfar sticky och gör rubrikcellen orörlig. */
#test-report-student-table-wrapper.we-report-hscroll #test-report-student-table td.col_student-name,
#test-report-student-table-wrapper.we-report-hscroll #test-report-student-table th.col_student-name
{
	position: sticky;
	left: 40px;
	z-index: 3;
	min-width: 180px;
	background-color: #FFFFFF;
	text-align: left;
}

/* table-striped färgar raderna; den klistrade cellen måste följa med annars
   lyser den vitt mot randiga rader. */
.we-report-hscroll #test-report-student-table > tbody > tr:nth-of-type(odd) > .col_student-status,
.we-report-hscroll #test-report-student-table > tbody > tr:nth-of-type(odd) > .col_student-name,
.we-report-hscroll #test-report-student-table > tr:nth-of-type(odd) > .col_student-status,
.we-report-hscroll #test-report-student-table > tr:nth-of-type(odd) > .col_student-name
{
	background-color: #F9F9F9;
}

/* wp-education.js fäster rubrikraden med position: fixed när man rullar. Fixed
   följer inte med i sidled, så rubrikerna glider ur linje mot kolumnerna så
   fort man drar åt höger. Här neutraliseras den och ersätts av sticky nedan,
   som följer med i sidled men står kvar i höjdled. */
.we-report-hscroll #test-report-student-table.we-test-fixed-report-header #we-test-report-header-row,
.we-report-hscroll #test-report-student-table.we-test-fixed-report-header .col_edit .we-question-guide-lines-edit
{
	position: static;
	top: auto;
}

/* Rubrikraden med Elever och uppgiftsnumren. */
#test-report-student-table-wrapper.we-report-hscroll #test-report-student-table #we-test-report-header-row > th,
#test-report-student-table-wrapper.we-report-hscroll #test-report-student-table #we-test-report-header-row > td
{
	position: sticky;
	top: 0;
	z-index: 4;
	background-color: #FFFFFF;
}

/* Korsningen mellan klistrad rad och klistrad kolumn måste ligga överst,
   annars rullar elevnamnet in över rubrikcellen. */
#test-report-student-table-wrapper.we-report-hscroll #test-report-student-table #we-test-report-header-row > th.col_student-status,
#test-report-student-table-wrapper.we-report-hscroll #test-report-student-table #we-test-report-header-row > th.col_student-name
{
	z-index: 5;
}

/* Kompakt läge (utan .we-report-hscroll): kolumnerna kan bli smalare än
   Bootstraps cellpadding på 8px, och då knuffas siffran och knappen åt höger
   i stället för att sitta centrerat. Nolla padding i sidled för uppgifts-
   kolumnerna — bara när tabellen faktiskt klämmer ihop dem. */
#test-report-student-table-wrapper:not(.we-report-hscroll) #test-report-student-table .col_question {
	padding-left: 0;
	padding-right: 0;
	text-align: center;
}

/* ---------------------------------------------------------------------------
   RÄTTNINGSLÄGET "en fråga i taget"
   ---------------------------------------------------------------------------
   I rättningsläget döljer _test_report.scss alla uppgiftskolumner utom den som
   rättas, och uppgiftspanelen (#wp-education-examination) läggs in som en egen
   rad i tabellen. Namnkolumnen är fortfarande sticky med left: 40px och vit
   bakgrund — men statuskolumnen som de 40 pixlarna syftar på är display: none
   i det läget. Cellen hamnar därför ovanpå panelens vänsterkant och målar över
   den: "UPPGIFT 44" blev "GIFT 44", "Rätt svar" blev "ätt svar".

   Sticky fyller ingen funktion här. Tabellen visar bara namnkolumnen och den
   rättade kolumnen, så det finns inget att rulla i sidled och inget att hålla
   kvar. Stäng av den så länge rättningsläget är aktivt.

   Specificiteten är medvetet högre än reglerna ovan (tre id:n mot två), så att
   den vinner utan !important. #test-report är sektionen som omsluter wrappern,
   se single-we_test.php. */
#test-report.test-report-edit #test-report-student-table-wrapper.we-report-hscroll #test-report-student-table td.col_student-name,
#test-report.test-report-edit #test-report-student-table-wrapper.we-report-hscroll #test-report-student-table th.col_student-name,
#test-report.test-report-edit #test-report-student-table-wrapper.we-report-hscroll #test-report-student-table td.col_student-status,
#test-report.test-report-edit #test-report-student-table-wrapper.we-report-hscroll #test-report-student-table th.col_student-status
{
	position: static;
	left: auto;
	z-index: auto;
}
