/* Swap wordmark.svg for wordmark_white.svg in dark mode */
.darkmode img[src$="wordmark.svg"] {
  content: url("../img/wordmark_white.svg");
}

@font-face {
  font-family: 'SFProDisplay';
  src: url(../fonts/SFProDisplay-Regular.woff2) format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'SFProDisplay';
  src: url(../fonts/SFProDisplay-Medium.woff2) format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'SFProDisplay';
  src: url(../fonts/SFProDisplay-Bold.woff2) format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'refinedMono';
  src: url(../fonts/refinedMono-Regular.woff2) format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'refinedMono';
  src: url(../fonts/refinedMono-Medium.woff2) format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'refinedMono';
  src: url(../fonts/refinedMono-Bold.woff2) format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* Hide scrollbar for Chrome, Safari and Opera */
.no-scrollbar::-webkit-scrollbar {
  display: none;
}

/* Hide scrollbar for IE, Edge and Firefox */
.no-scrollbar {
  -ms-overflow-style: none;
  /* IE and Edge */
  scrollbar-width: none;
  /* Firefox */
}

.text-primary {
  color: #484F56;
}

.text-secondary {
  color: #8F8F8F;
}

.border-secondary {
  border-color: #8F8F8F;
}

.bg-primary {
  background-color: #484F56;
}

.bg-secondary {
  background-color: #8F8F8F;
}

.border-left {
  border-inline-start-width: 1px;
  border-color: #8F8F8F;
}

/* width */
::-webkit-scrollbar {
  width: 5px;
}

/* Track */
::-webkit-scrollbar-track {
  background: #cfd8dc;
  border-radius: 5px;
}

/* Handle */
::-webkit-scrollbar-thumb {
  background: #b0bec5;
  border-radius: 5px;
}

/* Handle on hover */
::-webkit-scrollbar-thumb:hover {
  background: #90a4ae;
}

:root {
  --base-color: white;
  --base-variant: rgb(248, 248, 248);
  --text-color: rgb(10, 10, 10);
  --secondary-text: rgb(120, 120, 120);
  --primary-color: #0B0B0B;
  --accent-color: #F9F9F9;
  --base-blockquote: rgb(249 250 251);
  --blockquote-border: rgb(209 213 219);
  --border-color: rgb(229, 229, 229);
}

.darkmode {
  --base-color: #070b1d;
  --base-variant: #101425;
  --text-color: #ffffff;
  --secondary-text: #a4a5b8;
  --primary-color: #3a435d;
  --accent-color: oklch(55.8% 0.288 302.321);
  --base-blockquote: rgb(31 41 55);
  --blockquote-border: rgb(107 114 128);
  --border-color: rgb(229, 229, 229);
}

/* *{
    margin: 0;
    padding: 0;
  } */
html {
  font-family: 'refinedMono', 'SFProDisplay', Poppins, Arial, monospace, sans-serif;
}

body {
  min-height: 100vh;
  background-color: var(--base-color);
  color: var(--text-color);
  line-height: 1.6;
}

.navigation {
  margin-top: 20px;
  display: flex;
  justify-content: space-between;
}

#bottomBar {
  display: flex;
  justify-content: space-between;
  background-color: var(--base-variant);
  bottom: 20px;
  position: fixed;
  width: 90vw;
}

header,
section {
  padding: 30px min(30px, 5%);
}

section {
  background-color: var(--base-variant);
}

time {
  color: var(--secondary-text);
}

.bg-backdrop {
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  background-color: hsla(0, 0%, 78%, .1);
}

.button-round {
  border: 2px solid var(--base-variant);
  ;
  padding: .4em 2em;
  background-color: transparent;
  color: var(--secondary-text);
  border-radius: 100px;
  font: inherit;
  font-size: 12px;
  text-transform: uppercase;
  font-weight: 500;
  cursor: pointer;
}

button {
  border: none;
  padding: .5rem;
  /* background-color: var(--primary-color); */
  /* color: #333; */
  font: inherit;
  text-transform: uppercase;
  font-weight: 500;
  cursor: pointer;
}

.tab-button {
  padding: 1rem !important;
  font: inherit;
  text-transform: uppercase;
  cursor: pointer;
}

