﻿/*@charset "utf-8";*/
/* CSS Document */

/* .class #ids */

input[type="submit"]
{
  width:100%;
}

/* ------------- */
.mspSpielberHeaderSeason
{
  font-size:14px;
  font-weight:bold;
  text-align:center;
  background-image:none;
  background-color:#ffd500;
  background-repeat: repeat;
  color:#FF0000;
  height:45px;
  padding-top:10px;
  margin-top:5px;
  margin-bottom:5px;
  width:100%;
}


/* --------------------------------------------------------------
--- Kopf mit Filterkriterien und Schatflächen
---------------------------------------------------------------*/

/* Klasse mit den Filtercomboboxen*/
.mspFilterDiv
{
  background-color:#E9E9E9;
  padding:7px;
  margin-top:15px;
}

.mspFilterTbl
{
  width:100%;
}

/* Filter Columns */
.mspFilterColLabel1
{
	 width:15.2%;
}

.mspFilterColCombo1
{
	width:34.4%;
}

.mspFilterColSpace
{
	 width:0.8%;
}

.mspFilterColLabel2
{
	 width:12.0%;
}

.mspFilterColCombo2
{
	width:22.4%;
}

.mspFilterColButtons
{
	width:14.4%;
}

.mspFilterRow
{
	height:12px;

}

/* Filter Columns */
.mspFilterTdLabel
{
	font-size:9pt;
	font-style:bold;
 	margin-bottom:-2px;
}

.mspFilterTdComboBig
{
 	padding-top:-2px;
  width:100%;
}

.mspFilterTdComboSmall
{
 	padding-top:-2px;
}

.mspFilterComboBig
{
 	margin-bottom:-2px;
  width:100%;
}

.mspFilterComboSmall1
{
 	margin-bottom:-2px;
  width:100%;
}

.mspFilterComboSmall2
{
 	margin-bottom:-2px;
  width:100%;
}

.mspFilterInfo
{
	 padding-top:7px;
	 text-align:center;
	 font-size:8pt;
   width:100%;
}

/* Layout Spalten für Filterkopf */
.mspFilterBtn
{
  border: 1px solid;
  background-color:#C0C0C0;
  padding:3px;
  text-align:center;
  -moz-border-radius: 3px;
  -webkit-border-radius: 3px;
  border-radius: 3px;
  width:100%;
}

/* --------------------------------------------------------------
--- Kopf Meisterschaft mit Logo und Name
---------------------------------------------------------------*/
.mspHeadHeader
{
  font-size:18px;
  font-weight:bold;
  text-align:center;
  color:#000000;
  /* background-color:#FFFF00;*/
    background-image:none;
  background-color:#ffd500;
  background-repeat: repeat;
	height:25px;
  padding-top:10px;
  margin-top:5px;
  margin-bottom:5px;
}

.mspHeadLogoDiv
{
  margin-top:14px;
}

.mspHeadLogoImg
{
  margin-left:0px;
}


/* --------------------------------------------------------------
--- Tabelle (Gruppe)
---------------------------------------------------------------*/
.mspTableTable
{
  font-size: 14px;
  width: 100%;
  margin-bottom:5px;
}

.mspTableColPlace
{
	width:7%;
	text-align:center;
}

.mspTableColName
{
	width:37%;
	text-align:center;
	border-right:none;
}

.mspTableColLastPlace
{
	width:3%;
	text-align:right;
	border-left:none;
	border-right:none;
	
}


.mspTableColChange
{
	width:3%;
	text-align:center;
	border-left:none;
}

.mspTableColGames
{
	width:7%;
	text-align:center;
}

.mspTableColPointsPos
{
	width:7%;
	text-align:center;
}

.mspTableColPointsSeperator
{
	width:2%;
	text-align:center;
}

.mspTableColPointsNeg
{
	width:7%;
	text-align:center;
}

.mspTableColResultPos
{
	width:8%;
	text-align:center;
}

.mspTableColResultSeperator
{
	width:2%;
	text-align:center;
}

.mspTableColResultNeg
{
	width:8%;
	text-align:center;
}

.mspTableColQuote
{
	width:9%;
	text-align:center;
}

