/* 📌 ไฟล์: style.css */
html, body {
    overscroll-behavior-y: none !important; /* กฎข้อ 19: กันดึงรีเฟรช */
    -webkit-tap-highlight-color: transparent;
}
/* แก้ปัญหาสัดส่วนบนมือถือ */
.pb-safe { padding-bottom: env(safe-area-inset-bottom); }

/* Global Loading Overlay */
.loading-overlay {
    position: fixed; top: 0; left: 0; width: 100vw; height: 100vh;
    background: rgba(255, 255, 255, 0.85); backdrop-filter: blur(4px);
    z-index: 9999; display: flex; justify-content: center; align-items: center;
}
.loading-overlay.hidden { display: none !important; }

textarea.auto-expand { min-height: 44px; max-height: 200px; overflow-y: auto; }
input[type="date"]::-webkit-calendar-picker-indicator { opacity: 0; cursor: pointer; position: absolute; width: 100%; height: 100%; top: 0; left: 0; }

/* Timeline Node */
.step-node {
    width: 28px; height: 28px; border-radius: 50%; display: flex; justify-content: center; align-items: center;
    background: white; border: 2px solid #cbd5e1; color: #94a3b8; font-size: 10px; z-index: 10; transition: 0.5s;
}
.step-node.active { background: #14b8a6; border-color: #14b8a6; color: white; box-shadow: 0 0 10px rgba(20,184,166,0.3); }
.step-node.error { background: #ef4444; border-color: #ef4444; color: white; }

/* Admin Row Select */
tr.row-selected { background: #f0fdfa !important; border-left: 3px solid #0f766e; }

/* Print Media */
@media print {
    body { background: white !important; font-size: 12pt; }
    @page { size: A4; margin: 15mm; }
    header, nav, #view-request, #view-admin, .print\:hidden { display: none !important; }
    #view-tracking, #tracking-result-container { display: block !important; border: 2px solid #ccc !important; }
}