.font-600 {
  font-weight: 600 !important;
}

#loginButton {
  border: none;
  background-color: var(--primary-color);
  color: #fff;
  font: inherit;
  font-weight: 500;
  cursor: pointer;
}

#showInviteNoteButton {
  border: none;
  background-color: var(--primary-color);
  color: #fff;
  font: inherit;
  font-weight: 500;
  cursor: pointer;
}

#disconnectButton {
  border: none;
  background-color: var(--primary-color);
  color: #fff;
  font: inherit;
  font-weight: 500;
  cursor: pointer;
}

#saveSettingsButton {
  border: none;
  background-color: var(--primary-color);
  color: #fff;
  font: inherit;
  font-weight: 500;
  cursor: pointer;
}

button:disabled {
  cursor: not-allowed;
  display: none;
}

.button-round:disabled {
  cursor: not-allowed;
  display: none;
}

.note-text {
  white-space: pre-wrap;
}

blockquote {
  background-color: var(--base-blockquote);
  border-left: 4px solid var(--blockquote-border);
  text-align: left;
  padding: 4px 8px;
  font-style: italic;
}

#pageTitle {
  padding: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}

#closeNote-toggle {
  height: 32px;
  width: 32px;
  padding: 0;
  background-color: var(--base-variant);
  display: flex;
  justify-content: center;
  align-items: center;
  /* position: fixed;
    top: 20px;
    right: 100px; */
}

#theme-switch {
  height: 32px;
  width: 32px;
  padding: 0;
  border-radius: 6px;
  background-color: var(--base-variant);
  display: flex;
  justify-content: center;
  align-items: center;
  /* position: fixed;
    top: 20px;
    right: 20px; */
}

#addContent-toggle {
  height: 48px;
  width: 48px;
  padding: 0;
  background-color: #192828;
  display: flex;
  justify-content: center;
  align-items: center;
  /* position: fixed;
    top: 20px;
    right: 100px; */
}

#notesBackdrop svg {
  stroke: var(--text-color);
}

#addNoteButton {
  /* height: 32px; */
  /* width: 32px; */
  /* padding: 0; */
  border-radius: 6px;
  border-color: var(--base-variant);
  /* display: flex;
    justify-content: center;
    align-items: center; */
  /* position: fixed;
    top: 20px;
    right: 100px; */
}

#saveNoteButton {
  background-color: var(--base-variant);
  display: flex;
  justify-content: center;
  align-items: center;
  color: var(--primary-color);
}

#fullscreen-switch {
  height: 32px;
  width: 32px;
  padding: 0;
  border-radius: 6px;
  background-color: var(--base-variant);
  display: flex;
  justify-content: center;
  align-items: center;
  /* position: fixed;
    top: 20px;
    right: 60px; */
}

/* #addLocationButton svg {
    stroke: var(--primary-color);
  }
  #addDocumentButton svg {
    stroke: var(--primary-color);
  }
  #addVideoButton svg {
    stroke: var(--primary-color);
  }
  #addAudioButton svg {
    stroke: var(--primary-color);
  }
  #addCameraButton svg {
    stroke: var(--primary-color);
  }
  #addGalleryButton svg {
    stroke: var(--primary-color);
  }
  #addNoteButton svg {
    stroke: var(--primary-color);
  } */
#theme-switch svg {
  stroke: var(--primary-color);
}

#fullscreen-switch svg {
  stroke: var(--primary-color);
}

#addContent-toggle svg {
  stroke: var(--accent-color);
}

/* #addNoteButton svg{
    fill: var(--primary-color);
  } */
#deleteIcon svg {
  stroke: var(--primary-color);
}

#settingsButton svg {
  stroke: var(--primary-color);
}

#theme-switch svg:last-child {
  display: none;
}

.darkmode #theme-switch svg:first-child {
  display: none;
}

.darkmode #theme-switch svg:last-child {
  display: block;
}

.welcome {
  margin-bottom: 20px;
}

.welcome a {
  display: flex;
  align-items: baseline;
  margin: 5px 0;
  text-decoration: none;
  color: rgb(37 99 235) !important;
  cursor: pointer;
}

