:root{--esc: #14161A;--esc2: #23262D;--azul: #3159C4;--azul-cl: #E8EEFD;--lar: #F2621F;--lar-cl: #FDECE3;--verde: #1E9E5A;--verde-cl: #E3F8EC;--verm: #DC3545;--verm-cl: #FCE3DE;--amar: #D97706;--amar-cl: #FEF3C7;--cinza: #8A8F98;--cinza2: #5B606A;--borda: #E1E4E9;--fundo: #F2F3F5;--branco: #fff}*{box-sizing:border-box}html,body{margin:0;background:var(--fundo);color:var(--esc);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-user-select:none;user-select:none}input,textarea,select{-webkit-user-select:text;user-select:text;font-size:16px;font-family:inherit;color:inherit}button{font-family:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.app{max-width:560px;margin:0 auto;min-height:100vh;padding-bottom:84px}.topo{background:var(--esc);color:#fff;padding:12px 16px 14px;position:sticky;top:0;z-index:20}.topo-l1{display:flex;align-items:center;justify-content:space-between;gap:8px}.topo-logo{height:22px}.topo-titulo{font-size:13px;color:#c7cbd2;margin-top:8px}.topo-obra{font-weight:700;font-size:17px;color:#fff}.chip-user{background:var(--esc2);color:#e6e8ec;border:0;border-radius:999px;padding:6px 12px;font-size:13px}.faixa-teste{background:var(--lar);color:#fff;text-align:center;font-size:12px;font-weight:700;padding:4px 8px;letter-spacing:.3px}.nav{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--borda);display:flex;justify-content:center;z-index:30;padding-bottom:env(safe-area-inset-bottom)}.nav-in{display:flex;width:100%;max-width:560px}.nav button{flex:1;background:none;border:0;padding:9px 0 10px;color:var(--cinza);font-size:12px;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:3px}.nav button.ativo{color:var(--azul)}.nav svg{width:22px;height:22px}.sec{padding:12px 16px 0}.card{background:#fff;border:1px solid var(--borda);border-radius:14px;padding:14px}.card+.card{margin-top:10px}.titulo-sec{font-size:13px;font-weight:700;color:var(--cinza2);text-transform:uppercase;letter-spacing:.4px;margin:18px 0 8px}.linha{display:flex;align-items:center;gap:8px}.entre{justify-content:space-between}.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}.muted{color:var(--cinza);font-size:13px}.pequeno{font-size:12px}.negrito{font-weight:700}.flex1{flex:1;min-width:0}.btn{border:0;border-radius:12px;padding:12px 14px;font-weight:700;font-size:15px;background:var(--azul);color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn:disabled{opacity:.5}.btn-sec{background:#fff;color:var(--esc);border:1px solid var(--borda)}.btn-verde{background:var(--verde)}.btn-perigo{background:#fff;color:var(--verm);border:1px solid #F3C2C7}.btn-esc{background:var(--esc)}.btn-peq{padding:8px 11px;font-size:13px;border-radius:10px}.btn-bloco{width:100%}.btn-icone{background:none;border:0;padding:6px;color:var(--cinza2);display:inline-flex}.grade-btn{display:grid;grid-template-columns:1fr 1fr;gap:8px}.campo{display:block;margin-top:12px}.campo>span{display:block;font-size:13px;font-weight:600;color:var(--cinza2);margin-bottom:5px}.inp{width:100%;border:1px solid var(--borda);border-radius:10px;padding:11px 12px;background:#fff;outline:none}.inp:focus{border-color:var(--azul)}select.inp{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,#8A8F98 50%),linear-gradient(135deg,#8A8F98 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:30px}textarea.inp{min-height:64px;resize:vertical}.duas{display:grid;grid-template-columns:1fr 1fr;gap:10px}.check{display:flex;gap:10px;align-items:center;padding:10px 0;font-size:15px}.check input{width:22px;height:22px;accent-color:var(--azul)}.sel-semana{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid var(--borda);border-radius:14px;padding:6px}.sel-semana button{background:var(--fundo);border:0;border-radius:10px;width:40px;height:40px;font-size:20px;color:var(--esc)}.sel-semana button:disabled{opacity:.3}.sel-semana .meio{text-align:center}.sel-semana .meio b{display:block;font-size:16px}.dias{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-top:10px}.dia{background:#fff;border:1px solid var(--borda);border-radius:12px;padding:7px 0;text-align:center;font-size:12px;color:var(--cinza2)}.dia b{display:block;font-size:16px;color:var(--esc)}.dia.sel{background:var(--azul);border-color:var(--azul);color:#dce4fa}.dia.sel b{color:#fff}.dia.hoje:not(.sel){border-color:var(--azul)}.dia.fer{background:repeating-linear-gradient(45deg,#fff,#fff 5px,#f2f3f5 5px 10px)}.dia .ponto{display:block;width:6px;height:6px;border-radius:3px;margin:3px auto 0;background:transparent}.dia .ponto.ok{background:var(--verde)}.dia.sel .ponto.ok{background:#9ff0c3}.kpis{display:grid;grid-template-columns:1fr 1fr;gap:8px}.kpi{background:#fff;border:1px solid var(--borda);border-radius:14px;padding:12px}.kpi .v{font-size:26px;font-weight:800;letter-spacing:-.5px}.kpi .r{font-size:12px;color:var(--cinza);font-weight:600}.kpi .s{font-size:12px;color:var(--cinza2);margin-top:2px}.barra{height:8px;background:var(--fundo);border-radius:4px;overflow:hidden;margin-top:8px}.barra>i{display:block;height:100%;border-radius:4px}.ativ{background:#fff;border:1px solid var(--borda);border-radius:14px;padding:12px;margin-top:10px}.ativ.feita{border-color:#bfe8cf}.ativ-top{display:flex;gap:10px;align-items:flex-start}.ativ-cod{background:var(--esc);color:#fff;font-weight:800;border-radius:8px;min-width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:13px}.ativ-linha{font-size:11px;font-weight:700;color:var(--azul);text-transform:uppercase;letter-spacing:.4px}.ativ-desc{font-size:15px;font-weight:700;margin-top:1px}.ativ-sub{font-size:12px;color:var(--cinza2);margin-top:2px}.pill{display:inline-block;font-size:11px;font-weight:700;border-radius:999px;padding:3px 8px;white-space:nowrap}.grade{display:grid;grid-template-columns:34px repeat(6,1fr);gap:4px;margin-top:10px;align-items:center}.grade .rot{font-size:10px;font-weight:700;color:var(--cinza)}.cel{height:26px;border-radius:7px;background:var(--fundo);display:flex;align-items:center;justify-content:center;font-size:13px;color:#fff;border:0;padding:0}.cel.prev{background:#b9c8f0}.cel.real{background:var(--verde)}.cel.real-fora{background:#6cc995}.cel.alvo{outline:2px solid var(--azul);outline-offset:1px}.cel.fer{background:repeating-linear-gradient(45deg,#f2f3f5,#f2f3f5 4px,#e1e4e9 4px 8px)}.grade .cab{font-size:10px;text-align:center;color:var(--cinza);font-weight:600}.toggle-dia{margin-top:10px;width:100%;border-radius:12px;padding:12px;font-weight:700;font-size:15px;border:2px dashed #C9CED6;background:#fff;color:var(--cinza2);display:flex;align-items:center;justify-content:center;gap:8px}.toggle-dia.on{border:2px solid var(--verde);background:var(--verde-cl);color:var(--verde)}.acoes-ativ{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.motivo-box{margin-top:10px;background:#fff8f1;border:1px solid #F8DCC6;border-radius:12px;padding:10px}.veu{position:fixed;inset:0;background:#14161a8c;z-index:50;display:flex;align-items:flex-end;justify-content:center}.folha{background:#fff;width:100%;max-width:560px;max-height:92vh;overflow-y:auto;border-radius:18px 18px 0 0;padding:16px 16px calc(20px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}.folha-cab{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.folha-cab h3{margin:0;font-size:18px}.toast{position:fixed;left:50%;transform:translate(-50%);top:calc(12px + env(safe-area-inset-top));background:var(--esc);color:#fff;padding:10px 16px;border-radius:12px;font-size:14px;z-index:80;max-width:90vw;text-align:center;box-shadow:0 6px 24px #0003}.toast.erro{background:var(--verm)}.login{min-height:100vh;background:radial-gradient(120% 80% at 50% 0%,#2a3350,#14161a 60%);color:#fff;display:flex;flex-direction:column;justify-content:center;padding:28px 20px}.login-in{max-width:420px;width:100%;margin:0 auto}.login h1{font-size:26px;margin:18px 0 4px}.login p{color:#aeb4bf;margin:0 0 24px}.cartao-papel{width:100%;display:flex;align-items:center;gap:14px;text-align:left;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);color:#fff;border-radius:16px;padding:16px;margin-top:10px}.cartao-papel.sel{border-color:#7c9bff;background:#3159c440}.cartao-papel .ic{width:44px;height:44px;border-radius:12px;background:var(--azul);display:flex;align-items:center;justify-content:center}.cartao-papel b{display:block;font-size:16px}.cartao-papel small{color:#aeb4bf}.login .inp{background:#ffffff14;border-color:#ffffff2e;color:#fff}.erro-txt{color:#ff8c96;font-size:14px;margin-top:10px}.graf-barras .item{margin-top:10px}.graf-barras .item .linha{font-size:13px}.vazio{text-align:center;color:var(--cinza);padding:30px 10px;font-size:14px}.fotos{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:10px}.fotos img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;background:var(--fundo)}.lista-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.chip{background:var(--fundo);border-radius:999px;padding:6px 6px 6px 12px;font-size:13px;display:inline-flex;align-items:center;gap:4px}.chip button{background:#fff;border:0;border-radius:999px;width:22px;height:22px;color:var(--verm);font-weight:700}.item-crono{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--borda);align-items:flex-start}.item-crono input{width:22px;height:22px;margin-top:2px;accent-color:var(--azul);flex:none}#relatorio-impressao{display:none}@media print{@page{size:A4 landscape;margin:8mm}html,body{background:#fff!important}#root{display:none!important}#relatorio-impressao{display:block!important;font-size:10px;color:#000}#relatorio-impressao table{width:100%;border-collapse:collapse}#relatorio-impressao th,#relatorio-impressao td{border:1px solid #888;padding:3px 4px}#relatorio-impressao th{background:#14161a!important;color:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}#relatorio-impressao .p{background:#b9c8f0!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}#relatorio-impressao .r{background:#a6e0bf!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;text-align:center}#relatorio-impressao img{width:120px;height:90px;object-fit:cover;margin:2px}}.abertura{position:fixed;inset:0;z-index:200;background:radial-gradient(120% 80% at 50% 0%,#2a3350,#14161a 62%);color:#fff;display:flex;align-items:center;justify-content:center;transition:opacity .4s ease,transform .4s ease}.abertura.saindo{opacity:0;transform:scale(1.04);pointer-events:none}.abertura-in{width:100%;max-width:360px;padding:0 28px;text-align:center}.ab-logo{height:30px;opacity:0;animation:ab-sobe .5s ease forwards}.ab-ppc{font-size:84px;font-weight:900;letter-spacing:6px;line-height:1;margin-top:22px}.ab-ppc span{display:inline-block;opacity:0;transform:translateY(24px) scale(.8);animation:ab-letra .5s cubic-bezier(.2,1.4,.4,1) forwards;background:linear-gradient(180deg,#fff 30%,#9fb4f2);-webkit-background-clip:text;background-clip:text;color:transparent}.ab-sub{color:#aeb4bf;font-size:14px;margin-top:8px;opacity:0;animation:ab-sobe .5s ease .7s forwards}.ab-grade{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:30px}.ab-dia i{display:flex;align-items:center;justify-content:center;height:34px;border-radius:9px;background:#ffffff14;border:1px solid rgba(255,255,255,.12);color:transparent;animation:ab-marca .35s ease forwards}.ab-dia small{display:block;color:#8a8f98;font-size:10px;margin-top:4px}.ab-barra{height:6px;border-radius:3px;background:#ffffff1a;margin-top:22px;overflow:hidden}.ab-barra i{display:block;height:100%;width:0;background:linear-gradient(90deg,#3159c4,#f2621f);border-radius:3px;animation:ab-enche 1.6s cubic-bezier(.4,0,.2,1) .9s forwards}.ab-pct{margin-top:8px;font-size:12px;color:#8a8f98;opacity:0;animation:ab-sobe .4s ease 1.6s forwards}@keyframes ab-sobe{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes ab-letra{to{opacity:1;transform:none}}@keyframes ab-marca{to{background:#1e9e5a;border-color:#1e9e5a;color:#fff;transform:scale(1.06)}}@keyframes ab-enche{to{width:100%}}@media(prefers-reduced-motion:reduce){.abertura *{animation-duration:.01s!important;animation-delay:0s!important}}.btn-atualizar{width:36px;height:34px;padding:0;display:inline-flex;align-items:center;justify-content:center}.btn-atualizar:disabled{opacity:.7}.btn-atualizar.girando svg{animation:gira .8s linear infinite}@keyframes gira{to{transform:rotate(360deg)}}
