/* css/style.css - Production Developer Toolbox Stylesheet */

/* -------------------------------------------------------------------------- */
/* THEMES CONFIGURATION                                                       */
/* -------------------------------------------------------------------------- */
:root[data-theme="light"] {
  color-scheme: light;
  --bg-main: #f8fafc;
  --bg-card: rgba(255, 255, 255, 0.9);
  --bg-card-hover: rgba(255, 255, 255, 1);
  --bg-editor: #ffffff;
  --border-color: #e2e8f0;
  --border-glow: rgba(99, 102, 241, 0.15);
  --text-main: #0f172a;
  --text-muted: #64748b;
  --accent: #4f46e5;
  --card-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.04);
  --scrollbar-thumb: #cbd5e1;
  --scrollbar-thumb-hover: #94a3b8;
}

:root[data-theme="dim"] {
  color-scheme: dark;
  --bg-main: #0b0f19;
  --bg-card: rgba(18, 24, 38, 0.9);
  --bg-card-hover: rgba(24, 32, 50, 0.98);
  --bg-editor: #080c14;
  --border-color: #1e293b;
  --border-glow: rgba(99, 102, 241, 0.25);
  --text-main: #f8fafc;
  --text-muted: #94a3b8;
  --accent: #6366f1;
  --card-shadow: 0 12px 30px -8px rgba(0, 0, 0, 0.5);
  --scrollbar-thumb: #334155;
  --scrollbar-thumb-hover: #475569;
}

:root,
:root[data-theme="dark"] {
  color-scheme: dark;
  --bg-main: #030712;
  --bg-card: rgba(15, 23, 42, 0.9);
  --bg-card-hover: rgba(30, 41, 59, 0.98);
  --bg-editor: #020617;
  --border-color: #1e293b;
  --border-glow: rgba(129, 140, 248, 0.25);
  --text-main: #f8fafc;
  --text-muted: #94a3b8;
  --accent: #818cf8;
  --card-shadow: 0 12px 35px -8px rgba(0, 0, 0, 0.7);
  --scrollbar-thumb: #334155;
  --scrollbar-thumb-hover: #475569;
}

/* -------------------------------------------------------------------------- */
/* GLOBAL BODY & BACKGROUND                                                   */
/* -------------------------------------------------------------------------- */
body {
  background-color: var(--bg-main);
  color: var(--text-main);
  transition: background-color 0.25s ease, color 0.25s ease;
  background-image: radial-gradient(circle at 50% 0%, var(--border-glow) 0%, transparent 60%);
  background-attachment: fixed;
}

html {
  scroll-behavior: smooth;
}

section[id^="anchor-"] {
  scroll-margin-top: 10rem;
}

/* -------------------------------------------------------------------------- */
/* TOOL CARDS & EDITORS                                                       */
/* -------------------------------------------------------------------------- */
.theme-card {
  background-color: var(--bg-card);
  border-color: var(--border-color);
  box-shadow: var(--card-shadow);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.theme-card:hover {
  background-color: var(--bg-card-hover);
}

.theme-editor {
  background-color: var(--bg-editor);
  border-color: var(--border-color);
  color: var(--text-main);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.theme-editor:focus,
.theme-editor:focus-within {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--border-glow);
}

/* -------------------------------------------------------------------------- */
/* DEDICATED TOOL COMPONENT GRIDS                                             */
/* -------------------------------------------------------------------------- */
/* 25-column matrix for 24-hour visual timezone scheduler */
.grid-cols-25 {
  display: grid;
  grid-template-columns: 140px repeat(24, minmax(28px, 1fr));
}

/* Drag-and-drop file upload target states */
.dropzone-active {
  border-color: var(--accent) !important;
  background-color: rgba(99, 102, 241, 0.08) !important;
}

/* Range input cross-browser improvements */
input[type="range"] {
  cursor: pointer;
}

input[type="range"]::-webkit-slider-thumb {
  transition: transform 0.1s ease;
}

input[type="range"]:active::-webkit-slider-thumb {
  transform: scale(1.15);
}

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

.custom-scrollbar::-webkit-scrollbar { width: 6px; height: 6px; }
.custom-scrollbar::-webkit-scrollbar-track { background: transparent; }
.custom-scrollbar::-webkit-scrollbar-thumb { background: var(--scrollbar-thumb); border-radius: 4px; }
.custom-scrollbar::-webkit-scrollbar-thumb:hover { background: var(--scrollbar-thumb-hover); }

/* -------------------------------------------------------------------------- */
/* JSON SYNTAX HIGHLIGHTING                                                   */
/* -------------------------------------------------------------------------- */
.json-key { color: #f43f5e; font-weight: 600; }
.json-string { color: #10b981; }
.json-number { color: #f59e0b; }
.json-boolean { color: #8b5cf6; font-weight: 600; }
.json-null { color: #64748b; font-style: italic; }

/* -------------------------------------------------------------------------- */
/* INTERACTIVE & SPECIAL UTILITY ANIMATIONS                                   */
/* -------------------------------------------------------------------------- */
@keyframes pet-bounce {
  0%, 100% { transform: scale(1, 1) translateY(0); }
  30% { transform: scale(1.1, 0.9) translateY(2px); }
  50% { transform: scale(0.95, 1.08) translateY(-6px); }
  70% { transform: scale(1.04, 0.96) translateY(0); }
}
.animate-pet { animation: pet-bounce 2.8s infinite ease-in-out; }

@keyframes eye-blink-smooth {
  0%, 92%, 100% { transform: scaleY(1); }
  96% { transform: scaleY(0.12); }
}
.eye-blink-smooth { animation: eye-blink-smooth 3.6s infinite; transform-origin: center; }

.bubble-wrap-dot {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.8), rgba(99,102,241,0.3));
  box-shadow: inset 0 2px 4px rgba(255,255,255,0.6), 0 2px 4px rgba(0,0,0,0.1);
  cursor: pointer;
  transition: transform 0.15s ease, background 0.15s ease;
}
.bubble-wrap-dot.popped {
  background: rgba(148, 163, 184, 0.15);
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.25);
  transform: scale(0.85);
  cursor: default;
}
