:root{--topbar-altura:52px;--azul:#0a84ff;--azul-escuro:#0071e3;--azul-claro:#e8f1ff;--ceu-de:#4aa8ff;--ceu-ate:#0a84ff;--fundo:#f5f5f7;--superficie:#ffffff;--texto:#1d1d1f;--texto-suave:#6e6e73;--linha:rgba(0,0,0,0.08);--borda-card:rgba(0,0,0,0.06);--vermelho:#ff3b30;--vermelho-texto:#d70015;--laranja:#ff9500;--raio:12px;--raio-card:20px;--raio-menu:16px;--sombra-card:0 1px 2px rgba(0,0,0,0.04),0 12px 28px rgba(0,0,0,0.05);--sombra-menu:0 12px 32px rgba(0,0,0,0.14)}*{box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;margin:0;background:var(--fundo);color:var(--texto);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{max-width:440px;margin:0 auto;padding:2rem 1rem}.card{background:var(--superficie);border:1px solid var(--borda-card);border-radius:var(--raio-card);padding:1.75rem;box-shadow:var(--sombra-card)}.login-logo{display:block;width:min(340px,100%);height:auto;margin:.5rem auto 1.75rem}.quadro-link{display:block;text-decoration:none;color:inherit;padding:.85rem 1rem;transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease}.quadro-link:hover{background:linear-gradient(135deg,var(--ceu-de),var(--ceu-ate));color:#fff;border-color:transparent;box-shadow:0 8px 20px rgba(10,132,255,.25);transform:translateY(-1px)}.quadro-rotulo{font-size:.8rem;color:var(--texto-suave)}.quadro-link:hover .quadro-rotulo{color:rgba(255,255,255,.92)}.quadro-valor{font-size:1.4rem;font-weight:600}.card-filtro{padding:.75rem 1rem;margin-bottom:1rem}.card-filtro .filtros{margin-bottom:0;gap:.5rem .75rem}.filtros-cheio{justify-content:space-between}.card-filtro .filtros label{font-size:.8rem;font-weight:400;color:var(--texto-suave);margin:0 0 .2rem}.card-filtro .filtros button:not(.combobox-seta),.card-filtro .filtros input,.card-filtro .filtros select{font-size:.8rem;padding:.3rem .5rem;border-radius:var(--raio)}.card-filtro .filtros button:not(.combobox-seta){width:auto;margin:0;background:#fff;border:1px solid #d2d2d7;color:var(--texto);font-weight:400;line-height:1.2}.card-filtro .filtros button:not(.combobox-seta):hover:not(:disabled){background:var(--fundo)}.fselect{position:relative;display:inline-block}.fselect-trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:.4rem;min-width:7.5rem;text-align:left}.fselect-valor{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fselect-menu{position:absolute;top:calc(100% + .3rem);left:0;z-index:20;min-width:100%;margin:0;padding:.35rem;list-style:none;display:flex;flex-direction:column;gap:.15rem;background:#fff;border:1px solid var(--borda-card);border-radius:var(--raio-menu);box-shadow:var(--sombra-menu);max-height:16rem;overflow-y:auto}.fselect-opcao{padding:.4rem .55rem;border-radius:10px;font-size:.85rem;color:var(--texto);white-space:nowrap;cursor:pointer}.fselect-opcao.destacada{background:var(--azul-claro);color:var(--texto)}.fselect-opcao.ativa{background:var(--azul-claro);color:var(--azul);font-weight:600}.fselect-opcao-check{display:flex;align-items:center;gap:.5rem}.fselect-opcao-check input[type=checkbox]{width:auto;margin:0;accent-color:var(--azul);pointer-events:none}.fselect-sep{height:1px;margin:.25rem .2rem;padding:0;background:var(--borda-card)}.titulo-tabela{font-size:1.05rem;margin:0 0 .75rem}.tabela-compacta td,.tabela-compacta th{padding:.3rem .4rem}.quadros-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:.75rem;gap:.75rem;margin:0 0 1rem}.quadro{padding:.85rem 1rem}.quadro-valor.destaque{color:var(--vermelho-texto)}.pagina-cobrancas .quadro{text-align:center}.status-badge{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;font-weight:500;white-space:nowrap}.status-badge:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0}.status-verde{color:#1f8a43}.status-amarelo{color:#9a6500}.status-vermelho{color:var(--vermelho-texto)}.status-azul{color:var(--azul)}.status-cinza{color:var(--texto-suave)}.cliente-nome{display:inline-flex;align-items:center;gap:.5rem;max-width:100%}.cliente-nome-texto{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.avatar-iniciais{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--azul);color:#fff;font-size:.72rem;font-weight:700;letter-spacing:.02em;flex-shrink:0}.contrato-num{padding:.05rem .4rem;border-radius:7px}.box-badge,.contrato-badge,.contrato-num{display:inline-block;background:var(--azul);color:#fff;font-weight:600}.box-badge,.contrato-badge{padding:.15rem .5rem;border-radius:8px;font-size:.85rem;white-space:nowrap}h1{font-size:1.25rem;letter-spacing:-.01em;margin:0 0 1.25rem}label{display:block;font-size:.85rem;font-weight:500;margin:.85rem 0 .3rem}input,select{width:100%;padding:.55rem .65rem;border:1px solid #d2d2d7;border-radius:10px;font-size:1rem;background:#fff;color:var(--texto);accent-color:var(--azul)}input:focus,select:focus{outline:none;border-color:var(--azul);box-shadow:0 0 0 3px rgba(10,132,255,.15)}button{margin-top:1.25rem;width:100%;padding:.6rem;border:0;border-radius:var(--raio);background:var(--azul);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s ease,opacity .15s ease}button:hover:not(:disabled){background:var(--azul-escuro)}button:disabled{opacity:.6;cursor:default}.erro{color:var(--vermelho-texto);font-size:.85rem;margin-top:.75rem}main:has(.form-grade){max-width:640px}.form-grade{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.3rem 1.1rem;gap:.3rem 1.1rem;align-items:start}.form-grade .campo{display:flex;flex-direction:column;min-width:0}.form-grade .campo>label{margin:.55rem 0 .3rem}.form-grade .campo-largo{grid-column:1/-1}@media (max-width:560px){.form-grade{grid-template-columns:1fr}}.link{display:block;text-align:center;margin-top:1.25rem;font-size:.85rem;color:var(--azul)}header.top{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.25rem;background:rgba(255,255,255,.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);color:var(--texto);border-bottom:1px solid var(--linha)}header.top strong{font-weight:600}header.top form{margin:0}header.top button{width:auto;margin:0;padding:.35rem .8rem;background:rgba(0,0,0,.05);color:var(--texto);font-size:.85rem}header.top button:hover:not(:disabled){background:rgba(0,0,0,.08)}.barra-topo-card{display:flex;justify-content:space-between;align-items:center}.app-root{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.topo-fixo{position:-webkit-sticky;position:sticky;top:0;z-index:30}.topbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;grid-gap:1rem;gap:1rem;height:var(--topbar-altura);padding:0 1.25rem;background:rgba(255,255,255,.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);color:var(--texto);box-shadow:0 1px 1px rgba(0,0,0,.04);position:relative;z-index:2}.topbar-esq{gap:.85rem}.topbar-centro,.topbar-esq{display:flex;align-items:center;min-width:0}.topbar-centro{justify-content:center}.topbar-logo{display:inline-flex;align-items:center;flex-shrink:0}.topbar-logo-img{height:40px;width:auto;display:block}.topbar-empresa,.topbar-unidade{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-unidade{min-width:0;color:var(--texto-suave)}.topbar-sep{margin-right:.5rem;opacity:.6}.topbar-dir{display:flex;align-items:center;justify-content:flex-end;gap:.6rem;flex-shrink:0}.conta{position:relative}.conta-trigger{width:auto;margin:0;display:flex;align-items:center;gap:.4rem;padding:.35rem .7rem;background:var(--azul);color:#fff;font-size:.85rem;border-radius:var(--raio)}.conta-trigger:hover{background:var(--azul-escuro)}.conta-nome{font-weight:600;white-space:nowrap}.conta-papel{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:rgba(255,255,255,.78)}.conta-seta{font-size:.7rem;transition:transform .15s ease}.conta-seta.aberta{transform:rotate(180deg)}.conta-menu{position:absolute;top:calc(100% + .4rem);right:0;min-width:210px;background:#fff;color:var(--texto);border:1px solid var(--borda-card);border-radius:var(--raio-menu);box-shadow:var(--sombra-menu);padding:.35rem;z-index:50}.conta-menu form{margin:0}.conta-item{display:block;width:100%;margin:0;padding:.5rem .6rem;border-radius:10px;background:transparent;color:var(--texto);font-size:.88rem;text-align:left;text-decoration:none;cursor:pointer}.conta-item:hover{background:var(--azul-claro);color:var(--texto)}.conta-item.ativo{background:var(--azul);color:#fff;font-weight:600}.conta-divisor{height:1px;background:var(--linha);margin:.35rem .25rem}.conta-sair{color:var(--vermelho-texto)}.conta-item.conta-sair:hover{background:rgba(255,59,48,.1);color:var(--vermelho-texto)}.catbar{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;padding:.4rem 1.25rem;background:rgba(255,255,255,.78);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--linha);max-height:4.5rem;overflow:hidden;transition:max-height .25s ease,padding .25s ease,opacity .2s ease;position:relative;z-index:1}.catbar.oculta{max-height:0;padding-top:0;padding-bottom:0;opacity:0;border-bottom-color:transparent;pointer-events:none}.catbar:hover{overflow:visible}.catbar-grupo{position:relative;display:inline-flex}.catbar-item{text-decoration:none;color:var(--texto-suave);font-size:.9rem;padding:.35rem .85rem;border-radius:var(--raio);white-space:nowrap;transition:background .15s ease,color .15s ease}.catbar-item:hover{background:var(--azul-claro);color:var(--texto)}.catbar-item.ativo{background:var(--azul-claro);color:var(--azul);font-weight:600}.catbar-dropdown{position:absolute;top:100%;left:0;min-width:200px;display:flex;flex-direction:column;gap:.15rem;background:#fff;color:var(--texto);border:1px solid var(--borda-card);border-radius:var(--raio-menu);box-shadow:var(--sombra-menu);padding:.35rem;z-index:50;visibility:hidden;opacity:0;transform:translateY(-4px);transition:opacity .12s ease,transform .12s ease,visibility .12s}.catbar-grupo:hover>.catbar-dropdown{visibility:visible;opacity:1;transform:translateY(0)}.catbar-dropdown-item{text-decoration:none;color:var(--texto-suave);font-size:.85rem;padding:.4rem .55rem;border-radius:10px;white-space:nowrap}.catbar-dropdown-item:hover{background:var(--azul-claro);color:var(--texto)}.catbar-dropdown-item.ativo{background:var(--azul-claro);color:var(--azul);font-weight:600}.appshell-conteudo{flex:1 1;min-width:0}.ajuda-corpo{display:flex;gap:1rem;align-items:flex-start;flex-wrap:wrap}.ajuda-menu{flex:0 0 200px;display:flex;flex-direction:column;gap:.15rem}.ajuda-item{text-decoration:none;color:var(--texto-suave);font-size:.9rem;padding:.45rem .6rem;border-radius:10px}.ajuda-item:hover{background:var(--fundo);color:var(--texto)}.ajuda-item.ativo{background:var(--azul-claro);color:var(--azul);font-weight:600}.ajuda-conteudo{flex:1 1;min-width:280px}.ajuda-titulo{font-size:1.1rem;margin:0 0 .75rem}.ajuda-paragrafo{margin:0 0 .75rem;color:var(--texto-suave);line-height:1.5}.ajuda-paragrafo:last-child{margin-bottom:0}table{width:100%;border-collapse:collapse;margin-top:1rem;font-size:.9rem}td,th{text-align:left;padding:.5rem .4rem;border-bottom:1px solid var(--linha)}.contrato-rotulo{white-space:nowrap}.contrato-rotulo-cliente{display:inline-block;max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}.acoes-linha{display:flex;gap:.5rem;align-items:center}.acoes-linha form{margin:0}a.botao{display:inline-block;text-decoration:none;padding:.45rem .85rem;border-radius:var(--raio);background:var(--azul);color:#fff;font-size:.85rem;font-weight:600;transition:background .15s ease}a.botao:hover{background:var(--azul-escuro)}.btn-sm{width:auto;margin:0;padding:.3rem .6rem;font-size:.8rem;border-radius:10px;text-decoration:none;display:inline-block}.btn-secundario{background:#e8e8ed;color:var(--texto)}.btn-secundario:hover:not(:disabled){background:#dcdce1}.btn-perigo{background:var(--vermelho);color:#fff}.btn-perigo:hover:not(:disabled){background:#e0312a}.btn-aviso{background:var(--laranja);color:#fff}.btn-aviso:hover:not(:disabled){background:#e08600}.btn-icone{width:auto;margin:0;padding:.32rem;border:none;border-radius:10px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:0}.btn-icone svg{display:block}.btn-icone.btn-aviso,.btn-icone.btn-perigo,.btn-icone.btn-secundario{background:transparent;color:var(--texto)}.btn-icone.btn-aviso:hover:not(:disabled),.btn-icone.btn-perigo:hover:not(:disabled),.btn-icone.btn-secundario:hover:not(:disabled){background:var(--azul-claro);color:var(--texto)}.combobox{position:relative}.combobox input[type=text]{padding-right:2.1rem}.combobox-seta{position:absolute;top:0;bottom:0;right:0;width:2.1rem;margin:0;padding:0;border:0;background:transparent;color:var(--texto-suave);cursor:pointer;display:flex;align-items:center;justify-content:center}.combobox-seta:disabled{cursor:default;opacity:.5}.combobox-lista{position:absolute;top:calc(100% + 2px);left:0;right:0;z-index:20;margin:0;padding:4px;list-style:none;background:#fff;border:1px solid #d2d2d7;border-radius:var(--raio);box-shadow:var(--sombra-menu);max-height:220px;overflow-y:auto}.combobox-opcao{padding:.4rem .55rem;border-radius:8px;cursor:pointer;font-size:.9rem}.combobox-opcao.destacada{background:var(--azul-claro)}.combobox-vazio{padding:.4rem .55rem;color:var(--texto-suave);font-size:.85rem}.topbar-empresa-link{display:block;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:inherit;text-decoration:none}.cal-topo{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.cal-filtro,.cal-legenda{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.cal-grade{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:1px;gap:1px;background:var(--linha);border:1px solid var(--linha);border-radius:14px;overflow:hidden}.cal-cab{background:var(--fundo);padding:.4rem;text-align:center;font-size:.75rem;font-weight:600;color:#52525b}.cal-dia{background:#fff;min-height:84px;padding:.3rem;display:flex;flex-direction:column;gap:.2rem;min-width:0}.cal-dia.vazio{background:#fafafa}.cal-dia.hoje{background:var(--azul-claro)}.cal-dia-num{font-size:.78rem;font-weight:600;color:#3f3f46}.cal-dia.hoje .cal-dia-num{color:var(--azul)}.cal-ev{font-size:.7rem;line-height:1.2;padding:.15rem .3rem;border-radius:4px;border-left:3px solid #71717a;background:#f4f4f5;color:#18181b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-ev.inicio{border-left-color:#15803d;background:#f0fdf4}.cal-ev.termino{border-left-color:#b00020;background:#fef2f2}.cal-ev.reajuste{border-left-color:#b45309;background:#fffbeb}.cal-ev.criacao{border-left-color:#1d4ed8;background:#eff6ff}.cal-ev.desativacao{border-left-color:#44403c;background:#f5f5f4}@media (max-width:640px){.cal-dia{min-height:64px}.cal-ev{font-size:.62rem}}.filtros{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap;margin:0 0 1rem}.filtros label{margin:0 0 .3rem}.graficos-grade{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));grid-gap:1rem;gap:1rem}.quadros{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.75rem;gap:.75rem;margin-bottom:.75rem}@media (max-width:720px){.quadros{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:480px){.quadros{grid-template-columns:1fr}}.quadro-valor-menor{font-size:1.1rem!important}.analises-blocos{display:flex;flex-direction:column;gap:.75rem}.grafico-titulo{font-size:.95rem;margin:0 0 .5rem}.grafico-svg{width:100%;height:auto;display:block}.grafico-legenda{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:.5rem}.grafico-legenda-item{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;color:#3f3f46}.grafico-amostra{width:12px;height:12px;border-radius:3px;display:inline-block}.pagina-ocupacao .quadro-link{text-align:center}.pagina-analise .quadros .card{text-align:center;padding:.85rem 1rem}.pagina-faixas table{table-layout:fixed}.pagina-faixas td,.pagina-faixas th{text-align:center}.pagina-faixas .linha-total td{font-weight:600;border-top:2px solid var(--borda-card)}.pagina-ocupacao table{table-layout:fixed}.pagina-ocupacao table td,.pagina-ocupacao table th{text-align:center}.pagina-ocupacao table td:first-child,.pagina-ocupacao table th:first-child{text-align:left}.pagina-ocupacao table td:last-child,.pagina-ocupacao table th:last-child{width:43%;text-align:left}.pagina-ocupacao table td:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pagina-clientes table{table-layout:fixed}.pagina-clientes table td:first-child,.pagina-clientes table th:first-child{width:50%}.pagina-clientes table td:first-child{overflow:hidden}.pagina-clientes table td:not(:first-child),.pagina-clientes table th:not(:first-child){text-align:center}.pagina-clientes table .acoes-linha{justify-content:center}.pagina-boxes .quadros-grid{grid-template-columns:repeat(4,1fr)}.pagina-boxes .quadro{text-align:center}.pagina-boxes table{table-layout:fixed}.pagina-boxes table td:not(:first-child),.pagina-boxes table th:not(:first-child){text-align:center}.pagina-boxes table .acoes-linha{justify-content:center}.pagina-cobrancas table,.pagina-contratos table,.pagina-recebimentos table,.pagina-seguros table{table-layout:fixed}.pagina-cobrancas table td:not(:first-child),.pagina-cobrancas table th:not(:first-child),.pagina-contratos table td:not(:first-child),.pagina-contratos table th:not(:first-child),.pagina-recebimentos table td:not(:first-child),.pagina-recebimentos table th:not(:first-child),.pagina-seguros table td:not(:first-child),.pagina-seguros table th:not(:first-child){text-align:center}.pagina-cobrancas table td:first-child,.pagina-cobrancas table th:first-child,.pagina-contratos table td:first-child,.pagina-contratos table th:first-child,.pagina-recebimentos table td:first-child,.pagina-recebimentos table th:first-child,.pagina-seguros table td:first-child,.pagina-seguros table th:first-child{width:36%;text-align:left}.pagina-cobrancas table td:first-child,.pagina-contratos table td:first-child,.pagina-recebimentos table td:first-child,.pagina-seguros table td:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pagina-cobrancas table th:last-child,.pagina-contratos table th:last-child,.pagina-recebimentos table th:last-child,.pagina-seguros table th:last-child{width:15%}.pagina-cobrancas table .acoes-linha,.pagina-contratos table .acoes-linha,.pagina-recebimentos table .acoes-linha,.pagina-seguros table .acoes-linha{justify-content:center}.pagina-box-detalhe table,.pagina-cliente-detalhe table,.pagina-cobranca-detalhe table,.pagina-contrato-detalhe table{table-layout:fixed}.pagina-box-detalhe table td,.pagina-box-detalhe table th,.pagina-cliente-detalhe table td,.pagina-cliente-detalhe table th,.pagina-cobranca-detalhe table td,.pagina-cobranca-detalhe table th,.pagina-contrato-detalhe table td,.pagina-contrato-detalhe table th{text-align:center}.pagina-box-detalhe table .acoes-linha,.pagina-cliente-detalhe table .acoes-linha,.pagina-cobranca-detalhe table .acoes-linha,.pagina-contrato-detalhe table .acoes-linha{justify-content:center}.pagina-cliente-detalhe .campo-valor,.pagina-cliente-detalhe .endereco-linha{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pagina-cliente-detalhe .card{min-width:0}.cabecalho-quadro{margin-bottom:.75rem}.cabecalho-quadro,.campo-com-acao{display:flex;justify-content:space-between;align-items:center}.campo-com-acao{gap:.5rem}.pagina-contrato-detalhe .filtros label{font-size:.8rem;font-weight:400;color:var(--texto-suave);margin:0 0 .2rem}.pagina-contrato-detalhe .filtros select{font-size:.8rem;padding:.3rem .5rem;border-radius:var(--raio);width:auto}