:root {
	--bs-primary: #aea700;
}


html, body, div, span, applet, object, iframe, input, option,
h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, acronym, address, 
big, cite, code, del, dfn, em, font, ins, kbd, q, s, samp, small, 
strike, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, 
form, label, legend, table, caption, tbody, tfoot, tr, th, td {
	font-family: 'Open Sans', sans-serif;
	color: #4C4C4C;
}

a {
	color: #4C4C4C;
}

a:hover {
	color: #737373;
}

.header {
	min-height: 20px;
}

h4, h5, h6 {
	font-size: medium;
	font-weight: bold;
}

h3 {
	font-size: large;
	font-weight: bold;
}

h2 {
	font-size: x-large;
	font-weight: bold;
}

h1 {
	font-size: xx-large;
	font-weight: bold;
}

body {
	padding: 0;
	margin: 0;
}

td {
	padding-bottom: 5px;
	padding-top: 5px;
}

.pr_color {
	color: #aea700;
	font-size: small;
}

.error {
	color: #ff0000;
	font-size: small;
}

.filler {
	float:left;
	width: calc(max(15%, (100% - 1000px)/2));
}

.footer {
	clear: both;
}

#mainframe {
	width: 70%;
	padding: 10px;
	max-width: 1000px;
	float: left; 
}

.outputfield {
	white-space: pre-line; 
	white-space: pre-wrap; 
	overflow-wrap: break-word;
}

.navbar-dark .navbar-nav .nav-link {
	color: rgba(255,255,255,0.80);
}

.navbar-dark .navbar-nav .nav-link.active, .navbar-dark .navbar-nav .show>.nav-link {
	color: #fff;
	text-decoration: underline;
}

.navbar-dark .navbar-nav .nav-link:hover {
	color: #fff;
	text-decoration: underline;
}

.mydropdown .dropdown-item {
	color: rgba(255,255,255,0.80);
}

.mydropdown .dropdown-header {
	color: rgba(255,255,255,0.80)!important;
}

.mydropdown .dropdown-item:hover {
	color: #fff;
	background-color: #aea700;
	text-decoration: underline;
}

.dropdown-item.active, .dropdown-item:active {
	background-color: #aea700;
}

.btn-primary {
	background-color: #aea700;
	border-color: #aea700;
}

.btn-primary:hover {
	background-color: #999400;
	border-color: #999400;
}

.btn-tertiary {
	background-color: #008888;
	border-color: #008888;
	color: white;
}

.btn-tertiary:hover {
	background-color: #006666;
	border-color: #006666;
	color: white;
}

.btn-secondary {
	background-color: #8e8e8d;
	border-color: #8e8e8d;
}

.btn-secondary:hover {
	background-color: #737373;
	border-color: #737373;
}

.btn-success {
	background-color: #aea700;
	border-color: #aea700;
}

.btn-success:hover {
	background-color: #999400;
	border-color: #999400;
}
	

.table-primary {
	background-color: #aea700!important;
	border-color: #aea700!important;
	color: #fff;
}

.table-primary > * {
	color: #fff;
}

.table-secondary {
	background-color: #8e8e8d!important;
	border-color: #8e8e8d!important;
	color: #fff!important;
}

.table-secondary > * {
	color: #fff;
}

.form-check-input:checked {
	background-color: #aea700!important;
	border-color: #aea700!important;
}

.mycard .card {
	background-color: #ECECEC;
	border-radius: 0!important;
	border-left: 0;
	border-right: 0;
	border-top: 0;
	border-bottom: 1.5rem solid #FFF;
}

.mycard .card-header {	
	border-radius: 0!important;
	min-height: 3.5rem;
	position: relative;
	border: 0;
}

.mycard .gray-card {
	background-color: #8e8e8d!important;
}

.mycard .card-header h2:before {
	content: "+";
	font-size: 2.5rem;
	font-weight: 300;
	position: absolute;
	top: 50%;
	transform: translate(0, -50%);	
	left: -1.5rem;
}

.mycard .card-header h2 {
	position: absolute;
	top: 50%;
	transform: translate(0, -50%);
	left: 3rem;
}

.mycard .card-header .btn-link {
	color: #4C4C4C!important;
	text-decoration: none;
	font-size: 1.2rem;
}

.outputfield ul {		
	font-size: 0;
	margin-top: 0;
	margin-bottom: 0;
}

.outputfield ol {		
	font-size: 0;
	margin-top: 0;
	margin-bottom: 0;
}

.outputfield li {
	font-size: medium;
}

