/* Base reset for .app */
.app {
  font-family: Arial, sans-serif !important;
  background: #f0f0f3 !important;
  color: #333 !important;
  overflow-x: hidden !important; /* same as body overflow-x: hidden */
}
.app * {
  box-sizing: border-box !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Container */
.app .container {
  max-width: 900px !important;
  margin: 40px auto !important;
  padding: 20px !important;
  background: #fff !important;
  border-radius: 6px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1) !important;
  position: relative !important;
}

/* Headings */
.app .maintitle {
  text-align: center !important;
  margin-bottom: 25px !important;
  color: #444 !important;
}

/* Drag & Drop area */
.app .drop-area {
  border: 2px dashed #ccc !important;
  border-radius: 6px !important;
  padding: 40px !important;
  text-align: center !important;
  cursor: pointer !important;
  transition: background 0.3s ease !important;
  margin-bottom: 20px !important;
  position: relative !important;
}
.app .drop-area:hover {
  background: #fafafa !important;
}
.app .drop-area p {
  font-size: 16px !important;
  color: #666 !important;
}
.app .drop-area span {
  color: #d93025 !important;
  text-decoration: underline !important;
}
.app .drop-area input {
  display: none !important; /* forced hidden */
}
.app .drop-area.dragover {
  background: #ffe8e7 !important;
  border-color: #d93025 !important;
}

/* Record button & message (with timer) */
.app .record-container {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-bottom: 20px !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
}
.app .record-btn {
  background: transparent !important;
  border: none !important;
  cursor: pointer !important;
  transition: transform 0.2s ease !important;
  position: relative !important;
}
.app .record-btn:hover {
  transform: scale(1.05) !important;
}
.app .record-btn img {
  width: 80px !important;
  height: 80px !important;
}
@keyframes blink {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.5; }
}
.app .recording {
  animation: blink 1s infinite !important;
}
.app .record-msg {
  margin-left: 20px !important;
  font-size: 18px !important;
  color: #d93025 !important;
  opacity: 0 !important;
  transition: opacity 0.4s !important;
  text-align: center !important;
}
.app .record-msg.show {
  opacity: 1 !important;
}

/* Waveform area */
.app .waveform-wrapper {
  position: relative !important;
  margin: 0 auto !important;
  width: 100% !important;
  max-width: 800px !important;
  height: 150px !important;
  background: #f9f9f9 !important;
  overflow: visible !important;
  box-shadow: inset 0 0 5px rgba(0,0,0,0.1) !important;
  margin-bottom: 60px !important;
  border-radius: 6px !important;
  cursor: pointer !important; /* user can click or tap to jump playhead */
  touch-action: none !important; /* Prevent default scrolling on touch */
}
.app #waveform {
  width: 100% !important;
  height: 100% !important;
  background: #fafafa !important;
  border-radius: 6px !important;
}

/* Selection overlay + markers */
.app .selection {
  position: absolute !important;
  top: 0 !important;
  height: 150px !important;
  background: rgba(255, 0, 0, 0.3) !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  touch-action: none !important;
}
.app .marker-edge {
  position: absolute !important;
  width: 24px !important;
  height: 24px !important;
  top: 0px !important; /* override top:4px */
  transform: translateX(-50%) !important;
  z-index: 999 !important;
  background: url("marker.png") no-repeat center !important;
  background-size: contain !important;
  cursor: ew-resize !important;
}

/* Playhead line (green) */
.app #playhead {
  position: absolute !important;
  top: 0 !important;
  width: 2px !important;
  height: 150px !important;
  background: #26a69a !important;
  cursor: ew-resize !important;
  touch-action: none !important;
}

.app .bottom-controls {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  position: absolute !important;
  bottom: 15px !important;
  left: 0 !important;
  width: 100% !important;
  padding: 0 20px !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
}
.app .play-pause-btn {
  display: flex !important;
  align-items: center !important;
  cursor: pointer !important;
}
.app .play-pause-btn img {
  width: 36px !important;
  height: 36px !important;
}
.app .time-selectors {
  display: flex !important;
  gap: 20px !important;
  flex-wrap: wrap !important;
}
.app .time-control {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
}
.app .time-control label {
  font-weight: bold !important;
  color: #555 !important;
}
.app .time-control .time-box {
  display: flex !important;
  align-items: center !important;
  border: 1px solid #ccc !important;
  border-radius: 4px !important;
  overflow: hidden !important;
}

/* --------- Forcing button styles with !important --------- */
.app .time-control button,
.app .crop-btn,
.app .download-btn,
.app input[type="submit"],
.app input[type="button"],
.app input[type="reset"],
.app button {
  background: #d93025 !important;
  background: linear-gradient(45deg, #d93025, #ff5b4c) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 4px !important;
  cursor: pointer !important;
  font-size: 16px !important;
  padding: 8px 12px !important;
  transition: transform 0.3s ease !important;
  /*margin-top: 5px !important;*/
}

.app .time-control button:hover,
.app .crop-btn:hover,
.app .download-btn:hover,
.app input[type="submit"]:hover,
.app input[type="button"]:hover,
.app input[type="reset"]:hover,
.app button:hover {
  transform: translateY(-2px) !important;
}

/* Disabled & hidden states */
.app .disabled {
  opacity: 0.5 !important;
  pointer-events: none !important;
}
.app .hidden {
  display: none !important;
}

/* --------- Forcing input box styles with !important --------- */
.app .time-control input {
  width: 48px !important;
  border: none !important;
  text-align: center !important;
  font-size: 14px !important;
  padding: 4px 0 !important;
  outline: none !important;
}

/* Format select dropdown */
.app #formatSelect {
  font-size: 14px!important;
  padding:5px 12px!important;
  font-weight: bold!important;
  border-radius: 4px!important;
}

/* Download message overlay */
.app #downloadMessage {
  display: none !important;  /* Hidden by default - show via JS */
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  z-index: 9999 !important;

  max-width: 80% !important;
  min-width: 250px !important;
  padding: 20px 30px !important;
  box-sizing: border-box !important;
  text-align: center !important;

  background: linear-gradient(135deg, #d93025, #ff5b4c) !important;
  color: #fff !important;
  font-size: 18px !important;
  border-radius: 8px !important;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2) !important;
  animation: fadeBlink 1.5s infinite !important;
}

@keyframes fadeBlink {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.8; }
}

/* Responsive adjustments */
@media (max-width: 600px) {
  .app .drop-area {
    padding: 20px !important;
  }
  .app .record-btn img {
    width: 60px !important;
    height: 60px !important;
  }
  .app .record-msg {
    font-size: 16px !important;
    margin-left: 10px !important;
  }
  .app .bottom-controls {
    position: static !important;
    margin-top: 10px !important;
  }
  .app .time-control label {
    font-size: 14px !important;
  }
  .app .time-control input {
    width: 40px !important;
  }
  .app .waveform-wrapper {
    height: 100px !important;
  }
  .app .selection,
  .app #playhead {
    height: 100px !important;
  }
}

/* Noise-cancellation checkbox area */
.app .noise-cancel {
  margin-left: 20px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 16px !important;
  color: #444 !important;
}
.app .noise-cancel label {
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  user-select: none !important;
}
.app .noise-cancel input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  cursor: pointer !important;
  accent-color: #d93025 !important; /* custom color if supported */
}
