:root {
    --background: 0 0% 100%;
    --foreground: 240 10% 3.9%;
    --card: 0 0% 100%;
    --card-foreground: 240 10% 3.9%;
    --popover: 0 0% 100%;
    --popover-foreground: 240 10% 3.9%;
    --primary: 240 5.9% 10%;
    --primary-foreground: 0 0% 98%;
    --secondary: 240 4.8% 95.9%;
    --secondary-foreground: 240 5.9% 10%;
    --muted: 240 4.8% 95.9%;
    --muted-foreground: 240 3.8% 46.1%;
    --accent: 240 4.8% 95.9%;
    --accent-foreground: 240 5.9% 10%;
    --destructive: 0 84.2% 60.2%;
    --destructive-foreground: 0 0% 98%;
    --border: 240 5.9% 90%;
    --input: 240 5.9% 90%;
    --ring: 240 10% 3.9%;
    --radius: 0.5rem;
}

.dark {
    --background: 240 10% 3.9%;
    --foreground: 0 0% 98%;
    --card: 240 5.9% 10%;
    --card-foreground: 0 0% 98%;
    --popover: 240 5.9% 11%;
    --popover-foreground: 0 0% 98%;
    --primary: 217 91% 60%;
    --primary-foreground: 0 0% 100%;
    --secondary: 240 4% 15%;
    --secondary-foreground: 0 0% 98%;
    --muted: 240 4% 14%;
    --muted-foreground: 240 5% 65%;
    --accent: 240 4.5% 15%;
    --accent-foreground: 0 0% 98%;
    --destructive: 0 62.8% 45%;
    --destructive-foreground: 0 0% 98%;
    --border: 240 3.7% 17%;
    --input: 240 3.7% 17%;
    --ring: 240 4.9% 83.9%;
}

body {
    background-color: hsl(var(--background));
    color: hsl(var(--foreground));
}

/* Styly pro Drag & Drop kalendář */
.draggable-card {
    cursor: grab;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.draggable-card:active {
    cursor: grabbing;
}
.draggable-card.dragging {
    opacity: 0.5;
    transform: scale(1.02);
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
    border-color: hsl(var(--primary));
}
.drop-zone {
    min-height: 150px;
    transition: background-color 0.2s ease;
}
.drop-zone.drag-over {
    background-color: hsl(var(--muted) / 0.5);
    border-radius: 0.5rem;
}

/* Skrývání scrollbaru pro čistý design kalendáře */
.hide-scrollbar::-webkit-scrollbar {
    display: none;
}
.hide-scrollbar {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

/* Styly pro Flatpickr datepicker */
.flatpickr-calendar {
    background: hsl(var(--card)) !important;
    border: 1px solid hsl(var(--border)) !important;
    border-radius: var(--radius) !important;
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1) !important;
    font-family: inherit !important;
}
.flatpickr-calendar .flatpickr-day.selected,
.flatpickr-calendar .flatpickr-day.startRange,
.flatpickr-calendar .flatpickr-day.endRange {
    background: hsl(var(--primary)) !important;
    border-color: hsl(var(--primary)) !important;
    color: hsl(var(--primary-foreground)) !important;
}
.flatpickr-calendar .flatpickr-day:hover {
    background: hsl(var(--accent)) !important;
    color: hsl(var(--accent-foreground)) !important;
}
.flatpickr-calendar .flatpickr-day.today {
    border-color: hsl(var(--primary)) !important;
}
.flatpickr-time {
    border-top: 1px solid hsl(var(--border)) !important;
}
.dark .flatpickr-calendar {
    box-shadow: 0 10px 25px -5px rgb(0 0 0 / 0.5), 0 8px 10px -6px rgb(0 0 0 / 0.5) !important;
}
.dark .flatpickr-current-month input.cur-year,
.dark .flatpickr-current-month .cur-month {
    color: hsl(var(--foreground)) !important;
}

/* Tlačítka pro přepínání režimu v sidebaru */
.theme-toggle-btn.active {
    background-color: hsl(var(--primary)) !important;
    color: #ffffff !important;
}
.theme-toggle-btn.active:hover {
    color: #e2e8f0 !important;
}

/* Vizuální oddělení karet v tmavém režimu */
.dark .rounded-xl.border,
.dark .rounded-lg.border,
.dark .order-card {
    border-color: hsl(var(--border) / 0.85);
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.35), 0 2px 4px -2px rgb(0 0 0 / 0.35);
}

/* --- Hlasové ovládání (Web Speech API) --- */
#voice-control-btn {
    box-shadow: 0 10px 25px -5px rgb(0 0 0 / 0.15), 0 8px 10px -6px rgb(0 0 0 / 0.1);
}

#voice-control-btn:hover {
    box-shadow: 0 14px 28px -4px rgb(0 0 0 / 0.2), 0 10px 12px -6px rgb(0 0 0 / 0.12);
}

/* Pulzující prstenec při aktivním poslechu */
.mic-pulse-ring {
    animation: voice-pulse-ring 1.8s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;
}

@keyframes voice-pulse-ring {
    0% {
        transform: scale(0.95);
        opacity: 0.8;
    }
    50% {
        transform: scale(1.35);
        opacity: 0.3;
    }
    100% {
        transform: scale(1.6);
        opacity: 0;
    }
}

#voice-transcript-bubble {
    box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.15), 0 8px 10px -6px rgb(0 0 0 / 0.1);
}