.mspTableColDiff
{
	width:9%;
	text-align:center;
}


.mspTableTr
{
    background-color:#E9E9E4;
}


/* Tabellen Zeile */
.mspTableTrItem
{
  height:20px;
}

/* Platz - Platzierung */
.mspTableThPlace
{
  text-align:center;
  width:7%;
}

.mspTableTdPlace
{ 
  text-align:center;
  border-bottom:1;
  border-left:1;
  border-right:1;
  border-top:1;
  width:7%;
}

/* Mannschaftsname */
.mspTableThName
{
  text-align:center;
  width:37%;
}

.mspTableTdName
{
  padding-left:5px;
  text-align:left;
  border-bottom:1;
  border-left:1;
  border-right:0;
  border-top:1;
  width:37%;
}

.mspTableTdLastPlace
{
  text-align:right;
  border-bottom:1;
  border-left:0;
  border-right:0;
  border-top:1;
  font-size:10px;
  width:3%;
}

/* Pfeile für Platzwechsel zur Vorrunde*/

.mspTableTdChange
{
  text-align:center;
  border-bottom:1;
  border-left:0;
  border-right:1;
  border-top:1;
  width:3%;
}

/* Anzahl Spiele */
.mspTableThGames
{
  text-align:center;
  width:7%;
}

.mspTableTdGames
{
  text-align:center;
  border-bottom:1;
  border-left:1;
  border-right:1;
  border-top:1;
  width:7%;
}


/* Spielpunkte allgemein */
.mspTableThPoints
{
  text-align:center;
  width:7%;
}

/* Spielpunkte positiv*/
.mspTableTdPointsPos
{
  text-align:right;
  border-bottom:1;
  border-left:1;
  border-right:0;
  border-top:1;
  width:7%;
}

/* Spielpunkte Separator */
.mspTableTdPointsSeperator
{
  text-align:center;
  border-bottom:1;
  border-left:0;
  border-right:0;
  border-top:1;
  width:2%;
}

/* Spielpunkte negativ */
.mspTableTdPointsNeg
{
  text-align:left;
  border-bottom:1;
  border-left:0;
  border-right:1;
  border-top:1;
  width:7%;
}

/* Stockpunkte allgemein */
.mspTableThResult
{
  text-align:center;
  width:8%;
}

/* Stockpunkte negativ */
.mspTableTdResultPos
{
  text-align:right;
  border-bottom:1;
  border-left:1;
  border-right:0;
  border-top:1;
  width:8%;
}

/* Stockpunkte Seperator */
.mspTableTdResultSeperator
{
  text-align:center;
  border-bottom:1;
  border-left:0;
  border-right:0;
  border-top:1;
  width:2%;
}

/* Stockpunkte negativ */
.mspTableTdResultNeg
{
  text-align:left;
  border-bottom:1;
  border-left:0;
  border-right:1;
  border-top:1;
  width:8%;
}

/* Quote */
.mspTableThQuote
{
  text-align:center;
  width:9%;
}

.mspTableThDiff
{
  text-align:center;
  width:9%;
}

.mspTableTdQuote
{ 
  text-align:center;
  border-bottom:1;
  border-left:1;
  border-right:1;
  border-top:1;
  width:9%;
}

.mspTableTdDiff
{ 
  text-align:right;
  margin: auto 5 auto auto;
  border-bottom:1;
  border-left:1;
  border-right:1;
  border-top:1;  
  width:9%;
}


/* --------------------------------------------------------------
--- Spiele (Runde)
---------------------------------------------------------------*/
.mspGamesTable
{
  font-size:14px;
  width:100%;
  margin-top:5px;
  /*border-spacing:*/
  /*border-collapse:collapse;*/
  border:1px solid #00000;
  padding:3px;
}

.mspGamesRoundHeader
{
  background-color:#E9E9E4;
  text-align:center;
  width:100%;  
}

.mspGamesTh
{
  background-color:#E9E9E4;
  width:100%;
}

.mspGamesGroupHeader
{  
  font-size:14px;
  font-weight:bold;
  text-align:center;
  /* background-color:#FF0000;*/
  background-image:none;
  background-color:#d71920;
  background-repeat: repeat;
  color:#FFFFFF;
  height:25px;
  padding-top:10px;
  margin-top:5px;
  margin-bottom:5px;
  width:100%;
}

