/**
 * AscensorDocs — Base: reset, tipografía, elementos globales
 */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
    font-size: 16px;
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
}

body {
    font-family: var(--font-ui);
    font-size: var(--text-base);
    font-weight: var(--weight-regular);
    line-height: var(--leading-normal);
    color: var(--color-text-primary);
    background-color: var(--color-bg);
    overflow-x: hidden;
    min-height: 100vh;
    transition: background-color var(--transition), color var(--transition);
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-ui);
    font-weight: var(--weight-bold);
    line-height: var(--leading-tight);
    color: var(--color-text-primary);
}

a {
    color: var(--color-accent);
    text-decoration: none;
    transition: color var(--transition-fast);
}
a:hover { color: var(--color-accent-hover); }

code, pre, .mono { font-family: var(--font-mono); font-size: var(--text-sm); }

/* Scrollbar */
::-webkit-scrollbar              { width: 4px; height: 4px; }
::-webkit-scrollbar-track        { background: transparent; }
::-webkit-scrollbar-thumb        { background: var(--color-scrollbar); border-radius: var(--radius-full); }
::-webkit-scrollbar-thumb:hover  { background: var(--color-border-strong); }

::selection { background: var(--color-accent); color: var(--color-text-inverse); }

:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }

ul, ol  { list-style: none; }
img,svg { display: block; max-width: 100%; }

button {
    font-family: var(--font-ui);
    cursor: pointer;
    border: none;
    background: none;
    color: inherit;
    line-height: 1;
}
button:disabled { opacity: 0.4; cursor: not-allowed; }

input, textarea, select {
    font-family: var(--font-ui);
    font-size: var(--text-base);
    color: var(--color-text-primary);
    background: var(--color-bg-input);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: var(--space-2) var(--space-3);
    outline: none;
    transition: border-color var(--transition-fast), background var(--transition);
    width: 100%;
}
input:focus, textarea:focus, select:focus { border-color: var(--color-accent); }
input::placeholder, textarea::placeholder { color: var(--color-text-muted); }

/* Utilidades */
.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; }
.hidden  { display: none !important; }

.text-accent     { color: var(--color-accent); }
.text-muted      { color: var(--color-text-muted); }
.text-secondary  { color: var(--color-text-secondary); }
.text-sm         { font-size: var(--text-sm); }
.text-mono       { font-family: var(--font-mono); }
