:root{--cor-fundo: #F6F5F2;--cor-superficie: #FFFFFF;--cor-superficie-alt: #ECEAE4;--cor-borda: #DAD7CE;--cor-texto: #23262B;--cor-texto-suave: #5C6169;--cor-texto-desabilitado: #9CA0A6;--cor-marca: #A8592E;--cor-marca-hover: #8F4A24;--cor-marca-suave: #F3E3D8;--cor-positivo: #2F7D4F;--cor-positivo-fundo: #E4F1E8;--cor-negativo: #B3402F;--cor-negativo-fundo: #F6E3DF;--cor-atencao: #B8863B;--cor-atencao-fundo: #F5EBD8;--cor-info: #35647D;--cor-info-fundo: #DFEAEF;--status-disponivel: var(--cor-positivo);--status-reservada: var(--cor-atencao);--status-em-corte: var(--cor-info);--status-consumida: var(--cor-texto-desabilitado);--status-retalho: var(--cor-marca);--fonte-display: "Fraunces", Georgia, serif;--fonte-corpo: "Inter", system-ui, sans-serif;--fonte-dado: "IBM Plex Mono", "Courier New", monospace;--raio-sm: 4px;--raio-md: 8px;--raio-lg: 14px;--sombra-card: 0 1px 2px rgba(35,38,43,.06), 0 1px 8px rgba(35,38,43,.04)}.txt-positivo{color:var(--cor-positivo)}.txt-negativo{color:var(--cor-negativo)}.txt-atencao{color:var(--cor-atencao)}.txt-info{color:var(--cor-info)}.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:999px;font-family:var(--fonte-corpo);font-size:12px;font-weight:600}.badge-positivo{background:var(--cor-positivo-fundo);color:var(--cor-positivo)}.badge-negativo{background:var(--cor-negativo-fundo);color:var(--cor-negativo)}.badge-atencao{background:var(--cor-atencao-fundo);color:var(--cor-atencao)}.badge-info{background:var(--cor-info-fundo);color:var(--cor-info)}body{background:var(--cor-fundo);color:var(--cor-texto);font-family:var(--fonte-corpo);margin:0}h1,h2,h3{font-family:var(--fonte-display);font-weight:600;letter-spacing:-.01em}.numero,.m2,code{font-family:var(--fonte-dado);font-variant-numeric:tabular-nums}.app-shell{display:flex;min-height:100vh}.app-sidebar{width:220px;flex-shrink:0;background:var(--cor-superficie);border-right:1px solid var(--cor-borda);display:flex;flex-direction:column;padding:20px 0}.app-sidebar__marca{font-family:var(--fonte-display);font-size:18px;font-weight:600;color:var(--cor-texto);padding:0 20px 20px;border-bottom:1px solid var(--cor-borda);margin-bottom:12px}.app-sidebar nav{display:flex;flex-direction:column;gap:2px;flex:1}.app-sidebar__secao{padding:14px 20px 4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--cor-texto-desabilitado)}.app-sidebar__link{display:block;padding:10px 20px;color:var(--cor-texto-suave);text-decoration:none;font-size:14px;font-weight:500;border-left:3px solid transparent}.app-sidebar__link:hover{background:var(--cor-superficie-alt);color:var(--cor-texto)}.app-sidebar__link.ativo{background:var(--cor-marca-suave);color:var(--cor-marca);border-left-color:var(--cor-marca);font-weight:600}.app-sidebar__rodape{padding:12px 20px 0;border-top:1px solid var(--cor-borda);margin-top:12px}.app-conteudo{flex:1;padding:32px;max-width:100%;overflow-x:auto}.app-conteudo__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:16px;flex-wrap:wrap}.card{background:var(--cor-superficie);border-radius:var(--raio-md);box-shadow:var(--sombra-card);padding:20px}.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:var(--raio-sm);border:1px solid transparent;font-family:var(--fonte-corpo);font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primario{background:var(--cor-marca);color:#fff}.btn-primario:hover:not(:disabled){background:var(--cor-marca-hover)}.btn-secundario{background:none;border-color:var(--cor-borda);color:var(--cor-texto)}.btn-secundario:hover:not(:disabled){background:var(--cor-superficie-alt)}.btn-perigo{background:none;border-color:var(--cor-negativo);color:var(--cor-negativo)}.btn-perigo:hover:not(:disabled){background:var(--cor-negativo-fundo)}.btn-sm{padding:5px 10px;font-size:13px}.campo{margin-bottom:14px}.campo label{display:block;font-size:13px;font-weight:600;color:var(--cor-texto-suave);margin-bottom:4px}.campo input,.campo select,.campo textarea{width:100%;padding:8px 10px;border-radius:var(--raio-sm);border:1px solid var(--cor-borda);font-family:var(--fonte-corpo);font-size:14px;box-sizing:border-box;background:var(--cor-superficie);color:var(--cor-texto)}.campo input:focus,.campo select:focus,.campo textarea:focus{outline:2px solid var(--cor-marca);outline-offset:-1px}.campo-linha{display:flex;gap:12px}.campo-linha .campo{flex:1}.campo-erro{color:var(--cor-negativo);font-size:12px;margin-top:4px}.tabela-wrap{overflow-x:auto}table.tabela{width:100%;border-collapse:collapse;font-size:14px}table.tabela th{text-align:left;padding:10px 12px;color:var(--cor-texto-suave);font-size:12px;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--cor-borda);white-space:nowrap}table.tabela td{padding:10px 12px;border-bottom:1px solid var(--cor-borda);vertical-align:middle}table.tabela tbody tr:hover{background:var(--cor-superficie-alt)}table.tabela tbody tr:last-child td{border-bottom:none}.tabela-vazia{padding:40px 20px;text-align:center;color:var(--cor-texto-suave)}.thumb-foto{width:40px;height:40px;border-radius:var(--raio-sm);object-fit:cover;background:var(--cor-superficie-alt);display:block}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#23262b73;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto;z-index:100}.modal-painel{background:var(--cor-superficie);border-radius:var(--raio-lg);box-shadow:var(--sombra-card);width:100%;max-width:520px;padding:24px}.modal-painel__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.modal-painel__header h2{margin:0;font-size:18px}.modal-fechar{background:none;border:none;font-size:20px;line-height:1;cursor:pointer;color:var(--cor-texto-suave);padding:4px}.modal-acoes{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid var(--cor-borda)}.badge-neutro{background:var(--cor-superficie-alt);color:var(--cor-texto-suave)}.badge-marca{background:var(--cor-marca-suave);color:var(--cor-marca)}
