/* =========================================
   1. TYPSNITT
   ========================================= */
@font-face {
  font-family: 'Ubuntu';
  src: url('fonts/Ubuntu-Regular.woff2') format('woff2'),
       url('fonts/Ubuntu-Regular.woff') format('woff');
  font-weight: 400;
  font-style: normal;
  font-display: block;
}

@font-face {
  font-family: 'Ubuntu';
  src: url('fonts/Ubuntu-Bold.woff2') format('woff2'),
       url('fonts/Ubuntu-Bold.woff') format('woff');
  font-weight: 700;
  font-style: normal;
  font-display: block;
}


/* =========================================
   2. GRUNDINSTÄLLNINGAR (RESET & GLOBALS)
   ========================================= */
* { 
  box-sizing: border-box; 
  -webkit-box-sizing: border-box; 
  margin: 0; 
  padding: 0; 
}

::-webkit-scrollbar { 
  display: none; 
}

html, body { 
  height: 100%; 
  width: 100%; 
  overflow: hidden;
  background-color: #003366; 
  color: #FFFFFF; 
  font-family: 'Ubuntu', sans-serif;

  display: -webkit-box; 
  display: -webkit-flex; 
  display: flex; 
  -webkit-box-align: center; 
  -webkit-align-items: center; 
  align-items: center; 
  -webkit-box-pack: center; 
  -webkit-justify-content: center; 
  justify-content: center; 

  cursor: none;
}


/* =========================================
   3. HUVUDLAYOUT
   ========================================= */
.container { 
  height: 96%; 
  width: 96%; 
  max-width: 100vh; 
  margin: 0 auto; 

  display: -webkit-box; 
  display: -webkit-flex; 
  display: flex; 
  -webkit-box-orient: vertical; 
  -webkit-flex-direction: column; 
  flex-direction: column; 
}

.top-bar { 
  height: 6.5vh; 
  margin-bottom: 0.5vh; 
  padding-left: 1vmin; 
  z-index: 10; 

  display: -webkit-box; 
  display: -webkit-flex; 
  display: flex; 
  -webkit-box-pack: start; 
  -webkit-justify-content: flex-start; 
  justify-content: flex-start; 
  -webkit-box-align: center; 
  -webkit-align-items: center; 
  align-items: center; 

  border-bottom: 4px solid #BE880B; 
}

.glass-panel { 
  position: relative; 
  min-height: 0; 
  padding: 0 1vmin; 
  overflow: hidden; 

  display: -webkit-box; 
  display: -webkit-flex; 
  display: flex; 
  -webkit-box-flex: 1; 
  -webkit-flex: 1; 
  flex: 1; 
  -webkit-box-orient: vertical; 
  -webkit-flex-direction: column; 
  flex-direction: column; 

  background-color: rgba(255, 255, 255, 0.08); 
  border: 1px solid rgba(149, 202, 219, 0.3); 
  -webkit-border-radius: 8px; 
  border-radius: 8px; 
}


/* =========================================
   4. LISTOR & RADER
   ========================================= */
ul { 
  overflow: hidden; 
  list-style: none; 

  display: -webkit-box; 
  display: -webkit-flex; 
  display: flex; 
  -webkit-box-flex: 1; 
  -webkit-flex: 1; 
  flex: 1; 
  -webkit-box-orient: vertical; 
  -webkit-flex-direction: column; 
  flex-direction: column; 
}

.list-header { 
  height: 4.5vh; 

  display: -webkit-box; 
  display: -webkit-flex; 
  display: flex; 
  -webkit-box-align: center; 
  -webkit-align-items: center; 
  align-items: center; 

  border-bottom: 1px solid rgba(255, 255, 255, 0.2); 
  font-size: 2.3vmin; 
  font-weight: 700; 
  color: #95CADB; 
  text-transform: uppercase; 
}

.departure-row { 
  min-height: 0; 
  overflow: hidden; 

  display: -webkit-box; 
  display: -webkit-flex; 
  display: flex; 
  -webkit-box-flex: 1; 
  -webkit-flex: 1 1 0%; 
  flex: 1 1 0%; 
  -webkit-box-align: center; 
  -webkit-align-items: center; 
  align-items: center; 

  border-bottom: 1px solid rgba(255, 255, 255, 0.1); 
}

