/* ── Typography ──────────────────────────────────────────────────────────
   Plus Jakarta Sans is loaded from /static/fonts/ (self-hosted).
   Run scripts/download_fonts.sh to populate the fonts directory.
   Until then, the page falls back to the system font stack below.
   ─────────────────────────────────────────────────────────────────────── */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('/static/fonts/PlusJakartaSans-VariableFont_wght.woff2') format('woff2');
}

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

body {
  font-family: 'Plus Jakarta Sans', ui-sans-serif, system-ui, -apple-system,
               BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
}

.mono {
  font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo,
               Monaco, Consolas, monospace;
}

/* * Global Application Styles for Kairos
 * Tailwind CSS handles the layout; this file handles custom overrides, 
 * font features, and specific animations.
 */

/* Core typography and background */
body { 
    font-family: 'Plus Jakarta Sans', sans-serif; 
    background-color: #FDFDFB; 
    color: #1A1C1E; 
}

/* * Focus Timer 
 * tabular-nums ensures the numbers don't jump around left/right as the timer ticks down.
 */
.timer-font { 
    font-variant-numeric: tabular-nums; 
    letter-spacing: -0.05em; 
}

/* * Flash Message Animations 
 * A smooth drop-in effect for server-side notifications
 */
@keyframes fadeInDown {
    from {
        opacity: 0;
        transform: translate3d(0, -100%, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

.animate-fade-in-down {
    animation: fadeInDown 0.4s ease-out forwards;
}

/* Custom Drag Handle for SortableJS (Focus Queue) */
.drag-handle {
    cursor: grab;
}
.drag-handle:active {
    cursor: grabbing;
}