/* Custom styles for My Free Gantt Chart */

/* Smooth scrollbar */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
::-webkit-scrollbar-track {
    background: transparent;
}
::-webkit-scrollbar-thumb {
    background: #D1D5DB;
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
    background: #9CA3AF;
}

/* SVG task bar hover effect */
svg g[data-task-id]:hover rect {
    filter: brightness(0.95);
}
svg g[data-task-id] {
    cursor: grab;
}
svg g[data-task-id]:active {
    cursor: grabbing;
}

/* Input focus styling */
input:focus {
    outline: none;
}

/* Transition utilities */
.fade-enter {
    opacity: 0;
    transform: scale(0.95);
}
.fade-enter-active {
    transition: opacity 0.2s ease, transform 0.2s ease;
}

/* Task bar resize hint areas - handled via JS cursor changes */

/* Toast notifications */
.toast-container {
    position: fixed;
    bottom: 1.5rem;
    right: 1.5rem;
    z-index: 100;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    pointer-events: none;
}
.toast {
    pointer-events: auto;
    padding: 0.75rem 1rem;
    border-radius: 0.75rem;
    font-size: 0.875rem;
    font-weight: 500;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    animation: toast-in 0.3s ease forwards;
    max-width: 360px;
}
.toast-success { background: #059669; color: white; }
.toast-error { background: #DC2626; color: white; }
.toast-info { background: #4F46E5; color: white; }
.toast-exit {
    animation: toast-out 0.3s ease forwards;
}
@keyframes toast-in {
    from { opacity: 0; transform: translateY(1rem) scale(0.95); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes toast-out {
    from { opacity: 1; transform: translateY(0) scale(1); }
    to { opacity: 0; transform: translateY(1rem) scale(0.95); }
}

/* Loading skeleton pulse */
@keyframes skeleton-pulse {
    0%, 100% { opacity: 0.4; }
    50% { opacity: 0.7; }
}
.skeleton {
    background: linear-gradient(90deg, #E5E7EB 25%, #F3F4F6 50%, #E5E7EB 75%);
    background-size: 200% 100%;
    animation: skeleton-shimmer 1.5s ease infinite;
    border-radius: 0.5rem;
}
@keyframes skeleton-shimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* SVG tooltip */
svg .task-tooltip {
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.15s ease;
}
svg g[data-task-id]:hover .task-tooltip {
    opacity: 1;
}

/* Responsive: hide overflow toolbar items on small screens */
@media (max-width: 1024px) {
    .toolbar-overflow { display: none; }
    .toolbar-menu-btn { display: flex !important; }
}
@media (min-width: 1025px) {
    .toolbar-menu-btn { display: none !important; }
}

/* Mobile task panel */
@media (max-width: 768px) {
    .task-panel { display: none; }
    .task-panel.panel-open { display: block; position: fixed; inset: 0; z-index: 40; }
}