.situation-row { 
  padding: 0 1vmin; 
  overflow: hidden; 

  display: -webkit-box; 
  display: -webkit-flex; 
  display: flex; 
  -webkit-box-flex: 1; 
  -webkit-flex: 1 1 0%; 
  flex: 1 1 0%; 
  -webkit-box-align: center; 
  -webkit-align-items: center; 
  align-items: center; 
  -webkit-box-pack: start; 
  -webkit-justify-content: flex-start; 
  justify-content: flex-start; 

  border-bottom: none !important; 
  color: #FFFFFF; 
}


/* =========================================
   5. KOLUMNER & GRID-KOMPONENTER
   ========================================= */
.col-line { 
  width: 12%; 

  display: -webkit-box; 
  display: -webkit-flex; 
  display: flex; 
  -webkit-box-pack: center; 
  -webkit-justify-content: center; 
  justify-content: center; 
  -webkit-box-align: center; 
  -webkit-align-items: center; 
  align-items: center; 
  -webkit-flex-shrink: 0; 
  flex-shrink: 0; 
}

.col-dest { 
  width: 49%; 
  padding: 0 1vmin; 
  overflow: hidden; 

  display: -webkit-box; 
  display: -webkit-flex; 
  display: flex; 
  -webkit-box-orient: vertical; 
  -webkit-flex-direction: column; 
  flex-direction: column; 
  -webkit-box-pack: center; 
  -webkit-justify-content: center; 
  justify-content: center; 
  -webkit-box-align: start; 
  -webkit-align-items: flex-start; 
  align-items: flex-start; 
  -webkit-flex-shrink: 0; 
  flex-shrink: 0; 
}

.col-next { 
  width: 15%; 
  -webkit-flex-shrink: 0; 
  flex-shrink: 0; 
  text-align: center; 
}

.col-after { 
  width: 15%; 
  -webkit-flex-shrink: 0; 
  flex-shrink: 0; 
  text-align: center; 
}

.col-track { 
  width: 9%; 

  display: -webkit-box; 
  display: -webkit-flex; 
  display: flex; 
  -webkit-box-pack: center; 
  -webkit-justify-content: center; 
  justify-content: center; 
  -webkit-box-align: center; 
  -webkit-align-items: center; 
  align-items: center; 
  -webkit-flex-shrink: 0; 
  flex-shrink: 0; 
}


/* =========================================
   6. UI-KOMPONENTER & TYPOGRAFI
   ========================================= */
.page-title { 
  margin-bottom: 0.5vh; 
  white-space: nowrap; 

  font-size: 5.2vmin; 
  font-weight: 700; 
  color: #FFFFFF; 
  text-transform: uppercase; 
  line-height: 1; 
}

.situation-content { 
  width: 100%; 

  text-align: left; 
  font-size: 2.3vmin; 
  font-weight: 400; 
  line-height: 1; 
  white-space: normal; 
  word-wrap: break-word; 
}

.line-box { 
  width: 7.3vmin; 
  height: 5.1vmin; 

  display: -webkit-box; 
  display: -webkit-flex; 
  display: flex; 
  -webkit-box-pack: center; 
  -webkit-justify-content: center; 
  justify-content: center; 
  -webkit-box-align: center; 
  -webkit-align-items: center; 
  align-items: center; 

  font-weight: 700; 
  font-size: 3.3vmin; 
  -webkit-border-radius: 4px; 
  border-radius: 4px; 
  line-height: 1; 
}

.dest-main { 
  width: 100%; 
  overflow: hidden; 

  font-size: 3.4vmin; 
  font-weight: 700; 
  white-space: nowrap; 
  text-overflow: ellipsis; 
  line-height: 1.2; 
}

.dest-via { 
  width: 100%; 
  overflow: hidden; 

  font-size: 2.3vmin; 
  font-weight: 700; 
  white-space: nowrap; 
  text-overflow: ellipsis; 
  opacity: 0.9; 
}

