:root{--font-sans:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--bg-primary:#fff;--bg-secondary:#f8fafc;--bg-tertiary:#eef2f7;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--border-color:#e2e8f0;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-light:#dbeafe;--primary-rgb:37, 99, 235;--accent:#059669;--accent-hover:#047857;--accent-light:#d1fae5;--accent-rgb:5, 150, 105;--accent-strong:#047857;--accent-strong-hover:#065f46;--success:#059669;--success-light:#d1fae5;--warning:#d97706;--warning-light:#fef3c7;--danger:#dc2626;--danger-hover:#b91c1c;--danger-light:#fee2e2;--ring:#2563eb59;--sidebar-bg:#0f1b34;--sidebar-text:#a3b2cc;--sidebar-text-active:#fff;--sidebar-logo:#fff;--sidebar-logo-icon:#60a5fa;--sidebar-active-bg:#60a5fa29;--sidebar-hover-bg:#ffffff0f;--sidebar-border:#ffffff14;--sidebar-width:260px;--sidebar-collapsed-width:70px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-full:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:40px;--space-8:48px;--shadow-sm:0 1px 2px 0 #0f172a0d;--shadow-md:0 4px 12px -2px #0f172a14, 0 2px 4px -2px #0f172a0a;--shadow-lg:0 12px 24px -6px #0f172a1f, 0 4px 8px -4px #0f172a14;--transition-fast:.15s ease;--transition-normal:.25s ease}body.dark{--bg-primary:#0b1120;--bg-secondary:#131c2e;--bg-tertiary:#1e293b;--text-primary:#f8fafc;--text-secondary:#cbd5e1;--text-muted:#7c8aa5;--border-color:#243049;--primary:#60a5fa;--primary-hover:#3b82f6;--primary-light:#1c2b47;--primary-rgb:96, 165, 250;--accent:#34d399;--accent-hover:#10b981;--accent-light:#0c2f24;--accent-rgb:52, 211, 153;--success:#34d399;--success-light:#0c2f24;--warning:#fbbf24;--warning-light:#3a2a06;--danger:#f87171;--danger-hover:#ef4444;--danger-light:#3b1212;--ring:#60a5fa73;--shadow-sm:0 1px 2px 0 #00000080;--shadow-md:0 4px 12px -2px #00000073, 0 2px 4px -2px #0006;--shadow-lg:0 12px 24px -6px #0000008c, 0 4px 8px -4px #00000080}*{box-sizing:border-box;font-family:var(--font-sans);margin:0;padding:0}body{background-color:var(--bg-secondary);color:var(--text-primary);transition:background-color var(--transition-normal), color var(--transition-normal);line-height:1.5;overflow-x:hidden}input,select,textarea,button{font-family:inherit;font-size:inherit}button{cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;outline:none}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--radius-sm)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.app-container{min-height:100vh;display:flex}.main-content{background-color:var(--bg-secondary);min-width:0;transition:padding var(--transition-normal);flex-direction:column;flex:1;display:flex}.sidebar{--text-primary:var(--sidebar-text-active);--text-secondary:var(--sidebar-text);--text-muted:#ffffff73;--border-color:var(--sidebar-border);--bg-tertiary:var(--sidebar-hover-bg);--bg-primary:var(--sidebar-bg);width:var(--sidebar-width);background-color:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);z-index:100;height:100vh;transition:width var(--transition-normal);flex-direction:column;display:flex;position:sticky;top:0}.sidebar.collapsed{width:var(--sidebar-collapsed-width)}.sidebar-header{border-bottom:1px solid var(--border-color);white-space:nowrap;justify-content:space-between;align-items:center;padding:20px;display:flex;overflow:hidden}.sidebar-logo{color:var(--sidebar-logo);letter-spacing:-.01em;align-items:center;gap:10px;font-size:1.15rem;font-weight:800;display:flex}.sidebar-logo svg{color:var(--sidebar-logo-icon)}.sidebar-menu{flex-direction:column;flex:1;gap:5px;padding:15px 10px;list-style:none;display:flex;overflow-y:auto}.sidebar-item{color:var(--text-secondary);border-radius:var(--radius-md);white-space:nowrap;transition:all var(--transition-fast);align-items:center;gap:12px;padding:12px 15px;font-weight:500;display:flex;position:relative;overflow:hidden}.sidebar-item:hover{background-color:var(--sidebar-hover-bg);color:var(--sidebar-text-active)}.sidebar-item.active{background-color:var(--sidebar-active-bg);color:var(--sidebar-text-active);font-weight:700}.sidebar-item.active svg{color:var(--sidebar-logo-icon)}.sidebar-item.active:before{content:"";border-radius:0 var(--radius-full) var(--radius-full) 0;background-color:var(--sidebar-logo-icon);width:3px;height:60%;position:absolute;top:50%;left:0;transform:translateY(-50%)}.sidebar-footer{border-top:1px solid var(--border-color);flex-direction:column;gap:10px;padding:15px;display:flex}.user-avatar{border-radius:var(--radius-md);background-image:linear-gradient(135deg, var(--primary) 0%, var(--primary-hover) 100%);color:#fff;letter-spacing:.02em;cursor:pointer;width:36px;height:36px;transition:filter var(--transition-fast);border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:.85rem;font-weight:800;display:flex}.user-avatar:hover{filter:brightness(1.08)}.app-header{background-color:var(--bg-primary);border-bottom:1px solid var(--border-color);z-index:90;justify-content:space-between;align-items:center;height:70px;padding:0 30px;display:flex;position:sticky;top:0}.header-left{align-items:center;gap:20px;display:flex}.breadcrumbs{color:var(--text-secondary);align-items:center;gap:8px;font-size:.9rem;display:flex}.breadcrumb-separator{color:var(--text-muted)}.header-right{align-items:center;gap:15px;display:flex}.btn{border-radius:var(--radius-md);transition:all var(--transition-fast);justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:.9rem;font-weight:600;display:inline-flex}.btn-primary{background-image:linear-gradient(180deg, var(--primary) 0%, var(--primary-hover) 100%);background-color:var(--primary);color:#fff;box-shadow:0 1px 2px rgba(var(--primary-rgb), .25)}.btn-primary:hover{background-image:linear-gradient(180deg, var(--primary-hover) 0%, var(--primary-hover) 100%);box-shadow:0 6px 16px rgba(var(--primary-rgb), .34);transform:translateY(-1px)}.btn-primary:active{box-shadow:0 1px 2px rgba(var(--primary-rgb), .25);transform:translateY(0)}.btn-accent{background-image:linear-gradient(180deg, var(--accent-strong) 0%, var(--accent-strong-hover) 100%);background-color:var(--accent-strong);color:#fff;box-shadow:0 1px 2px rgba(var(--accent-rgb), .3)}.btn-accent:hover{background-image:linear-gradient(180deg, var(--accent-strong-hover) 0%, var(--accent-strong-hover) 100%);box-shadow:0 6px 16px rgba(var(--accent-rgb), .32);transform:translateY(-1px)}.btn-accent:active{box-shadow:0 1px 2px rgba(var(--accent-rgb), .3);transform:translateY(0)}.btn-secondary{background-color:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background-color:var(--border-color)}.btn-danger{background-color:var(--danger);color:#fff}.btn-danger:hover{background-color:var(--danger-hover)}.btn:disabled,.btn[disabled]{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-icon{border-radius:var(--radius-md);width:38px;height:38px;color:var(--text-secondary);border:1px solid var(--border-color);background-color:var(--bg-primary);justify-content:center;align-items:center;display:inline-flex}.btn-icon:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;padding:30px;display:grid}.card{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:all var(--transition-normal);padding:24px}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card{align-items:center;gap:20px;display:flex}.stat-icon{border-radius:var(--radius-md);justify-content:center;align-items:center;width:54px;height:54px;display:flex}.stat-icon.primary{background-color:var(--primary-light);color:var(--primary)}.stat-icon.success{background-color:var(--success-light);color:var(--success)}.stat-icon.warning{background-color:var(--warning-light);color:var(--warning)}.stat-icon.danger{background-color:var(--danger-light);color:var(--danger)}.stat-info{flex-direction:column;display:flex}.stat-value{font-size:1.8rem;font-weight:700;line-height:1.2}.stat-label{color:var(--text-secondary);font-size:.85rem;font-weight:500}.kanban-board{flex:1;align-items:flex-start;gap:20px;padding:20px 30px;display:flex;overflow-x:auto}.kanban-column{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:320px;max-height:calc(100vh - 180px);box-shadow:var(--shadow-sm);flex-direction:column;flex-shrink:0;display:flex}.kanban-header{align-items:center;justify-content:justify;border-bottom:1px solid var(--border-color);padding:16px 20px;display:flex}.kanban-title{align-items:center;gap:8px;font-size:.95rem;font-weight:700;display:flex}.kanban-count{background-color:var(--bg-tertiary);color:var(--text-secondary);border-radius:20px;padding:2px 8px;font-size:.75rem;font-weight:600}.kanban-cards{flex-direction:column;flex:1;gap:12px;min-height:150px;padding:16px;display:flex;overflow-y:auto}.kanban-card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:grab;box-shadow:var(--shadow-sm);transition:all var(--transition-fast);padding:16px}.kanban-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}.kanban-card:active{cursor:grabbing}.table-container{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin:30px;overflow:hidden}.data-table{border-collapse:collapse;text-align:left;width:100%}.data-table th{background-color:var(--bg-secondary);color:var(--text-secondary);border-bottom:1px solid var(--border-color);text-transform:uppercase;letter-spacing:.05em;padding:16px 20px;font-size:.85rem;font-weight:600}.data-table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);padding:16px 20px;font-size:.9rem}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background-color:var(--bg-secondary)}.data-table th,.data-table td,.data-table .badge{font-size:.8rem!important}.progress-container{align-items:center;gap:10px;width:100%;display:flex}.progress-bar-bg{background-color:var(--bg-tertiary);border-radius:10px;flex:1;height:6px;overflow:hidden}.progress-bar-fill{background-color:var(--primary);height:100%;transition:width var(--transition-normal);border-radius:10px}.progress-text{color:var(--text-secondary);text-align:right;min-width:32px;font-size:.75rem;font-weight:600}.badge{text-transform:uppercase;border-radius:20px;align-items:center;gap:4px;padding:4px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.badge-alta{background-color:var(--danger-light);color:var(--danger)}.badge-media{background-color:var(--warning-light);color:var(--warning)}.badge-baixa{background-color:var(--primary-light);color:var(--primary)}.badge-concluido,.badge-concluida{background-color:var(--success-light);color:var(--success)}.badge-andamento{background-color:var(--warning-light);color:var(--warning)}.badge-planejamento,.badge-nao-iniciado,.badge-nao-iniciada{background-color:var(--bg-tertiary);color:var(--text-secondary)}.badge-cancelado{background-color:var(--danger-light);color:var(--danger)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background-color:#0f172a99;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-content{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:100%;max-width:600px;max-height:90vh;box-shadow:var(--shadow-lg);animation:.25s cubic-bezier(.16,1,.3,1) slideUp;overflow-y:auto}.modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-body{padding:24px}.modal-footer{border-top:1px solid var(--border-color);justify-content:flex-end;gap:12px;padding:20px 24px;display:flex}.form-group{margin-bottom:16px}.form-group label{color:var(--text-secondary);margin-bottom:6px;font-size:.85rem;font-weight:600;display:block}.form-control{border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:var(--bg-primary);width:100%;color:var(--text-primary);transition:all var(--transition-fast);outline:none;padding:10px 14px}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}.form-control::placeholder{color:var(--text-muted)}input[type=checkbox],input[type=radio],input[type=range],select,progress{accent-color:var(--primary)}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.calendar-container{padding:30px}.calendar-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:8px;display:grid}.calendar-day-header{text-align:center;color:var(--text-secondary);text-transform:uppercase;padding:10px 0;font-size:.8rem;font-weight:600}.calendar-day{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);flex-direction:column;gap:4px;min-height:100px;padding:8px;display:flex}.calendar-day.today{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.calendar-day-number{color:var(--text-muted);font-size:.8rem;font-weight:700}.calendar-day.today .calendar-day-number{color:var(--primary)}.calendar-event{background-color:var(--primary-light);color:var(--primary);text-overflow:ellipsis;white-space:nowrap;border-radius:4px;padding:4px 8px;font-size:.7rem;font-weight:600;overflow:hidden}.comments-list{flex-direction:column;gap:16px;margin-bottom:20px;display:flex}.comment-card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:16px}.comment-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.comment-user{font-size:.85rem;font-weight:600}.comment-date{color:var(--text-muted);font-size:.75rem}.comment-text{color:var(--text-secondary);font-size:.9rem}.notification-bell{position:relative}.notification-badge{background-color:var(--danger);color:#fff;border-radius:50%;width:8px;height:8px;position:absolute;top:-2px;right:-2px}.notification-dropdown{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:320px;box-shadow:var(--shadow-lg);z-index:200;animation:.15s fadeIn;position:absolute;top:50px;right:0;overflow:hidden}.notification-item{border-bottom:1px solid var(--border-color);cursor:pointer;transition:background var(--transition-fast);color:inherit;text-align:left;background:0 0;border:none;flex-direction:column;gap:4px;padding:14px 16px;display:flex}.notification-item:hover{background-color:var(--bg-secondary)}.notification-item.unread{background-color:var(--primary-light)}.toast-container{z-index:2000;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:24px;right:24px}.toast{background-color:var(--text-primary);color:var(--bg-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);align-items:center;gap:12px;padding:12px 20px;font-size:.85rem;font-weight:500;animation:.25s slideInRight;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.gantt-wrap{padding:20px 30px 30px;overflow-x:auto}.gantt{min-width:760px}.gantt-head{grid-template-columns:280px 70px 1fr;align-items:end;margin-bottom:10px;display:grid}.gantt-head-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:700}.gantt-axis{border-bottom:1px solid var(--border-color);height:36px;position:relative}.gantt-month{border-left:1px solid var(--border-color);height:16px;color:var(--text-secondary);white-space:nowrap;padding-left:5px;font-size:.82rem;font-weight:600;position:absolute;top:0}.gantt-week{border-left:1px solid var(--border-color);height:16px;color:var(--text-secondary);white-space:nowrap;padding-left:4px;font-size:.68rem;font-weight:500;position:absolute;bottom:0}.gantt-week-line{background-color:var(--border-color);opacity:.6;width:1px;position:absolute;top:0;bottom:0}.gantt-row{border-bottom:1px solid var(--border-color);grid-template-columns:280px 70px 1fr;align-items:stretch;min-height:40px;display:grid}.gantt-label{cursor:pointer;align-items:center;gap:6px;padding:8px 12px 8px 0;display:flex}.gantt-label-text{overflow-wrap:break-word;-webkit-line-clamp:2;transition:color var(--transition-fast);-webkit-box-orient:vertical;font-size:.8rem;font-weight:500;line-height:1.3;display:-webkit-box;overflow:hidden}.gantt-label:hover .gantt-label-text{color:var(--primary)}.gantt-resp{align-items:center;padding:8px 10px 8px 0;display:flex;overflow:hidden}.gantt-resp-text{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;font-weight:500;overflow:hidden}.gantt-track{height:100%;position:relative}.gantt-today{background-color:var(--danger);opacity:.55;z-index:2;width:2px;position:absolute;top:0;bottom:0}.gantt-bar{border-radius:var(--radius-sm);cursor:pointer;min-width:10px;height:20px;transition:filter var(--transition-fast), box-shadow var(--transition-fast);position:absolute;top:50%;overflow:hidden;transform:translateY(-50%)}.gantt-bar:hover{filter:brightness(.96);box-shadow:var(--shadow-sm)}.gantt-bar-fill{border-radius:var(--radius-sm);height:100%;transition:width var(--transition-normal);position:absolute;top:0;left:0}.gantt-nodata{color:var(--text-muted);font-size:.72rem;font-style:italic}.gantt-empty{text-align:center;color:var(--text-secondary);flex-direction:column;align-items:center;gap:10px;padding:60px 30px;display:flex}@media (width<=768px){.app-container{flex-direction:column}.sidebar{height:auto;position:static;width:100%!important}.sidebar-menu{flex-direction:row;padding:10px;overflow-x:auto}.sidebar-item{padding:8px 12px}.sidebar-header,.sidebar-footer{display:none}.app-header{padding:0 15px}.dashboard-grid{padding:15px}.table-container{margin:15px;overflow-x:auto}.kanban-board{padding:15px}.form-row{grid-template-columns:1fr}}@media print{body{color:#000!important;background-color:#fff!important}.sidebar,.app-header,.btn,.tabs,.no-print,.form-group,.comments-input-area,.modal-overlay,.toast-container{display:none!important}.main-content{padding:0!important}.card,.table-container{box-shadow:none!important;border:none!important;margin:0 0 20px!important;padding:0!important}.data-table th{color:#000!important;background-color:#f1f5f9!important;border-bottom:2px solid #000!important}.data-table td{border-bottom:1px solid #e2e8f0!important}.print-page-break{page-break-before:always}}
