/* =========================================================================
   NALGORITMO – CSS ÚNICO, usado por todas as páginas
   1. Comum: menu lateral (dashboard) e barra do topo
   2. Gerador de álgebra booleana    -> html[data-page=boolean]
   3. Tradutor sequencial ordinal    -> html[data-page=translate]
   4. Página inicial                 -> html[data-page=home]
   As seções 2 a 4 só valem na própria página (o escopo usa :where, que não
   muda a especificidade das regras).
   ========================================================================= */

/* ---------- 1. MENU LATERAL (dashboard) ---------- */
:root{--sb-w:264px}
.sb{position:fixed;top:0;bottom:0;left:0;width:var(--sb-w);max-width:86vw;z-index:1030;display:flex;flex-direction:column;
  background:#13151a;border-right:1px solid #2a2d35;color:#c9cbd2;overflow-y:auto;
  visibility:hidden;transform:translateX(-100%);transition:transform .22s ease,visibility 0s linear .22s}
.sb-head{display:flex;align-items:center;gap:.65rem;padding:.8rem .9rem;border-bottom:1px solid #2a2d35}
.sb-logo{width:36px;height:36px;flex:0 0 auto;border-radius:8px;background:url("data:image/png;base64,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") center/contain no-repeat}
.sb-title{flex:1 1 auto;min-width:0;font-weight:700;font-size:1.1rem;line-height:1.1;color:#fff}
.sb-title small{display:block;margin-top:.2rem;font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#8b8f99}
.sb-close,.sb-toggle{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border:1px solid #343a40;border-radius:8px;
  background:transparent;color:#e8e9ee;line-height:1;cursor:pointer;font-family:inherit}
.sb-close{width:2rem;height:2rem;font-size:1.1rem}
.sb-toggle{width:2.4rem;height:2.4rem;font-size:1.25rem}
.sb-close:hover,.sb-toggle:hover{background:#24262c;color:#fff}
.sb-close:focus-visible,.sb-toggle:focus-visible,.sb-link:focus-visible{outline:2px solid #0dcaf0;outline-offset:2px}
.sb-nav{display:flex;flex-direction:column;gap:2px;padding:.6rem .6rem 1rem}
.sb-label{padding:.95rem .65rem .35rem;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#7c808b}
.sb-link{display:flex;align-items:center;gap:.7rem;padding:.55rem .65rem;border-left:3px solid transparent;border-radius:8px;
  color:#c9cbd2;text-decoration:none}
.sb-link:hover{background:#1e2027;color:#fff}
.sb-link[aria-current=page]{background:#222530;border-left-color:#0dcaf0;color:#fff;font-weight:600}
.sb-ico{width:1.5rem;text-align:center;font-size:1.1rem}
.sb-foot{margin-top:auto;padding:.8rem .9rem;border-top:1px solid #2a2d35;font-size:.78rem;color:#7c808b}
.sb-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1029;background:rgba(0,0,0,.55)}
html.sb-open .sb{visibility:visible;transform:none;transition-delay:0s}
html.sb-open .sb-backdrop{display:block}
@media (min-width:992px){
  body{transition:padding-left .22s ease}
  html:not(.sb-collapsed) body{padding-left:var(--sb-w)}
  html:not(.sb-collapsed) .sb{visibility:visible;transform:none;transition-delay:0s}
  html .sb-backdrop,html.sb-open .sb-backdrop{display:none}
}
@media (prefers-reduced-motion:reduce){.sb,body{transition:none}}
@media print{.sb,.sb-backdrop,.sb-toggle{display:none!important}body{padding-left:0!important}}

/* ---------- barra do topo (tradutor e página inicial) ---------- */

        .topo {
            background: #000;
            border-bottom: 1px solid #2a2a2a;
        }

        .topo .container {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 1rem;
            padding-top: .55rem;
            padding-bottom: .55rem;
        }

        .marca {
            display: flex;
            align-items: center;
            gap: .7rem;
            min-width: 0;
        }

        .marca-logo {
            display: block;
            width: 44px;
            height: 44px;
            flex: 0 0 auto;
        }

        .marca-nome {
            font-size: 1.3rem;
            font-weight: 700;
            letter-spacing: -.01em;
            line-height: 1;
        }

        .idiomas {
            display: flex;
            gap: 2px;
            padding: 3px;
            border: 1px solid #343a40;
            border-radius: 999px;
        }

        .btn-idioma {
            min-width: 2.6rem;
            height: 2rem;
            padding: 0 .7rem;
            border: 0;
            border-radius: 999px;
            background: transparent;
            color: #adb5bd;
            font: inherit;
            font-size: .85rem;
            font-weight: 700;
            cursor: pointer;
        }

        .btn-idioma:hover {
            color: #fff;
        }

        .btn-idioma.ativo {
            background: #fff;
            color: #000;
            cursor: default;
        }

        .btn-idioma:focus-visible {
            outline: 2px solid #0dcaf0;
            outline-offset: 2px;
        }

        @media (max-width: 380px) {

            .marca-logo { width: 38px; height: 38px; }

            .marca-nome { font-size: 1.1rem; }

            .btn-idioma { min-width: 2.2rem; padding: 0 .5rem; }

        }
.topo .sb-toggle{margin-right:.15rem}

/* ---------- 2. GERADOR DE ÁLGEBRA BOOLEANA ---------- */
:where(html[data-page=boolean]) body{background:#101114;color:#eee}
:where(html[data-page=boolean]) .navbar{background:#191a1f;border-bottom:1px solid #34363d}
:where(html[data-page=boolean]) .card{background:#191a1f;border:1px solid #34363d}
:where(html[data-page=boolean]) .form-select,
:where(html[data-page=boolean]) .form-control{background:#24262c;color:#fff;border-color:#464951}
:where(html[data-page=boolean]) .form-select:focus,
:where(html[data-page=boolean]) .form-control:focus{background:#24262c;color:#fff}
:where(html[data-page=boolean]) .circuit-wrap{background:#14161b;border-radius:10px;overflow:auto;padding:20px;border:1px solid #34363d}
:where(html[data-page=boolean]) #circuitSvg{display:block;min-width:1050px;width:100%;height:470px}
:where(html[data-page=boolean]) .formula{font-family:monospace;font-size:1.15rem;color:#7dd3fc;word-break:break-word}
:where(html[data-page=boolean]) .signal-box{background:#18191d;border:1px solid #34363d;border-radius:10px;padding:14px}
:where(html[data-page=boolean]) .signal-row{display:grid;grid-template-columns:repeat(10,1fr);gap:3px}
:where(html[data-page=boolean]) .signal-cell{height:45px;display:flex;align-items:center;justify-content:center;border:1px solid #45474d;font-weight:700}
:where(html[data-page=boolean]) .bit1{background:#122412; border-top: 2px solid #fff;color:#fff}:where(html[data-page=boolean]) .bit0{background:#241212; border-bottom: 2px solid #fff;color:#fff}:where(html[data-page=boolean]) .unknown{background:#22242a;color:#777}
:where(html[data-page=boolean]) .intervals{display:grid;grid-template-columns:repeat(10,1fr);gap:3px}
:where(html[data-page=boolean]) .interval{text-align:center;color:#999;font-size:.75rem}
:where(html[data-page=boolean]) .gate-chip{display:inline-block;background:#181818;border:1px solid #fff;padding:5px 9px;border-radius:20px;margin:2px}
/* Resolver uma expressão digitada */
:where(html[data-page=boolean]) .expr-input,
:where(html[data-page=boolean]) .expr-err,
:where(html[data-page=boolean]) .k,
:where(html[data-page=boolean]) .expr-keys .btn{font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace}
:where(html[data-page=boolean]) .expr-input{font-size:1.1rem}
:where(html[data-page=boolean]) .expr-input::placeholder{color:#8b8f99;opacity:1}
:where(html[data-page=boolean]) .expr-keys{display:flex;flex-wrap:wrap;gap:6px}
:where(html[data-page=boolean]) .expr-keys .btn{min-width:2.5rem}
:where(html[data-page=boolean]) .expr-err{color:inherit;white-space:pre}
:where(html[data-page=boolean]) .k{color:#7dd3fc}
/* Circuito lógico: texto em formato de linguagem C */
:where(html[data-page=boolean]) .c-comment,
:where(html[data-page=boolean]) .c-chip{font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:.9rem;line-height:1.5;white-space:pre;text-align:left;margin:0}
:where(html[data-page=boolean]) .c-comment{display:block;color:#6a9955;background:#14161b;border:1px solid #34363d;border-radius:8px;padding:10px 14px;margin-bottom:.75rem;overflow-x:auto}
:where(html[data-page=boolean]) .c-list{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start}
:where(html[data-page=boolean]) .c-chip{background:#181818;border:1px solid #fff;border-radius:8px;padding:8px 12px;max-width:100%;overflow-x:auto}

@media (min-width: 1400px) {
    :where(html[data-page=boolean]) .container,
:where(html[data-page=boolean]) .container-lg,
:where(html[data-page=boolean]) .container-md,
:where(html[data-page=boolean]) .container-sm,
:where(html[data-page=boolean]) .container-xl,
:where(html[data-page=boolean]) .container-xxl{
        max-width: 1800px;
    }
}

:where(html[data-page=boolean]) .cwhite{
  color: #fff !important;
}
:where(html[data-page=boolean]) h4{
  color: #fff;
}

:where(html[data-page=boolean]) .form-select:disabled{
  background-color: #24262c;
}
:where(html[data-page=boolean]) .numcell{background:#1b2230;color:#cbd5e1}
:where(html[data-page=boolean]) .now{outline:2px solid #facc15;outline-offset:-2px}
:where(html[data-page=boolean]) .interval.now{color:#facc15;font-weight:700}
:where(html[data-page=boolean]) tr.now>*{box-shadow:inset 0 0 0 9999px #4a3f00!important;color:#fff!important}
:where(html[data-page=boolean]) .signal-cell small{font-weight:400;margin-left:4px;opacity:.8}
html:where([data-page=boolean]){scroll-padding-top:84px}
:where(html[data-page=boolean]) .navbar-brand{font-size:1.3rem;letter-spacing:-.01em}
:where(html[data-page=boolean]) .brand-logo{display:block;border-radius:10px}
:where(html[data-page=boolean]) .lang{display:inline-flex;border:1px solid #464951;border-radius:8px;overflow:hidden}
:where(html[data-page=boolean]) .lang button{background:none;border:0;color:#c9cbd2;font-size:.85rem;font-weight:700;letter-spacing:.04em;padding:.35rem .7rem}
:where(html[data-page=boolean]) .lang button+button{border-left:1px solid #464951}
:where(html[data-page=boolean]) .lang button:hover{background:#24262c;color:#fff}
:where(html[data-page=boolean]) .lang button[aria-pressed=true]{background:#fff;color:#000}
:where(html[data-page=boolean]) .lang button:focus-visible{outline:2px solid #0ff;outline-offset:-2px}
:where(html[data-page=boolean]) .navbar-brand:focus-visible,
:where(html[data-page=boolean]) .nav-link:focus-visible{outline:2px solid #0ff;outline-offset:2px;border-radius:6px}

:where(html[data-page=boolean]) .lang a{display:inline-block;color:#c9cbd2;font-size:.85rem;font-weight:700;letter-spacing:.04em;padding:.35rem .7rem;text-decoration:none}
:where(html[data-page=boolean]) .lang a+a{border-left:1px solid #464951}
:where(html[data-page=boolean]) .lang a:hover{background:#24262c;color:#fff}
:where(html[data-page=boolean]) .lang a[aria-current=true]{background:#fff;color:#000}
:where(html[data-page=boolean]) .lang a:focus-visible{outline:2px solid #0ff;outline-offset:-2px}
:where(html[data-page=boolean]) .seo h2{color:#fff;font-size:1.35rem;margin:1.6rem 0 .6rem}
:where(html[data-page=boolean]) .seo h2:first-child{margin-top:0}
:where(html[data-page=boolean]) .seo h3{color:#fff;font-size:1.05rem;margin:1.1rem 0 .3rem}
:where(html[data-page=boolean]) .seo p,
:where(html[data-page=boolean]) .seo li{color:#cfd2d9;line-height:1.65}
:where(html[data-page=boolean]) .seo strong{color:#fff}
:where(html[data-page=boolean]) .seo-foot{color:#8b8f99;font-size:.85rem}
:where(html[data-page=boolean]) .seo-foot a{color:#9aa0ad;text-decoration:none;margin:0 .35rem}
:where(html[data-page=boolean]) .seo-foot a:hover{color:#fff;text-decoration:underline}

/* Expressão simplificada (logo abaixo da expressão booleana) */
:where(html[data-page=boolean]) .simp-box{margin-top:1rem;padding-top:.9rem;border-top:1px solid #34363d}

/* barra do topo com o menu lateral aberto: links numa linha só e mais juntos */
:where(html[data-page=boolean]) .navbar .nav-link{white-space:nowrap}
@media (min-width:1400px){html:where([data-page=boolean]):not(.sb-collapsed) .navbar .nav-link{padding-left:.5rem;padding-right:.5rem}}

/* ---------- 3. TRADUTOR SEQUENCIAL ORDINAL ---------- */

        :where(html[data-page=translate]) body{

            background: #121212;

            color: #fff;

            font-family:
                Verdana,
                sans-serif;

        }


        :where(html[data-page=translate]) #resultado{

            font-family:
                Verdana,
                sans-serif;

            font-size: 18px;

            line-height: 1.8;

            white-space: pre-wrap;

            /* caixa com limite de 800px: a tradução rola dentro dela e a página não cresce */

            max-height: 800px;

            overflow-y: auto;

            overflow-wrap: anywhere;

            scrollbar-color: #6c757d #212529;

        }


        :where(html[data-page=translate]) .original{

            color: #fff;

        }


        :where(html[data-page=translate]) .traducao{

            color: #FFFF00;

            font-weight: bold;

        }


        :where(html[data-page=translate]) textarea{

            font-family:
                Verdana,
                sans-serif;

        }


        /* barra de progresso do "Preparando tradutor" */

        :where(html[data-page=translate]) .barra-preparo{
            height: 6px;
            max-width: 320px;
            margin: 6px auto 0;
            background: #343a40;
            border-radius: 3px;
            overflow: hidden;
        }

        :where(html[data-page=translate]) .barra-preparo > div{
            height: 100%;
            background: #0dcaf0;
            transition: width .15s linear;
        }

        /* lista de idiomas (campo de seleção com busca) */

        /* campo de idioma e botão "Verificar tradutor" na mesma linha, com a mesma altura */

        :where(html[data-page=translate]) .linha-idioma{
            display: flex;
            gap: .5rem;
            align-items: stretch;
        }

        :where(html[data-page=translate]) .linha-idioma #comboIdioma{
            flex: 1 1 auto;
            min-width: 0;
        }

        :where(html[data-page=translate]) .linha-idioma #btnAPI{
            flex: 0 0 auto;
            white-space: nowrap;
        }

        :where(html[data-page=translate]) #comboIdioma{
            position: relative;
        }

        :where(html[data-page=translate]) #buscaIdioma{
            width: 100%;
        }

        :where(html[data-page=translate]) #listaIdiomas{
            display: none;
            position: absolute;
            top: 100%;
            left: 0;
            right: 0;
            z-index: 1050;
            max-height: 300px;
            overflow-y: auto;
            background: #212529;
            border: 1px solid #495057;
            border-radius: 0 0 .375rem .375rem;
        }

        :where(html[data-page=translate]) #listaIdiomas.aberta{
            display: block;
        }

        :where(html[data-page=translate]) #listaIdiomas .item-idioma{
            padding: .45rem .75rem;
            color: #fff;
            cursor: pointer;
            border-bottom: 1px solid #343a40;
        }

        :where(html[data-page=translate]) #listaIdiomas .item-idioma:hover,
:where(html[data-page=translate]) #listaIdiomas .item-idioma.ativo{
            background: #0d6efd;
        }

        :where(html[data-page=translate]) #listaIdiomas .item-idioma.escolhido{
            font-weight: bold;
        }

        :where(html[data-page=translate]) #listaIdiomas .item-vazio{
            padding: .45rem .75rem;
            color: #adb5bd;
        }

        
/* ---------- 4. PÁGINA INICIAL ---------- */

:where(html[data-page=home]) body{background:#101114;color:#eee}
:where(html[data-page=home]) .hero{padding:4rem 0 3.2rem;text-align:center;background:radial-gradient(ellipse at 50% 0,#1b2a38 0,#101114 72%);border-bottom:1px solid #1f2229}
:where(html[data-page=home]) .hero .eyebrow{margin-bottom:.8rem;font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#7dd3fc}
:where(html[data-page=home]) .hero h1{max-width:22ch;margin:0 auto 1rem;font-size:clamp(1.9rem,4.6vw,3.05rem);font-weight:800;letter-spacing:-.02em;line-height:1.12;color:#fff}
:where(html[data-page=home]) .hero .lead{max-width:62ch;margin:0 auto 1.7rem;color:#cfd2d9}
:where(html[data-page=home]) .hero-points{display:flex;flex-wrap:wrap;gap:.4rem 1.5rem;justify-content:center;margin:1.7rem 0 0;padding:0;list-style:none;font-size:.92rem;color:#9aa0ad}
:where(html[data-page=home]) .hero-points li::before{content:"✓";margin-right:.4rem;color:#69db7c}
:where(html[data-page=home]) .home-section{padding:3.2rem 0 0}
:where(html[data-page=home]) .home-section:last-of-type{padding-bottom:3.2rem}
:where(html[data-page=home]) .home-section h2{margin-bottom:.4rem;font-size:1.7rem;font-weight:700;color:#fff}
:where(html[data-page=home]) .section-sub{max-width:70ch;margin-bottom:1.6rem;color:#9aa0ad}
:where(html[data-page=home]) .tool-card{height:100%;background:#191a1f;border:1px solid #34363d;border-radius:14px}
:where(html[data-page=home]) .tool-card .card-body{display:flex;flex-direction:column;gap:.8rem;padding:1.5rem}
:where(html[data-page=home]) .tool-badge{align-self:flex-start;padding:.2rem .65rem;border:1px solid #3b4a58;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#7dd3fc}
:where(html[data-page=home]) .tool-card h3{margin:0;font-size:1.3rem;font-weight:700;color:#fff}
:where(html[data-page=home]) .tool-card p{margin:0;color:#cfd2d9;line-height:1.6}
:where(html[data-page=home]) .tool-list{margin:0;padding-left:1.15rem;color:#cfd2d9}
:where(html[data-page=home]) .tool-list li{margin-bottom:.4rem;line-height:1.55}
:where(html[data-page=home]) .tool-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:auto;padding-top:.6rem}
:where(html[data-page=home]) .tool-actions .small{color:#8b8f99}
:where(html[data-page=home]) .why-card{height:100%;padding:1.3rem;background:#14161b;border:1px solid #2a2d35;border-radius:12px}
:where(html[data-page=home]) .why-card h3{margin:0 0 .45rem;font-size:1.05rem;font-weight:700;color:#fff}
:where(html[data-page=home]) .why-card p{margin:0;line-height:1.6;color:#b9bcc5}
:where(html[data-page=home]) .home-links a{white-space:nowrap}
:where(html[data-page=home]) .home-foot{padding:1.8rem 0 2.2rem;border-top:1px solid #1f2229;font-size:.88rem;color:#8b8f99;text-align:center}
:where(html[data-page=home]) .home-foot a{margin:0 .35rem;color:#9aa0ad;text-decoration:none}
:where(html[data-page=home]) .home-foot a:hover{color:#fff;text-decoration:underline}
