body,html{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,Apple Color Emoji,Segoe UI Emoji}:root{--brand-navy:#0b1f3a;--brand-navy-700:#12284d;--grid-line:#e5e7eb;--grid-subtle:#f3f4f6}.gantt-page{padding:24px;max-width:1700px;margin:0 auto;background:#f7fafc;color:#0f172a;font-size:.85em}.gantt-row{display:flex;align-items:center}.gantt-gap8{gap:8px}.gantt-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.gantt-title{font-size:18.7px;font-weight:800;color:var(--brand-navy);margin:0}.gantt-subtitle{margin-left:8px;font-weight:500;color:#5b6780;font-size:11.9px}.gantt-segmented{display:flex;align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 2px 8px rgba(14,23,38,.06);overflow:hidden}.gantt-segbtn{padding:10px 14px;font-size:11px;border:0;background:transparent;cursor:pointer;color:#334155}.gantt-segbtn:hover{background:#f3f4f6}.gantt-active{background:var(--brand-navy);color:#fff}.gantt-btn{padding:10px 14px;font-size:11px;border:1px solid #e5e7eb;background:#fff;border-radius:10px;cursor:pointer;box-shadow:0 2px 8px rgba(14,23,38,.06)}.gantt-btn:hover{background:#f3f4f6}.gantt-legend{display:flex;align-items:center;gap:8px;font-size:11px;color:#334155}.gantt-legend-box{width:14px;height:14px;display:inline-block;border-radius:2px;border:1px solid #cbd5e1;background:repeating-linear-gradient(135deg,rgba(220,38,38,.18) 0 8px,rgba(220,38,38,0) 8px 16px),#fff}.gantt-card{border-radius:14px;background:#fff;border:1px solid #e5e7eb;box-shadow:0 6px 16px rgba(14,23,38,.06)}.gantt-p{padding:24px}.gantt-scale{display:flex;position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid #e5e7eb}.gantt-labelcol.gantt-head{font-weight:800;color:var(--brand-navy);display:flex;align-items:center;border-right:1px solid #e5e7eb;font-size:13.6px}.gantt-scroller{overflow:hidden;flex:1}.gantt-scalewrap{width:max-content}.gantt-scalecell{height:92px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid var(--grid-line);background:#fff;box-sizing:border-box}.gantt-scalecell .gantt-date{font-size:10.2px;font-weight:700;color:#1f2a44;line-height:1.1;margin-bottom:6px}.gantt-scalecell .gantt-hour{font-size:11.9px;font-weight:700;color:#0b1f3a;letter-spacing:.2px}.gantt-cell-current{background:linear-gradient(0deg,rgba(11,31,58,.06),rgba(11,31,58,.06))}.gantt-body-scroll{display:flex;position:relative;overflow:auto;max-height:calc(100vh - 240px);border-bottom-left-radius:14px;border-bottom-right-radius:14px}.gantt-labelcol{position:sticky;left:0;z-index:10;background:#fff;border-right:1px solid #e5e7eb;flex:0 0 auto;box-sizing:border-box}.gantt-labelrow{height:58px;border-bottom:1px solid #e5e7eb;padding:8px 10px;display:flex;flex-direction:column;justify-content:center;box-sizing:border-box}.gantt-hoverrow:hover{background:#fafafa}.gantt-labeltitle{font-weight:800;color:var(--brand-navy);font-size:13.6px}.gantt-labelsut{font-size:9.8px;color:#64748b;margin-top:2px}.gantt-gridwrap{flex:1 1 auto}.gantt-gridinner,.gantt-gridwrap{position:relative}.gantt-rowbg{position:absolute;left:0;right:0;background:#fff;z-index:0}.gantt-rowbg.alt{background:#fafbfc}.gantt-hline{position:absolute;left:0;right:0;border-bottom:1px solid #e5e7eb;z-index:3}.gantt-colgrid{position:absolute;inset:0;pointer-events:none;display:flex;z-index:1}.gantt-vline{height:100%;border-right:1px solid var(--grid-subtle)}.gantt-row-overlapgrid{position:absolute;left:0;display:flex;pointer-events:none;z-index:2}.gantt-overlapcell{height:100%}.gantt-overlapcell.has-overlap{background:repeating-linear-gradient(135deg,rgba(220,38,38,.18) 0 10px,rgba(220,38,38,0) 10px 20px)}.gantt-barwrap{position:absolute;height:20px;z-index:4;overflow:visible}.gantt-barwrap:hover{z-index:6}.gantt-bar{position:relative;width:100%;height:100%;border-radius:0;background:linear-gradient(180deg,var(--brand-navy) 0,var(--brand-navy-700) 100%);box-shadow:0 1px 3px rgba(8,21,42,.22);transition:transform .12s ease,box-shadow .12s ease,opacity .12s ease}.gantt-bar:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(8,21,42,.25)}.gantt-tooltip{position:absolute;left:0;top:-70px;min-width:240px;font-size:10.2px;color:#111827;background:#f3f4f6;padding:8px 10px;border-radius:8px;opacity:0;transition:opacity .15s ease;box-shadow:0 6px 16px rgba(0,0,0,.12);white-space:nowrap;pointer-events:none;border:1px solid #e5e7eb;z-index:20}.gantt-bar:hover .gantt-tooltip{opacity:1}.gantt-tt-title{font-weight:800;margin-bottom:4px}.gantt-tt-line{line-height:1.25;opacity:.95}.gantt-empty-hint{position:absolute;z-index:4;font-size:10px;color:#94a3b8;pointer-events:none}.gantt-errorbox{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#dc2626;background:#fef2f2;border:1px solid #fee2e2;border-radius:8px;margin:12px;font-size:11px;z-index:6}.gantt-foot{margin-top:16px;font-size:11px;color:#64748b}.gantt-skeleton{background:linear-gradient(90deg,#eee 25%,#f5f5f5 37%,#eee 63%);background-size:400% 100%;animation:gantt-shimmer 1.4s ease infinite}@keyframes gantt-shimmer{0%{background-position:100% 0}to{background-position:0 0}}.gantt-mb16{margin-bottom:16px}.gantt-legend-box.realizado{background-color:#99a1ad}.gantt-legend-box.previsto{background-color:#83a084}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f7fafc;padding:16px}.login-card{width:100%;max-width:420px;background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 6px 16px rgba(14,23,38,.06);padding:28px}.login-logo-wrap{display:flex;justify-content:center;margin-bottom:1rem}.login-logo{object-fit:contain;border-radius:0!important}.login-title{margin:0 0 4px;text-align:center;font-weight:800;font-size:22px;color:var(--brand-navy,#0b1f3a)}.login-subtitle{margin:0 0 24px;text-align:center;color:#5b6780;font-size:13px;font-weight:500}.login-form{display:grid;gap:14px}.login-label{display:block;font-size:13px;font-weight:600;color:#334155;margin-bottom:6px}.login-input{width:100%;height:40px;padding:0 12px;border-radius:10px;border:1px solid #e5e7eb;color:#0f172a;background:#fff;outline:none;transition:box-shadow .15s ease,border-color .15s ease;box-sizing:border-box}.login-input::placeholder{color:#9aa4b2}.login-input:focus{border-color:#4f46e5;box-shadow:0 0 0 3px rgba(79,70,229,.25)}.login-error{margin-top:2px;font-size:13px;color:#dc2626;font-weight:600}.login-btn{margin-top:6px;width:100%;height:42px;border:0;border-radius:10px;background:#4f46e5;color:#fff;font-weight:700;cursor:pointer;transition:transform .06s ease,box-shadow .15s ease,background .15s ease,opacity .15s ease;box-shadow:0 6px 16px rgba(14,23,38,.06)}.login-btn:hover{background:#4338ca}.login-btn:active{transform:translateY(.5px)}.login-btn:disabled,.login-btn[aria-disabled=true]{opacity:.6;cursor:not-allowed}@media (max-width:420px){.login-card{padding:22px}.login-title{font-size:20px}}.home-menu{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.home-menu-item{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:14px;text-decoration:none;color:inherit;box-shadow:0 6px 16px rgba(14,23,38,.06);transition:transform .08s ease,box-shadow .15s ease,background .15s ease}.home-menu-item:hover{background:#f8fafc;box-shadow:0 8px 20px rgba(14,23,38,.1);transform:translateY(-1px)}.home-menu-ico{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;font-size:22px;background:linear-gradient(180deg,var(--brand-navy,#0b1f3a),var(--brand-navy-700,#12284d));color:#fff;box-shadow:0 2px 8px rgba(8,21,42,.22)}.home-menu-texts{display:grid;gap:2px}.home-menu-title{font-size:13.6px;font-weight:800;color:var(--brand-navy,#0b1f3a)}.home-menu-desc{font-size:11.5px;color:#5b6780}