:root{--marinho:#0d2042;--marinho-2:#1b2f58;--verde:#4cd300;--verde-texto:#2f6b00;--fundo:#f4f7fa;--branco:#ffffff;--texto:#0d2042;--texto-2:#3d4c60;--texto-3:#66748a;--borda:#e2e7ee;--borda-2:#c9d3e0;--erro:#b42318;--erro-fundo:#fef3f2;--ok-fundo:#ecfdf5;--ok-texto:#065f46;--alerta-fundo:#fffaeb;--alerta-texto:#93370d;--raio:12px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--fundo);color:var(--texto);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:Lato,Inter,system-ui,sans-serif;margin:0;letter-spacing:-.01em}h1{font-size:28px}h1,h2{font-weight:900}h2{font-size:18px}a{color:var(--verde-texto)}:focus-visible{outline:3px solid var(--verde);outline-offset:2px}a,button{transition:background-color .15s ease,box-shadow .15s ease,transform .12s ease}button:active{transform:scale(.98)}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.app{display:flex;min-height:100vh}.sidebar{width:248px;flex:none;background:var(--marinho);color:#fff;display:flex;flex-direction:column;gap:4px;padding:20px 12px;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar .logo{padding:4px 10px 16px}.sidebar .loja{margin:0 4px 12px;padding:10px 12px;border-radius:10px;background:var(--marinho-2);font-size:13px}.sidebar .loja strong{display:block;font-size:14px}.sidebar .loja span{color:#b7c3d3}.sidebar .grupo{font-size:11px;font-weight:700;letter-spacing:.08em;color:#8495ad;padding:14px 12px 6px}.sidebar a.item{display:flex;align-items:center;gap:10px;color:#dbe3ee;text-decoration:none;padding:9px 12px;border-radius:8px;font-size:14px;font-weight:600}.sidebar a.item:hover{color:#fff}.sidebar a.item.ativo,.sidebar a.item:hover{background:var(--marinho-2)}.sidebar .rodape{margin-top:auto;padding:12px;font-size:13px;color:#b7c3d3}.sidebar .rodape button{background:none;border:0;color:#dbe3ee;font:inherit;font-weight:600;cursor:pointer;padding:0;text-decoration:underline}.conteudo{flex:1 1;min-width:0;padding:28px 32px 48px}.topo{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}.topo p{margin:4px 0 0;color:var(--texto-3)}.mob-nav{display:none}@media (max-width:860px){.sidebar{display:none}.conteudo{padding:18px 16px 96px}.mob-nav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--marinho);padding:6px 4px calc(6px + env(safe-area-inset-bottom));justify-content:space-around}.mob-nav a{color:#dbe3ee;text-decoration:none;font-size:11px;font-weight:700;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 8px;border-radius:8px;min-width:56px}.mob-nav a.ativo{color:#fff;background:var(--marinho-2)}.mob-nav a.novo{background:var(--verde);color:var(--marinho)}h1{font-size:24px}}.card{background:var(--branco);border:1px solid var(--borda);border-radius:14px;padding:18px}.grade{display:grid;grid-gap:16px;gap:16px}.grade-4{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.grade-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.kpi span{display:block;font-size:13px;color:var(--texto-3);font-weight:600}.kpi strong{font-size:26px;font-weight:800}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 18px;border-radius:10px;border:1px solid var(--borda-2);background:var(--branco);color:var(--marinho);font:inherit;font-weight:700;font-size:14px;cursor:pointer;text-decoration:none;white-space:nowrap}.btn:hover{background:#f7f9fc}.btn-primario{background:var(--verde);border-color:var(--verde);color:var(--marinho)}.btn-primario:hover{background:#45c000}.btn-escuro{background:var(--marinho);border-color:var(--marinho);color:#fff}.btn-escuro:hover{background:var(--marinho-2)}.btn-pequeno{height:34px;padding:0 12px;font-size:13px}.btn-perigo{color:var(--erro)}.btn[disabled]{opacity:.5;cursor:not-allowed}label.campo{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700;color:var(--texto-2)}input,select,textarea{font:inherit;font-size:15px;color:var(--texto);background:#fff;border:1px solid var(--borda-2);border-radius:10px;padding:10px 12px;min-height:44px;width:100%}textarea{min-height:80px;resize:vertical}input:focus,select:focus,textarea:focus{outline:3px solid rgba(76,211,0,.35)}.form{display:flex;flex-direction:column;gap:14px}.linha{display:flex;gap:12px;flex-wrap:wrap}.linha>*{flex:1 1 160px}.tabela{width:100%;border-collapse:collapse;font-size:14px}.tabela th{text-align:left;font-size:12px;color:var(--texto-3);font-weight:700;padding:10px 12px}.tabela td,.tabela th{border-bottom:1px solid var(--borda)}.tabela td{padding:12px;vertical-align:middle}.tabela tr:last-child td{border-bottom:0}.tabela-wrap{overflow-x:auto}.chip{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:700;color:var(--texto-2)}.chip,.chip.aguardando{background:#eef2f7}.chip.lavando{background:#e0f2fe;color:#075985}.chip.secagem{background:#ede9fe;color:#5b21b6}.chip.finalizacao{background:var(--alerta-fundo);color:var(--alerta-texto)}.chip.pronto{background:var(--ok-fundo);color:var(--ok-texto)}.chip.entregue{background:#f1f5f9;color:var(--texto-3)}.chip.cancelada{background:var(--erro-fundo);color:var(--erro)}.placa{font-family:ui-monospace,SF Mono,Menlo,monospace;font-weight:800;letter-spacing:.06em;background:#fff;border:1.5px solid var(--marinho);border-radius:6px;padding:1px 8px;font-size:13px}.aviso{padding:12px 14px;border-radius:10px;font-size:14px}.aviso.erro{background:var(--erro-fundo);color:var(--erro)}.aviso.ok{background:var(--ok-fundo);color:var(--ok-texto)}.vazio{text-align:center;padding:32px 12px}.muted,.vazio{color:var(--texto-3)}.patio{display:grid;grid-template-columns:repeat(5,minmax(220px,1fr));grid-gap:14px;gap:14px;overflow-x:auto;padding-bottom:8px}.coluna{background:#e9eef4;border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:10px;min-height:200px}.coluna h3{font-size:14px;display:flex;justify-content:space-between}.os-card{background:#fff;border-radius:12px;border:1px solid var(--borda);padding:12px;display:flex;flex-direction:column;gap:8px;text-decoration:none;color:inherit}.os-card:hover{box-shadow:0 2px 10px rgba(13,32,66,.08)}.fotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));grid-gap:10px;gap:10px}.fotos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;border:1px solid var(--borda)}.auth{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth .marca{background:var(--marinho);color:#fff;display:flex;flex-direction:column;justify-content:center;gap:24px;padding:48px}.auth .marca p{color:#b7c3d3;font-size:18px;max-width:420px;margin:0}.auth .lado{display:flex;align-items:center;justify-content:center;padding:32px 20px}.auth .caixa{width:100%;max-width:400px;display:flex;flex-direction:column;gap:18px}@media (max-width:860px){.auth{grid-template-columns:1fr}.auth .marca{padding:28px 20px;gap:12px}.auth .marca p{font-size:15px}}:root{--sombra:0 1px 2px rgba(13,32,66,.05),0 6px 20px rgba(13,32,66,.06);--sombra-forte:0 10px 30px rgba(13,32,66,.18)}body{background:#F1F4F8}.principal{flex:1 1;min-width:0;display:flex;flex-direction:column}.conteudo{max-width:1240px;width:100%;margin:0 auto}.card{border:1px solid #e6ebf2;border-radius:18px;box-shadow:var(--sombra);padding:20px}.btn{border-radius:12px;min-height:44px}.btn-primario{box-shadow:0 4px 14px rgba(76,211,0,.35)}.btn-pequeno{min-height:36px;height:36px;border-radius:10px}input,select,textarea{border-radius:12px}.chip{height:26px}.topo h1{font-size:30px}.sidebar{padding:20px 14px;gap:2px}.sidebar .loja{display:flex;gap:10px;align-items:center;border-radius:14px;padding:12px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08)}.sidebar .loja div{min-width:0}.sidebar .loja span,.sidebar .loja strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.avatar{width:38px;height:38px;flex:none;border-radius:12px;background:var(--verde);color:var(--marinho);display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:14px}.avatar.pequeno{width:32px;height:32px;border-radius:999px;background:var(--marinho-2);color:#fff;font-size:12px}.sidebar a.item{border-radius:10px;padding:10px 12px;gap:12px;color:#C9D3E0}.sidebar a.item svg{opacity:.85;flex:none}.sidebar a.item.ativo{background:rgba(76,211,0,.14);color:#fff;box-shadow:inset 3px 0 0 var(--verde)}.sidebar a.item.ativo svg{color:var(--verde);opacity:1}.sidebar .rodape{display:flex;align-items:center;gap:10px;border-top:1px solid rgba(255,255,255,.1);padding:14px 6px 0;color:#fff;font-weight:600}.sidebar .rodape button{text-decoration:none;display:flex;padding:8px;border-radius:8px;color:#B7C3D3}.sidebar .rodape button:hover{background:var(--marinho-2);color:#fff}.topo-mob{display:none}.saudacao{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:18px}.saudacao span{color:var(--texto-3);font-size:14px;text-transform:capitalize}.saudacao h1{font-size:30px}.heroi{background:linear-gradient(135deg,#0D2042,#17346B);color:#fff;border-radius:22px;padding:24px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;box-shadow:var(--sombra-forte);position:relative;overflow:hidden}.heroi:after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(76,211,0,.35),transparent 70%);pointer-events:none}.heroi .rotulo{color:#B7C3D3;font-size:13px;font-weight:600}.heroi .valor{font-family:Lato,sans-serif;font-weight:900;font-size:40px;line-height:1.1;letter-spacing:-.02em}.heroi .sub{color:#B7C3D3;font-size:13px;margin-top:4px}.heroi .sub b{color:var(--verde)}.heroi .mini{display:flex;gap:28px;position:relative;z-index:1}.heroi .mini div strong{display:block;font-size:22px;font-weight:800}.heroi .mini div span{color:#B7C3D3;font-size:12px}.atalhos{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px;margin:18px 0}.atalho{background:#fff;border:1px solid #e6ebf2;border-radius:16px;padding:14px 8px;display:flex;flex-direction:column;align-items:center;gap:8px;text-decoration:none;color:var(--marinho);font-weight:700;font-size:13px;box-shadow:var(--sombra);text-align:center}.atalho:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(13,32,66,.12)}.atalho i{width:46px;height:46px;border-radius:14px;justify-content:center}.atalho i,.secao-titulo{display:flex;align-items:center}.secao-titulo{justify-content:space-between;margin:22px 0 12px}.secao-titulo a{font-size:13px;font-weight:700;text-decoration:none;display:inline-flex;align-items:center;gap:2px}.etapas{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:10px;gap:10px}.etapa{border-radius:16px;padding:14px 10px;display:flex;flex-direction:column;align-items:center;gap:4px;text-decoration:none;border:1px solid transparent}.etapa strong{font-size:26px;font-weight:800;line-height:1}.etapa span{font-size:12px;font-weight:700}.etapa:hover{border-color:currentColor}.lista{display:flex;flex-direction:column;gap:10px}.linha-os{background:#fff;border:1px solid #e6ebf2;border-radius:16px;padding:14px 16px;display:flex;align-items:center;gap:14px;text-decoration:none;color:inherit;box-shadow:var(--sombra)}.linha-os:hover{border-color:var(--borda-2)}.linha-os .bolinha{width:42px;height:42px;border-radius:12px;flex:none;display:flex;align-items:center;justify-content:center}.linha-os .meio{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.linha-os .meio small{color:var(--texto-3);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.linha-os .fim{text-align:right;display:flex;flex-direction:column;gap:2px;align-items:flex-end}.vazio-bonito{background:#fff;border:1.5px dashed var(--borda-2);padding:32px 16px;flex-direction:column;gap:10px;text-align:center}.vazio-bonito,.vazio-bonito i{border-radius:18px;display:flex;align-items:center;color:var(--texto-3)}.vazio-bonito i{width:56px;height:56px;background:#EEF2F7;justify-content:center}.coluna{background:#E8EDF3;border-radius:18px}.coluna h3{align-items:center}.coluna h3 .cab{gap:8px}.coluna h3 .cab,.coluna h3 .cab i{display:inline-flex;align-items:center}.coluna h3 .cab i{width:28px;height:28px;border-radius:9px;justify-content:center}.os-card{border-radius:14px;box-shadow:var(--sombra)}@media (max-width:860px){.topo-mob{display:flex;align-items:center;gap:12px;background:var(--marinho);color:#fff;padding:calc(10px + env(safe-area-inset-top)) 16px 12px;position:-webkit-sticky;position:sticky;top:0;z-index:15}.topo-mob strong{display:block;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topo-mob span{display:block;font-size:12px;color:#B7C3D3}.topo-mob button{background:rgba(255,255,255,.08);border:0;color:#fff;width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;cursor:pointer}.conteudo{padding:18px 16px 110px}.mob-nav{background:#fff;border-top:1px solid #e6ebf2;box-shadow:0 -6px 24px rgba(13,32,66,.08);padding:6px 6px calc(8px + env(safe-area-inset-bottom));align-items:flex-end}.mob-nav a{color:#7A889C;font-size:11px;font-weight:700;gap:3px;min-width:60px;padding:8px 4px 4px;background:none!important}.mob-nav a.ativo{color:var(--marinho)}.mob-nav a.ativo svg{color:var(--verde-texto)}.mob-nav a.fab{color:var(--marinho);margin-top:-26px;padding-top:0}.mob-nav a.fab span{width:58px;height:58px;border-radius:50%;background:var(--verde);color:var(--marinho);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px rgba(76,211,0,.45);border:4px solid #f1f4f8}.saudacao h1,.topo h1{font-size:24px}.saudacao .btn{display:none}.heroi{padding:20px;border-radius:20px}.heroi .valor{font-size:34px}.heroi .mini{width:100%;justify-content:space-between;gap:12px;border-top:1px solid rgba(255,255,255,.12);padding-top:14px}.atalhos{gap:8px}.atalho{padding:12px 4px;font-size:12px;border-radius:14px}.etapas{display:flex;overflow-x:auto;margin:0 -16px;padding:0 16px 4px;scrollbar-width:none}.etapas::-webkit-scrollbar{display:none}.etapa{min-width:96px;flex:none}.card{padding:16px;border-radius:16px}.patio{grid-template-columns:repeat(5,82vw);scroll-snap-type:x mandatory;margin:0 -16px;padding:0 16px 8px}.coluna{scroll-snap-align:center}}.topo{align-items:flex-end}.topo>div:first-child{min-width:0;flex:1 1 320px}.topo p{max-width:640px}.topo .linha{flex:none;flex-wrap:wrap;gap:8px;align-items:center}.topo .linha>*{flex:0 0 auto;width:auto}.topo .linha input[type=date]{width:170px}.card.linha{align-items:flex-end}.card.kpi{position:relative;overflow:hidden;padding:18px 20px}.card.kpi:before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:4px;border-radius:0 4px 4px 0;background:var(--verde)}.kpi strong{font-family:Lato,sans-serif;font-weight:900;font-size:28px;letter-spacing:-.01em}input,select,textarea{background:#FBFCFE;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}input:hover,select:hover,textarea:hover{border-color:#AEBBCB}input:focus,select:focus,textarea:focus{background:#fff;outline:none;border-color:var(--verde-texto);box-shadow:0 0 0 4px rgba(76,211,0,.22)}input::placeholder,textarea::placeholder{color:#9AA7B8}input[type=checkbox],input[type=radio]{width:18px;height:18px;min-height:0;padding:0;accent-color:var(--verde-texto);flex:none;box-shadow:none}.btn:hover{box-shadow:0 2px 8px rgba(13,32,66,.08)}.btn-primario:hover{box-shadow:0 6px 18px rgba(76,211,0,.45)}.btn-escuro{box-shadow:0 4px 12px rgba(13,32,66,.18)}.btn-perigo:hover{background:var(--erro-fundo);border-color:#f3b7b1}.tabela th{text-transform:uppercase;letter-spacing:.05em;font-size:11px;background:#F8FAFC}.tabela th:first-child{border-radius:10px 0 0 0}.tabela th:last-child{border-radius:0 10px 0 0}.tabela tbody tr:hover td{background:#F8FAFC}.tabela td a{font-weight:700;text-decoration:none}.tabela td a:hover{text-decoration:underline}.vazio{padding:36px 16px;border:1.5px dashed var(--borda-2);border-radius:14px;background:#FAFBFD}.aviso{border:1px solid transparent;border-radius:12px}.aviso.erro{border-color:#f6cfca}.aviso.ok{border-color:#bfe8d5}.grade-2{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr))}.conteudo>*{animation:entra .22s ease both}@keyframes entra{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (max-width:860px){.topo{align-items:stretch}.topo .linha,.topo>.btn,.topo>a.btn{width:100%}.topo .linha>*{flex:1 1 auto}.card{padding:16px;border-radius:16px}}