/* ==================================================
   LABCONTROL — PAINEL
   Direção visual: prancheta de engenharia / esquema técnico
   de laboratório. Tipografia técnica, traços finos, marcas
   de registro nos cantos (como em desenhos de projeto) e
   paleta de "tinta sobre papel milimetrado".
   ================================================== */



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

body {
    font-family: 'IBM Plex Sans', 'Segoe UI', Arial, sans-serif;
    background-color: #f4f7fb;
    background-image:
        linear-gradient(rgba(22, 40, 61, 0.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(22, 40, 61, 0.06) 1px, transparent 1px);
    background-size: 28px 28px;
    color: #16283d;
    display: flex;
    min-height: 100vh;
}


/* SIDEBAR */

.sidebar {
    width: 250px;
    min-height: 100vh;
    background-color: #16283d;
    color: #a9bdd1;
    padding: 22px 16px;
    border-right: 1px solid #0f1d2e;
    position: relative;
}

.logo {
    margin-bottom: 34px;
    border: 1px solid rgba(169, 189, 209, 0.35);
    border-radius: 3px;
    padding: 14px 14px 10px;
    position: relative;
}

.logo::before {
    content: "";
    position: absolute;
    top: 6px;
    left: 6px;
    width: 8px;
    height: 8px;
    border-top: 2px solid #1f8a5f;
    border-left: 2px solid #1f8a5f;
}

.logo h1 {
    font-family: 'Space Grotesk', 'Segoe UI', sans-serif;
    font-size: 21px;
    font-weight: 700;
    letter-spacing: 0.03em;
    color: #ffffff;
}

.logo span {
    display: block;
    margin-top: 5px;
    font-size: 11px;
    color: #a9bdd1;
    letter-spacing: 0.02em;
}


nav {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.menu {
    border: none;
    border-left: 2px solid transparent;
    background: transparent;
    color: #9fb2c3;
    padding: 12px 14px;
    border-radius: 0;
    text-align: left;
    cursor: pointer;
    font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    font-size: 12.5px;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.menu::before {
    content: "› ";
    color: #a9bdd1;
    opacity: 0.5;
}

.menu:hover {
    background: rgba(255, 255, 255, 0.05);
    color: #ffffff;
}

.menu.ativo {
    background: rgba(255, 255, 255, 0.06);
    color: #ffffff;
    border-left-color: #1f8a5f;
}

.menu.ativo::before {
    color: #1f8a5f;
    opacity: 1;
}


/* CONTEÚDO */

main {
    flex: 1;
    padding: 30px 34px;
}

header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 28px;
    padding-bottom: 18px;
    border-bottom: 1px solid #ccd7e2;
}

.header-eyebrow {
    font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #205d95;
    display: block;
    margin-bottom: 6px;
}

header h2 {
    font-family: 'Space Grotesk', 'Segoe UI', sans-serif;
    font-size: 27px;
    font-weight: 700;
    letter-spacing: -0.01em;
}

header p {
    color: #5c7086;
    margin-top: 5px;
    font-size: 13.5px;
}


.status-servidor {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    background: #ffffff;
    color: #1f8a5f;
    border: 1px solid #ccd7e2;
    padding: 8px 14px;
    border-radius: 3px;
    font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    font-size: 12px;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    white-space: nowrap;
}

.status-servidor .led {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #1f8a5f;
    box-shadow: 0 0 0 3px #e6f4ed;
    flex: none;
    animation: pulso 2.2s ease-in-out infinite;
}

@keyframes pulso {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.45; }
}

@media (prefers-reduced-motion: reduce) {
    .status-servidor .led {
        animation: none;
    }
}


/* ESTATÍSTICAS */

.estatisticas {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
    margin-bottom: 30px;
    background: #ccd7e2;
    border: 1px solid #ccd7e2;
    border-radius: 3px;
    overflow: hidden;
}

.card-estatistica {
    background: #ffffff;
    border-radius: 0;
    padding: 20px 20px 18px;
    position: relative;
}

.card-estatistica::after {
    content: "";
    position: absolute;
    left: 20px;
    right: 20px;
    bottom: 0;
    height: 2px;
    background: #9fb2c3;
}

.card-estatistica span {
    color: #5c7086;
    font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    font-size: 11px;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.card-estatistica strong {
    display: block;
    margin-top: 12px;
    font-family: 'Space Grotesk', 'Segoe UI', sans-serif;
    font-size: 32px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.verde {
    color: #1f8a5f;
}

.vermelho {
    color: #c1442c;
}


/* COMPUTADORES */

.area-computadores {
    background: #ffffff;
    padding: 24px;
    border-radius: 3px;
    border: 1px solid #ccd7e2;
    position: relative;
}

.area-computadores::before,
.area-computadores::after,
.pc-card::before,
.pc-card::after,
.acao-card::before,
.acao-card::after,
.tarefa-card::before,
.tarefa-card::after {
    content: "";
    position: absolute;
    width: 9px;
    height: 9px;
    pointer-events: none;
}

.area-computadores::before { top: -1px; left: -1px; border-top: 2px solid #205d95; border-left: 2px solid #205d95; }
.area-computadores::after { bottom: -1px; right: -1px; border-bottom: 2px solid #205d95; border-right: 2px solid #205d95; }

.titulo-secao {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 22px;
    padding-bottom: 16px;
    border-bottom: 1px dashed #ccd7e2;
}

.titulo-secao h3 {
    font-family: 'Space Grotesk', 'Segoe UI', sans-serif;
    font-size: 18px;
    font-weight: 700;
}

.titulo-secao p {
    color: #5c7086;
    margin-top: 4px;
    font-size: 13px;
}

.btn-atualizar {
    border: 1px solid #205d95;
    background: transparent;
    color: #205d95;
    padding: 9px 16px;
    border-radius: 3px;
    cursor: pointer;
    font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    font-size: 12px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    transition: background 0.15s, color 0.15s;
}

.btn-atualizar:hover {
    background: #205d95;
    color: white;
}


.computadores {
    display: grid;
    grid-template-columns: repeat(
        auto-fill,
        minmax(280px, 1fr)
    );
    gap: 18px;
}


/* CARD DO PC */

.pc-card {
    border: 1px solid #ccd7e2;
    border-radius: 3px;
    padding: 18px;
    position: relative;
    background: #ffffff;
    transition: border-color 0.15s;
}

.pc-card::before { top: -1px; left: -1px; border-top: 2px solid #9fb2c3; border-left: 2px solid #9fb2c3; }
.pc-card::after { bottom: -1px; right: -1px; border-bottom: 2px solid #9fb2c3; border-right: 2px solid #9fb2c3; }

.pc-topo {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.pc-nome {
    font-family: 'Space Grotesk', 'Segoe UI', sans-serif;
    font-size: 16px;
    font-weight: 700;
}

.online,
.offline {
    font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    font-size: 11px;
    letter-spacing: 0.06em;
    padding: 3px 8px;
    border-radius: 999px;
}

.online {
    color: #1f8a5f;
    background: #e6f4ed;
}

.offline {
    color: #c1442c;
    background: #fbe9e5;
}


.sistema {
    color: #5c7086;
    margin-top: 10px;
    font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    font-size: 12px;
}


.recurso {
    margin-top: 18px;
}

.recurso-topo {
    display: flex;
    justify-content: space-between;
    font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    font-size: 11.5px;
    letter-spacing: 0.03em;
    margin-bottom: 6px;
    color: #5c7086;
}

.recurso-topo strong {
    color: #16283d;
    font-variant-numeric: tabular-nums;
}

.barra {
    height: 7px;
    background: #f4f7fb;
    border: 1px solid #ccd7e2;
    border-radius: 1px;
    overflow: hidden;
}

.barra-uso {
    height: 100%;
    background: #205d95;
    background-image: repeating-linear-gradient(
        90deg,
        rgba(255, 255, 255, 0.35) 0,
        rgba(255, 255, 255, 0.35) 1px,
        transparent 1px,
        transparent 5px
    );
    border-radius: 0;
    transition: width 0.4s;
}


.pc-acoes {
    margin-top: 20px;
}

.btn-gerenciar {
    width: 100%;
    padding: 10px;
    border: 1px solid #9fb2c3;
    background: #f4f7fb;
    color: #16283d;
    border-radius: 3px;
    cursor: pointer;
    font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    font-size: 12px;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.btn-gerenciar:hover {
    background: #205d95;
    border-color: #205d95;
    color: white;
}


.carregando {
    color: #5c7086;
    font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    font-size: 13px;
}


/* CELULAR */

@media (max-width: 900px) {

    .sidebar {
        display: none;
    }

    .estatisticas {
        grid-template-columns: 1fr 1fr;
    }

}

@media (max-width: 600px) {

    main {
        padding: 15px;
    }

    .estatisticas {
        grid-template-columns: 1fr;
    }

}
/* PÁGINA DO COMPUTADOR */

.btn-voltar {
    border: none;
    background: transparent;
    color: #205d95;
    cursor: pointer;
    font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    font-size: 12.5px;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    margin-bottom: 12px;
}


.detalhe-estatisticas {
    grid-template-columns: repeat(3, 1fr);
}


.acoes-gerenciamento {
    display: grid;

    grid-template-columns:
        repeat(auto-fit, minmax(220px, 1fr));

    gap: 16px;
}


.acao-card {
    min-height: 120px;

    background: #f4f7fb;

    border: 1px solid #ccd7e2;

    border-radius: 3px;

    padding: 20px;

    text-align: left;

    cursor: pointer;

    display: flex;

    flex-direction: column;

    gap: 8px;

    position: relative;

    transition: 0.15s;
}

.acao-card::before { top: -1px; left: -1px; border-top: 2px solid #9fb2c3; border-left: 2px solid #9fb2c3; }
.acao-card::after { bottom: -1px; right: -1px; border-bottom: 2px solid #9fb2c3; border-right: 2px solid #9fb2c3; }


.acao-card:hover {
    transform: translateY(-2px);

    border-color: #205d95;

    background: #eef4fa;
}


.acao-card strong {
    font-family: 'Space Grotesk', 'Segoe UI', sans-serif;
    font-size: 16px;
    font-weight: 700;

    color: #16283d;
}


.acao-card span {
    color: #5c7086;

    font-size: 13px;
}


.acao-card.destaque {
    background: #205d95;

    border-color: #205d95;
}

.acao-card.destaque::before,
.acao-card.destaque::after {
    border-color: rgba(255, 255, 255, 0.6);
}


.acao-card.destaque strong,
.acao-card.destaque span {
    color: white;
}


.area-resultado {
    margin-top: 25px;
}


.informacoes-pc {
    margin-top: 25px;

    display: grid;

    grid-template-columns:
        repeat(2, 1fr);

    gap: 16px;
}


.informacoes-pc div {
    background: #f4f7fb;

    padding: 16px 18px;

    border-radius: 3px;
    border: 1px solid #ccd7e2;
}


.informacoes-pc span {
    display: block;

    color: #5c7086;

    font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    font-size: 11px;
    letter-spacing: 0.05em;
    text-transform: uppercase;

    margin-bottom: 7px;
}


.informacoes-pc strong {
    font-size: 15px;
    font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
}


@media (max-width: 700px) {

    .detalhe-estatisticas {
        grid-template-columns: 1fr;
    }


    .informacoes-pc {
        grid-template-columns: 1fr;
    }

}
/* ==================================================
   INSTALAÇÃO LIVRE DE PROGRAMAS
   ================================================== */

.oculto {
    display: none !important;
}

.instalacao-tabs {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 20px;
}

.tab-instalacao {
    border: 1px solid #ccd7e2;
    background: #f4f7fb;
    color: #5c7086;
    padding: 9px 15px;
    border-radius: 3px;
    cursor: pointer;
    font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    font-size: 12px;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    font-weight: 600;
}

.tab-instalacao.ativo {
    background: #205d95;
    color: white;
    border-color: #205d95;
}

.aba-instalacao {
    margin-top: 8px;
}

.campo-pesquisa-programa,
.upload-externo {
    display: flex;
    gap: 12px;
    align-items: center;
}

.campo-pesquisa-programa input[type="text"] {
    flex: 1;
    min-width: 220px;
    padding: 11px 14px;
    border: 1px solid #ccd7e2;
    border-radius: 3px;
    outline: none;
    font-family: 'IBM Plex Sans', 'Segoe UI', sans-serif;
    font-size: 14px;
    background: #ffffff;
}

.campo-pesquisa-programa input[type="text"]:focus {
    border-color: #205d95;
    box-shadow: 0 0 0 3px rgba(32, 93, 149, 0.14);
}

.btn-primario {
    border: 1px solid #205d95;
    background: #205d95;
    color: white;
    padding: 11px 18px;
    border-radius: 3px;
    cursor: pointer;
    font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    font-weight: 600;
    font-size: 12.5px;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    white-space: nowrap;
}

.btn-primario:hover {
    background: #164672;
    border-color: #164672;
}

.btn-primario:disabled {
    opacity: 0.55;
    cursor: wait;
}

.ajuda-instalacao {
    margin-top: 12px;
    color: #5c7086;
    font-size: 12.5px;
    line-height: 1.6;
}

.mensagem-instalacao {
    margin: 14px 0 18px;
    padding: 11px 14px;
    border-radius: 3px;
    font-size: 13.5px;
    border: 1px solid transparent;
}

.mensagem-instalacao.info {
    background: #eef4fa;
    color: #164672;
    border-color: #c6dbee;
}

.mensagem-instalacao.sucesso {
    background: #e6f4ed;
    color: #1f8a5f;
    border-color: #bfe3cf;
}

.mensagem-instalacao.erro {
    background: #fbe9e5;
    color: #c1442c;
    border-color: #f0c6bc;
}

.resultados-programas {
    margin-top: 18px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.programa-resultado {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
    padding: 14px 15px;
    border: 1px solid #ccd7e2;
    border-radius: 3px;
    background: #f4f7fb;
}

.programa-info {
    min-width: 0;
}

.programa-info strong {
    display: block;
    font-size: 14.5px;
    color: #16283d;
    margin-bottom: 5px;
}

.programa-info span {
    display: block;
    color: #5c7086;
    font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    font-size: 11.5px;
    overflow-wrap: anywhere;
}

.btn-instalar-resultado {
    border: 1px solid #1f8a5f;
    background: #1f8a5f;
    color: white;
    padding: 8px 14px;
    border-radius: 3px;
    cursor: pointer;
    font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    font-weight: 600;
}

.btn-instalar-resultado:hover {
    background: #176e4a;
    border-color: #176e4a;
}

.aviso-externo {
    background: #fbf1de;
    border: 1px solid #eeddb0;
    border-radius: 3px;
    padding: 14px 15px;
    margin-bottom: 16px;
}

.aviso-externo strong {
    color: #7a5312;
}

.aviso-externo p {
    color: #7a5312;
    font-size: 12.5px;
    line-height: 1.6;
    margin-top: 6px;
}

.upload-externo input[type="file"] {
    flex: 1;
    min-width: 220px;
    padding: 10px;
    border: 1px dashed #9fb2c3;
    border-radius: 3px;
    background: #f4f7fb;
    font-family: 'IBM Plex Sans', 'Segoe UI', sans-serif;
    font-size: 13px;
}

.lista-tarefas {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.tarefa-card {
    border: 1px solid #ccd7e2;
    border-radius: 3px;
    padding: 14px 15px;
    background: #f4f7fb;
    position: relative;
}

.tarefa-card::before { top: -1px; left: -1px; border-top: 2px solid #9fb2c3; border-left: 2px solid #9fb2c3; }
.tarefa-card::after { bottom: -1px; right: -1px; border-bottom: 2px solid #9fb2c3; border-right: 2px solid #9fb2c3; }

.tarefa-topo {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 8px;
}

.tarefa-card p {
    color: #5c7086;
    font-size: 12.5px;
    line-height: 1.6;
}

.tarefa-card small {
    display: block;
    margin-top: 8px;
    color: #93a3b5;
    font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    font-size: 11px;
}

.status-tarefa {
    padding: 4px 10px;
    border-radius: 999px;
    font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    white-space: nowrap;
    background: #ccd7e2;
    color: #16283d;
}

.status-enviado,
.status-baixando,
.status-instalando {
    background: #dbe9f6;
    color: #164672;
}

.status-aguardando_usuario {
    background: #fbf1de;
    color: #7a5312;
}

.status-concluido,
.status-ja_instalado {
    background: #e6f4ed;
    color: #1f8a5f;
}

.status-erro {
    background: #fbe9e5;
    color: #c1442c;
}

.historico-vazio {
    color: #5c7086;
    padding: 8px 0;
    font-size: 13px;
}

.historico-controles { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.historico-controles select { min-width:180px; padding:10px 12px; border:1px solid #b8c8d8; background:#fff; color:#16283d; }
.historico-tabela-wrap { overflow:auto; margin-top:18px; }
.historico-tabela { width:100%; border-collapse:collapse; min-width:900px; }
.historico-tabela th, .historico-tabela td { padding:12px 10px; border-bottom:1px solid #d9e1e8; text-align:left; vertical-align:top; }
.historico-tabela th { color:#587087; font-size:11px; text-transform:uppercase; letter-spacing:.06em; }
.historico-tabela td { color:#263d53; font-size:13px; }
.historico-resultado { font-weight:700; text-transform:uppercase; font-size:11px !important; }
.historico-resultado.sucesso { color:#1f8a5f; }
.historico-resultado.erro { color:#c84432; }
.atualizacao-acoes { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin:18px 0 8px; }
.atualizacao-acoes select { min-width:280px; padding:12px; border:1px solid #b8c8d8; background:#fff; }
.grupo-atualizacao { margin-top:24px; padding-top:18px; border-top:1px solid #d9e1e8; }
.grupo-atualizacao > h3 { margin-bottom:14px; color:#16283d; }
.dialog-senha { width:min(420px,calc(100% - 30px)); padding:26px; border:1px solid #8ca4ba; color:#16283d; }
.dialog-senha::backdrop { background:rgba(10,25,42,.65); }
.dialog-senha input { width:100%; margin:14px 0 20px; padding:12px; border:1px solid #9db0c2; }
.dialog-senha form > div { display:flex; justify-content:flex-end; gap:10px; }
.seguranca-bloco { max-width:560px; margin-top:22px; padding:22px; border:1px solid #c3d0dc; background:#f8fafc; }
.seguranca-bloco input { display:block; width:100%; margin:14px 0; padding:12px; border:1px solid #9db0c2; }
.seguranca-bloco img { display:block; width:260px; max-width:100%; margin:18px 0; border:1px solid #d5dee7; }
.seguranca-bloco #segredo2fa { overflow-wrap:anywhere; font-family:'IBM Plex Mono',monospace; }
.seguranca-bloco pre { padding:18px; background:#fff; border:1px dashed #7890a6; font:700 17px/1.7 'IBM Plex Mono',monospace; letter-spacing:1px; }
.link-recuperacao { display:block; margin-top:9px; padding:0; border:0; background:transparent; color:#1769aa; text-decoration:underline; cursor:pointer; text-align:left; }
.lista-seguranca { display:grid; gap:10px; margin-top:18px; }
.item-seguranca { display:flex; justify-content:space-between; gap:16px; align-items:center; padding:14px; border:1px solid #cbd7e2; background:#fff; }
.item-seguranca div { display:grid; gap:4px; min-width:0; }
.item-seguranca span,.item-seguranca small { overflow-wrap:anywhere; color:#536b82; }
.paginacao { display:flex; justify-content:center; align-items:center; gap:14px; margin-top:20px; flex-wrap:wrap; }
.paginacao button:disabled { opacity:.45; cursor:not-allowed; }
.seletor-escola-sidebar { width:100%; padding:7px; border:1px solid #50677d; background:#10283f; color:#fff; font-size:12px; }

@media (max-width: 700px) {
    .campo-pesquisa-programa,
    .upload-externo,
    .programa-resultado {
        flex-direction: column;
        align-items: stretch;
    }

    .campo-pesquisa-programa input[type="text"],
    .upload-externo input[type="file"] {
        min-width: 0;
        width: 100%;
    }
}

/* ==================================================
   INSTALAÇÃO EM LOTE
   ================================================== */

.acoes-programa-resultado {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.btn-instalar-todos,
.btn-todos {
    border: 1px solid #6a4fb3;
    background: #6a4fb3;
    color: white;
    padding: 8px 14px;
    border-radius: 3px;
    cursor: pointer;
    font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    font-weight: 700;
}

.btn-instalar-todos:hover,
.btn-todos:hover {
    background: #59409a;
    border-color: #59409a;
}

.btn-todos:disabled {
    opacity: 0.55;
    cursor: wait;
}

.acoes-upload-externo {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

@media (max-width: 700px) {
    .acoes-programa-resultado,
    .acoes-upload-externo {
        width: 100%;
        flex-direction: column;
    }

    .btn-instalar-resultado,
    .btn-instalar-todos,
    .btn-primario,
    .btn-todos {
        width: 100%;
    }
}

/* ==================================================
   COMPUTADORES PERSISTENTES / OFFLINE
   ================================================== */

.pc-offline {
    opacity: 0.72;
    background: #f4f7fb;
}

.status-offline {
    background: #fbe9e5;
    color: #c1442c;
}

.ultimo-acesso {
    margin-top: 16px;
    color: #5c7086;
    font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    font-size: 11px;
}

/* ==================================================
   VISUALIZAÇÃO DE TELA
   ================================================== */

.controle-tela {
    margin-bottom: 16px;
    color: #5c7086;
    font-size: 13.5px;
}

.visualizador-tela {
    margin-top: 18px;
    background: #0f1d2e;
    border-radius: 3px;
    border: 1px solid #0f1d2e;
    min-height: 240px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.visualizador-tela img {
    display: block;
    width: 100%;
    max-height: 720px;
    object-fit: contain;
}

/* ==================================================
   PROGRAMAS ABERTOS
   ================================================== */

.lista-processos,
.lista-sites {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.processo-item,
.site-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    border: 1px solid #ccd7e2;
    border-radius: 3px;
    padding: 13px 15px;
    background: #f4f7fb;
}

.processo-info {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.processo-info strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    font-size: 13.5px;
}

.processo-info span {
    color: #5c7086;
    font-size: 12px;
}

.btn-encerrar,
.btn-liberar {
    border: 1px solid #c1442c;
    background: #c1442c;
    color: white;
    padding: 8px 13px;
    border-radius: 3px;
    cursor: pointer;
    font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

.btn-encerrar:hover,
.btn-liberar:hover {
    background: #9c3623;
    border-color: #9c3623;
}

.btn-desativado {
    border: 1px solid #ccd7e2;
    background: #ccd7e2;
    color: #5c7086;
    padding: 8px 13px;
    border-radius: 3px;
    cursor: not-allowed;
    font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    font-size: 12px;
    text-transform: uppercase;
}

/* ==================================================
   BLOQUEIO DE SITES
   ================================================== */

.campo-site {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 18px;
}

.escopo-sites {
    display: flex;
    flex-direction: column;
    gap: 7px;
    margin-bottom: 14px;
    max-width: 520px;
}

.escopo-sites label {
    color: #27384a;
    font-size: 13px;
    font-weight: 600;
}

.escopo-sites select {
    border: 1px solid #ccd7e2;
    border-radius: 3px;
    padding: 10px 13px;
    background: #ffffff;
    color: #172033;
    font-family: 'IBM Plex Sans', 'Segoe UI', sans-serif;
    font-size: 14px;
}

.escopo-sites small {
    color: #5c7086;
    font-size: 12px;
}

.campo-site input {
    flex: 1;
    min-width: 240px;
    border: 1px solid #ccd7e2;
    border-radius: 3px;
    padding: 10px 13px;
    font-family: 'IBM Plex Sans', 'Segoe UI', sans-serif;
    font-size: 14px;
    background: #ffffff;
}

.site-acoes {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.btn-liberar-todos {
    border: 1px solid #6a4fb3;
    background: #6a4fb3;
    color: white;
    padding: 8px 13px;
    border-radius: 3px;
    cursor: pointer;
    font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

.btn-liberar-todos:hover {
    background: #59409a;
    border-color: #59409a;
}

@media (max-width: 700px) {
    .processo-item,
    .site-item,
    .campo-site {
        flex-direction: column;
        align-items: stretch;
    }

    .campo-site input {
        min-width: 0;
        width: 100%;
    }

    .site-acoes {
        flex-direction: column;
    }
}
/* ==================================================
   LOGIN E CONTROLE DE ACESSO
   ================================================== */

.sidebar {
    display: flex;
    flex-direction: column;
}

.sidebar nav {
    flex: 1;
}

.sidebar-usuario {
    margin-top: 24px;
    padding: 14px;
    border: 1px solid rgba(169, 189, 209, 0.28);
    background: rgba(255,255,255,0.035);
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.sidebar-usuario strong {
    color: #ffffff;
    font-size: 13px;
    font-family: 'Space Grotesk', 'Segoe UI', sans-serif;
}

.sidebar-usuario span,
.sidebar-usuario small {
    color: #a9bdd1;
    font-size: 11px;
}

.btn-sair {
    margin-top: 10px;
    border: 1px solid rgba(169, 189, 209, 0.35);
    background: transparent;
    color: #dbe7f2;
    padding: 8px 10px;
    cursor: pointer;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 11px;
    text-transform: uppercase;
}

.btn-sair:hover {
    background: rgba(255,255,255,0.06);
}

.login-body {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 28px;
}

.login-shell {
    width: min(980px, 100%);
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    padding: 0;
    background: #ffffff;
    border: 1px solid #ccd7e2;
    box-shadow: 0 18px 55px rgba(22, 40, 61, 0.12);
}

.login-brand {
    background: #16283d;
    color: #ffffff;
    padding: 54px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 540px;
}

.login-brand .header-eyebrow {
    color: #79c8a8;
}

.login-brand h1 {
    font-family: 'Space Grotesk', sans-serif;
    font-size: clamp(42px, 7vw, 70px);
    line-height: 0.95;
    margin: 10px 0 22px;
}

.login-brand p {
    max-width: 460px;
    color: #b9c9d9;
    line-height: 1.7;
}

.login-pontos {
    margin-top: 34px;
    display: grid;
    gap: 10px;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 12px;
    color: #d8e5ef;
}

.login-card {
    padding: 54px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.login-card h2 {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 30px;
    margin-bottom: 8px;
}

.login-card > div > p {
    color: #5c7086;
    line-height: 1.55;
}

.form-labcontrol {
    margin-top: 28px;
    display: grid;
    gap: 16px;
}

.form-labcontrol label {
    display: grid;
    gap: 7px;
}

.form-labcontrol label > span {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #50657a;
}

.form-labcontrol input,
.form-labcontrol select,
.form-labcontrol textarea {
    width: 100%;
    min-height: 44px;
    border: 1px solid #bdcad6;
    background: #fbfdff;
    padding: 10px 12px;
    color: #16283d;
    font: inherit;
    border-radius: 2px;
    outline: none;
}

.form-labcontrol input:focus,
.form-labcontrol select:focus,
.form-labcontrol textarea:focus {
    border-color: #205d95;
    box-shadow: 0 0 0 3px rgba(32, 93, 149, 0.08);
}

/* Levantamento público dos laboratórios */
.levantamento-body { display:block; background-color:#eef3f8; }
.levantamento-shell { width:min(900px,calc(100% - 32px)); margin:38px auto 70px; padding:0; }
.levantamento-cabecalho { display:block; padding:42px; color:#fff; background:#16283d; border-bottom:5px solid #1f8a5f; }
.levantamento-marca { display:flex; justify-content:space-between; align-items:center; margin-bottom:38px; font-family:'IBM Plex Mono',monospace; }
.levantamento-marca span { font:700 20px 'Space Grotesk',sans-serif; }
.levantamento-marca small { color:#a9bdd1; text-transform:uppercase; letter-spacing:.08em; }
.levantamento-etiqueta { color:#79c8a8; font:600 11px 'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.08em; }
.levantamento-cabecalho h1 { max-width:700px; margin:10px 0 15px; font:700 clamp(31px,5vw,50px)/1.05 'Space Grotesk',sans-serif; }
.levantamento-cabecalho p { max-width:710px; color:#c6d5e3; line-height:1.65; }
.levantamento-form { display:grid; gap:18px; margin-top:18px; }
.levantamento-bloco { padding:30px; background:#fff; border:1px solid #ccd7e2; }
.levantamento-bloco-titulo { display:flex; gap:16px; align-items:flex-start; padding-bottom:22px; margin-bottom:22px; border-bottom:1px solid #e0e7ee; }
.levantamento-bloco-titulo>span { display:grid; place-items:center; min-width:38px; height:38px; color:#176d4c; background:#e8f5ef; border:1px solid #9bcbb8; font:700 12px 'IBM Plex Mono',monospace; }
.levantamento-bloco h2 { font:700 22px 'Space Grotesk',sans-serif; }
.levantamento-bloco-titulo p { margin-top:4px; color:#60758a; }
.levantamento-campos { display:grid; gap:18px; }
.levantamento-campos.duas-colunas { grid-template-columns:repeat(2,minmax(0,1fr)); }
.levantamento-campos label { display:grid; gap:7px; }
.levantamento-campos label>span { color:#50657a; font:600 11px 'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.04em; }
.levantamento-campos input,.levantamento-campos select,.levantamento-campos textarea { width:100%; min-height:46px; padding:11px 12px; border:1px solid #bdcad6; border-radius:2px; background:#fbfdff; color:#16283d; font:inherit; outline:none; }
.levantamento-campos textarea { resize:vertical; line-height:1.5; }
.levantamento-campos input:focus,.levantamento-campos select:focus,.levantamento-campos textarea:focus { border-color:#205d95; box-shadow:0 0 0 3px rgba(32,93,149,.08); }
.campo-largo { grid-column:1/-1; }.campo-armadilha { position:absolute!important; left:-9999px!important; }
.levantamento-envio { padding:26px 30px; background:#fff; border:1px solid #ccd7e2; text-align:right; }
.levantamento-envio p { margin-bottom:15px; color:#60758a; font-size:13px; }.levantamento-envio .mensagem-login { margin-top:12px; }
.levantamento-sucesso { padding:55px 28px; text-align:center; background:#fff; border:1px solid #b7d9ca; }
.levantamento-sucesso>span { display:grid; place-items:center; width:58px; height:58px; margin:0 auto 18px; border-radius:50%; background:#1f8a5f; color:#fff; font-size:28px; }
.levantamento-sucesso h2 { font:700 28px 'Space Grotesk',sans-serif; }.levantamento-sucesso p { margin:10px auto 22px; color:#60758a; }.levantamento-sucesso strong { font:700 12px 'IBM Plex Mono',monospace; color:#176d4c; }
.levantamentos-lista { display:grid; gap:12px; }.levantamento-card { padding:18px; background:#fff; border:1px solid #ccd7e2; }
.levantamento-topo { display:flex; justify-content:space-between; gap:20px; }.levantamento-topo h4 { font:700 19px 'Space Grotesk',sans-serif; }.levantamento-topo time { color:#708399; font:11px 'IBM Plex Mono',monospace; }
.levantamento-resumo { display:flex; flex-wrap:wrap; gap:9px; margin:15px 0; }.levantamento-resumo span { padding:8px 10px; background:#f2f6f9; border:1px solid #dbe4eb; font-size:12px; }
.levantamento-card summary { cursor:pointer; color:#205d95; font:600 12px 'IBM Plex Mono',monospace; }.levantamento-detalhes { display:grid; gap:9px; margin-top:14px; padding-top:14px; border-top:1px solid #e0e7ee; color:#455d72; font-size:13px; line-height:1.55; }
.colaboradores-lista { display:grid; gap:14px; }.colaborador-card { padding:18px; background:#f7fafc; border:1px solid #d3dee7; }.colaborador-topo { display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; }.colaborador-topo strong { font:700 12px 'IBM Plex Mono',monospace; color:#205d95; text-transform:uppercase; }.remover-pessoa { border:0; background:transparent; color:#a52d2d; cursor:pointer; font:600 11px 'IBM Plex Mono',monospace; }.btn-adicionar-pessoa { width:100%; margin-top:14px; padding:12px; border:1px dashed #7b91a5; background:#f7fafc; color:#205d95; cursor:pointer; font:600 12px 'IBM Plex Mono',monospace; }.btn-adicionar-pessoa:hover { background:#edf4f8; }.lista-pessoas-admin { display:grid; gap:8px; margin:8px 0 0 18px; }.lista-pessoas-admin li { padding-left:3px; }
.acoes-download { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }.feedback-cabecalho { border-bottom-color:#205d95; }.feedback-shell { max-width:800px; }
.acoes-download select { min-height:38px; max-width:260px; padding:8px 10px; border:1px solid #c8d4df; background:#fff; color:#24384b; font:12px 'IBM Plex Sans',sans-serif; }
.acoes-comprovante { display:flex; justify-content:center; gap:10px; margin-top:24px; flex-wrap:wrap; }.comprovante-instalacao { margin-top:18px; padding:38px; background:#fff; border:1px solid #b8c7d3; }.comprovante-marca { display:flex; justify-content:space-between; gap:20px; padding-bottom:15px; border-bottom:3px solid #1f8a5f; }.comprovante-marca strong { font:700 21px 'Space Grotesk',sans-serif; }.comprovante-marca span { color:#60758a; font:11px 'IBM Plex Mono',monospace; text-transform:uppercase; }.comprovante-instalacao h2 { margin:24px 0 5px; font:700 27px 'Space Grotesk',sans-serif; }.comprovante-protocolo { color:#60758a; font:11px 'IBM Plex Mono',monospace; }.comprovante-grade { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:22px 0; }.comprovante-grade p { padding:12px; border:1px solid #d3dee7; }.comprovante-grade span { display:block; color:#60758a; font:10px 'IBM Plex Mono',monospace; text-transform:uppercase; }.comprovante-grade strong { display:block; margin-top:3px; }.comprovante-instalacao h3 { margin:20px 0 8px; }.comprovante-instalacao ul { margin-left:20px; line-height:1.7; }.comprovante-declaracao { margin-top:30px; line-height:1.6; }.comprovante-assinaturas { display:grid; grid-template-columns:1fr 1fr; gap:45px; margin-top:75px; }.comprovante-assinaturas div { padding-top:8px; border-top:1px solid #16283d; text-align:center; font-size:12px; }
.senha-manuscrita { display:grid; grid-template-columns:auto 1fr; gap:8px 12px; align-items:end; margin-top:28px; }.senha-manuscrita span { min-height:24px; border-bottom:1px solid #16283d; }.senha-manuscrita small { grid-column:2; color:#60758a; font-size:10px; }
@media(max-width:650px){.comprovante-instalacao{padding:22px 18px}.comprovante-grade{grid-template-columns:1fr}.comprovante-marca{flex-direction:column}.comprovante-assinaturas{grid-template-columns:1fr;gap:65px}}
@media print { body{background:#fff!important}.levantamento-cabecalho,.sem-impressao{display:none!important}.levantamento-shell{width:100%;margin:0}.levantamento-form{display:block}.comprovante-instalacao{border:0;margin:0;padding:10mm}.comprovante-assinaturas{break-inside:avoid} }

/* Home pública */
.home-body { display:block; min-height:100vh; background:#f5f7f9; color:#16283d; }
.home-nav { position:relative; z-index:5; display:flex; align-items:center; justify-content:space-between; width:min(1180px,calc(100% - 48px)); margin:auto; padding:22px 0; border-bottom:1px solid #d9e1e8; }
.home-logo { display:flex; align-items:center; color:#16283d; text-decoration:none; }.home-logo img { display:block; width:230px; height:68px; object-fit:contain; object-position:left center; }
.home-nav nav { display:flex; flex-direction:row; align-items:center; gap:30px; }.home-nav nav a { color:#455d72; text-decoration:none; font:600 12px 'IBM Plex Mono',monospace; text-transform:uppercase; }.home-nav nav a:hover { color:#1f8a5f; }.home-nav .home-entrar { padding:11px 16px; color:#fff; background:#16283d; border:1px solid #16283d; }.home-nav .home-entrar:hover { color:#fff; background:#1f8a5f; border-color:#1f8a5f; }
.home-main { width:auto; padding:0; }.home-hero { position:relative; display:grid; grid-template-columns:1.03fr .97fr; align-items:center; gap:70px; width:min(1180px,calc(100% - 48px)); min-height:650px; margin:auto; padding:70px 0 90px; }.home-hero::before { content:""; position:absolute; top:20px; left:-8vw; width:360px; height:360px; background-image:linear-gradient(rgba(31,138,95,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(31,138,95,.08) 1px,transparent 1px); background-size:24px 24px; mask-image:linear-gradient(135deg,#000,transparent 72%); z-index:-1; }
.home-selo { display:inline-flex; align-items:center; gap:9px; color:#36725a; font:600 11px 'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.07em; }.home-selo i { width:8px; height:8px; border-radius:50%; background:#1f8a5f; box-shadow:0 0 0 5px rgba(31,138,95,.1); }
.home-hero h1 { max-width:650px; margin:20px 0 22px; font:700 clamp(48px,6vw,76px)/.98 'Space Grotesk',sans-serif; letter-spacing:-.045em; }.home-hero h1 em { display:block; color:#1f8a5f; font-style:normal; }.home-hero-texto>p { max-width:610px; color:#5b7085; font-size:18px; line-height:1.65; }
.home-acoes { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:32px; }.home-acoes a { display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:0 21px; text-decoration:none; font:700 12px 'IBM Plex Mono',monospace; text-transform:uppercase; }.home-btn-primario { gap:24px; color:#fff; background:#1f8a5f; border:1px solid #176d4c; }.home-btn-primario:hover { background:#176d4c; }.home-btn-secundario { color:#24384b; background:#fff; border:1px solid #b9c7d2; }.home-confianca { display:flex; flex-wrap:wrap; gap:17px; margin-top:28px; color:#6a7e90; font-size:11px; }.home-confianca span::first-letter { color:#1f8a5f; }
.home-painel-demo { position:relative; background:#fff; border:1px solid #bfcbd5; box-shadow:20px 25px 0 #dde5eb,0 30px 70px rgba(22,40,61,.15); }.home-painel-demo::after { content:""; position:absolute; right:-18px; top:-18px; width:55px; height:55px; border-top:2px solid #1f8a5f; border-right:2px solid #1f8a5f; }.demo-topo { display:flex; justify-content:space-between; padding:11px 14px; color:#8294a4; background:#edf2f5; border-bottom:1px solid #ccd6de; font:9px 'IBM Plex Mono',monospace; }.demo-topo div { display:flex; gap:5px; }.demo-topo i { width:7px; height:7px; border-radius:50%; background:#aab8c3; }.demo-corpo { display:grid; grid-template-columns:55px 1fr; min-height:350px; }.demo-corpo aside { display:flex; flex-direction:column; align-items:center; gap:22px; padding:20px 0; color:#fff; background:#16283d; }.demo-corpo aside strong { display:grid; place-items:center; width:28px; height:28px; background:#1f8a5f; font:700 10px 'IBM Plex Mono',monospace; }.demo-corpo aside span { width:15px; height:3px; background:#64798c; }.demo-corpo aside span.ativo { background:#79c8a8; }.demo-conteudo { padding:24px; }.demo-titulo { display:flex; justify-content:space-between; color:#60758a; font:600 9px 'IBM Plex Mono',monospace; }.demo-titulo i { width:70px; height:7px; background:#e3e9ee; }.demo-metricas { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin:18px 0 25px; }.demo-metricas div { padding:14px 10px; border:1px solid #dbe3e9; }.demo-metricas small { display:block; color:#728596; font:7px 'IBM Plex Mono',monospace; }.demo-metricas strong { display:block; margin-top:5px; font:700 23px 'Space Grotesk',sans-serif; }.demo-metricas .verde { color:#1f8a5f; }.demo-metricas .laranja { color:#c97924; }.demo-lista>span { color:#60758a; font:600 8px 'IBM Plex Mono',monospace; }.demo-lista>div { display:grid; grid-template-columns:12px 1fr auto; align-items:center; gap:8px; padding:12px 2px; border-bottom:1px solid #e2e8ed; font-size:10px; }.demo-lista i { width:7px; height:7px; border-radius:50%; background:#a9b6c0; }.demo-lista i.on { background:#1f8a5f; }.demo-lista small { color:#718494; }.demo-legenda { position:absolute; right:18px; bottom:-43px; display:flex; align-items:center; gap:8px; color:#60758a; font:9px 'IBM Plex Mono',monospace; text-transform:uppercase; }.demo-legenda span { width:18px; height:2px; background:#1f8a5f; }
.home-faixa { padding:23px 24px; color:#d7e2eb; background:#16283d; text-align:center; }.home-faixa p { font:500 13px 'IBM Plex Mono',monospace; letter-spacing:.03em; }
.home-recursos { display:grid; grid-template-columns:.75fr 1.25fr; gap:70px; width:min(1180px,calc(100% - 48px)); margin:auto; padding:110px 0; }.home-secao-titulo>span,.home-cta span { color:#1f8a5f; font:700 11px 'IBM Plex Mono',monospace; letter-spacing:.08em; }.home-secao-titulo h2 { margin:14px 0 19px; font:700 clamp(35px,4vw,50px)/1.05 'Space Grotesk',sans-serif; }.home-secao-titulo p { color:#60758a; line-height:1.65; }.home-cards { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }.home-cards article { min-height:190px; padding:25px; background:#fff; border:1px solid #d0dae2; transition:.2s; }.home-cards article:hover { transform:translateY(-4px); border-color:#8cb7a5; box-shadow:0 14px 30px rgba(22,40,61,.08); }.home-cards article>span { color:#1f8a5f; font:600 10px 'IBM Plex Mono',monospace; }.home-cards h3 { margin:28px 0 9px; font:700 20px 'Space Grotesk',sans-serif; }.home-cards p { color:#60758a; font-size:14px; line-height:1.6; }
.home-cta { display:flex; justify-content:space-between; align-items:center; gap:30px; width:min(1180px,calc(100% - 48px)); margin:0 auto 90px; padding:42px 46px; color:#fff; background:#1f8a5f; }.home-cta span { color:#c6f0dd; }.home-cta h2 { margin-top:7px; font:700 clamp(25px,3vw,36px) 'Space Grotesk',sans-serif; }.home-cta a { flex:none; padding:15px 20px; color:#16283d; background:#fff; text-decoration:none; font:700 11px 'IBM Plex Mono',monospace; text-transform:uppercase; }
.home-contato { display:grid; grid-template-columns:.8fr 1.2fr; gap:70px; width:min(1180px,calc(100% - 48px)); margin:0 auto 90px; padding-top:18px; }.home-contato>div:first-child>span { color:#1f8a5f; font:700 11px 'IBM Plex Mono',monospace; letter-spacing:.08em; }.home-contato h2 { margin:12px 0 14px; font:700 clamp(32px,4vw,46px) 'Space Grotesk',sans-serif; }.home-contato p { max-width:430px; color:#60758a; line-height:1.65; }.home-contato-canais { display:grid; gap:12px; }.home-contato-canais a { display:grid; grid-template-columns:1fr auto; gap:7px 20px; padding:22px 24px; color:#16283d; background:#fff; border:1px solid #d0dae2; text-decoration:none; transition:.2s; }.home-contato-canais a:hover { transform:translateX(4px); border-color:#1f8a5f; box-shadow:0 10px 25px rgba(22,40,61,.07); }.home-contato-canais small { grid-column:1/-1; color:#60758a; font:600 9px 'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.06em; }.home-contato-canais strong { font:600 17px 'Space Grotesk',sans-serif; word-break:break-word; }.home-contato-canais span { align-self:center; color:#1f8a5f; font:600 10px 'IBM Plex Mono',monospace; text-transform:uppercase; }
.home-footer { display:grid; grid-template-columns:auto 1fr auto; gap:24px; align-items:center; padding:28px max(24px,calc((100% - 1180px)/2)); color:#91a3b2; background:#101f31; }.home-footer strong { color:#fff; font:700 18px 'Space Grotesk',sans-serif; }.home-footer p,.home-footer small { font-size:11px; }
@media(max-width:900px){.home-hero{grid-template-columns:1fr;padding-top:55px}.home-painel-demo{width:min(620px,calc(100% - 20px));margin:auto}.home-recursos,.home-contato{grid-template-columns:1fr}.home-nav nav>a:not(.home-entrar){display:none}}
@media(max-width:600px){.home-nav{width:calc(100% - 28px)}.home-logo img{width:150px;height:52px}.home-nav nav{gap:8px}.home-nav .home-entrar{padding:10px 11px;font-size:10px}.home-hero{width:calc(100% - 28px);gap:45px;padding:45px 0 75px}.home-hero h1{font-size:46px}.home-hero-texto>p{font-size:16px}.home-acoes{align-items:stretch;flex-direction:column}.home-acoes a{width:100%}.home-confianca{flex-direction:column;gap:9px}.demo-conteudo{padding:16px}.demo-metricas{gap:5px}.demo-metricas div{padding:11px 6px}.home-recursos{width:calc(100% - 28px);padding:75px 0}.home-cards{grid-template-columns:1fr}.home-cta{width:calc(100% - 28px);margin-bottom:55px;padding:30px 24px;align-items:stretch;flex-direction:column}.home-cta a{text-align:center}.home-contato{width:calc(100% - 28px);gap:28px;margin-bottom:55px}.home-contato-canais a{grid-template-columns:1fr}.home-contato-canais span{margin-top:5px}.home-footer{grid-template-columns:1fr;text-align:center}}
@media(max-width:650px){.levantamento-shell{width:min(100% - 20px,900px);margin:10px auto 35px}.levantamento-cabecalho{padding:28px 22px}.levantamento-marca{margin-bottom:28px}.levantamento-bloco{padding:22px 18px}.levantamento-campos.duas-colunas{grid-template-columns:1fr}.campo-largo{grid-column:auto}.levantamento-envio{text-align:left;padding:22px 18px}.levantamento-envio .btn-primario{width:100%}.levantamento-topo{flex-direction:column;gap:6px}}

.btn-primario {
    min-height: 44px;
    border: 1px solid #176d4c;
    background: #1f8a5f;
    color: #ffffff;
    cursor: pointer;
    padding: 10px 16px;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.btn-primario:hover {
    filter: brightness(0.95);
}

.btn-primario:disabled {
    opacity: 0.6;
    cursor: wait;
}

.mensagem-login {
    min-height: 18px;
    font-size: 12px;
    line-height: 1.5;
}

.mensagem-login.erro {
    color: #aa2f2f;
}

.mensagem-login.sucesso {
    color: #167149;
}

.admin-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    margin-bottom: 24px;
}

.admin-grid.admin-grid-uma-coluna {
    grid-template-columns: minmax(0, 620px);
}

.admin-card {
    background: #ffffff;
    border: 1px solid #ccd7e2;
    padding: 22px;
}

.admin-lista {
    margin-top: 22px;
}

.admin-cards-lista {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 14px;
}

.escola-card {
    border: 1px solid #ccd7e2;
    background: #ffffff;
    padding: 18px;
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: flex-start;
}

.escola-card h4 {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 18px;
}

.codigo-instalacao {
    min-width: 170px;
    display: grid;
    gap: 4px;
    padding: 10px;
    border: 1px dashed #9cafbf;
    background: #f7fafc;
}

.codigo-instalacao span {
    font-size: 10px;
    text-transform: uppercase;
    color: #60758a;
}

.codigo-instalacao strong {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 12px;
    word-break: break-all;
}

.tabela-simples {
    border: 1px solid #ccd7e2;
    background: #ffffff;
}

.tabela-linha {
    display: grid;
    grid-template-columns: 1.1fr 1.4fr 1fr 1.2fr;
    gap: 12px;
    padding: 12px 14px;
    border-bottom: 1px solid #e0e7ee;
    font-size: 12px;
    align-items: center;
}

.tabela-linha:last-child {
    border-bottom: 0;
}

.tabela-cabecalho {
    background: #f4f7fa;
    color: #5b7085;
    font-family: 'IBM Plex Mono', monospace;
    text-transform: uppercase;
    font-size: 10px;
    letter-spacing: 0.05em;
}

@media (max-width: 900px) {
    .login-shell,
    .admin-grid {
        grid-template-columns: 1fr;
    }

    .login-brand {
        min-height: auto;
        padding: 38px 30px;
    }

    .login-card {
        padding: 38px 30px;
    }

    .tabela-linha {
        grid-template-columns: 1fr;
        gap: 4px;
    }
}

.pc-escola {
    margin-top: 5px;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 10.5px;
    color: #205d95;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}


/* Revogação individual de computadores */
.pc-acoes {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.btn-revogar {
    width: 100%;
    padding: 10px;
    border: 1px solid #b84a4a;
    background: #fff5f5;
    color: #8f2424;
    border-radius: 3px;
    cursor: pointer;
    font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    font-size: 12px;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.btn-revogar:hover {
    background: #a52d2d;
    border-color: #a52d2d;
    color: white;
}


/* Filtro de computadores por escola - visível ao super administrador */
.acoes-lista-computadores {
    display: flex;
    align-items: flex-end;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.filtro-escola {
    display: grid;
    gap: 5px;
    min-width: 240px;
}

.filtro-escola[hidden] {
    display: none !important;
}

.filtro-escola label {
    font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #60758a;
}

.filtro-escola select {
    min-height: 38px;
    padding: 8px 10px;
    border: 1px solid #c8d4df;
    border-radius: 3px;
    background: #ffffff;
    color: #24384b;
    font-family: 'IBM Plex Sans', Arial, sans-serif;
    font-size: 13px;
}

.filtro-escola select:focus {
    outline: 2px solid rgba(32, 93, 149, 0.18);
    border-color: #205d95;
}

@media (max-width: 700px) {
    .acoes-lista-computadores {
        width: 100%;
        align-items: stretch;
        flex-direction: column;
    }

    .filtro-escola {
        min-width: 0;
        width: 100%;
    }
}

.pesquisa-escolas { display: grid; gap: 5px; min-width: min(330px, 100%); }
.pesquisa-escolas span { font-family: 'IBM Plex Mono', monospace; font-size: 10px; text-transform: uppercase; color: #60758a; letter-spacing: .06em; }
.pesquisa-escolas input { width: 100%; padding: 11px 13px; border: 1px solid #9fb2c4; background: #fff; color: #17324d; font: inherit; }
.pesquisa-escolas input:focus { outline: 2px solid rgba(32,93,149,.2); border-color: #205d95; }
.admin-cards-lista.blocos-escolas { grid-template-columns: 1fr; }
.blocos-escolas .escola-card { display: grid; grid-template-columns: minmax(190px, .7fr) minmax(300px, 2fr) minmax(190px, .65fr); align-items: start; }
.escola-card-cabecalho { display: grid; gap: 16px; }
.resumo-pcs-escola { display: flex; align-items: baseline; gap: 7px; color: #60758a; }.resumo-pcs-escola strong { color: #17324d; font-size: 24px; }.resumo-pcs-escola span { font-size: 11px; }.resumo-pcs-escola b { color: #18864b; font-size: 11px; }
.pcs-escola-bloco { display: grid; grid-template-columns: repeat(auto-fill, minmax(145px, 1fr)); gap: 8px; padding: 12px; background: #f4f7fa; border: 1px solid #d9e2ea; }
.pc-bloco-admin { display: grid; grid-template-columns: 14px 1fr; gap: 2px 6px; align-items: center; padding: 9px 10px; background: #fff; border: 1px solid #ccd7e2; }.pc-bloco-admin strong { font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.pc-bloco-admin small { grid-column: 2; color: #60758a; font-size: 10px; }.pc-bloco-admin.online { border-left: 3px solid #18864b; }.pc-bloco-admin.offline { opacity: .72; border-left: 3px solid #94a3b8; }.pc-status-admin { color: #18864b; }.pc-bloco-admin.offline .pc-status-admin { color: #64748b; }.sem-pcs-escola { grid-column: 1 / -1; padding: 16px; color: #60758a; text-align: center; font-size: 12px; }
@media (max-width: 1000px) { .blocos-escolas .escola-card { grid-template-columns: 1fr; }.pesquisa-escolas { width: 100%; }.titulo-secao { flex-wrap: wrap; } }

/* Padrão visual dos botões da plataforma */
.btn-primario, .btn-secundario, .btn-atualizar, .btn-gerenciar,
.btn-instalar-resultado, .btn-instalar-todos, .btn-todos,
.btn-encerrar, .btn-liberar, .btn-liberar-todos, .btn-revogar,
.btn-adicionar-pessoa {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 16px;
    border-radius: 3px;
    cursor: pointer;
    font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .035em;
    text-align: center;
    text-transform: uppercase;
    text-decoration: none;
    transition: background-color .15s, border-color .15s, color .15s, box-shadow .15s;
}

.btn-primario, .btn-instalar-resultado {
    border: 1px solid #176d4c;
    background: #1f8a5f;
    color: #fff;
}
.btn-primario:hover, .btn-instalar-resultado:hover {
    border-color: #176d4c;
    background: #176d4c;
    filter: none;
}

.btn-secundario, .btn-atualizar, .btn-gerenciar {
    border: 1px solid #9fb2c3;
    background: #f8fafc;
    color: #205d95;
}
.btn-secundario:hover, .btn-atualizar:hover, .btn-gerenciar:hover {
    border-color: #205d95;
    background: #205d95;
    color: #fff;
}

.btn-instalar-todos, .btn-todos, .btn-liberar-todos {
    border: 1px solid #16283d;
    background: #16283d;
    color: #fff;
}
.btn-instalar-todos:hover, .btn-todos:hover, .btn-liberar-todos:hover {
    border-color: #205d95;
    background: #205d95;
}

.btn-encerrar, .btn-liberar, .btn-revogar {
    border: 1px solid #b84a4a;
    background: #fff5f5;
    color: #8f2424;
}
.btn-encerrar:hover, .btn-liberar:hover, .btn-revogar:hover {
    border-color: #a52d2d;
    background: #a52d2d;
    color: #fff;
}

.btn-adicionar-pessoa {
    border: 1px dashed #7b91a5;
    background: #f7fafc;
    color: #205d95;
}

.btn-primario:focus-visible, .btn-secundario:focus-visible,
.btn-atualizar:focus-visible, .btn-gerenciar:focus-visible,
.btn-instalar-resultado:focus-visible, .btn-instalar-todos:focus-visible,
.btn-todos:focus-visible, .btn-encerrar:focus-visible,
.btn-liberar:focus-visible, .btn-liberar-todos:focus-visible,
.btn-revogar:focus-visible, .btn-adicionar-pessoa:focus-visible,
.btn-voltar:focus-visible, .btn-sair:focus-visible {
    outline: 3px solid rgba(32, 93, 149, .22);
    outline-offset: 2px;
}

.btn-primario:disabled, .btn-secundario:disabled,
.btn-atualizar:disabled, .btn-gerenciar:disabled,
.btn-instalar-resultado:disabled, .btn-instalar-todos:disabled,
.btn-todos:disabled, .btn-encerrar:disabled, .btn-liberar:disabled,
.btn-liberar-todos:disabled, .btn-revogar:disabled,
.btn-adicionar-pessoa:disabled {
    opacity: .55;
    cursor: not-allowed;
}
.computador-online { color: #16803c; font-weight: 700; }
.computador-offline { color: #64748b; }
.resultado-atualizacao { color: #475569; font-size: .9rem; }
.resultado-atualizacao.erro { color: #b42318; font-weight: 600; }
.notificacoes-area { position: fixed; top: 20px; right: 20px; z-index: 10000; display: grid; gap: 10px; width: min(390px, calc(100vw - 32px)); }
.notificacao { display: grid; grid-template-columns: 28px 1fr 24px; align-items: start; gap: 10px; padding: 14px 15px; color: #17324d; background: #fff; border: 1px solid #cbd9e7; border-left: 4px solid #2774a8; box-shadow: 0 12px 32px rgba(15,42,67,.18); animation: notificacao-entrada .2s ease-out; white-space: pre-line; }
.notificacao-sucesso { border-left-color: #18864b; }.notificacao-erro { border-left-color: #d13737; }.notificacao-aviso { border-left-color: #d28a13; }.notificacao-icone { display: grid; place-items: center; width: 25px; height: 25px; border-radius: 50%; color: #fff; background: #2774a8; font-weight: 800; }.notificacao-sucesso .notificacao-icone { background: #18864b; }.notificacao-erro .notificacao-icone { background: #d13737; }.notificacao-aviso .notificacao-icone { background: #d28a13; }
.notificacao button { border: 0; background: transparent; color: #60758a; font-size: 20px; cursor: pointer; line-height: 1; }.notificacao.saindo { opacity: 0; transform: translateX(20px); transition: .18s; }
.confirmacao-dialog { width: min(470px, calc(100vw - 32px)); border: 1px solid #c7d5e3; padding: 0; color: #17324d; background: #fff; box-shadow: 0 22px 60px rgba(8,31,52,.28); }.confirmacao-dialog::backdrop { background: rgba(8,27,45,.55); backdrop-filter: blur(2px); }.confirmacao-dialog form { padding: 25px; text-align: center; }.confirmacao-dialog h3 { margin: 10px 0 8px; }.confirmacao-dialog p { white-space: pre-line; color: #52677c; line-height: 1.55; }.confirmacao-icone { display: grid; place-items: center; width: 42px; height: 42px; margin: auto; border-radius: 50%; color: #8b5300; background: #fff0cc; font-size: 22px; font-weight: 800; }.confirmacao-acoes { display: flex; justify-content: center; gap: 10px; margin-top: 22px; }.btn-confirmar-perigo { border: 1px solid #c92f2f; background: #c92f2f; color: #fff; padding: 11px 18px; cursor: pointer; }
@keyframes notificacao-entrada { from { opacity: 0; transform: translateY(-10px); } } @media (max-width:600px) { .notificacoes-area { top:12px; right:16px; }.confirmacao-acoes { flex-direction:column-reverse; }.confirmacao-acoes button { width:100%; } }
