/* 폰트 부드럽게 */
html {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* 한글이 좁은 칸에서 글자 단위로 쪼개져 세로로 쌓이는 것 방지 (모바일 필수) */
body { word-break: keep-all; overflow-wrap: break-word; }
/* 버튼·탭 같은 작은 UI 글자는 줄바꿈 없이 한 줄 유지 */
button, .btn, kbd, nav a, th { white-space: nowrap; }

/* HTMX indicator */
.htmx-indicator { opacity: 0; transition: opacity 200ms; }
.htmx-request .htmx-indicator { opacity: 1; }

/* Number input - hide spinners (cleaner look) */
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
input[type=number] { -moz-appearance: textfield; }

/* Subtle scrollbar */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.15); border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: rgba(0,0,0,0.25); }

/* Focus ring - more visible */
*:focus-visible {
    outline: 2px solid #3b82f6;
    outline-offset: 1px;
}
