/* ===================================================================
   BASE — base.css
   Reset, body, typography, global helpers.
   =================================================================== */

*, *::before, *::after { box-sizing: border-box; }

html, body {
    height:   100%;
    overflow: hidden; /* body never scrolls — prevents browser pull-to-refresh entirely */
    overscroll-behavior-y: none;
}

body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    background:  var(--body-bg);
    color:       var(--text-primary);
    font-size:   14px;
    line-height: 1.6;
    margin:      0;
}

a { color: var(--primary); }
a:hover { color: var(--primary-dark); }

/* Utility helpers */
.fw-500 { font-weight: 500 !important; }
.fw-600 { font-weight: 600 !important; }
.fw-700 { font-weight: 700 !important; }
.cursor-pointer { cursor: pointer; }
.text-muted { color: var(--text-secondary) !important; }
.text-truncate-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* Animations */
.fade-in { animation: fadeIn 0.3s ease; }

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes ptr-spin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

/* Scrollbar (WebKit) */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #9ca3af; }
