/* GO FIREMOOD - Aesthetic Purple & Pastel Theme (Inspired by gofiremood.vercel.app) */
@import url('https://fonts.googleapis.com/css2?family=Fredoka:wght@500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Space+Mono:wght@700&display=swap');

:root {
  /* Exact gofiremood.vercel.app Color Identity */
  --white-smoke: #F5F5F4;
  --lavender-blush: #E5DBE6;
  --rosy-taupe: #BBA0A0;
  --soft-periwinkle: #7D80DA;
  --dusty-grape: #55418B;
  --deep-violet: #2C1B4D;
  --pastel-pink: #FCE7F3;
  --hot-pink: #F472B6;
  --soft-lilac: #DDD6FE;
  
  --bg-table-header: #EDE8F5;
  --bg-table-zebra: #FAF8FD;
  --border-table: #DDD6FE;
}

/* Ensure hidden elements are ALWAYS completely hidden and never intercept clicks */
.hidden, [hidden] {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.modal-overlay.hidden,
.modal-overlay[style*="display: none"],
[id$="Modal"].hidden,
[id$="Modal"][style*="display: none"] {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* ==================== AUTHENTIC VERCEL THEME BACKGROUND ==================== */
html, body {
  background-color: #EDE8F5 !important;
  background-image: 
    radial-gradient(#7D80DA 1.2px, transparent 1.2px),
    radial-gradient(#F472B6 0.8px, transparent 0.8px) !important;
  background-size: 24px 24px, 48px 48px !important;
  background-position: 0 0, 12px 12px !important;
  min-height: 100vh;
  font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
  color: #2C1B4D;
  overflow-x: hidden;
}

/* Cute Gingham Pastel Pattern */
.bg-gingham {
  background-color: #FFFFFF;
  background-image: 
    linear-gradient(45deg, rgba(221, 214, 254, 0.35) 25%, transparent 25%),
    linear-gradient(-45deg, rgba(221, 214, 254, 0.35) 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, rgba(221, 214, 254, 0.35) 75%),
    linear-gradient(-45deg, transparent 75%, rgba(221, 214, 254, 0.35) 75%);
  background-size: 16px 16px;
  background-position: 0 0, 0 8px, 8px -8px, -8px 0px;
}

/* Cute Ribbon Heart Bookmark */
.ribbon-heart {
  position: absolute;
  top: -2px;
  right: 14px;
  width: 18px;
  height: 26px;
  background: #F472B6;
  border: 2px solid #55418B;
  border-top: none;
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 50% 75%, 0% 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 15;
}
.ribbon-heart::after {
  content: '\2665';
  font-size: 9px;
  color: #FFFFFF;
  margin-top: -6px;
  font-weight: 800;
}
.ribbon-heart.purple {
  background: #7D80DA;
}

/* Corner Clips */
.corner-clip-flower {
  position: absolute;
  width: 18px;
  height: 18px;
  background: #DDD6FE;
  border: 2px solid #55418B;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  z-index: 20;
}
.corner-clip-star {
  position: absolute;
  width: 16px;
  height: 16px;
  background: #FEF08A;
  border: 2px solid #55418B;
  border-radius: 4px;
  transform: rotate(45deg);
  z-index: 20;
}

/* ==================== CUTE WASHI TAPE & DECO ACCENTS ==================== */
.washi-tape-strip {
  position: absolute;
  top: -8px;
  left: 28px;
  width: 76px;
  height: 18px;
  background: rgba(254, 240, 138, 0.92); /* Pastel Butter Yellow */
  border-left: 2px dashed rgba(85, 65, 139, 0.28);
  border-right: 2px dashed rgba(85, 65, 139, 0.28);
  box-shadow: 0 1px 3px rgba(85, 65, 139, 0.12);
  transform: rotate(-2deg);
  pointer-events: none;
  z-index: 10;
}
.washi-tape-pink {
  background: rgba(252, 231, 243, 0.95); /* Pastel Strawberry Pink */
  transform: rotate(2deg);
  left: auto;
  right: 28px;
}
.washi-tape-lilac {
  background: rgba(221, 214, 254, 0.92); /* Pastel Soft Lilac */
  transform: rotate(-1.5deg);
}
.washi-tape-center {
  left: 50%;
  transform: translateX(-50%) rotate(0.8deg);
}

/* ==================== CLEAN CARD WITH 3D CUTE SHADOW ==================== */
.clean-card {
  background-color: #FFFFFF;
  border: 2px solid rgba(85, 65, 139, 0.28);
  border-radius: 20px;
  box-shadow: 0 5px 0px 0px #DDD6FE, 0 10px 18px -4px rgba(85, 65, 139, 0.08);
}
.clean-card:hover {
  border-color: rgba(85, 65, 139, 0.45);
}

/* ==================== NAVIGATION TABS (CUTE 3D PILL BUTTONS) ==================== */
.nav-tab {
  transition: all 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
  cursor: pointer;
  border-radius: 12px;
  font-family: 'Fredoka', 'Plus Jakarta Sans', sans-serif !important;
  font-weight: 700;
  border: 2px solid rgba(125, 128, 218, 0.4) !important;
}
.nav-tab.active {
  background-color: #55418B !important;
  color: #FFFFFF !important;
  border-color: #2C1B4D !important;
  box-shadow: 0 3px 0px 0px #2C1B4D !important;
  transform: translateY(-2px);
}
.nav-tab.inactive {
  background-color: #FFFFFF !important;
  color: #55418B !important;
  border: 2px solid rgba(125, 128, 218, 0.4) !important;
  box-shadow: 0 2px 0px 0px rgba(221, 214, 254, 0.6);
}
.nav-tab.inactive:hover {
  background-color: #F5F5F4 !important;
  transform: translateY(-1px);
}

/* ==================== 3D TACTILE BUTTONS ==================== */
.btn-cute-primary {
  background-color: #55418B;
  color: #FFFFFF;
  border: 2px solid #2C1B4D;
  border-radius: 12px;
  box-shadow: 0 3px 0px 0px #2C1B4D;
  font-family: 'Fredoka', 'Plus Jakarta Sans', sans-serif;
  font-weight: 700;
  transition: all 0.15s ease-in-out;
}
.btn-cute-primary:hover {
  background-color: #433270;
  transform: translateY(-1px);
  box-shadow: 0 4px 0px 0px #2C1B4D;
}
.btn-cute-primary:active {
  transform: translateY(2px);
  box-shadow: none;
}

.btn-cute-secondary {
  background-color: #FFFFFF;
  color: #55418B;
  border: 2px solid #55418B;
  border-radius: 12px;
  box-shadow: 0 3px 0px 0px #DDD6FE;
  font-family: 'Fredoka', 'Plus Jakarta Sans', sans-serif;
  font-weight: 700;
  transition: all 0.15s ease-in-out;
}
.btn-cute-secondary:hover {
  background-color: #F5F5F4;
  transform: translateY(-1px);
}
.btn-cute-secondary:active {
  transform: translateY(2px);
  box-shadow: none;
}

/* ==================== SPREADSHEET TABLE STYLES ==================== */
.sheet-table {
  border-collapse: separate !important;
  border-spacing: 0;
  width: 100%;
  border-top: 2px solid #DDD6FE;
  border-left: 2px solid #DDD6FE;
  background-color: #FFFFFF;
  /* NOTE: overflow:hidden removed — it breaks position:sticky on th/td.
     Border-radius clipping is handled by the parent overflow-x-auto container. */
}

.sheet-table th, .sheet-table td {
  border-right: 1.5px solid #E8E0EE !important;
  border-bottom: 1.5px solid #E8E0EE !important;
  padding: 8px 10px;
  font-size: 11.5px;
  color: #2C1B4D;
}

.sheet-table th {
  background-color: #EDE8F5;
  color: #2C1B4D;
  font-family: 'Fredoka', 'Plus Jakarta Sans', sans-serif;
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  border-bottom: 2px solid #DDD6FE !important;
}

.sheet-header-cute {
  background-color: #EDE8F5 !important;
  color: #2C1B4D !important;
  font-weight: 700;
}

.sheet-header-purple {
  background-color: #E5DBE6 !important;
  color: #2C1B4D !important;
  font-weight: 700;
}

/* Zebra Striping */
.sheet-table tbody tr:nth-child(even) td {
  background-color: #FAF8FD;
}

/* Hover Row */
.sheet-table tbody tr:hover td {
  background-color: #F3EEF9 !important;
}

/* Sticky Columns */
.sticky-col-no {
  position: -webkit-sticky !important;
  position: sticky !important;
  left: 0 !important;
  z-index: 16 !important;
  width: 42px !important;
  min-width: 42px !important;
  max-width: 42px !important;
  padding-left: 4px !important;
  padding-right: 4px !important;
  background-color: #FFFFFF !important;
  box-sizing: border-box !important;
}

.sticky-col-name {
  position: -webkit-sticky !important;
  position: sticky !important;
  left: 42px !important;
  z-index: 15 !important;
  min-width: 130px !important;
  background-color: #FFFFFF !important;
  box-sizing: border-box !important;
  box-shadow: 2px 0 5px -1px rgba(85, 65, 139, 0.12) !important;
  word-break: break-word;
  overflow-wrap: break-word;
}

.sheet-table thead th.sticky-col-no,
.sheet-table thead th.sticky-col-name,
.sheet-table th.sticky-col-no,
.sheet-table th.sticky-col-name {
  background-color: #EDE8F5 !important;
  z-index: 25 !important;
}

.sheet-table tbody tr:nth-child(even) .sticky-col-no,
.sheet-table tbody tr:nth-child(even) .sticky-col-name {
  background-color: #FAF8FD !important;
}

.sheet-table tbody tr:hover .sticky-col-no,
.sheet-table tbody tr:hover .sticky-col-name {
  background-color: #F3EEF9 !important;
}

/* ==================== MOBILE TABLE & LAYOUT FIXES ==================== */
@media (max-width: 640px) {
  .sheet-table th, .sheet-table td {
    padding: 6px 6px !important;
    font-size: 10.5px !important;
  }
  .sheet-table th {
    font-size: 10px !important;
  }
  /* Tighten NO column on mobile */
  .sticky-col-no {
    width: 36px !important;
    min-width: 36px !important;
    max-width: 36px !important;
    padding-left: 2px !important;
    padding-right: 2px !important;
  }
  /* Keep name column reasonably sized and frozen on mobile */
  .sticky-col-name {
    left: 36px !important;
    min-width: 100px !important;
    max-width: 125px !important;
  }
}

/* Numbers & Tabular Figures */
code, kbd, samp, pre, .font-mono, [class*="font-mono"], .font-mono-num {
  font-family: 'Space Mono', 'Plus Jakarta Sans', monospace !important;
  font-variant-numeric: tabular-nums;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
::-webkit-scrollbar-track {
  background: #EDE8F5;
}
::-webkit-scrollbar-thumb {
  background: #C4B5FD;
  border-radius: 999px;
  border: 2px solid #EDE8F5;
}
::-webkit-scrollbar-thumb:hover {
  background: #7D80DA;
}

/* Mobile Bottom Navigation */
.m-nav-item {
  transition: all 0.15s ease-in-out;
  font-family: 'Fredoka', 'Plus Jakarta Sans', sans-serif;
}
.m-nav-item.active {
  color: #55418B !important;
  font-weight: 800;
}
.m-nav-item.inactive {
  color: #8C7E9E !important;
  font-weight: 500;
}

/* Modal Backdrop */
.modal-overlay {
  background-color: rgba(44, 27, 77, 0.65);
  backdrop-filter: blur(4px);
}

/* Drag and Drop Sortable styles */
.sort-ghost-tab {
  opacity: 0.4;
  border: 2px dashed #55418B !important;
}
.sort-chosen-tab {
  opacity: 0.95;
  transform: scale(1.03);
}
.sort-ghost-batch {
  opacity: 0.35;
  border: 2px dashed #55418B !important;
  background-color: #EDE8F5 !important;
}
.sort-chosen-batch {
  box-shadow: 0 10px 25px -5px rgba(85, 65, 139, 0.25) !important;
}
.sort-ghost-row {
  opacity: 0.35;
  background-color: #EDE8F5 !important;
}
.sort-chosen-row {
  background-color: #F6F1EA !important;
}

/* Watermark Canvas */
#watermarkCanvas {
  max-width: 100%;
  max-height: 70vh;
  box-shadow: 0 10px 25px -5px rgba(44, 27, 77, 0.35);
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
  cursor: crosshair;
}
#watermarkCanvas.censor-cursor {
  cursor: crosshair;
}

/* E-Receipt Paper */
.receipt-paper {
  background-color: #FFFDF9;
  border: 2px dashed #7D80DA;
  box-shadow: 0 4px 12px -2px rgba(85, 65, 139, 0.08);
}

/* Hide scrollbar */
.no-scrollbar::-webkit-scrollbar {
  display: none;
}
.no-scrollbar {
  -ms-overflow-style: none;
  scrollbar-width: none;
}


/* ==================== SET SHARING & SUB-BATCH THEMES ==================== */
.set-row-1 { background-color: #f0f9ff !important; }
.set-row-1 .sticky-col-no, .set-row-1 .sticky-col-name { background-color: #f0f9ff !important; }
.set-row-1:hover { background-color: #e0f2fe !important; }
.set-row-1:hover .sticky-col-no, .set-row-1:hover .sticky-col-name { background-color: #e0f2fe !important; }
.set-stripe-1 td:first-child { border-left: 5px solid #0284c7 !important; }

.set-row-2 { background-color: #fffbeb !important; }
.set-row-2 .sticky-col-no, .set-row-2 .sticky-col-name { background-color: #fffbeb !important; }
.set-row-2:hover { background-color: #fef3c7 !important; }
.set-row-2:hover .sticky-col-no, .set-row-2:hover .sticky-col-name { background-color: #fef3c7 !important; }
.set-stripe-2 td:first-child { border-left: 5px solid #d97706 !important; }

.set-row-3 { background-color: #f0fdf4 !important; }
.set-row-3 .sticky-col-no, .set-row-3 .sticky-col-name { background-color: #f0fdf4 !important; }
.set-row-3:hover { background-color: #dcfce7 !important; }
.set-row-3:hover .sticky-col-no, .set-row-3:hover .sticky-col-name { background-color: #dcfce7 !important; }
.set-stripe-3 td:first-child { border-left: 5px solid #059669 !important; }

.set-row-4 { background-color: #faf5ff !important; }
.set-row-4 .sticky-col-no, .set-row-4 .sticky-col-name { background-color: #faf5ff !important; }
.set-row-4:hover { background-color: #f3e8ff !important; }
.set-row-4:hover .sticky-col-no, .set-row-4:hover .sticky-col-name { background-color: #f3e8ff !important; }
.set-stripe-4 td:first-child { border-left: 5px solid #9333ea !important; }

.set-row-5 { background-color: #fff1f2 !important; }
.set-row-5 .sticky-col-no, .set-row-5 .sticky-col-name { background-color: #fff1f2 !important; }
.set-row-5:hover { background-color: #ffe4e6 !important; }
.set-row-5:hover .sticky-col-no, .set-row-5:hover .sticky-col-name { background-color: #ffe4e6 !important; }
.set-stripe-5 td:first-child { border-left: 5px solid #e11d48 !important; }

.set-row-6 { background-color: #f0fdfa !important; }
.set-row-6 .sticky-col-no, .set-row-6 .sticky-col-name { background-color: #f0fdfa !important; }
.set-row-6:hover { background-color: #ccfbf1 !important; }
.set-row-6:hover .sticky-col-no, .set-row-6:hover .sticky-col-name { background-color: #ccfbf1 !important; }
.set-stripe-6 td:first-child { border-left: 5px solid #0d9488 !important; }

.set-row-7 { background-color: #eef2ff !important; }
.set-row-7 .sticky-col-no, .set-row-7 .sticky-col-name { background-color: #eef2ff !important; }
.set-row-7:hover { background-color: #e0e7ff !important; }
.set-row-7:hover .sticky-col-no, .set-row-7:hover .sticky-col-name { background-color: #e0e7ff !important; }
.set-stripe-7 td:first-child { border-left: 5px solid #4f46e5 !important; }

.set-row-8 { background-color: #fff7ed !important; }
.set-row-8 .sticky-col-no, .set-row-8 .sticky-col-name { background-color: #fff7ed !important; }
.set-row-8:hover { background-color: #ffedd5 !important; }
.set-row-8:hover .sticky-col-no, .set-row-8:hover .sticky-col-name { background-color: #ffedd5 !important; }
.set-stripe-8 td:first-child { border-left: 5px solid #ea580c !important; }
/* iOS momentum touch scrolling for table containers */
.overflow-x-auto {
  -webkit-overflow-scrolling: touch;
}