.gop-card{
  display:flex; gap:.9rem; align-items:flex-start;
  padding:14px 16px; border-radius:14px;
  background:linear-gradient(180deg, rgba(174, 167, 0, 0.08), rgba(168, 206, 248, 0.02));
  border:1px solid rgba(174, 167, 0, 0.25); backdrop-filter: blur(6px);
}
.gop-card__title{
  margin:.1rem 0 .25rem; font-weight:700; letter-spacing:.2px;
}
.gop-badges{ display:flex; gap:.4rem; margin-top:.35rem; flex-wrap:wrap; }
.gop-badge{
  font-size:.78rem; padding:.18rem .5rem; border-radius:999px;
  background:#eef5ff; border:1px solid #d7e6ff; color:#9eb5da;
}

.gop-acc{ border:1px solid #e3e8ef; border-radius:10px; overflow:hidden }
.gop-acc summary{
  cursor:pointer; list-style:none; padding:12px 14px; background:#f8fafc; font-weight:600;
}
.gop-acc summary::-webkit-details-marker{ display:none }
.gop-acc__body{ padding:12px 14px; }

.gop-steps{border-left:3px solid #e5e7eb; margin-left:8px; padding-left:14px}
.gop-step{position:relative; margin:10px 0}
.gop-step:before{
  content:""; position:absolute; left:-22px; top:4px;
  width:12px; height:12px; border-radius:999px; background:#999400;
  box-shadow:0 0 0 3px #e0f2fe;
}
.gop-step strong{display:block}

/* Card-Wrapper pro Modulgruppe */
.group-card{
  border: 1px solid #e6e9ef;
  border-left-width: 4px;             /* Akzent links */
  border-radius: 12px;
  background: #fff;
  padding: 10px 12px 12px;
  margin: 10px 0;
  box-shadow: 0 1px 0 rgba(15,23,42,.02);
}

/* Titelzeile der Gruppe */
.group-card__title{
  font-weight: 700;
  margin: 2px 0 10px;
}

/* optische Trennung der Karten innerhalb eines Blocks */
.gop-acc__body .group-card + .group-card{
  margin-top: 14px;
}

/* sehr dezente Hover-Wirkung (optional) */
.group-card:hover{
  background: #fcfdff;
  border-color: #dfe5f0;
}

/* Akzentfarbe je nach Gruppenart (data-kind kommt aus $grp['kind']) */
.group-card[data-kind="PF"]{ border-left-color: #999400; }  /* cyan/blau */
.group-card[data-kind="SP"]{ border-left-color: #E9E2B3; }  /* grün */
.group-card[data-kind="FS"]{ border-left-color: #E9E2B3; }  /* violett */
.group-card[data-kind="FG"]{ border-left-color: #CFC678; }  /* orange */
.group-card[data-kind="FW"],
.group-card[data-kind="WP"]{ border-left-color: #CFC678; }  /* rot für Wahlmodulgruppe */

/* Tabelle wie gehabt – ggf. um eine dezente Trennung ergänzen */
.mods{ table-layout: fixed; width: 100%; }
.mods thead th{ background: #f8fafc; }
.mods tr + tr td{ border-top: 1px solid #f1f5f9; }

/* Spaltenbreiten (dein Wunsch: ECTS & Pflicht schmal) */
.mods .col-sem{ width: 90px; }
.mods .col-ects{ width: 56px; }
.mods .col-pflicht{ width: 64px; }

/* Zentrierung & kompaktere Zellen für ECTS/Pflicht */
.mods th:nth-child(3), .mods td:nth-child(3),
.mods th:nth-child(5), .mods td:nth-child(5){
  text-align: center;
  white-space: nowrap;
  padding-left: 6px; padding-right: 6px;
}

.gop-card{display:flex;gap:.9rem;align-items:flex-start;padding:14px 16px;border-radius:14px;  
	background:linear-gradient(180deg, rgba(174, 167, 0, 0.08), rgba(168, 206, 248, 0.02));
border:1px solid rgba(82, 84, 86, 0.25)}
  .gop-card__title{font-weight:700;margin:.1rem 0 .25rem}
  .gop-acc{border:1px solid #e3e8ef;border-radius:10px;margin:12px 0;overflow:hidden}
  .gop-acc summary{cursor:pointer;list-style:none;padding:10px 12px;background:#f8fafc;font-weight:600}
  .gop-acc summary::-webkit-details-marker{display:none}
  .gop-acc__body{padding:8px 12px}
  .mods{table-layout:fixed}
  .mods .col-sem{width:90px}
.mods .col-ects { width: 40px; }     
.mods .col-pflicht { width: 55px; } 
.mods .col-turnus {width: 140px;}
/* Zentrieren und komprimieren */
.mods th:nth-child(3),
.mods td:nth-child(3),
.mods th:nth-child(5),
.mods td:nth-child(5) {
  text-align: center;
  white-space: nowrap;   /* kein Zeilenumbruch */
  padding-left: 6px;
  padding-right: 6px;
  .mods th, .mods td{vertical-align:top}

    .btn-row { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1rem; }