.welcome a:hover {
  text-decoration: underline;
}

.welcome a .title {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.bg-cyan-50,
.hover\:bg-cyan-50:hover {
  background-color: #e0f7fa;
}

.bg-cyan-100,
.hover\:bg-cyan-100:hover {
  background-color: #b2ebf2;
}

.bg-cyan-200,
.hover\:bg-cyan-200:hover {
  background-color: #80deea;
}

.bg-cyan-300,
.hover\:bg-cyan-300:hover {
  background-color: #4dd0e1;
}

.bg-cyan-400,
.hover\:bg-cyan-400:hover {
  background-color: #26c6da;
}

.bg-cyan-500,
.hover\:bg-cyan-500:hover {
  background-color: #00bcd4;
}

.bg-cyan-600,
.hover\:bg-cyan-600:hover {
  background-color: #00acc1;
}

.bg-cyan-700,
.hover\:bg-cyan-700:hover {
  background-color: #0097a7;
}

.bg-cyan-800,
.hover\:bg-cyan-800:hover {
  background-color: #00838f;
}

.bg-cyan-900,
.hover\:bg-cyan-900:hover {
  background-color: #006064;
}


.text-cyan-50,
.hover\:text-cyan-50:hover {
  color: #e0f7fa;
}

.text-cyan-100,
.hover\:text-cyan-100:hover {
  color: #b2ebf2;
}

.text-cyan-200,
.hover\:text-cyan-200:hover {
  color: #80deea;
}

.text-cyan-300,
.hover\:text-cyan-300:hover {
  color: #4dd0e1;
}

.text-cyan-400,
.hover\:text-cyan-400:hover {
  color: #26c6da;
}

.text-cyan-500,
.hover\:text-cyan-500:hover {
  color: #00bcd4;
}

.text-cyan-600,
.hover\:text-cyan-600:hover {
  color: #00acc1;
}

.text-cyan-700,
.hover\:text-cyan-700:hover {
  color: #0097a7;
}

.text-cyan-800,
.hover\:text-cyan-800:hover {
  color: #00838f;
}

.text-cyan-900,
.hover\:text-cyan-900:hover {
  color: #006064;
}

.bg-blue-gray-50,
.hover\:bg-blue-gray-50:hover {
  background-color: #eceff1;
}

.bg-blue-gray-100,
.hover\:bg-blue-gray-100:hover {
  background-color: #cfd8dc;
}

.bg-blue-gray-200,
.hover\:bg-blue-gray-200:hover {
  background-color: #b0bec5;
}

.bg-blue-gray-300,
.hover\:bg-blue-gray-300:hover {
  background-color: #90a4ae;
}

.bg-blue-gray-400,
.hover\:bg-blue-gray-400:hover {
  background-color: #78909c;
}

.bg-blue-gray-500,
.hover\:bg-blue-gray-500:hover {
  background-color: #607d8b;
}

.bg-blue-gray-600,
.hover\:bg-blue-gray-600:hover {
  background-color: #546e7a;
}

.bg-blue-gray-700,
.hover\:bg-blue-gray-700:hover {
  background-color: #455a64;
}

.bg-blue-gray-800,
.hover\:bg-blue-gray-800:hover {
  background-color: #37474f;
}

.bg-blue-gray-900,
.hover\:bg-blue-gray-900:hover {
  background-color: #263238;
}

.text-blue-gray-50,
.hover\:text-blue-gray-50:hover {
  color: #eceff1;
}

.text-blue-gray-100,
.hover\:text-blue-gray-100:hover {
  color: #cfd8dc;
}

.text-blue-gray-200,
.hover\:text-blue-gray-200:hover {
  color: #b0bec5;
}

.text-blue-gray-300,
.hover\:text-blue-gray-300:hover {
  color: #90a4ae;
}

.text-blue-gray-400,
.hover\:text-blue-gray-400:hover {
  color: #78909c;
}

.text-blue-gray-500,
.hover\:text-blue-gray-500:hover {
  color: #607d8b;
}

.text-blue-gray-600,
.hover\:text-blue-gray-600:hover {
  color: #546e7a;
}

.text-blue-gray-700,
.hover\:text-blue-gray-700:hover {
  color: #455a64;
}

.text-blue-gray-800,
.hover\:text-blue-gray-800:hover {
  color: #37474f;
}

.text-blue-gray-900,
.hover\:text-blue-gray-900:hover {
  color: #263238;
}

.bg-teal-50,
.hover\:bg-teal-50:hover {
  background-color: #e0f2f1;
}

.bg-teal-100,
.hover\:bg-teal-100:hover {
  background-color: #b2dfdb;
}

.bg-teal-200,
.hover\:bg-teal-200:hover {
  background-color: #80cbc4;
}

.bg-teal-300,
.hover\:bg-teal-300:hover {
  background-color: #4db6ac;
}

.bg-teal-400,
.hover\:bg-teal-400:hover {
  background-color: #26a69a;
}

.bg-teal-500,
.hover\:bg-teal-500:hover {
  background-color: #009688;
}

.bg-teal-600,
.hover\:bg-teal-600:hover {
  background-color: #00897b;
}

.bg-teal-700,
.hover\:bg-teal-700:hover {
  background-color: #00796b;
}

.bg-teal-800,
.hover\:bg-teal-800:hover {
  background-color: #00695c;
}

.bg-teal-900,
.hover\:bg-teal-900:hover {
  background-color: #004d40;
}

.text-teal-50,
.hover\:text-teal-50:hover {
  color: #e0f2f1;
}

.text-teal-100,
.hover\:text-teal-100:hover {
  color: #b2dfdb;
}

.text-teal-200,
.hover\:text-teal-200:hover {
  color: #80cbc4;
}

.text-teal-300,
.hover\:text-teal-300:hover {
  color: #4db6ac;
}

.text-teal-400,
.hover\:text-teal-400:hover {
  color: #26a69a;
}

.text-teal-500,
.hover\:text-teal-500:hover {
  color: #009688;
}

.text-teal-600,
.hover\:text-teal-600:hover {
  color: #00897b;
}

.text-teal-700,
.hover\:text-teal-700:hover {
  color: #00796b;
}

.text-teal-800,
.hover\:text-teal-800:hover {
  color: #00695c;
}

.text-teal-900,
.hover\:text-teal-900:hover {
  color: #004d40;
}

.nowrap {
  white-space: nowrap;
}

.glass {
  background-color: rgba(100, 120, 130, .6);
  backdrop-filter: blur(10px);
}

table td {
  vertical-align: top;
}

#notes {
  position: fixed;
  bottom: 80px;
  left: 20px;
  width: 90vw;
  max-height: 80vh;
  overflow-y: auto;
  background-color: var(--base-variant);
  padding: 10px;
  border-radius: 8px;
  white-space: pre-wrap;
}

