:root{
    --fondo:#020617;
    --panel:rgba(15,23,42,0.78);
    --texto:#f8fafc;
    --muted:rgba(248,250,252,0.72);
    --primario:#52e0d5;
    --secundario:#b58cff;
    --peligro:#ff8aa0;
}

*{
    box-sizing:border-box;
}

body{
    min-height:100vh;
    margin:0;
    overflow-x:hidden;
    background:
    radial-gradient(circle at top left,rgba(82,224,213,0.25),transparent 28%),
    radial-gradient(circle at top right,rgba(181,140,255,0.2),transparent 25%),
    var(--fondo);
    color:var(--texto);
    font-family:'Poppins',Arial,sans-serif;
}

button,
input,
textarea{
    font:inherit;
}

.barra{
    width:min(1120px,100%);
    margin:0 auto;
    padding:22px 24px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
}

.marca{
    color:var(--primario);
    font-size:1.2rem;
    font-weight:700;
}

.volver{
    padding:10px 14px;
    border:1px solid rgba(82,224,213,0.35);
    border-radius:12px;
    color:var(--texto);
    text-decoration:none;
}

.contenedor-herramienta{
    width:min(1120px,100%);
    margin:0 auto;
    padding:22px 24px 48px;
}

.encabezado-herramienta{
    max-width:760px;
    margin:12px auto 28px;
    text-align:center;
}

.encabezado-herramienta h1{
    margin:0 0 10px;
    font-size:clamp(2rem,5vw,3.3rem);
}

.encabezado-herramienta p{
    margin:0;
    color:var(--muted);
    line-height:1.65;
}

.rejilla-herramienta{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
}

.tarjeta-herramienta{
    padding:24px;
    border:1px solid rgba(255,255,255,0.13);
    border-radius:26px;
    background:var(--panel);
    box-shadow:0 0 30px rgba(0,0,0,0.25);
}

.tarjeta-herramienta h2{
    margin:0 0 12px;
    color:var(--primario);
    font-size:1.3rem;
}

.tarjeta-herramienta p{
    color:var(--muted);
    line-height:1.55;
}

.camara{
    position:relative;
    overflow:hidden;
    aspect-ratio:4/3;
    border:2px solid rgba(82,224,213,0.35);
    border-radius:20px;
    background:#000;
}

.camara video,
.camara canvas{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}

.guia-captura{
    position:absolute;
    right:12px;
    bottom:12px;
    z-index:1;
    padding:5px 9px;
    border:1px solid rgba(82,224,213,0.72);
    border-radius:999px;
    background:rgba(2,6,23,0.76);
    color:#f8fafc;
    font-size:0.75rem;
    font-weight:700;
    pointer-events:none;
}

.marco-lectura{
    position:absolute;
    inset:8.5% 6.5%;
    z-index:1;
    display:flex;
    align-items:flex-end;
    justify-content:center;
    padding:10px;
    border:3px solid rgba(82,224,213,0.92);
    border-radius:18px;
    box-shadow:0 0 0 100vmax rgba(2,6,23,0.18);
    pointer-events:none;
}

.marco-lectura span{
    padding:5px 10px;
    border:1px solid rgba(82,224,213,0.72);
    border-radius:999px;
    background:rgba(2,6,23,0.78);
    color:#f8fafc;
    font-size:0.75rem;
    font-weight:700;
}

.ayuda-captura{
    margin:10px 0 0;
    color:var(--muted);
    font-size:0.9rem;
}

.captura-objeto{
    margin-top:16px;
    padding:16px;
    border:1px solid rgba(82,224,213,0.35);
    border-radius:18px;
    background:rgba(255,255,255,0.05);
}

.captura-objeto h3{
    margin:0 0 10px;
    color:var(--primario);
    font-size:1rem;
}

.captura-objeto canvas{
    display:block;
    width:100%;
    max-height:280px;
    border-radius:12px;
    background:#000;
    object-fit:contain;
}

.captura-objeto p{
    margin:12px 0 0;
    color:var(--texto);
    line-height:1.55;
}

.camara canvas{
    position:absolute;
    inset:0;
}

.controles{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:16px;
}

.boton{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:12px 18px;
    border:0;
    border-radius:14px;
    cursor:pointer;
    background:linear-gradient(135deg,var(--primario),var(--secundario));
    color:#07111f;
    font-weight:700;
    text-decoration:none;
    transition:transform 0.2s,opacity 0.2s;
}

.boton:hover:not(:disabled){
    transform:translateY(-2px);
}

