* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }
.z-60 { z-index: 60; }
.z-70 { z-index: 70; }

.progress-ring-circle {
  transition: stroke-dashoffset 0.8s ease;
  transform: rotate(-90deg);
  transform-origin: center;
}

.nav-btn.active {
  background: rgba(6, 182, 212, 0.2);
  color: #22d3ee;
}

.flashcard {
  perspective: 1000px;
  height: 200px;
  cursor: pointer;
}
.flashcard-inner {
  position: relative;
  width: 100%;
  height: 100%;
  transition: transform 0.5s;
  transform-style: preserve-3d;
}
.flashcard.flipped .flashcard-inner {
  transform: rotateY(180deg);
}
.flashcard-front, .flashcard-back {
  position: absolute;
  inset: 0;
  backface-visibility: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  border-radius: 0.75rem;
  border: 1px solid rgba(55,65,81,1);
  background: rgba(17,24,39,1);
}
.flashcard-back {
  transform: rotateY(180deg);
  background: rgba(6, 182, 212, 0.1);
  border-color: rgba(6, 182, 212, 0.3);
}

.pulse-ring {
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.5; }
}

.timer-active { color: #22d3ee; }
.timer-break { color: #fbbf24; }
.timer-stopped { color: #9ca3af; }

.pomodoro-btn {
  transition: all 0.15s ease;
}
.pomodoro-btn:active { transform: scale(0.95); }

.chapter-item {
  transition: all 0.15s ease;
}
.chapter-item:hover {
  background: rgba(55,65,81,0.5);
}

.status-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; flex-shrink: 0; }
.status-notstarted { background: #4b5563; }
.status-inprogress { background: #f59e0b; }
.status-done { background: #10b981; }

.mock-row {
  transition: all 0.15s ease;
}
.mock-row:hover {
  background: rgba(55,65,81,0.3);
}

canvas { max-width: 100%; }

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
input[type="number"] { -moz-appearance: textfield; }

::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #374151; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #4b5563; }

.day-card {
  transition: all 0.15s ease;
}
.day-card:hover {
  background: rgba(55,65,81,0.3);
}
.schedule-block {
  position: relative;
}
.schedule-block::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  border-radius: 2px;
}
.schedule-block.physics::before { background: #3b82f6; }
.schedule-block.chemistry::before { background: #10b981; }
.schedule-block.math::before { background: #8b5cf6; }
.schedule-block.mock::before { background: #ef4444; }
.schedule-block.review::before { background: #f59e0b; }
.schedule-block.break::before { background: #6b7280; }

.schedule-timeline {
  position: relative;
}
.schedule-timeline::before {
  content: '';
  position: absolute;
  left: 60px;
  top: 0;
  bottom: 0;
  width: 1px;
  background: #374151;
}

.time-marker {
  position: relative;
  height: 48px;
}
.time-marker::after {
  content: '';
  position: absolute;
  left: 56px;
  top: 50%;
  width: 8px;
  height: 1px;
  background: #4b5563;
}

.pdf-upload-zone {
  border: 2px dashed #374151;
  transition: all 0.15s ease;
}
.pdf-upload-zone:hover {
  border-color: #22d3ee;
  background: rgba(6, 182, 212, 0.05);
}

.day-toggle-on { background: rgba(6, 182, 212, 0.15); border-color: rgba(6, 182, 212, 0.3); }
.day-toggle-off { background: rgba(55, 65, 81, 0.5); border-color: #374151; opacity: 0.6; }

@media (max-width: 1023px) {
  #sidebar.open { transform: translateX(0); }
}