#notes h3 {
  margin-bottom: 10px;
}

#notes ul {
  list-style-type: none;
  padding: 0;
}

#notes li {
  margin-bottom: 10px;
}

.grow-wrap {
  /* easy way to plop the elements on top of each other and have them both sized based on the tallest one's height */
  display: grid;
}

.grow-wrap::after {
  /* Note the weird space! Needed to preventy jumpy behavior */
  content: attr(data-replicated-value) " ";

  /* This is how textarea text behaves */
  white-space: pre;

  /* Hidden from view, clicks, and screen readers */
  visibility: hidden;
}

.grow-wrap>textarea {
  /* You could leave this, but after a user resizes, then it ruins the auto sizing */
  resize: none;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;

  /* Firefox shows scrollbar on growth, you can hide like this. */
  overflow: hidden;
}

.grow-wrap>textarea,
.grow-wrap::after {
  /* Identical styling required!! */
  border: none;
  padding: 0.5rem;
  font: inherit;

  /* Place on top of each other */
  grid-area: 1 / 1 / 2 / 2;
}

textarea {
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  border: none;
  outline: none !important;
}

/* Theme toggle switch custom styles */
#theme-switch input:checked~.theme-sun-icon {
  opacity: 0;
}

#theme-switch input:checked~.theme-moon-icon {
  opacity: 1;
}

