/* Tutorial overlay */
.tutorial-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.6);
  z-index: 20000;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: tutorialFadeIn 0.3s ease;
}

@keyframes tutorialFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Spotlight cutout */
.tutorial-spotlight {
  position: fixed;
  border: 3px solid var(--gmail-blue);
  border-radius: 8px;
  box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.5);
  pointer-events: none;
  opacity: 0;
  transition: all 0.3s ease;
  z-index: 20001;
}

.tutorial-spotlight.visible {
  opacity: 1;
}

/* Tutorial card */
.tutorial-card {
  background: white;
  border-radius: 12px;
  padding: 28px 32px;
  max-width: 460px;
  width: 90%;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
  z-index: 20002;
  animation: tutorialSlideIn 0.3s ease;
}

.tutorial-card.centered {
  /* default centered via flexbox parent */
}

@keyframes tutorialSlideIn {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Step indicator dots */
.tutorial-step-indicator {
  display: flex;
  gap: 6px;
  justify-content: center;
  margin-bottom: 20px;
}

.tutorial-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #dadce0;
  transition: all 0.2s;
}

.tutorial-dot.active {
  background: var(--gmail-blue);
  transform: scale(1.3);
}

.tutorial-dot.done {
  background: var(--gmail-blue);
  opacity: 0.5;
}

.tutorial-title {
  font-family: var(--gmail-font-ui);
  font-size: 18px;
  color: var(--gmail-text-primary);
  text-align: center;
  margin-bottom: 10px;
}

.tutorial-text {
  font-size: 14px;
  color: var(--gmail-text-secondary);
  text-align: center;
  line-height: 1.6;
  margin-bottom: 20px;
}

/* Mockups */
.tutorial-mockup {
  margin-bottom: 20px;
}

.tutorial-mockup:empty {
  display: none;
  margin: 0;
}

.tutorial-mock-popup {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.tutorial-mock-element {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.tutorial-mock-flagged {
  background: rgba(249, 171, 0, 0.1);
  border-left: 3px solid #f9ab00;
  padding: 6px 10px;
  font-family: monospace;
  font-size: 13px;
  color: var(--gmail-red);
  border-radius: 2px;
}

.tutorial-mock-arrow {
  color: var(--gmail-text-light);
  font-size: 18px;
}

.tutorial-mock-flag-popup {
  background: #f8f9fa;
  border: 1px solid #dadce0;
  border-radius: 8px;
  padding: 12px 16px;
  text-align: center;
}

.tutorial-mock-flag-popup p {
  font-size: 13px;
  font-weight: 500;
  margin-bottom: 10px;
  color: var(--gmail-text-primary);
}

.tutorial-mock-buttons {
  display: flex;
  gap: 8px;
  justify-content: center;
}

.tutorial-mock-btn {
  padding: 4px 14px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 500;
  color: var(--gmail-text-secondary);
  background: white;
  border: 1px solid #dadce0;
}

.tutorial-mock-btn.primary {
  background: var(--gmail-blue);
  color: white;
  border: none;
}

.tutorial-mock-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.tutorial-mock-link-text {
  color: var(--gmail-blue);
  text-decoration: underline;
  font-size: 14px;
}

.tutorial-mock-urlbar {
  background: #f1f3f4;
  border: 1px solid #dadce0;
  border-radius: 4px;
  padding: 6px 14px;
  font-size: 12px;
  color: var(--gmail-red);
  font-family: monospace;
}

/* Three-dot menu mockup */
.tutorial-mock-threedot {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  padding: 0 24px;
}

.tutorial-mock-toolbar {
  display: flex;
  align-items: center;
  width: 100%;
  background: #f8f9fa;
  border: 1px solid #dadce0;
  border-radius: 8px 8px 0 0;
  padding: 8px 12px;
}

.tutorial-mock-toolbar-btn {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-size: 18px;
  color: var(--gmail-text-secondary);
}

.tutorial-mock-toolbar-spacer {
  flex: 1;
}

.tutorial-mock-threedot-btn {
  background: var(--gmail-blue);
  color: white !important;
  font-weight: bold;
  animation: tutorialPulse 1.5s ease infinite;
}

@keyframes tutorialPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(26, 115, 232, 0.4); }
  50% { box-shadow: 0 0 0 8px rgba(26, 115, 232, 0); }
}

.tutorial-mock-dropdown {
  width: 200px;
  background: white;
  border: 1px solid #dadce0;
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  overflow: hidden;
}

.tutorial-mock-dropdown-item {
  padding: 8px 16px;
  font-size: 13px;
  color: var(--gmail-text-primary);
}

.tutorial-mock-dropdown-divider {
  height: 1px;
  background: #dadce0;
  margin: 4px 0;
}

.tutorial-mock-report-item {
  background: #fce8e6;
  color: var(--gmail-red) !important;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 8px;
  border-left: 3px solid var(--gmail-red);
  animation: tutorialHighlight 1.5s ease infinite;
}

.tutorial-mock-report-icon {
  font-size: 18px;
}

@keyframes tutorialHighlight {
  0%, 100% { background: #fce8e6; }
  50% { background: #f8d7d4; }
}

/* Mark as safe mockup */
.tutorial-mock-safe {
  display: flex;
  justify-content: center;
}

.tutorial-mock-safe-box {
  background: white;
  border: 1px solid #dadce0;
  border-radius: 8px;
  padding: 12px 20px;
  display: flex;
  align-items: center;
  gap: 16px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.tutorial-mock-safe-flags {
  font-size: 13px;
  color: var(--gmail-text-primary);
}

.tutorial-mock-safe-btn {
  background: #e6f4ea;
  color: var(--gmail-green);
  border: 1px solid var(--gmail-green);
  padding: 6px 16px;
  border-radius: 4px;
  font-size: 13px;
  font-weight: 500;
}

.tutorial-mock-safe-hint {
  font-size: 11px;
  color: var(--gmail-text-light);
}

.tutorial-mock-review {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.tutorial-mock-review-item {
  padding: 8px 12px;
  border-radius: 6px;
  font-size: 13px;
}

.tutorial-mock-review-item.correct {
  background: #e6f4ea;
  color: var(--gmail-green);
}

.tutorial-mock-review-item.missed {
  background: #fef7e0;
  color: #b06000;
}

.tutorial-mock-review-item.fp {
  background: #fce8e6;
  color: var(--gmail-red);
}

/* Tutorial actions */
.tutorial-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.tutorial-skip {
  font-size: 13px;
  color: var(--gmail-text-light);
  padding: 6px 12px;
  border-radius: 4px;
  transition: all 0.15s;
}

.tutorial-skip:hover {
  color: var(--gmail-text-secondary);
  background: #f1f3f4;
}

.tutorial-nav {
  display: flex;
  gap: 8px;
}

.tutorial-btn {
  padding: 8px 20px;
  border-radius: 4px;
  font-size: 13px;
  font-family: var(--gmail-font-ui);
  font-weight: 500;
  transition: all 0.15s;
}

.tutorial-prev {
  color: var(--gmail-text-secondary);
  border: 1px solid var(--gmail-border);
}

.tutorial-prev:hover {
  background: var(--gmail-hover);
}

.tutorial-next {
  background: var(--gmail-blue);
  color: white;
}

.tutorial-next:hover {
  background: var(--gmail-blue-hover);
}

/* Mobile */
@media (max-width: 480px) {
  .tutorial-card {
    padding: 20px;
    margin: 16px;
  }

  .tutorial-title {
    font-size: 16px;
  }

  .tutorial-mock-verdict {
    flex-direction: column;
    gap: 8px;
  }
}
