:root {
    --fondo:       #0a0a0f;
    --superficie:  #13111a;
    --superficie2: #1c1826;
    --borde:       #2a2438;
    --violeta:     #b44dff;
    --violeta2:    #7b2fff;
    --cyan:        #00d4ff;
    --rosa:        #ff2d78;
    --gris:        #6b5f7a;
    --texto:       #f0e6ff;
    --texto2:      #9d8fb0;
}

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

body {
    background: var(--fondo);
    color: var(--texto);
    font-family: 'Courier New', monospace;
    min-height: 100vh;
    overflow: hidden;
}

#app {
    display: flex;
    height: 100vh;
}


#barra-lateral {
    width: 220px;
    min-width: 220px;
    background: var(--superficie);
    border-right: 1px solid var(--borde);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

#encabezado-lateral {
    padding: 24px 20px 16px;
    border-bottom: 1px solid var(--borde);
}

#encabezado-lateral h1 {
    font-size: 1.3rem;
    letter-spacing: 0.08em;
    color: var(--texto);
}
#encabezado-lateral h1 span { color: var(--violeta); }
#encabezado-lateral p {
    font-size: 10px;
    color: var(--gris);
    margin-top: 4px;
}

#buscador-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--borde);
}

#entrada-busqueda {
    flex: 1;
    background: transparent;
    border: none;
    outline: none;
    color: var(--texto);
    font-family: 'Courier New', monospace;
    font-size: 12px;
}
#entrada-busqueda::placeholder { color: var(--gris); }

#nav-categorias {
    flex: 1;
    overflow-y: auto;
    padding: 8px 0;
}
#nav-categorias::-webkit-scrollbar { width: 3px; }
#nav-categorias::-webkit-scrollbar-thumb { background: var(--borde); }

.btn-categoria {
    width: 100%;
    background: transparent;
    border: none;
    padding: 10px 20px;
    color: var(--texto2);
    font-family: 'Courier New', monospace;
    font-size: 12px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: background 0.15s, color 0.15s;
    text-align: left;
}
.btn-categoria:hover { background: var(--superficie2); color: var(--texto); }
.btn-categoria.active {
    background: var(--superficie2);
    color: var(--violeta);
    border-left: 2px solid var(--violeta);
}

#pie-lateral {
    padding: 12px 20px;
    border-top: 1px solid var(--borde);
}
#contador-cmds { font-size: 10px; color: var(--gris); }


#contenido {
    flex: 1;
    overflow-y: auto;
    padding: 24px;
}
#contenido::-webkit-scrollbar { width: 4px; }
#contenido::-webkit-scrollbar-thumb { background: var(--borde); border-radius: 2px; }

#cuadricula-cmds {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 12px;
}


.tarjeta-cmd {
    background: var(--superficie);
    border: 1px solid var(--borde);
    border-radius: 8px;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    transition: border-color 0.2s;
    animation: aparece 0.2s ease;
    cursor: default;
}
.tarjeta-cmd:hover { border-color: var(--violeta); }

@keyframes aparece {
    from { opacity: 0; transform: translateY(4px); }
    to   { opacity: 1; }
}

.cmd-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.cmd-codigo {
    font-size: 13px;
    color: var(--cyan);
    letter-spacing: 0.04em;
    flex: 1;
    word-break: break-all;
}

.btn-copiar {
    background: transparent;
    border: 1px solid var(--borde);
    border-radius: 4px;
    padding: 3px 8px;
    color: var(--gris);
    font-family: 'Courier New', monospace;
    font-size: 10px;
    cursor: pointer;
    transition: border-color 0.15s, color 0.15s;
    flex-shrink: 0;
}
.btn-copiar:hover { border-color: var(--violeta); color: var(--violeta); }
.btn-copiar.copiado { border-color: var(--cyan); color: var(--cyan); }

.cmd-descripcion {
    font-size: 12px;
    color: var(--texto2);
    line-height: 1.5;
}

.cmd-etiqueta {
    font-size: 10px;
    color: var(--violeta);
    opacity: 0.6;
    letter-spacing: 0.05em;
}


.tarjeta-cmd.peligroso { border-color: #2a1020; }
.tarjeta-cmd.peligroso:hover { border-color: var(--rosa); }
.tarjeta-cmd.peligroso .cmd-codigo { color: var(--rosa); }
.tarjeta-cmd.peligroso .cmd-etiqueta { color: var(--rosa); }


#sin-resultados {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    height: 300px;
    color: var(--gris);
    font-size: 13px;
}

.oculto { display: none !important; }

@media (max-width: 640px) {
body { overflow: auto; }
#app { flex-direction: column; height: auto; }
#barra-lateral {
    width: 100%;
    min-width: unset;
    border-right: none;
    border-bottom: 1px solid var(--borde);
}
#nav-categorias {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    padding: 4px 0;
}
.btn-categoria {
    white-space: nowrap;
    border-left: none !important;
    border-bottom: 2px solid transparent;
}
.btn-categoria.active { border-bottom-color: var(--violeta) !important; }
#contenido { padding: 16px; }
#cuadricula-cmds { grid-template-columns: 1fr; }
}