#theme-switch input:not(:checked)~.theme-sun-icon {
  opacity: 1;
}

#theme-switch input:not(:checked)~.theme-moon-icon {
  opacity: 0;
}

/* Ensure sun icon is visible in light mode */
#theme-switch .theme-sun-icon {
  color: #eab308 !important;
  /* Force yellow color */
}

#theme-switch .theme-sun-icon svg {
  fill: #eab308 !important;
  /* Force yellow fill */
}

/* Ensure moon icon is visible in dark mode */
.darkmode #theme-switch .theme-moon-icon {
  color: #60a5fa !important;
  /* Force blue color */
}

.darkmode #theme-switch .theme-moon-icon svg {
  fill: #60a5fa !important;
  /* Force blue fill */
}

/* Welcome Cards Swipe Styles */
.welcome-dot {
  cursor: pointer;
  transition: all 0.3s ease;
}

/* .welcome-dot:hover {
  transform: scale(1.2);
} */

#welcomeCardsContainer {
  touch-action: pan-y pinch-zoom;
  user-select: none;
}

#welcomePrevBtn,
#welcomeNextBtn {
  opacity: 0.7;
  transition: opacity 0.3s ease;
  z-index: 10;
}

#welcomePrevBtn:hover,
#welcomeNextBtn:hover {
  opacity: 1;
}

/* Hide navigation arrows on small screens */
@media (max-width: 640px) {

  #welcomePrevBtn,
  #welcomeNextBtn {
    display: none;
  }
}

/* Loading Screen Styles */
#loadingScreen {
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.loading-logo {
  animation: pulse 2s ease-in-out infinite;
}

@keyframes pulse {
  0%, 100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.05);
    opacity: 0.8;
  }
}

/* SVG Drawing Animation */
.animate-draw {
  stroke-dasharray: 1000;
  stroke-dashoffset: 1000;
  animation: draw 3s ease-in-out infinite;
}

@keyframes draw {
  0% {
    stroke-dashoffset: 1000;
    opacity: 0.3;
  }
  50% {
    stroke-dashoffset: 0;
    opacity: 1;
  }
  100% {
    stroke-dashoffset: -1000;
    opacity: 0.3;
  }
}

.animate-spin-draw {
  animation: spinDraw 3s linear infinite;
}

@keyframes spinDraw {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

/* Loading text animation */
#loadingScreen .text-lg {
  animation: fadeInOut 2s ease-in-out infinite;
}

@keyframes fadeInOut {
  0%, 100% {
    opacity: 0.6;
  }
  50% {
    opacity: 1;
  }
}

/* Instagram-like grid utilities */
.line-clamp-3 {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Content grid responsive adjustments */
@media (max-width: 640px) {
  .grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.25rem;
  }
}

@media (min-width: 641px) and (max-width: 1024px) {
  .grid-cols-3 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (min-width: 1025px) {
  .grid-cols-3 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}

/* Content modal styles */
#contentDetailModal {
  backdrop-filter: blur(4px);
}

#contentDetailModal .bg-\[var\(--base-color\)\] {
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

/* Smooth hover transitions for all interactive elements */
.content-tile,
.modal-close-btn,
audio,
video {
  transition: all 0.2s ease-in-out;
}

/* Audio and video player styling */
/* audio, video {
  background-color: var(--base-variant);
  border-radius: 8px;
} */

audio::-webkit-media-controls-panel,
video::-webkit-media-controls-panel {
  background-color: var(--base-color);
}

/* Document viewer styling */
.document-item {
  transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}

.document-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

/* File upload and preview styling */
.file-upload-button {
  transition: all 0.3s ease;
}

.file-upload-button:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

#filePreviewGrid .grid > div {
  transition: all 0.2s ease-in-out;
}

#filePreviewGrid .grid > div:hover {
  transform: scale(1.02);
}

/* File preview overlay */
.file-preview-overlay {
  background: linear-gradient(to top, rgba(0, 0, 0, 0.8), transparent);
}

/* Remove button styling */
.remove-file-btn {
  transition: all 0.2s ease;
}

.remove-file-btn:hover {
  background-color: #dc2626 !important;
  transform: scale(1.1);
}