/* Florist OpenCode - Custom Styles */

/* Tailwind CSS via CDN is loaded in layout. These are supplementary styles. */

* { font-family: 'Inter', sans-serif; }

::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: #f1f1f1; }
::-webkit-scrollbar-thumb { background: #16a34a; border-radius: 10px; }

.animate-fade-in {
    animation: fadeIn 0.25s ease-out;
}
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Mobile bottom navigation bar */
.mobile-bottom-nav {
    position: fixed;
    bottom: 0; left: 0; right: 0;
    background: #ffffff;
    border-top: 1px solid #e5e7eb;
    display: flex;
    align-items: center;
    justify-content: space-around;
    padding: 8px 0 calc(8px + env(safe-area-inset-bottom));
    z-index: 100;
    box-shadow: 0 -4px 20px rgba(0,0,0,0.08);
}
.mobile-bottom-nav a,
.mobile-bottom-nav button {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    color: #9ca3af;
    font-size: 10px;
    font-weight: 600;
    transition: color 0.2s;
    padding: 4px 10px;
    border-radius: 10px;
    background: transparent;
    border: none;
    cursor: pointer;
    text-decoration: none;
    min-width: 52px;
}
.mobile-bottom-nav a.active,
.mobile-bottom-nav button.active { color: #16a34a; }
.mobile-bottom-nav a i,
.mobile-bottom-nav button i { font-size: 20px; }

/* Page bottom padding for mobile nav */
@media (max-width: 767px) {
    body { padding-bottom: 72px; }
}

/* Card hover */
.product-card { transition: transform 0.2s, box-shadow 0.2s; }
.product-card:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(22,163,74,0.15); }

/* Slider snap */
.slider-container { scroll-snap-type: x mandatory; -ms-overflow-style: none; scrollbar-width: none; }
.slider-container::-webkit-scrollbar { display: none; }
.slider-item { scroll-snap-align: start; }

/* Badge pulse */
@keyframes pulse-badge { 0%,100%{transform:scale(1)} 50%{transform:scale(1.2)} }
.badge-pulse { animation: pulse-badge 0.4s ease; }

/* Toast */
#toast-notification {
    position: fixed;
    bottom: 90px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 9999;
}

/* Line clamp utilities */
.line-clamp-1 { overflow:hidden; display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; }
.line-clamp-2 { overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }

/* Prose overrides */
.prose { max-width: none; }
.prose p { margin-bottom: 1em; line-height: 1.7; }
.prose h2 { font-size: 1.25rem; font-weight: 800; margin-top: 1.5em; margin-bottom: 0.5em; }
.prose h3 { font-size: 1.1rem; font-weight: 700; margin-top: 1.25em; margin-bottom: 0.5em; }
.prose img { border-radius: 12px; margin: 1em 0; }
.prose ul, .prose ol { padding-left: 1.5em; margin: 1em 0; }
.prose li { margin-bottom: 0.25em; }
.prose blockquote { border-left: 4px solid #16a34a; padding-left: 1em; color: #374151; font-style: italic; margin: 1em 0; }
