@font-face {
    font-family: "TH Sarabun New";
    src: url("../fonts/THSarabunNew.ttf") format("truetype");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "TH Sarabun New";
    src: url("../fonts/THSarabunNew-Bold.ttf") format("truetype");
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}

@font-face {
    font-family: "TH Sarabun New";
    src: url("../fonts/THSarabunNew-Italic.ttf") format("truetype");
    font-style: italic;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "TH Sarabun New";
    src: url("../fonts/THSarabunNew-BoldItalic.ttf") format("truetype");
    font-style: italic;
    font-weight: 700;
    font-display: swap;
}

:root {
    color-scheme: light;
    --institutional-green: #0d5f3f;
    --institutional-green-dark: #083f2b;
    --accent-yellow: #f2c94c;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: "TH Sarabun New", Tahoma, sans-serif;
    font-size: 1.25rem;
    line-height: 1.35;
    text-rendering: optimizeLegibility;
}

button,
input,
select,
textarea {
    font: inherit;
}

button,
a,
input,
select,
textarea,
[tabindex]:not([tabindex="-1"]) {
    outline-offset: 3px;
}

.kanban-scroll {
    scrollbar-color: #b7c9bf transparent;
    scrollbar-width: thin;
}

.kanban-scroll::-webkit-scrollbar {
    height: 9px;
}

.kanban-scroll::-webkit-scrollbar-track {
    background: transparent;
}

.kanban-scroll::-webkit-scrollbar-thumb {
    background: #b7c9bf;
    border: 2px solid #f5f8f6;
    border-radius: 999px;
}

.drop-zone.is-dragging {
    border-color: var(--institutional-green);
    background: #eef8f2;
    box-shadow: 0 0 0 4px rgb(13 95 63 / 10%);
}

.toast-enter {
    animation: toast-in 220ms ease-out both;
}

.toast-leave {
    animation: toast-out 180ms ease-in both;
}

@keyframes toast-in {
    from {
        opacity: 0;
        transform: translateY(12px) scale(0.97);
    }
}

@keyframes toast-out {
    to {
        opacity: 0;
        transform: translateY(8px) scale(0.98);
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