.boton:disabled{
    cursor:not-allowed;
    opacity:0.55;
}

.boton.secundario{
    border:1px solid rgba(255,255,255,0.2);
    background:rgba(255,255,255,0.1);
    color:var(--texto);
}

.boton.peligro{
    background:linear-gradient(135deg,var(--peligro),#ffb35c);
}

.estado{
    min-height:54px;
    margin-top:16px;
    padding:14px;
    border-radius:15px;
    background:rgba(82,224,213,0.1);
    color:var(--texto);
    line-height:1.45;
}

.resultado-grande{
    min-height:155px;
    max-height:min(42svh,360px);
    margin-top:12px;
    padding:20px;
    border:1px solid rgba(255,255,255,0.12);
    border-radius:18px;
    background:rgba(255,255,255,0.06);
    color:var(--texto);
    font-size:clamp(1.05rem,2.5vw,1.45rem);
    line-height:1.55;
    white-space:pre-wrap;
    overflow-x:hidden;
    overflow-y:auto;
    overflow-wrap:anywhere;
    overscroll-behavior:contain;
}

.campo-texto{
    width:100%;
    min-height:170px;
    padding:16px;
    border:2px solid rgba(82,224,213,0.35);
    border-radius:18px;
    outline:none;
    resize:vertical;
    background:rgba(255,255,255,0.08);
    color:var(--texto);
    line-height:1.5;
}

.campo-etiqueta{
    display:block;
    margin:12px 0 8px;
    color:var(--texto);
    font-weight:600;
}

.campo-una-linea{
    width:100%;
    min-height:50px;
    padding:12px 15px;
    border:2px solid rgba(82,224,213,0.35);
    border-radius:15px;
    outline:none;
    background:rgba(255,255,255,0.08);
    color:var(--texto);
}

.campo-una-linea:focus{
    border-color:var(--primario);
    box-shadow:0 0 20px rgba(82,224,213,0.2);
}

.campo-texto:focus{
    border-color:var(--primario);
    box-shadow:0 0 20px rgba(82,224,213,0.2);
}

.frases-rapidas{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:16px;
}

.frases-rapidas button{
    padding:10px 14px;
    border:1px solid rgba(82,224,213,0.35);
    border-radius:999px;
    cursor:pointer;
    background:rgba(82,224,213,0.1);
    color:var(--texto);
}

.pantalla-frase{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:280px;
    padding:26px;
    border:2px solid var(--primario);
    border-radius:22px;
    background:#fff;
    color:#020617;
    font-size:clamp(2rem,8vw,5.5rem);
    font-weight:700;
    line-height:1.2;
    text-align:center;
    word-break:break-word;
}

.pantalla-frase:fullscreen{
    width:100%;
    height:100%;
    max-width:none;
    max-height:none;
    border:0;
    border-radius:0;
    padding:clamp(28px,8vw,110px);
    background:#fff;
    color:#020617;
    font-size:clamp(2.5rem,10vw,9rem);
}

.pantalla-frase:-webkit-full-screen{
    width:100%;
    height:100%;
    max-width:none;
    max-height:none;
    border:0;
    border-radius:0;
    padding:clamp(28px,8vw,110px);
    background:#fff;
    color:#020617;
    font-size:clamp(2.5rem,10vw,9rem);
}

.lista-comandos{
    margin:14px 0 0;
    padding-left:20px;
    color:var(--muted);
    line-height:1.7;
}

.ajuste{
    display:grid;
    grid-template-columns:1fr auto;
    gap:14px;
    align-items:center;
    margin:14px 0;
    padding:14px 0;
    border-bottom:1px solid rgba(255,255,255,0.12);
}

.ajuste input[type="range"]{
    width:180px;
    accent-color:var(--primario);
}

.ajuste select{
    max-width:190px;
    padding:9px 10px;
    border:1px solid rgba(82,224,213,0.45);
    border-radius:10px;
    background:#0f172a;
    color:var(--texto);
}

.fondo-alerta{
    animation:destello 0.7s ease-in-out 3;
}

@keyframes destello{
    50%{
        background:#fff;
        color:#020617;
    }
}

@media(max-width:760px){
    .barra,
    .contenedor-herramienta{
        padding-left:16px;
        padding-right:16px;
    }

    .rejilla-herramienta{
        grid-template-columns:1fr;
    }

    .tarjeta-herramienta{
        padding:20px;
    }

    .camara{
        aspect-ratio:16/10;
        max-height:44svh;
    }

    .resultado-grande{
        max-height:38svh;
    }
}