/* erste Überschriftenzeile */
.mspGamesTr
{
  font-size:12px;
  font-weight:bold;
  text-align:center;
  vertical-align:middle;
  color:#000000; 
  height:17px;
  padding:3px;
  width:100%;
}

/* zweite Überschriftenzeile */
.mspGamesTr2
{
  font-size:12px;
  font-weight:bold;
  text-align:center;
  vertical-align:middle;
  color:#000000;
  background-color:#E9E9E4; 
	height:14px;  
  width:100%;
}

.mspGamesTh2Tm1
{
	border-right:0;
  text-align:right;
  width:28.2%;
}

.mspGamesTh2Sep1
{
	border-left:0;
	border-right:0;
  width:1.6%;
}

.mspGamesTh2Tm2
{
	border-left:0;
  text-align:left;
  width:28.2%;
}

/* Heimmannschaft Nr */
.mspGamesColNo1
{
	text-align:center;
  width:4.2%;
}

.mspGamesTdNo1
{
	font-weight:normal;
  width:4.2%;
}

/* Heimmannschaft Name */
.mspGamesColTm1
{
	width:28.2%;
	text-align:right;
}

.mspGamesTdTm1
{
	text-align:right;
	padding-right:5px;
	font-weight:normal;
	border-right:0;
	width:28.2%;
}

/* Mannschaft Seperator */
.mspGamesColSep1
{
	width:1.6%;
	text-align:center;
}

.mspGamesTdSep1
{
	width:1.6%;
	border-left:0;
	border-right:0;
}

/* Gastmannschaft */
.mspGamesColTm2
{
	width:28.2%;
	text-align:left;
}

.mspGamesTdTm2
{
	width:28.2%;
	font-weight:normal;
	text-align:left;
	padding-left:5px;
	border-left:0;
}

/* Heimmannschaft Nr */
.mspGamesColNo2
{
	width:4.2%;
	text-align:center;
}

.mspGamesTdNo2
{
	width:4.2%;
	font-weight:normal;
}


/* Heimmannschaft Spielpunkte */
.mspGamesColPnt1
{
	width:5.1%;
	text-align:right;
}

.mspGamesTdPnt1
{
	width:5.1%;
	font-weight:normal;
	border-right:0;
	text-align:right;
}

/* Seperator Spielpunkte */
.mspGamesColSep2
{
	width:0.8%;
	text-align:center;
}

.mspGamesTdSep2
{
	width:0.8%;
	font-weight:normal;
	border-left:0;
	border-right:0;
}

/* Gastmannschaft Spielpunkte */
.mspGamesColPnt2
{
	width:5.1%;
	text-align:left;
}

.mspGamesTdPnt2
{
	width:5.1%;
	font-weight:normal;
	border-left:0;
	text-align:left;
}

/* Heimmannschaft Stockpunkte */
.mspGamesColRes1
{
	width:5.1%;
	text-align:right;
}

.mspGamesTdRes1
{
	width:5.1%;
	font-weight:normal;
	border-right:0;
	text-align:right;
}

/* Seperator Stockpunkte */
.mspGamesColSep3
{
	width:0.8%;
	text-align:center;
}

.mspGamesTdSep3
{
	width:0.8%;
	font-weight:normal;
	border-left:0;
	border-right:0;
}

/* Gastmannschaft Stockpunkte */
.mspGamesColRes2
{
	width:5.1%;
	text-align:left;
}

.mspGamesTdRes2
{
	font-weight:normal;
	border-left:0;
	text-align:left;
  width:5.1%;
}


/* Spiel Info - Spielbericht */
.mspGamesThInf
{
	width:3.6%;
}

.mspGamesColInf
{
	width:3.6%;
}

.mspGamesColInf1
{
  width:3.6%;
  border-right:0;
}

.mspGamesColInf2
{
	width:3.6%;
  border-left:0;
  border-right:0;
}

.mspGamesColInf3
{
	width:3.6%;
  border-left:0;
}

.mspGamesTdInf
{
	width:3.6%;
	font-weight:normal;
	text-align:center;
}