.dest-badge { 
  display: inline-block; 
  margin-top: 0.2vh; 
  padding: 0.3vh 0.6vmin; 

  background-color: rgba(149, 202, 219, 0.25); 
  -webkit-border-radius: 2px; 
  border-radius: 2px; 
  
  font-size: 1.8vmin; 
  color: #FFFFFF; 
  font-weight: 700; 
  white-space: nowrap; 
}

.time-primary { 
  font-size: 4.5vmin; 
  font-weight: 700; 
  color: #FFFFFF; 
}

.time-secondary { 
  font-size: 4.5vmin; 
  font-weight: 700; 
  color: #95CADB; 
}

.cancelled { 
  font-size: 2.3vmin !important; 
  font-weight: 700; 
  color: #FF0066; 
  text-transform: uppercase; 
}

.imminent { 
  color: #FFFFFF; 
}

.track-box { 
  width: 5.2vmin; 
  height: 5.2vmin; 
  margin: 0; 

  display: -webkit-box; 
  display: -webkit-flex; 
  display: flex; 
  -webkit-box-align: center; 
  -webkit-align-items: center; 
  align-items: center; 
  -webkit-box-pack: center; 
  -webkit-justify-content: center; 
  justify-content: center; 

  background-color: #FFFFFF; 
  color: #003366; 
  font-size: 2.8vmin; 
  font-weight: 700; 
  -webkit-border-radius: 50%; 
  border-radius: 50%; 
  line-height: 1; 
  -webkit-box-shadow: 0 2px 4px rgba(0,0,0,0.3); 
  box-shadow: 0 2px 4px rgba(0,0,0,0.3); 
}


/* =========================================
   7. SIDFOT & MEDDELANDEN
   ========================================= */
.footer-info { 
  height: 3.5vh; 
  margin-top: 0.5vh; 
  padding: 0 1vmin; 
  overflow: hidden; 

  display: -webkit-box; 
  display: -webkit-flex; 
  display: flex; 
  -webkit-box-pack: end; 
  -webkit-justify-content: flex-end; 
  justify-content: flex-end; 
  -webkit-box-align: center; 
  -webkit-align-items: center; 
  align-items: center; 

  font-size: 2.3vmin; 
  color: #95CADB; 
}

.center-message { 
  height: 100%; 
  width: 100%; 

  display: -webkit-box; 
  display: -webkit-flex; 
  display: flex; 
  -webkit-box-orient: vertical; 
  -webkit-box-direction: normal; 
  -webkit-flex-direction: column; 
  flex-direction: column; 
  -webkit-box-align: center; 
  -webkit-align-items: center; 
  align-items: center; 
  -webkit-box-pack: center; 
  -webkit-justify-content: center; 
  justify-content: center; 
  
  text-align: center; 
}

.msg-title { 
  margin-bottom: 2vmin; 
  font-size: 5.6vmin; 
  font-weight: 700; 
  line-height: 1.2; 
}

.msg-sub { 
  font-size: 3.4vmin; 
  font-weight: 400; 
  opacity: 0.8; 
}

.error-text { 
  color: #FFFFFF; 
}

.empty-text { 
  color: #FFFFFF; 
}


/* =========================================
   8. VILOLÄGE
   ========================================= */
.is-sleeping .container { 
  opacity: 0.2; 
  -webkit-filter: blur(10px); 
  filter: blur(10px); 
}

#sleep-overlay { 
  position: fixed; 
  top: 0; 
  left: 0; 
  width: 100%; 
  height: 100%; 
  z-index: 1000; 

  display: -webkit-box; 
  display: -webkit-flex; 
  display: flex; 
  -webkit-box-orient: vertical; 
  -webkit-flex-direction: column; 
  flex-direction: column; 
  -webkit-box-align: center; 
  -webkit-align-items: center; 
  align-items: center; 
  -webkit-box-pack: center; 
  -webkit-justify-content: center; 
  justify-content: center; 

  text-align: center; 
  cursor: pointer; 
}

.refresh-icon {
  font-size: 20vmin;
  font-weight: 700;
  line-height: 1;
  color: #FFFFFF;
}
