/* Pinggo - 탁구 대회 관리 플랫폼 스타일 */

/* 기본 리셋 및 유틸리티 */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* 스크롤바 스타일링 */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: rgba(156, 163, 175, 0.5);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: rgba(156, 163, 175, 0.7);
}

/* 다크모드 스크롤바 */
.dark ::-webkit-scrollbar-thumb {
    background: rgba(75, 85, 99, 0.5);
}

.dark ::-webkit-scrollbar-thumb:hover {
    background: rgba(75, 85, 99, 0.7);
}

/* 애니메이션 */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.fade-in {
    animation: fadeIn 0.3s ease-out;
}

/* 카드 호버 효과 */
.card-hover {
    transition: all 0.3s ease;
}

.card-hover:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
}

/* 버튼 효과 */
.btn-primary {
    transition: all 0.2s ease;
}

.btn-primary:hover {
    transform: scale(1.02);
}

.btn-primary:active {
    transform: scale(0.98);
}

/* 포커스 스타일 */
input:focus,
textarea:focus,
select:focus {
    outline: 2px solid rgba(234, 88, 12, 0.5);
    outline-offset: 2px;
}

/* 로딩 스피너 */
@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

.spinner {
    animation: spin 1s linear infinite;
}

/* 그리드 레이아웃 유틸리티 */
.grid-auto-fit {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

/* 반응형 타이포그래피 */
@media (max-width: 640px) {
    html {
        font-size: 14px;
    }
}

@media (min-width: 641px) and (max-width: 1024px) {
    html {
        font-size: 15px;
    }
}

/* 터치 디바이스 최적화 */
@media (hover: none) and (pointer: coarse) {

    button,
    a,
    input[type="button"],
    input[type="submit"] {
        min-height: 44px;
        min-width: 44px;
    }
}

/* 프린트 스타일 */
@media print {
    .no-print {
        display: none !important;
    }
}