:root{--color-bg:#f8fafc;--color-surface:#fff;--color-primary:#0f172a;--color-primary-dark:#020617;--color-primary-light:#2563eb;--color-accent:#2563eb;--color-accent-dark:#1d4ed8;--color-accent-light:#eff6ff;--color-sidebar:#0f172a;--color-sidebar-hover:#1e293b;--color-sidebar-text:#94a3b8;--color-sidebar-text-active:#fff;--color-text:#0f172a;--color-text-muted:#64748b;--color-border:#e2e8f0;--color-danger:#dc2626;--color-danger-bg:#fef2f2;--color-success:#16a34a;--color-success-bg:#f0fdf4;--color-warning:#d97706;--color-warning-bg:#fffbeb;--radius-sm:6px;--radius:10px;--radius-lg:12px;--shadow-sm:0 1px 3px #0000000d, 0 1px 2px #00000008;--shadow-md:0 4px 6px -1px #00000012, 0 2px 4px -2px #0000000a;--font-heading:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Inter", "Helvetica Neue", Arial, sans-serif;--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Inter", "Helvetica Neue", Arial, sans-serif;font-family:var(--font-body);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;margin:0}#root{min-height:100svh}a{color:inherit}h1,h2,h3{font-family:var(--font-heading);color:var(--color-primary);letter-spacing:-.02em;margin:0 0 12px;font-weight:700}h1{font-size:24px;line-height:1.25}h2{font-size:18px;line-height:1.3}h3{margin-bottom:10px;font-size:15px}button{cursor:pointer;font-family:inherit}input,select,textarea,button{font-size:14px}.btn{border-radius:var(--radius-sm);background:var(--color-primary-light);color:#fff;letter-spacing:.01em;border:none;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-size:13.5px;font-weight:600;transition:all .15s;display:inline-flex}.btn:hover{background:#1d4ed8}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--color-primary-light);color:#fff}.btn.primary:hover{background:#1d4ed8}.btn.secondary{color:#1e293b;border:1px solid var(--color-border);background:#fff}.btn.secondary:hover{background:#f1f5f9;border-color:#cbd5e1}.btn.danger{background:var(--color-danger)}.btn.danger:hover{background:#b91c1c}.btn:disabled{opacity:.5;cursor:not-allowed}.card{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);padding:22px}.field{flex-direction:column;gap:4px;margin-bottom:14px;display:flex}.field label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:12.5px;font-weight:600}.field input,.field select,.field textarea{border-radius:var(--radius-sm);border:1px solid var(--color-border);color:var(--color-text);background:#fff;padding:9px 12px;font-family:inherit;transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--color-primary-light);outline:none;box-shadow:0 0 0 3px #0f2a451a}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--color-border);padding:12px;font-size:14px}th{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:2px solid var(--color-border);font-size:11.5px;font-weight:600}tr:hover td{background:#f8f9fb}.badge{text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border-radius:999px;padding:3px 11px;font-size:11.5px;font-weight:700;display:inline-block}.badge.ativo,.badge.pendente{color:var(--color-primary);background:#e5edf7}.badge.pago,.badge.concluido,.badge.assinado{background:var(--color-success-bg);color:var(--color-success)}.badge.atrasado,.badge.arquivado,.badge.recusado{background:var(--color-danger-bg);color:var(--color-danger)}.badge.provisionado{background:var(--color-warning-bg);color:var(--color-warning)}.grid{gap:16px;display:grid}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-4{grid-template-columns:repeat(4,1fr)}@media (width<=1024px){.grid.cols-4{grid-template-columns:repeat(2,1fr)}}@media (width<=720px){.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}}.table-responsive{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;background:#080f1a8c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{border-radius:var(--radius-lg);box-shadow:var(--shadow-md);background:#fff;width:100%;max-width:520px;max-height:90vh;padding:26px;overflow-y:auto}.empty-state{text-align:center;color:var(--color-text-muted);padding:40px 20px}.error-text{color:var(--color-danger);margin:4px 0 12px;font-size:14px}.row{align-items:center;gap:10px;display:flex}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.kanban-board{align-items:start;gap:16px;padding-bottom:10px;display:flex;overflow-x:auto}.kanban-column{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex:0 0 280px;width:280px;min-height:200px;padding:14px}.kanban-column.prazo-vermelho{border-top:4px solid var(--color-danger)}.kanban-column.prazo-amarelo{border-top:4px solid var(--color-warning)}.kanban-column.prazo-verde{border-top:4px solid var(--color-success)}.kanban-column-header{font-family:var(--font-heading);color:var(--color-primary);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-bottom:12px;padding:4px 6px 14px;font-weight:700;display:flex}.kanban-card{border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);cursor:grab;background:#fff;margin-bottom:10px;padding:12px 14px}.kanban-card:active{cursor:grabbing}.kanban-card-meta{color:var(--color-text-muted);margin-top:3px;font-size:12.5px}.kanban-card-actions{border-top:1px solid var(--color-border);flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:10px;display:flex}.kanban-card-actions .btn,.kanban-card-actions .btn.secondary,.kanban-card-actions .btn.danger{padding:6px 10px;font-size:12.5px}.kanban-column.drag-target{background:#eff6ff;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.badge-overdue{color:#b91c1c;background:#fee2e2;border:1px solid #fca5a5;font-weight:600}.badge-today{color:#b45309;background:#fef3c7;border:1px solid #fcd34d;font-weight:600}.badge-scheduled{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0;font-weight:500}.badge-rotting{color:#be123c;background:#fff1f2;border:1px solid #fecdd3;font-size:11px;font-weight:600}.provisao-chart{border-top:1px solid var(--color-border);align-items:flex-end;gap:6px;height:160px;margin-top:10px;padding-top:10px;display:flex}.provisao-mes{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex}.provisao-bars{justify-content:center;align-items:flex-end;gap:3px;width:100%;height:100%;display:flex}.provisao-bar{border-radius:3px 3px 0 0;width:40%;min-height:2px;transition:height .2s}.provisao-bar-receber{background:var(--color-success)}.provisao-bar-pagar{background:var(--color-danger)}.provisao-futuro .provisao-bar{opacity:.4}.provisao-label{color:var(--color-text-muted);text-transform:uppercase;margin-top:6px;font-size:11px}.provisao-futuro .provisao-label{font-style:italic}.app-shell{min-height:100svh;display:flex}.sidebar{background:var(--color-sidebar);width:246px;color:var(--color-sidebar-text);flex-direction:column;flex-shrink:0;padding:20px 14px;display:flex}.brand{color:#fff;align-items:center;gap:10px;padding:6px 10px 22px;text-decoration:none;display:flex}.brand-mark{flex-shrink:0}.brand-name{font-family:var(--font-heading);letter-spacing:.01em;font-size:19px;font-weight:700;line-height:1.1}.brand-name span{color:var(--color-accent)}.nav-group{margin-bottom:4px}.nav-group-label{text-transform:uppercase;letter-spacing:.08em;color:#5f7690;padding:14px 10px 6px;font-size:10.5px;font-weight:700}.nav-link{border-radius:var(--radius-sm);color:var(--color-sidebar-text);align-items:center;gap:10px;margin-bottom:2px;padding:9px 10px;font-size:13.5px;font-weight:500;text-decoration:none;transition:background .12s,color .12s;display:flex}.nav-link:hover{background:var(--color-sidebar-hover);color:#fff}.nav-link.active{background:var(--color-primary-light);color:#fff;font-weight:600}.nav-link svg{opacity:.9;flex-shrink:0}.sidebar-footer{border-top:1px solid #ffffff14;margin-top:auto;padding-top:14px}.sidebar-user{color:#fff;padding:8px 10px;font-size:13px;font-weight:600}.sidebar-user-role{color:var(--color-sidebar-text);font-size:11.5px;font-weight:400;display:block}.topbar{display:none}.main-content{flex:1;min-width:0;padding:28px 32px}@media (width<=860px){.app-shell{flex-direction:column}.topbar{background:var(--color-sidebar);color:#fff;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.sidebar{z-index:40;width:100%;display:none;position:fixed;inset:53px 0 0;overflow-y:auto}.sidebar.open{display:flex}.main-content{padding:18px}}.toast-container{z-index:9999;pointer-events:none;flex-direction:column;gap:10px;width:calc(100% - 40px);max-width:400px;display:flex;position:fixed;top:20px;right:20px}.toast-item{pointer-events:auto;border-radius:var(--radius);color:var(--color-text);border:1px solid var(--color-border);background:#fff;align-items:center;gap:12px;padding:13px 16px;font-size:13.5px;line-height:1.4;transition:transform .2s,opacity .2s;animation:.25s cubic-bezier(.16,1,.3,1) toastSlideIn;display:flex;box-shadow:0 10px 25px -5px #0f172a26,0 8px 10px -6px #0f172a1a}@keyframes toastSlideIn{0%{opacity:0;transform:translate(100%)scale(.95)}to{opacity:1;transform:translate(0)scale(1)}}.toast-icon{flex-shrink:0;justify-content:center;align-items:center;display:flex}.toast-message{flex:1;font-weight:500}.toast-close{color:var(--color-text-muted);cursor:pointer;opacity:.7;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px;transition:opacity .15s,background .15s;display:flex}.toast-close:hover{opacity:1;background:#f1f5f9}.toast-success{border-left:4px solid var(--color-success)}.toast-success .toast-icon{color:var(--color-success)}.toast-error{border-left:4px solid var(--color-danger)}.toast-error .toast-icon{color:var(--color-danger)}.toast-warning{border-left:4px solid var(--color-warning)}.toast-warning .toast-icon{color:var(--color-warning)}.toast-info{border-left:4px solid var(--color-primary-light)}.toast-info .toast-icon{color:var(--color-primary-light)}.confirm-dialog{border-radius:var(--radius-lg);border:1px solid var(--color-border);background:#fff;padding:24px;animation:.2s cubic-bezier(.16,1,.3,1) modalScaleIn;box-shadow:0 20px 25px -5px #0003,0 10px 10px -5px #0000001a}@keyframes modalScaleIn{0%{opacity:0;transform:scale(.95)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.confirm-header{gap:16px;margin-bottom:22px;display:flex}.confirm-icon-badge{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.confirm-icon-badge.danger{background:var(--color-danger-bg);color:var(--color-danger)}.confirm-icon-badge.warning{background:var(--color-warning-bg);color:var(--color-warning)}.confirm-title{color:var(--color-text);font-size:17px;font-weight:600;font-family:var(--font-body);margin:0 0 6px}.confirm-message{color:var(--color-text-muted);margin:0;font-size:14px;line-height:1.5}.confirm-actions{justify-content:flex-end;gap:10px;display:flex}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,#f0f2f5 25%,#e6e9ef 50%,#f0f2f5 75%) 0 0/200% 100%;animation:1.5s infinite skeletonLoading}@keyframes skeletonLoading{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-table{flex-direction:column;gap:12px;width:100%;padding:8px 0;display:flex}.skeleton-row{border-bottom:1px solid var(--color-border);align-items:center;gap:16px;padding:10px 0;display:flex}.skeleton-header{border-bottom:2px solid var(--color-border);padding-bottom:14px}.btn{justify-content:center;align-items:center;gap:8px;display:inline-flex}.btn-icon{align-items:center;display:inline-flex}.btn-spinner{align-items:center;gap:8px;display:inline-flex}.animate-spin{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn:disabled,.btn-loading{opacity:.65;cursor:not-allowed;pointer-events:none}
