@import url('https://fonts.googleapis.com/css2?family=Sarabun:wght@300;400;500;600;700&display=swap');

body {
    font-family: 'Sarabun', sans-serif;
    overscroll-behavior-y: none; /* 🚫 บล็อกการปัดหน้ารีเฟรชบนมือถือ 100% */
    background-color: #f8fafc;
}

/* 📱 แก้ปัญหาสัดส่วนจอมือถือ (Address Bar ถบทับ) */
.min-h-screen-dvh {
    min-height: 100vh;
    min-height: 100dvh;
}

/* ✍️ Smart Textarea Limit */
textarea#smartNote {
    max-height: 200px;
    overflow-y: auto;
    resize: none;
}

/* ⏳ Global Overlay Loader */
.loading-overlay {
    position: fixed;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(255, 255, 255, 0.85);
    z-index: 9999;
    display: flex;
    align-items: center; justify-content: center;
}
.spinner {
    border: 4px solid rgba(0, 0, 0, 0.1);
    border-left-color: #10b981;
    border-radius: 50%;
    width: 45px; height: 45px;
    animation: spin 1s linear infinite;
}
@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* 🦴 Skeleton Shimmer Effect สำหรับตารางประวัติ */
.shimmer {
    background: #f6f7f8;
    background-image: linear-gradient(to right, #f6f7f8 0%, #edeef1 20%, #f6f7f8 40%, #f6f7f8 100%);
    background-repeat: no-repeat;
    background-size: 800px 100%;
    animation: placeholderShimmer 1.5s linear infinite forwards;
}
@keyframes placeholderShimmer { 0% { background-position: -468px 0; } 100% { background-position: 468px 0; } }