/* CSS Reset & Base Styles */
/* Modern CSS Reset */

*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    font-size: 16px;
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    min-height: 100vh;
    overflow-x: hidden;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
    line-height: 1.6;
    color: var(--color-text-primary);
    background-color: var(--color-background);
}

/* Remove default button styles */
button {
    border: none;
    background: none;
    cursor: pointer;
    font-family: inherit;
    color: inherit;
}

/* Remove default link styles */
a {
    text-decoration: none;
    color: inherit;
}

/* Remove list styles */
ul, ol {
    list-style: none;
}

/* Remove default image styles */
img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* Remove default input styles */
input, textarea, select {
    font-family: inherit;
    font-size: inherit;
    border: none;
    outline: none;
}

/* Remove default focus outline */
:focus {
    outline: none;
}

/* Remove default heading styles */
h1, h2, h3, h4, h5, h6 {
    font-weight: inherit;
    font-size: inherit;
    margin: 0;
}

/* Remove default paragraph styles */
p {
    margin: 0;
}

/* Remove default figure styles */
figure {
    margin: 0;
}

/* Remove default fieldset styles */
fieldset {
    border: none;
}

/* Remove default legend styles */
legend {
    margin: 0;
    padding: 0;
}

/* Remove default blockquote styles */
blockquote {
    margin: 0;
}

/* Remove default table styles */
table {
    border-collapse: collapse;
    border-spacing: 0;
}

/* Remove default code styles */
code, kbd, samp, pre {
    font-family: monospace;
}

/* Remove default mark styles */
mark {
    background: none;
    color: inherit;
}

/* Remove default hr styles */
hr {
    border: none;
}

/* Remove default sub and sup styles */
sub, sup {
    font-size: inherit;
    vertical-align: baseline;
}

/* Remove default abbr styles */
abbr {
    text-decoration: none;
}

/* Remove default dfn styles */
dfn {
    font-style: normal;
}

/* Remove default address styles */
address {
    font-style: normal;
}

/* Remove default b and strong styles */
b, strong {
    font-weight: normal;
}

/* Remove default i and em styles */
i, em {
    font-style: normal;
}

/* Remove default small styles */
small {
    font-size: inherit;
}

/* Remove default big styles */
big {
    font-size: inherit;
}

/* Hide scrollbar but keep functionality */
::-webkit-scrollbar {
    width: 10px;
}

::-webkit-scrollbar-track {
    background: var(--color-background);
}

::-webkit-scrollbar-thumb {
    background: var(--color-accent);
    border-radius: 5px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--color-accent-dark);
}

/* Selection styling */
::selection {
    background: var(--color-accent);
    color: var(--color-background);
}

::-moz-selection {
    background: var(--color-accent);
    color: var(--color-background);
}

/* Prevent text selection on specific elements */
.no-select {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

/* Enable text wrapping */
.wrap {
    white-space: normal;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

/* Prevent text wrapping */
.no-wrap {
    white-space: nowrap;
}

/* Truncate text */
.truncate {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Clear floats */
.clearfix::after {
    content: '';
    display: table;
    clear: both;
}

/* Center content */
.center {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Full width */
.full-width {
    width: 100%;
}

/* Full height */
.full-height {
    height: 100%;
}

/* Hidden visually but accessible to screen readers */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Remove button tap highlight on mobile */
button {
    -webkit-tap-highlight-color: transparent;
}

/* Remove link tap highlight on mobile */
a {
    -webkit-tap-highlight-color: transparent;
}

/* Smooth transitions */
transition {
    transition: all 0.3s ease;
}

/* Remove tap delay on mobile */
input, button, a, textarea {
    touch-action: manipulation;
}