/* ==========================================================================
   DOANTM Platform - High-Tech Design System & UI Engineering
   Integrated with Emil Kowalski & Tasteskill v2 Philosophy
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400;1,600&display=swap');

:root {
  --font-sans: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  
  /* Brand Tokens - Strict palette: Ground, Surface, Ink, Accent */
  --color-dark-bg: #0A0A0A;
  --color-dark-surface: #141414;
  --color-dark-surface-elevated: #1C1C1E;
  --color-dark-border: rgba(255, 255, 255, 0.08);
  --color-dark-border-hover: rgba(255, 255, 255, 0.16);

  --color-primary: #DC2626;
  --color-primary-hover: #B91C1C;
  --color-primary-active: #991B1B;

  --color-light-bg: #F8FAFC;
  --color-light-surface: #FFFFFF;
  --color-light-border: #E2E8F0;

  /* Emil Kowalski Easing Curves (No sluggish ease-in) */
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
  --ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);
  --ease-spring: cubic-bezier(0.34, 1.4, 0.64, 1);

  /* Emil Kowalski Motion Durations (<300ms for UI) */
  --dur-press: 140ms;
  --dur-fast: 160ms;
  --dur-ui: 220ms;
  --dur-modal: 240ms;
}

html {
  scroll-behavior: smooth;
  font-family: var(--font-sans);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body {
  background-color: var(--color-dark-bg);
  color: #F4F4F5;
  overflow-x: hidden;
}

/* ==========================================================================
   Emil Kowalski Tactile Feedback & Press Physics
   ========================================================================== */

/* Universal tactile responsiveness: buttons scale down on active press */
button, 
a[role="button"],
.btn-pressable,
.trigger-search-modal,
.search-result-item {
  transition: transform var(--dur-press) var(--ease-out),
              background-color var(--dur-fast) var(--ease-out),
              border-color var(--dur-fast) var(--ease-out),
              box-shadow var(--dur-fast) var(--ease-out),
              opacity var(--dur-fast) var(--ease-out);
  -webkit-tap-highlight-color: transparent;
}

button:active, 
a[role="button"]:active,
.btn-pressable:active,
.trigger-search-modal:active {
  transform: scale(0.97) !important;
}

/* Touch device protection for hovers */
@media (hover: hover) and (pointer: fine) {
  .hover-elevate {
    transition: transform var(--dur-ui) var(--ease-out), box-shadow var(--dur-ui) var(--ease-out);
  }
  .hover-elevate:hover {
    transform: translateY(-2px);
  }
}

/* ==========================================================================
   Modals & Popovers - Natural Entrances (from scale(0.96) not scale(0))
   ========================================================================== */

.modal-backdrop {
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--dur-modal) var(--ease-out), visibility var(--dur-modal) var(--ease-out);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.modal-backdrop.is-active,
.modal-backdrop:not(.hidden) {
  opacity: 1 !important;
  visibility: visible !important;
  display: flex !important;
}

/* Target modal content container inside backdrop */
.modal-backdrop > div,
.modal-backdrop .modal-card-animated {
  transform: scale(0.96);
  opacity: 0;
  transform-origin: center center;
  transition: transform var(--dur-modal) var(--ease-out), opacity var(--dur-ui) var(--ease-out);
}

.modal-backdrop.is-active > div,
.modal-backdrop:not(.hidden) > div,
.modal-backdrop.is-active .modal-card-animated,
.modal-backdrop:not(.hidden) .modal-card-animated {
  transform: scale(1) !important;
  opacity: 1 !important;
}

/* Custom Scrollbar - Sleek and subtle */
::-webkit-scrollbar {
  width: 7px;
  height: 7px;
}
::-webkit-scrollbar-track {
  background: #0A0A0A;
}
::-webkit-scrollbar-thumb {
  background: #27272A;
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
  background: #DC2626;
}

/* Marquee Infinite Animation */
@keyframes marquee {
  0% { transform: translateX(0%); }
  100% { transform: translateX(-50%); }
}

.animate-marquee {
  display: flex;
  width: max-content;
  animation: marquee 35s linear infinite;
}
.animate-marquee:hover {
  animation-play-state: paused;
}

/* Text Rotation / Typing Cursor */
.typing-cursor::after {
  content: '|';
  display: inline-block;
  color: #DC2626;
  font-weight: 700;
  animation: blink 1s step-end infinite;
}

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

/* Controlled Clean Hero Background (No rainbow slop) */
.hero-gradient-overlay {
  background: 
    radial-gradient(circle at 75% 35%, rgba(6, 182, 212, 0.08) 0%, transparent 50%),
    radial-gradient(circle at 20% 20%, rgba(220, 38, 38, 0.06) 0%, transparent 45%),
    #0A0A0A;
}

/* Web Mini Drones Ambient Flight Styles */
@keyframes spinPropeller {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.mini-propeller {
  animation: spinPropeller 0.1s linear infinite;
  transform-origin: center center;
}

@keyframes droneScanPulse {
  0% { opacity: 0.15; transform: scale(0.9); }
  50% { opacity: 0.45; transform: scale(1.1); }
  100% { opacity: 0.15; transform: scale(0.9); }
}

.mini-drone-scan {
  animation: droneScanPulse 2.4s var(--ease-in-out) infinite;
}

/* Crisp Clean Tone Divider */
.clean-tone-divider {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

/* Signature Canvas Styling */
.signature-canvas {
  touch-action: none;
  cursor: crosshair;
  background-color: #FAFAFA;
  border: 1.5px dashed #CBD5E1;
  border-radius: 0.5rem;
  transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}
.signature-canvas:hover, .signature-canvas:focus {
  border-color: #DC2626;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.12);
}

/* Scanner Animation */
@keyframes scanline {
  0% { top: 0%; opacity: 0.8; }
  50% { opacity: 1; }
  100% { top: 95%; opacity: 0.8; }
}

.scan-laser {
  position: absolute;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, #DC2626, #EF4444, transparent);
  box-shadow: 0 0 10px #DC2626;
  animation: scanline 2.2s var(--ease-in-out) infinite alternate;
}

/* 3D Canvas Container */
#drone-canvas-container {
  position: relative;
  width: 100%;
  height: 480px;
  max-height: 520px;
}
@media (min-width: 1024px) {
  #drone-canvas-container {
    height: 580px;
    max-height: 640px;
  }
}

/* Print Styling for A4 Government Document Forms */
@media print {
  body {
    background: #FFFFFF !important;
    color: #000000 !important;
  }
  .no-print, header, footer, #drone-canvas-container, .modal-backdrop, .toast-container, #ambient-mini-drones-layer {
    display: none !important;
  }
  .printable-document {
    box-shadow: none !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
    font-size: 13pt !important;
    line-height: 1.5 !important;
    color: #000 !important;
  }
}

/* Accessibility: prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  *, ::before, ::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .animate-marquee {
    animation: none !important;
  }
  .mini-propeller {
    animation: none !important;
  }
}
