/*
 * This is a manifest file that'll be compiled into application.css.
 *
 * With Propshaft, assets are served efficiently without preprocessing steps. You can still include
 * application-wide styles in this file, but keep in mind that CSS precedence will follow the standard
 * cascading order, meaning styles declared later in the document or manifest will override earlier ones,
 * depending on specificity.
 *
 * Consider organizing styles into separate files for maintainability.
 */

/* Heading styles in rendered prose */
.prose h2 {
  font-size: 1.35rem;
  font-weight: 700;
  margin: 0.75rem 0 0.25rem;
}

.prose h3 {
  font-size: 1.15rem;
  font-weight: 600;
  margin: 0.5rem 0 0.25rem;
}

.prose h4 {
  font-size: 1rem;
  font-weight: 600;
  margin: 0.5rem 0 0.25rem;
}

/* List styles for rendered content */
.prose ul {
  list-style-type: disc;
  padding-left: 1.5rem;
}

.prose ol {
  list-style-type: decimal;
  padding-left: 1.5rem;
}

.prose li {
  margin-bottom: 0.25rem;
}

/* Summernote theme overrides to match DaisyUI */
.note-editor.note-frame {
  border: 1px solid oklch(var(--bc) / 0.2) !important;
  border-radius: 0.5rem !important;
  overflow: hidden;
}

.note-editor .note-toolbar {
  background-color: oklch(var(--b2, 0.92 0 0)) !important;
  border-bottom: 1px solid oklch(var(--bc) / 0.15) !important;
  padding: 4px 8px !important;
}

.note-editor .note-editing-area .note-editable {
  background-color: oklch(var(--b1, 1 0 0)) !important;
  color: oklch(var(--bc)) !important;
}

.note-editable h2 {
  font-size: 1.35rem !important;
  font-weight: 700 !important;
  margin: 0.75rem 0 0.25rem !important;
}

.note-editable h3 {
  font-size: 1.15rem !important;
  font-weight: 600 !important;
  margin: 0.5rem 0 0.25rem !important;
}

.note-editable h4 {
  font-size: 1rem !important;
  font-weight: 600 !important;
  margin: 0.5rem 0 0.25rem !important;
}

.note-editable ul {
  list-style-type: disc !important;
  padding-left: 1.5rem !important;
}

.note-editable ol {
  list-style-type: decimal !important;
  padding-left: 1.5rem !important;
}

.note-editable li {
  margin-bottom: 0.25rem;
}

.note-editor .note-statusbar {
  background-color: oklch(var(--b2, 0.92 0 0)) !important;
  border-top: 1px solid oklch(var(--bc) / 0.15) !important;
}

.note-editor .note-btn {
  border-radius: 0.25rem !important;
}

/* Prose styles for rendered content */
.prose a {
  color: oklch(var(--p));
  text-decoration: underline;
}

.prose strong {
  font-weight: 700;
}

/* Smooth scroll with offset for fixed navbars */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 8rem;
}

/* Scroll Spy — active link styles per template */
.scroll-spy-link.active {
  background-color: oklch(var(--p));
  color: oklch(var(--pc));
  border-radius: 0.5rem;
}

.scroll-spy-link-minimal.active {
  color: oklch(var(--p));
  font-weight: 700;
}

.scroll-spy-link-modern.active {
  background-color: oklch(var(--p));
  color: oklch(var(--pc));
  border-radius: 9999px;
}

.scroll-spy-link-developer.active {
  background-color: rgba(34, 197, 94, 0.15);
  color: #4ade80;
}

.scroll-spy-link-creative.active {
  color: oklch(var(--p));
  border-bottom: 3px solid oklch(var(--p));
  padding-bottom: calc(0.5rem - 3px);
}

.scroll-spy-link-corporate.active {
  background-color: oklch(var(--p));
  color: oklch(var(--pc));
  border-radius: 0.375rem;
}

.scroll-spy-link-glass.active {
  background-color: oklch(var(--p) / 0.15);
  color: oklch(var(--p));
  border-radius: 0.5rem;
}

/* Line clamp for project card descriptions */
.line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.line-clamp-3 {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Modal open state */
.modal.modal-open {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}
