:root{
  --azul:#1e50a2;
  --azul-escuro:#13315f;
  --azul-hover:#24427a;
  --azul-claro:#eaf1fb;
  --texto:#1a2233;
  --cinza:#6b7280;
  --borda:#e6e8ec;
  --fundo:#f4f6fa;
  --sidebar-w:250px;
  --sidebar-w-recolhido:64px;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--texto);background:var(--fundo);}

/* LOGIN */
.login-body{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--azul),var(--azul-escuro));}
.login-card{background:#fff;padding:40px;border-radius:14px;box-shadow:0 10px 40px rgba(0,0,0,.15);width:100%;max-width:360px;text-align:center;}
.login-logo{width:56px;height:56px;border-radius:14px;background:var(--azul);color:#fff;font-size:28px;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;}
.login-card h1{font-size:22px;margin-bottom:4px;}
.login-sub{color:var(--cinza);font-size:14px;margin-bottom:24px;}
.login-card form{text-align:left;}
label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:#374151;}
input{width:100%;padding:11px 12px;border:1px solid #d1d5db;border-radius:9px;font-size:15px;margin-bottom:16px;}
input:focus{outline:none;border-color:var(--azul);box-shadow:0 0 0 3px var(--azul-claro);}
button{width:100%;padding:12px;background:var(--azul);color:#fff;border:none;border-radius:9px;font-size:15px;font-weight:600;cursor:pointer;}
button:hover{background:var(--azul-escuro);}
.erro{background:#fef2f2;color:#b91c1c;padding:10px 12px;border-radius:9px;font-size:14px;margin-bottom:16px;}

/* SHELL */
.app{display:flex;min-height:100vh;}
.sidebar{width:var(--sidebar-w);background:var(--azul-escuro);color:#e8eefb;display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:0;transition:width .18s ease;}
.conteudo{flex:1;margin-left:var(--sidebar-w);transition:margin-left .18s ease;display:flex;flex-direction:column;min-height:100vh;}
.usuario{display:flex;align-items:center;gap:12px;padding:18px 16px;border-bottom:1px solid rgba(255,255,255,.08);}
.avatar{width:40px;height:40px;flex:0 0 40px;border-radius:50%;background:var(--azul);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;}
.usuario-info{overflow:hidden;}
.usuario-nome{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.usuario-cargo{font-size:12px;color:#9db4dd;}
.nav{flex:1;overflow-y:auto;padding:12px 0;}
.nav-grupo{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#7e97c4;padding:14px 18px 6px;}
.nav-item{display:flex;align-items:center;gap:12px;padding:10px 18px;color:#dbe6fb;text-decoration:none;font-size:14px;border-left:3px solid transparent;}
.nav-item:hover{background:var(--azul-hover);}
.nav-icone{width:22px;text-align:center;font-size:16px;flex:0 0 22px;}
.nav-label{white-space:nowrap;overflow:hidden;}
.sidebar-rodape{border-top:1px solid rgba(255,255,255,.08);padding:8px 0;}
.rodape-btn{display:flex;align-items:center;gap:12px;width:100%;padding:11px 18px;background:none;border:none;color:#dbe6fb;font-size:14px;cursor:pointer;text-decoration:none;text-align:left;}
.rodape-btn:hover{background:var(--azul-hover);}
.topo{height:56px;background:#fff;border-bottom:1px solid var(--borda);display:flex;align-items:center;gap:16px;padding:0 22px;position:sticky;top:0;z-index:5;}
.voltar{color:var(--azul);text-decoration:none;font-size:14px;font-weight:600;}
.topo-titulo{font-weight:600;}
.pagina{padding:28px 26px;}
.pagina-titulo{font-size:22px;margin-bottom:4px;}
.pagina-sub{color:var(--cinza);margin-bottom:24px;}
.secao{margin-bottom:26px;}
.secao-titulo{font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--cinza);margin-bottom:12px;font-weight:700;}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;}
.card{background:#fff;border:1px solid var(--borda);border-radius:12px;padding:20px;text-decoration:none;color:var(--texto);display:flex;flex-direction:column;gap:10px;transition:border-color .15s,box-shadow .15s,transform .1s;}
.card:hover{border-color:var(--azul);box-shadow:0 6px 20px rgba(30,80,162,.12);transform:translateY(-2px);}
.card-icone{font-size:28px;}
.card-nome{font-weight:600;font-size:15px;}
.vazio{color:var(--cinza);}
.em-breve{text-align:center;padding:60px 20px;color:var(--cinza);}
.em-breve-icone{font-size:52px;margin-bottom:12px;}
.em-breve h1{color:var(--texto);margin-bottom:8px;}

/* RECOLHIDO */
.app.recolhido .sidebar{width:var(--sidebar-w-recolhido);}
.app.recolhido .conteudo{margin-left:var(--sidebar-w-recolhido);}
.app.recolhido .nav-label,.app.recolhido .usuario-info,.app.recolhido .nav-grupo{display:none;}
.app.recolhido .usuario{justify-content:center;}
.app.recolhido .nav-item,.app.recolhido .rodape-btn{justify-content:center;padding-left:0;padding-right:0;}

/* ADMIN */
.painel-admin{max-width:900px;}
.bloco{background:#fff;border:1px solid var(--borda);border-radius:12px;padding:22px;margin-bottom:20px;}
.bloco h2{font-size:16px;margin-bottom:16px;}
.form-linha{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;}
.campo{display:flex;flex-direction:column;gap:6px;}
.campo label{margin:0;}
.campo input,.campo select{margin:0;min-width:170px;}
.btn{display:inline-block;padding:10px 16px;background:var(--azul);color:#fff;border:none;border-radius:9px;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;width:auto;}
.btn:hover{background:var(--azul-escuro);}
.btn-sec{background:#eef1f6;color:var(--texto);}
.btn-sec:hover{background:#e0e5ee;}
.tabela{width:100%;border-collapse:collapse;}
.tabela th,.tabela td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--borda);font-size:14px;}
.tabela th{color:var(--cinza);font-size:12px;text-transform:uppercase;letter-spacing:.04em;}
.tag{display:inline-block;padding:2px 9px;border-radius:20px;font-size:12px;font-weight:600;}
.tag-ok{background:#e7f6ec;color:#1a7f43;}
.tag-off{background:#fdeaea;color:#b91c1c;}
.check-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin-bottom:16px;}
.check-item{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--borda);border-radius:9px;font-size:14px;}
.check-item input{width:auto;margin:0;}
.grupo-label{font-size:12px;text-transform:uppercase;color:var(--cinza);font-weight:700;margin:14px 0 8px;}
.msg-ok{background:#e7f6ec;color:#1a7f43;padding:10px 12px;border-radius:9px;margin-bottom:16px;font-size:14px;}

/* MÓDULO OP */
.op-topo{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;flex-wrap:wrap;}
.op-filtros{display:flex;gap:8px;flex-wrap:wrap;}
.chip{padding:6px 13px;border-radius:20px;border:1px solid var(--borda);background:#fff;color:var(--texto);text-decoration:none;font-size:13px;}
.chip:hover{border-color:var(--azul);}
.chip-on{background:var(--azul);color:#fff;border-color:var(--azul);}
.op-contagem{color:var(--cinza);font-size:14px;}
.op-lista{display:flex;flex-direction:column;gap:10px;}
.op-card{display:flex;align-items:stretch;background:#fff;border:1px solid var(--borda);border-radius:12px;overflow:hidden;}
.op-sit{flex:0 0 92px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:12px;text-align:center;padding:0 6px;}
.sit-atrasada{background:#e11d48;}
.sit-proxima{background:#f59e0b;}
.sit-ok{background:#16a34a;}
.sit-sem-data{background:#9ca3af;}
.op-info{flex:1;padding:14px 16px;}
.op-linha1{display:flex;align-items:center;gap:10px;margin-bottom:3px;}
.op-produto{font-weight:700;font-size:15px;}
.op-setor{font-size:12px;background:var(--azul-claro);color:var(--azul);padding:2px 9px;border-radius:20px;font-weight:600;}
.op-desc{font-size:14px;margin-bottom:6px;}
.op-meta{color:var(--cinza);font-size:13px;}
.op-prazo{padding:14px 18px;text-align:right;min-width:120px;display:flex;flex-direction:column;justify-content:center;gap:5px;border-left:1px solid var(--borda);}
.op-data{font-weight:600;font-size:14px;}
.op-dias{font-size:12px;font-weight:700;padding:2px 9px;border-radius:20px;}
.op-dias.sit-atrasada{background:#fdeaea;color:#b91c1c;}
.op-dias.sit-proxima{background:#fef3e2;color:#b45309;}
.op-dias.sit-ok{background:#e7f6ec;color:#1a7f43;}
.op-dias.sit-sem-data{background:#eef1f6;color:#6b7280;}
.op-cliente{font-size:13px;color:var(--azul);font-weight:600;margin-bottom:6px;}

/* OP AÇÕES + MODAL */
.op-acoes{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap;}
.op-btn{padding:6px 12px;border:1px solid var(--borda);background:#fff;border-radius:8px;font-size:13px;cursor:pointer;color:var(--azul);font-weight:600;width:auto;}
.op-btn:hover{border-color:var(--azul);background:var(--azul-claro);}
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:50;align-items:center;justify-content:center;padding:20px;}
.modal-overlay.aberto{display:flex;}
.modal-box{background:#fff;border-radius:14px;width:100%;max-width:560px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.25);}
.modal-cabecalho{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--borda);font-weight:700;}
.modal-x{background:none;border:none;font-size:24px;line-height:1;cursor:pointer;color:var(--cinza);width:auto;padding:0;}
.modal-corpo{padding:20px;overflow-y:auto;}
.tabela-modal{width:100%;border-collapse:collapse;font-size:14px;}
.tabela-modal th,.tabela-modal td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--borda);}
.tabela-modal th{color:var(--cinza);font-size:12px;text-transform:uppercase;}
.obs-texto{font-size:15px;white-space:pre-wrap;line-height:1.5;}
.obs-fonte{margin-top:12px;color:var(--cinza);font-size:12px;}

/* OP - lista mais compacta */
.op-info{padding:10px 14px;}
.op-linha1{margin-bottom:1px;}
.op-produto{font-size:14px;}
.op-desc{font-size:13px;margin-bottom:3px;}
.op-cliente{font-size:12px;margin-bottom:3px;}
.op-meta{font-size:12px;}
.op-acoes{margin-top:7px;}
.op-btn{padding:4px 10px;font-size:12px;}
.op-lista{gap:7px;}

/* OP - ainda mais compacta */
.op-info{padding:8px 12px;}
.op-desc{margin-bottom:2px;}
.op-cliente{margin-bottom:2px;}
.op-acoes{margin-top:5px;}
.op-btn{padding:3px 9px;}
.op-lista{gap:5px;}
.op-sit{flex:0 0 80px;font-size:11px;}
.op-prazo{padding:8px 14px;}

/* OP - estados e botões de ação */
.op-acoes form{margin:0;display:inline;}
.btn-iniciar{color:#16a34a;border-color:#bbe7c8;}
.btn-iniciar:hover{background:#e7f6ec;border-color:#16a34a;}
.btn-pausar{color:#b45309;border-color:#f5d9ab;}
.btn-pausar:hover{background:#fef3e2;border-color:#f59e0b;}
.btn-finalizar[disabled]{color:#9ca3af;border-color:var(--borda);cursor:not-allowed;background:#f7f8fa;}
.op-estado{font-size:11px;font-weight:700;padding:2px 9px;border-radius:20px;}
.est-em_producao{background:#e7f6ec;color:#16a34a;}
.est-pausada{background:#fef3e2;color:#b45309;}
.op-card.estado-em_producao{border-left:3px solid #16a34a;}
.op-card.estado-pausada{border-left:3px solid #f59e0b;}

/* OP - apontamento */
.form-apontar label{display:block;margin:10px 0 6px;font-size:13px;font-weight:600;}
.form-apontar input{max-width:200px;}
.aviso-teste{background:#fef3e2;color:#b45309;padding:10px 12px;border-radius:9px;font-size:14px;margin:12px 0;}
.payload{background:#0f172a;color:#e2e8f0;padding:14px;border-radius:9px;font-size:13px;overflow-x:auto;margin-top:12px;white-space:pre-wrap;}
