/**
 * Bosch JÖVŐBARÁT Tech Piknik - Game Start Styles
 * 
 * Modern, responsive CSS for the game start system
 */

/* === Bosch SANS FONTS === */
@font-face {
  font-family: 'Bosch Sans';
  src: url('../fonts/BoschSans-Regular-v5_003.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Bosch Sans';
  src: url('../fonts/BoschSans-Italic-v5_003.woff2') format('woff2');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Bosch Sans';
  src: url('../fonts/BoschSans-Light-v5_003.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Bosch Sans';
  src: url('../fonts/BoschSans-LightItalic-v5_003.woff2') format('woff2');
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Bosch Sans';
  src: url('../fonts/BoschSans-Medium-v5_003.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Bosch Sans';
  src: url('../fonts/BoschSans-MediumItalic-v5_003.woff2') format('woff2');
  font-weight: 500;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Bosch Sans';
  src: url('../fonts/BoschSans-Bold-v5_003.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Bosch Sans';
  src: url('../fonts/BoschSans-BoldItalic-v5_003.woff2') format('woff2');
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Bosch Sans';
  src: url('../fonts/BoschSans-Black-v5_003.woff2') format('woff2');
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Bosch Sans';
  src: url('../fonts/BoschSans-BlackItalic-v5_003.woff2') format('woff2');
  font-weight: 900;
  font-style: italic;
  font-display: swap;
}

/* === ROOT VARIABLES === */
:root {
  /* Bosch Brand Colors - Official Palette */
  --bosch-white: #FFFFFF;
  --bosch-black: #000000;
  --bosch-gray: #71767C;
  --bosch-light-gray: #D4DADD;
  --bosch-red: #ED0007;
  --bosch-purple: #9E2896;
  --bosch-blue: #007BC0;
  --bosch-turquoise: #18837E;
  --bosch-green: #00884A;

  /* Typography */
  --font-family-primary: 'Bosch Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
  --font-family-headings: 'Bosch Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
}

/* === BASE STYLES === */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: var(--font-family-primary);
  background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 15px;
  line-height: 1.6;
}

/* === CONTAINER === */
.game-start-container {
  background: var(--bosch-white);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  max-width: 500px;
  width: 100%;
  position: relative;
  overflow: hidden;
}

/* === BOSCH SUPERGRAPHIC === */
.bosch-supergraphic {
  height: 6px;
  background: linear-gradient(90deg, 
    var(--bosch-red) 0%, 
    var(--bosch-purple) 25%, 
    var(--bosch-blue) 50%, 
    var(--bosch-turquoise) 75%, 
    var(--bosch-green) 100%
  );
  width: 100%;
}

/* === CONTENT AREA === */
.container-content {
  padding: 40px 30px;
  text-align: center;
}

/* === LOGO === */
.bosch-logo {
  max-height: 60px;
  max-width: 100%;
  height: auto;
  margin-bottom: 30px;
}

/* === TYPOGRAPHY === */
.game-title {
  color: var(--bosch-blue);
  font-size: clamp(24px, 5vw, 32px);
  font-weight: 700;
  font-family: var(--font-family-headings);
  margin-bottom: 8px;
  line-height: 1.2;
}

.game-subtitle {
  color: var(--bosch-gray);
  font-size: 16px;
  font-weight: 400;
  margin-bottom: 40px;
}

/* === FORM STYLES === */
.code-input-section {
  margin-bottom: 30px;
}

.form-label {
  font-size: 14px;
  font-weight: 500;
  color: var(--bosch-black);
  margin-bottom: 15px;
  display: block;
}

.code-input {
  font-size: clamp(18px, 4vw, 24px);
  font-weight: 700;
  letter-spacing: 6px;
  text-align: center;
  padding: 15px;
  border: 2px solid var(--bosch-blue);
  background-color: #f8f9fa;
  max-width: 250px;
  width: 100%;
  margin: 0 auto;
  display: block;
  font-family: 'Courier New', monospace;
}

.code-input:focus {
  outline: none;
  border-color: var(--bosch-green);
  box-shadow: 0 0 0 0.2rem rgba(0, 136, 74, 0.25);
  background-color: var(--bosch-white);
}

.code-input.is-valid {
  border-color: var(--bosch-green);
  background-color: #f0fff0;
}

.code-input.is-invalid {
  border-color: var(--bosch-red);
  background-color: #fff5f5;
}

/* === BUTTONS === */
.btn-start-game {
  background: linear-gradient(135deg, var(--bosch-green) 0%, #006B3A 100%);
  border: none;
  color: var(--bosch-white);
  font-size: 16px;
  font-weight: 700;
  padding: 15px 35px;
  transition: all 0.3s ease;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-family: var(--font-family-primary);
  cursor: pointer;
  width: 100%;
  max-width: 280px;
}

.btn-start-game:hover:not(:disabled) {
  background: linear-gradient(135deg, #006B3A 0%, var(--bosch-green) 100%);
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(0, 136, 74, 0.3);
}

.btn-start-game:disabled {
  background: var(--bosch-gray);
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

.btn-secondary {
  background: var(--bosch-gray) !important;
}

.btn-success {
  background: linear-gradient(135deg, var(--bosch-green) 0%, #006B3A 100%) !important;
}

/* === STATUS MESSAGES === */
.status-message {
  margin-top: 25px;
  padding: 15px;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.4;
}

.status-waiting {
  background-color: #fff3cd;
  border: 1px solid #ffeaa7;
  color: #856404;
}

.status-ready {
  background-color: #d1edff;
  border: 1px solid #74b9ff;
  color: #0056b3;
}

.status-active {
  background-color: #d4edda;
  border: 1px solid var(--bosch-green);
  color: #155724;
}

.status-expired {
  background-color: #f8d7da;
  border: 1px solid var(--bosch-red);
  color: #721c24;
}

.status-error {
  background-color: #f8d7da;
  border: 1px solid var(--bosch-red);
  color: #721c24;
}

.status-success {
  background-color: #d4edda;
  border: 1px solid var(--bosch-green);
  color: #155724;
}

/* === LOADING SPINNER === */
.loading-spinner {
  display: inline-block;
  width: 20px;
  height: 20px;
  border: 3px solid #f3f3f3;
  border-top: 3px solid var(--bosch-blue);
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin-right: 10px;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* === TEAM INFO === */
.team-info {
  background-color: #f8f9fa;
  padding: 20px;
  margin-top: 20px;
  text-align: left;
}

.team-info h5 {
  color: var(--bosch-blue);
  margin-bottom: 15px;
  text-align: center;
  font-weight: 600;
  font-size: 16px;
}

.info-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
  padding: 5px 0;
  border-bottom: 1px solid #e9ecef;
  font-size: 14px;
}

.info-row:last-child {
  border-bottom: none;
  margin-bottom: 0;
}

.info-label {
  font-weight: 600;
  color: var(--bosch-black);
}

.info-value {
  color: var(--bosch-blue);
  font-weight: 500;
}

.time-display {
  font-family: 'Courier New', monospace;
  font-size: 16px;
  font-weight: 700;
}

/* === RESPONSIVE DESIGN === */
@media (max-width: 576px) {
  .container-content {
    padding: 30px 20px;
  }
  
  .bosch-logo {
    max-height: 50px;
    margin-bottom: 25px;
  }
  
  .game-title {
    margin-bottom: 6px;
  }
  
  .game-subtitle {
    font-size: 14px;
    margin-bottom: 30px;
  }
  
  .code-input {
    letter-spacing: 4px;
    padding: 12px;
    max-width: 220px;
  }
  
  .btn-start-game {
    font-size: 14px;
    padding: 12px 25px;
  }
  
  .status-message {
    margin-top: 20px;
    padding: 12px;
    font-size: 13px;
  }
  
  .team-info {
    padding: 15px;
    margin-top: 15px;
  }
  
  .info-row {
    font-size: 13px;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
  }
  
  .info-value {
    font-weight: 600;
  }
}

@media (max-width: 400px) {
  body {
    padding: 10px;
  }
  
  .container-content {
    padding: 25px 15px;
  }
  
  .code-input {
    letter-spacing: 3px;
    font-size: 16px;
    max-width: 200px;
  }
}

/* === UTILITY CLASSES === */
.text-center {
  text-align: center;
}

.mb-3 {
  margin-bottom: 1rem;
}

.me-2 {
  margin-right: 0.5rem;
}

.d-none {
  display: none;
}

.d-block {
  display: block;
}
