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

:root {
    --bg: #0f0f1e;
    --panel: rgba(255,255,255,0.05);
    --border: rgba(255,255,255,0.1);
    --acento: #e94560;
    --acento-hover: #ff5773;
    --texto: #eee;
    --texto-suave: #999;
    --exito: #4caf50;
    --error: #f44336;
}

body {
    font-family: system-ui, -apple-system, sans-serif;
    background: radial-gradient(circle at 20% 20%, #1a1a2e, #0f0f1e 60%);
    color: var(--texto);
    min-height: 100vh;
    line-height: 1.5;
}

.contenedor {
    max-width: 1000px;
    margin: 0 auto;
    padding: 2rem 1.5rem;
}

h1, h2, h3 { line-height: 1.2; margin-bottom: 1rem; }

/* Formularios */
input, select, textarea {
    width: 100%;
    padding: 0.85rem 1rem;
    margin-bottom: 0.75rem;
    border-radius: 10px;
    border: 1px solid var(--border);
    background: rgba(0,0,0,0.35);
    color: var(--texto);
    font-size: 1rem;
    font-family: inherit;
    transition: border-color 0.2s;
}
input:focus, select:focus {
    outline: none;
    border-color: var(--acento);
}

button, .btn {
    display: inline-block;
    width: 100%;
    padding: 0.85rem 1.5rem;
    border-radius: 10px;
    border: none;
    background: var(--acento);
    color: #fff;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s, transform 0.1s;
    text-decoration: none;
    text-align: center;
}
button:hover, .btn:hover { background: var(--acento-hover); }
button:active { transform: scale(0.98); }
button:disabled { opacity: 0.5; cursor: not-allowed; }

.btn-secundario {
    background: transparent;
    border: 1px solid var(--border);
    color: var(--texto);
}
.btn-secundario:hover { background: rgba(255,255,255,0.05); }

/* Paneles */
.panel {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 1.75rem;
    backdrop-filter: blur(10px);
}

/* Alertas */
.alerta {
    padding: 0.85rem 1rem;
    border-radius: 10px;
    margin-bottom: 1rem;
    font-size: 0.95rem;
}
.alerta-error  { background: rgba(244,67,54,0.15); border: 1px solid rgba(244,67,54,0.4); color: #ff8a80; }
.alerta-exito  { background: rgba(76,175,80,0.15); border: 1px solid rgba(76,175,80,0.4); color: #a5d6a7; }

/* Enlaces */
a { color: var(--acento); text-decoration: none; }
a:hover { text-decoration: underline; }

.texto-suave { color: var(--texto-suave); font-size: 0.9rem; }
.texto-centro { text-align: center; }