.mspGamesTdInf1
{
	width:3.6%;
	font-weight:normal;
	text-align:right;
  border-right:0;
}

.mspGamesTdInf2
{
	width:3.6%;
	font-weight:normal;
	text-align:center;
  border-left:0;
  border-right:0;
}

.mspGamesTdInf3
{
	width:3.6%;
	font-weight:normal;
	text-align:left;
  border-left:0;
}
.mspHeadFooterDiv
{
   margin-top:5px;	
   text-align:center;
}

.report_img
{
  width:100%;
}





/* ===== Standalone responsive layer (2026-08-16) ===== */
html,body{margin:0;min-height:100%;font-family:Arial,Helvetica,sans-serif;background:#f5f6f7;color:#161616}
.public-tournament *, .public-tournament *::before, .public-tournament *::after{box-sizing:border-box}
.public-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1rem;background:#fff;border-bottom:1px solid #ddd}
.public-brand{font-weight:700;color:inherit;text-decoration:none}.admin-link{font-size:.9rem;color:#333}
.public-main{width:min(100%,1212px);max-width:1212px;margin:0 auto;padding:1rem;overflow:visible}
.public-error{padding:1rem;background:#fff3f3;border:1px solid #d88;color:#700}
.public-tournament form{margin:0}.public-main select,.public-main button{font:inherit}
.public-main .mspFilterDiv,.public-main .mspHeadLogoDiv,.public-main .mspHeadHeader,.public-main .mspGamesGroupHeader,.public-main .mspTableTable,.public-main .mspGamesTable,.public-main .mspHeadFooterDiv{width:100%;max-width:100%}
.public-main .mspHeadLogoImg,.public-main .mspHeadFooterImg{display:block;width:100%;max-width:100%;height:auto;margin:0}
.mspHeadLogoDiv{overflow:visible}

/* Header bars: no fixed height, therefore the yellow/red texture can never be clipped. */
.public-main .mspHeadHeader{height:auto!important;min-height:38px;padding:8px 10px!important;margin:5px 0!important;line-height:1.25;display:flex;align-items:center;justify-content:center;background:#ffd500!important;background-image:none!important}
.public-main .mspGamesGroupHeader{height:auto!important;min-height:35px;padding:8px 6px!important;line-height:1.25;display:flex;align-items:center;justify-content:center;background:#d71920!important;background-image:none!important}

.mspFilterActions{display:flex;gap:.4rem;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.mspPrintBtn,.mspRefreshBtn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem}

/* Rank arrows */
.rank-change{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;line-height:1}
.rank-change .bi{font-size:1.1rem;line-height:1}
.rank-up{color:#198754}.rank-same{color:#adb5bd}.rank-down{color:#dc3545}
.mspTableTdChange{text-align:center;white-space:nowrap}

/* Bootstrap info icons. A white circular background stays visible through the icon's cut-outs. */
.info-icon-link,.info-icon-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;line-height:1;text-decoration:none;margin:0 .08rem}
.info-icon{display:inline-block;font-size:1.45rem;line-height:1;background:#fff!important;border-radius:50%;padding:0;color:inherit}
.info-blue{color:#0d6efd!important}.info-red{color:#dc3545!important}.info-gray{color:#adb5bd!important}
.info-icon-link:hover .info-blue{color:#0a58ca!important}
.game-info-cell{text-align:center;vertical-align:middle;padding:2px!important}
.game-info-cell .info-icon{font-size:clamp(1.25rem,1.8vw,1.65rem)}

/* Accessible flyouts with real line breaks from legacy <br> content. */
.info-tooltip{cursor:help;outline:none}
.info-tooltip::after{content:attr(data-tooltip);position:absolute;right:0;top:calc(100% + 8px);z-index:1000;width:max-content;max-width:min(360px,80vw);padding:.55rem .7rem;border-radius:.45rem;background:#212529;color:#fff;font-size:.78rem;font-weight:400;line-height:1.35;text-align:left;white-space:pre-line;overflow-wrap:anywhere;box-shadow:0 6px 20px rgba(0,0,0,.22);opacity:0;visibility:hidden;transform:translateY(-3px);transition:opacity .12s ease,transform .12s ease,visibility .12s}
.info-tooltip::before{content:'';position:absolute;right:.45rem;top:calc(100% + 3px);z-index:1001;border:5px solid transparent;border-bottom-color:#212529;opacity:0;visibility:hidden}
.info-tooltip:hover::after,.info-tooltip:focus::after,.info-tooltip:hover::before,.info-tooltip:focus::before{opacity:1;visibility:visible;transform:translateY(0)}

.game-mobile{display:none}

@media(max-width:700px){
  .public-header{padding:.6rem .65rem}.public-brand{font-size:1rem}.admin-link{font-size:.82rem}
  .public-main{padding:.45rem .38rem;width:100%;overflow:hidden}

  /* Compact filters */
  .mspFilterDiv{margin-top:.2rem!important;padding:.35rem!important}
  .mspFilterTbl,.mspFilterTbl tbody,.mspFilterTbl tr,.mspFilterTbl td{display:block;width:100%!important;height:auto!important}
  .mspFilterTbl colgroup{display:none}.mspFilterTbl tr{margin:0 0 .2rem}.mspFilterTbl td{padding:0!important}.mspFilterTbl td:empty{display:none}.mspFilterTbl td[style]{width:100%!important}
  .mspFilterTdLabel{font-size:.72rem!important;font-weight:600;margin:.08rem 0 .04rem!important;line-height:1.1}
  .mspFilterTbl select{display:block;width:100%!important;min-height:1.9rem;margin:0 0 .12rem!important;font-size:14px;padding:.08rem .2rem}
  .mspFilterActions{gap:.25rem;margin:.15rem 0}.mspFilterBtn{min-height:2rem;margin:0!important;padding:.22rem .55rem!important;font-size:.78rem;font-weight:600;flex:1}
  .mspFilterInfo{font-size:.66rem!important;line-height:1.25;padding-top:.25rem!important;text-align:center!important}

  .mspHeadLogoDiv{margin-top:.45rem!important}.mspHeadHeader{font-size:.9rem!important;min-height:2rem!important;padding:.35rem .25rem!important}.mspGamesGroupHeader{font-size:.82rem!important;padding:.35rem .2rem!important;min-height:1.9rem!important}

  .mspTableTable{font-size:clamp(8px,2.45vw,11px)!important;table-layout:fixed;border-collapse:collapse}.mspTableTable th,.mspTableTable td{padding:3px 2px!important;line-height:1.15;overflow-wrap:anywhere}.mspTableColName{width:38%!important}.mspTableColPlace{width:8%!important}
  /* rank arrow slightly away from right cell edge */
  .mspTableTdChange{padding-right:6px!important}.mspTableTdChange .rank-change{transform:translateX(-2px)}.rank-change .bi{font-size:.95rem}

  /* Games: two rows per match: no | name | points | quote | info(rowspan 2) */
  .mspGamesTable{width:100%;table-layout:fixed;border-collapse:collapse;font-size:11px!important}
  .mspGamesTable colgroup{display:none}.mspGamesTable .game-desktop,.mspGamesTable .mspGamesTr2{display:none!important}
  .mspGamesTable .game-mobile{display:table-row!important}
  .game-mobile-head th{padding:3px 2px!important;background:#e9e9e4;text-align:center;font-size:10px;border:1px solid #aaa}
  .mspGamesTable .mspGamesTr:not(.game-desktop){display:table-row}
  .mspGamesTable .mspGamesTh{padding:4px!important}
  .game-mobile td{padding:4px 3px!important;line-height:1.15;vertical-align:middle;border:1px solid #aaa}
  .game-mobile-no{width:9%;text-align:center;font-weight:700}.game-mobile-name{width:auto;font-weight:600}.game-mobile-points{width:12%;text-align:center}.game-mobile-quote{width:17%;text-align:center}.game-mobile-info{width:18%;text-align:center;white-space:normal}
  .game-mobile-info .info-icon{font-size:1.15rem}.game-mobile-info .info-icon-link,.game-mobile-info .info-icon-wrap{margin:.08rem}
  .game-mobile-home td:not(.game-mobile-info){border-bottom-color:#e5e5e5}.game-mobile-guest td{border-top-color:#e5e5e5}
  .info-tooltip::after{max-width:72vw;font-size:.72rem}
}

.mspPrintOnly{display:none!important}

@page{
  size:A4 portrait;
  margin:10mm;
}

@media print{
  .public-header,.mspFilterDiv,.admin-link,.mspPrintBtn,.mspScreenOnly{display:none!important}
  .mspPrintOnly{display:block!important}
  html,body{background:#fff!important;width:100%!important}
  body{margin:0!important}
  .public-main{max-width:none!important;width:100%!important;padding:0!important;overflow:visible!important}
  .info-tooltip::after,.info-tooltip::before{display:none!important}
  .game-mobile{display:none!important}.game-desktop{display:table-row!important}

  /* Every group starts on its own printed page. */
  .mspPrintGroup{display:block!important;width:100%!important;break-inside:auto;page-break-inside:auto}
  .mspPrintGroup + .mspPrintGroup{break-before:page!important;page-break-before:always!important}

  /* Tournament header/footer are repeated once for every group. */
  .mspPrintGroupHeader{display:block!important;break-after:avoid-page;page-break-after:avoid}
  .mspPrintGroupFooter{display:block!important;break-before:avoid-page;page-break-before:avoid;margin-top:4mm}
  .mspPrintGroupHeader .mspHeadLogoDiv{margin-top:0!important}
  .mspPrintGroupHeader .mspHeadLogoImg,
  .mspPrintGroupFooter .mspHeadFooterImg{display:block!important;width:100%!important;max-width:100%!important;height:auto!important;margin:0!important}
  .mspPrintGroupHeader .mspHeadHeader{height:auto!important;min-height:0!important;padding:5px 6px!important;margin:3px 0!important;line-height:1.15!important}
  .mspGamesGroupHeader{break-after:avoid-page;page-break-after:avoid}
}

/* ===== Desktop compact game rows (2026-08-16) ===== */
@media (min-width:701px){
  /* Keep match rows as compact as the standings rows above. */
  .mspGamesTable{border-collapse:collapse!important}
  .mspGamesTable .game-desktop{
    height:22px!important;
    min-height:22px!important;
    line-height:1.05!important;
  }
  .mspGamesTable .game-desktop td{
    height:22px!important;
    min-height:22px!important;
    padding:1px 2px!important;
    line-height:1.05!important;
    vertical-align:middle!important;
  }
  .mspGamesTable .game-info-cell{
    height:22px!important;
    padding:1px!important;
    line-height:1!important;
    vertical-align:middle!important;
  }
  /* 16px icon in a 22px cell = about 73% of the cell height. */
  .mspGamesTable .game-info-cell .info-icon{
    font-size:16px!important;
    line-height:1!important;
    width:auto!important;
    height:auto!important;
    vertical-align:middle!important;
  }
  .mspGamesTable .game-info-cell .info-icon-link,
  .mspGamesTable .game-info-cell .info-icon-wrap{
    height:18px!important;
    min-height:18px!important;
    margin:0 1px!important;
    line-height:1!important;
  }
}

/* Mobile games: compact numeric/info columns, maximum room for team names */
@media (max-width: 700px){
  .mspGamesTable{table-layout:auto!important}
  .game-mobile-head th:nth-child(1),.game-mobile-no{width:1%;white-space:nowrap!important;padding-left:4px!important;padding-right:4px!important}
  .game-mobile-head th:nth-child(2),.game-mobile-name{width:auto!important;white-space:normal;overflow-wrap:normal;word-break:normal}
  .game-mobile-head th:nth-child(3),.game-mobile-points{width:1%;white-space:nowrap!important;text-align:center!important;padding-left:5px!important;padding-right:5px!important}
  .game-mobile-head th:nth-child(4),.game-mobile-stock{width:1%;white-space:nowrap!important;text-align:center!important;padding-left:5px!important;padding-right:5px!important}
  .game-mobile-head th:nth-child(5),.game-mobile-info{width:1%;white-space:nowrap!important;text-align:center!important;padding-left:2px!important;padding-right:2px!important}
  .game-mobile-info .info-icon-link,.game-mobile-info .info-icon-wrap{margin:.04rem!important}
}
