:root{--font:"DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--bg:#f5f5f7;--surface:#fff;--surface-secondary:#f9f9f9;--surface-hover:#00000005;--text:#1d1d1f;--text-secondary:#86868b;--text-tertiary:#aeaeb2;--text-inverse:#fff;--border:#d2d2d7;--border-light:#e5e5ea;--accent:#007aff;--accent-hover:#0066d6;--accent-pale:#007aff14;--green:#34c759;--green-pale:#34c75914;--orange:#ff9500;--orange-pale:#ff950014;--red:#ff3b30;--red-pale:#ff3b3014;--purple:#af52de;--purple-pale:#af52de14;--yellow:#fc0;--yellow-pale:#ffcc0014;--green-soft:#e8f9ed;--blue-soft:#e5f1ff;--orange-soft:#fff4e5;--red-soft:#ffebe9;--purple-soft:#f5e9fc;--tenant-primary:var(--accent);--shadow:0 1px 3px #0000000f;--shadow-md:0 2px 8px #00000014;--shadow-lg:0 4px 12px #0000001a;--radius:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:999px;--header-height:56px;--content-max-width:1440px;--content-padding:40px;--ease:cubic-bezier(.25, .1, .25, 1);--duration:.2s}html.dark{--bg:#000;--surface:#1c1c1e;--surface-secondary:#2c2c2e;--surface-hover:#ffffff0a;--text:#f5f5f7;--text-secondary:#98989d;--text-tertiary:#636366;--text-inverse:#1d1d1f;--border:#38383a;--border-light:#2c2c2e;--shadow:0 1px 3px #0000004d;--shadow-md:0 2px 8px #0006;--shadow-lg:0 4px 12px #00000080;--green-soft:#30d15826;--blue-soft:#0a84ff26;--orange-soft:#ff9f0a26;--red-soft:#ff453a26;--purple-soft:#bf5af226}@media (max-width:768px){:root{--content-padding:20px}}
.card{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:1.25rem}.card-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;display:grid}.card-header{border-bottom:1px solid var(--border-light);padding:14px 16px}.card-header h3{margin:0;font-size:.88rem;font-weight:700}.card-footer{border-top:1px solid var(--border-light);background:#f5f5f780;justify-content:space-between;align-items:center;padding:14px 28px;display:flex}.card-link{color:var(--accent);cursor:pointer;align-items:center;gap:4px;font-size:.78rem;font-weight:600;text-decoration:none;transition:opacity .2s;display:flex}.card-link:hover{opacity:.7}.project-card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);border:1px solid var(--border-light);transition:all .35s var(--ease);cursor:pointer;animation:fadeInUp .5s var(--ease) both;position:relative;overflow:hidden}.project-card:hover{box-shadow:var(--shadow-lg);border-color:var(--border);transform:translateY(-4px)}.project-card-top{align-items:flex-start;gap:18px;padding:28px 28px 0;display:flex}.project-info{flex:1;min-width:0}.project-name{color:var(--text);letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;margin-bottom:4px;font-size:1.05rem;font-weight:700;overflow:hidden}.project-meta{color:var(--text-secondary);margin-bottom:10px;font-size:.78rem;font-weight:400}.project-status-badge{letter-spacing:.02em;border-radius:6px;align-items:center;gap:5px;padding:4px 10px;font-size:.7rem;font-weight:600;display:inline-flex}.badge-captacao{background:var(--purple-soft);color:var(--purple)}.badge-proposta{background:var(--blue-soft);color:var(--accent)}.badge-em_andamento{background:var(--green-soft);color:var(--green)}.badge-aprovacao{background:var(--orange-soft);color:var(--orange)}.badge-executivo{background:var(--blue-soft);color:var(--accent)}.badge-obra{background:var(--orange-soft);color:#b87700}.badge-encerrado{background:var(--surface-secondary);color:var(--text-tertiary)}.card-tasks{padding:16px 28px 20px}.tasks-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.tasks-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;font-weight:600}.tasks-count{color:var(--text-tertiary);font-size:.72rem;font-weight:500}.task-item{border-bottom:1px solid var(--border-light);align-items:center;gap:10px;padding:8px 0;display:flex}.task-item:last-child{border-bottom:none}.task-check{border:1.5px solid var(--border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;transition:all .2s;display:flex}.task-check.done{background:var(--green);border-color:var(--green)}.task-check.done svg{display:block}.task-check svg{display:none}.task-text{color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.82rem;font-weight:400;overflow:hidden}.task-text.done{color:var(--text-tertiary);text-decoration:line-through}.task-priority{border-radius:4px;flex-shrink:0;padding:2px 7px;font-size:.62rem;font-weight:600}.task-priority.alta{background:var(--red-soft);color:var(--red)}.task-priority.media{background:var(--orange-soft);color:var(--orange)}.task-due{color:var(--text-tertiary);flex-shrink:0;font-size:.7rem;font-weight:500}.task-due.overdue{color:var(--red);font-weight:600}.phase-card{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:12px;overflow:visible}.phase-header{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:var(--radius) var(--radius) 0 0;align-items:center;gap:12px;padding:14px 18px;transition:background .12s;display:flex}.phase-header:hover{background:var(--surface-hover)}.phase-card:not(.open) .phase-header{border-radius:var(--radius)}.phase-num{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:.72rem;font-weight:800;display:flex}.phase-title{flex:1;min-width:0}.phase-title strong{font-size:.88rem;font-weight:700;display:block}.phase-title span{color:var(--text-secondary);font-size:.73rem}.phase-meta{flex-shrink:0;align-items:center;gap:10px;display:flex}.phase-prog-wrap{background:var(--border-light);border-radius:3px;width:80px;height:5px;overflow:hidden}.phase-prog-fill{border-radius:3px;height:100%;transition:width .3s}.phase-pct{text-align:right;min-width:30px;font-size:.72rem;font-weight:700}.phase-badge{white-space:nowrap;border-radius:20px;padding:3px 10px;font-size:.68rem;font-weight:700}.chevron{color:var(--text-secondary);flex-shrink:0;transition:transform .2s}.phase-card.open .chevron{transform:rotate(180deg)}.s-done{background:var(--green-pale);color:var(--green);border:1px solid var(--green)}.s-active{background:var(--accent-pale);color:var(--accent);border:1px solid var(--accent)}.s-pending{background:var(--surface-secondary);color:var(--text-secondary);border:1px solid var(--border-light)}.num-done{background:var(--green-pale);color:var(--green)}.num-active{background:var(--accent-pale);color:var(--accent)}.num-pending{background:var(--surface-secondary);color:var(--text-secondary)}.fill-done{background:var(--green)}.fill-active{background:var(--accent)}.fill-pending{background:var(--border)}.pct-done{color:var(--green)}.pct-active{color:var(--accent)}.pct-pending{color:var(--text-secondary)}.phase-body{border-top:1px solid var(--border-light);display:none}.phase-card.open .phase-body{display:block}.task-list{padding:4px 0}@media (max-width:768px){.card-grid{grid-template-columns:1fr}.project-card-top{padding:20px 20px 0}.card-tasks{padding:12px 20px 16px}.card-footer{padding:12px 20px}.phase-header{padding:12px 14px}.phase-meta{gap:6px}.phase-prog-wrap{width:50px}}html.dark .card-footer{background:#ffffff08}html.dark .badge-encerrado{color:var(--text-tertiary);background:#3a3a3c}html.dark .badge-obra{color:var(--orange)}html.dark .task-check{border-color:var(--border)}html.dark .task-priority.alta{background:#ff453a26}html.dark .task-priority.media{color:var(--orange)}html.dark .phase-prog-wrap{background:#ffffff1a}
.kpi-card{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow);text-align:center;padding:1.25rem}.kpi-value{font-size:2rem;font-weight:700;line-height:1.2}.kpi-label{color:var(--text-secondary);margin-top:.25rem;font-size:.8rem}.metrics-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:40px;display:grid}.metric-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border-light);transition:all .3s var(--ease);padding:24px;position:relative;overflow:hidden}.metric-card:before{content:"";border-radius:var(--radius) var(--radius) 0 0;height:3px;position:absolute;top:0;left:0;right:0}.metric-card:first-child:before{background:var(--accent)}.metric-card:nth-child(2):before{background:var(--green)}.metric-card:nth-child(3):before{background:var(--orange)}.metric-card:nth-child(4):before{background:var(--red)}.metric-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.metric-icon{border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;margin-bottom:16px;display:flex}.metric-card:first-child .metric-icon{background:var(--blue-soft);color:var(--accent)}.metric-card:nth-child(2) .metric-icon{background:var(--green-soft);color:var(--green)}.metric-card:nth-child(3) .metric-icon{background:var(--orange-soft);color:var(--orange)}.metric-card:nth-child(4) .metric-icon{background:var(--red-soft);color:var(--red)}.metric-value{letter-spacing:-.03em;margin-bottom:6px;font-size:2.2rem;font-weight:700;line-height:1}.metric-card:first-child .metric-value{color:var(--accent)}.metric-card:nth-child(2) .metric-value{color:var(--green)}.metric-card:nth-child(3) .metric-value{color:var(--orange)}.metric-card:nth-child(4) .metric-value{color:var(--red)}.metric-label{color:var(--text-secondary);font-size:.82rem;font-weight:500}.stats-row{border-top:1px solid var(--border-light);grid-template-columns:1fr 1fr 1fr;display:grid}.stat-box{text-align:center;border-right:1px solid var(--border-light);padding:14px 8px}.stat-box:last-child{border-right:none}.stat-num{color:var(--accent);font-size:1.4rem;font-weight:700}.stat-lbl{color:var(--text-secondary);margin-top:2px;font-size:.67rem}@media (max-width:1100px){.metrics-row{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.metrics-row{grid-template-columns:1fr 1fr;gap:10px}.metric-card{padding:18px}.metric-value{font-size:1.6rem}}@media (max-width:480px){.metrics-row{grid-template-columns:1fr}}
.table-wrapper{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.875rem}thead th{text-align:left;color:var(--text-secondary);border-bottom:1px solid var(--border);padding:.6rem .75rem;font-size:.8rem;font-weight:600}tbody td{border-bottom:1px solid var(--border-light);padding:.6rem .75rem}tbody tr:hover{background:var(--surface-hover)}@media (max-width:768px){.responsive-table thead{display:none}.responsive-table tbody tr{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);margin-bottom:.75rem;padding:1rem;display:block}.responsive-table tbody td{border:none;justify-content:space-between;padding:.3rem 0;display:flex}.responsive-table tbody td:before{content:attr(data-label);color:var(--text-secondary);font-size:.8rem;font-weight:600}}
.modal-overlay{z-index:900;animation:fadeIn .15s var(--ease);background:#0006;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius-xl);width:100%;max-width:540px;max-height:90vh;box-shadow:var(--shadow-lg);animation:scaleIn .2s var(--ease);padding:2rem;overflow-y:auto}.modal-lg{max-width:720px}.modal-title{margin-bottom:1.5rem;font-size:1.25rem;font-weight:700}.modal-actions{justify-content:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media (max-width:768px){.modal{max-width:100%;padding:1.5rem}}
.field{flex-direction:column;gap:.35rem;display:flex}.field label{color:var(--text-secondary);font-size:.8rem;font-weight:600}.field input,.field select,.field textarea{font-family:var(--font);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);transition:border-color var(--duration);outline:none;padding:.55rem .75rem;font-size:.875rem}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent)}.field-row{gap:1rem;display:grid}.field-row-2{grid-template-columns:1fr 1fr}.field-row-3{grid-template-columns:1fr 1fr 1fr}.form-grid{flex-direction:column;gap:1rem;display:flex}.field-inline{align-items:center;gap:.75rem;display:flex}.field-inline label{color:var(--text-secondary);white-space:nowrap;font-size:.8rem;font-weight:600}.field-inline input,.field-inline select{font-family:var(--font);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);transition:border-color var(--duration);outline:none;flex:1;padding:.55rem .75rem;font-size:.875rem}.field-inline input:focus,.field-inline select:focus{border-color:var(--accent)}.color-picker-wrap{align-items:center;gap:.5rem;display:flex}.color-picker-wrap input[type=color]{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;background:var(--surface);width:36px;height:36px;padding:2px}@media (max-width:768px){.field-row-2,.field-row-3{grid-template-columns:1fr}}
.filter-pills{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:wrap;gap:.5rem;padding-bottom:2px;display:flex;overflow-x:auto}.filter-pills::-webkit-scrollbar{display:none}.filter-pill{border-radius:var(--radius-full);cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);white-space:nowrap;transition:all var(--duration) var(--ease);font-size:.8rem;font-weight:600;font-family:var(--font);padding:.35rem .75rem}.filter-pill:hover{border-color:var(--accent);color:var(--accent)}.filter-pill.active{background:var(--accent);color:var(--text-inverse);border-color:var(--accent)}.filter-pill-count{opacity:.7;margin-left:.25rem;font-size:.7rem}.pipeline-stages{flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;display:flex}.pipeline-stage{border-radius:var(--radius-full);cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);transition:all var(--duration);padding:.35rem .75rem;font-size:.8rem;font-weight:600}.pipeline-stage:hover{border-color:var(--accent);color:var(--accent)}.pipeline-stage.active{background:var(--accent);color:var(--text-inverse);border-color:var(--accent)}.pipeline-count{opacity:.7;margin-left:.25rem;font-size:.7rem}.view-pills{background:var(--surface-secondary);border-radius:var(--radius);gap:.35rem;padding:3px;display:flex}.view-pill{border-radius:var(--radius);cursor:pointer;color:var(--text-secondary);transition:all var(--duration) var(--ease);font-size:.78rem;font-weight:600;font-family:var(--font);background:0 0;border:none;padding:.35rem .75rem}.view-pill:hover{color:var(--text)}.view-pill.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.tab-pills{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:.35rem;padding-bottom:2px;display:flex;overflow-x:auto}.tab-pills::-webkit-scrollbar{display:none}.tab-pill{border-radius:var(--radius-full);cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);white-space:nowrap;transition:all var(--duration) var(--ease);font-size:.78rem;font-weight:600;font-family:var(--font);flex-shrink:0;padding:.4rem .9rem}.tab-pill:hover{border-color:var(--accent);color:var(--text)}.tab-pill.active{background:var(--accent);color:var(--text-inverse);border-color:var(--accent)}html.dark .filter-pill.active{color:var(--bg)}
.progress-ring-wrap{flex-shrink:0;width:72px;height:72px;position:relative}.progress-ring{width:72px;height:72px;transform:rotate(-90deg)}.progress-ring-bg{fill:none;stroke:var(--bg);stroke-width:5px}.progress-ring-fill{fill:none;stroke-width:5px;stroke-linecap:round;transition:stroke-dashoffset .8s var(--ease)}.progress-ring-text{color:var(--text);justify-content:center;align-items:center;font-size:.92rem;font-weight:700;display:flex;position:absolute;inset:0}
.phases-timeline{padding:20px 28px 0}.phases-track{align-items:center;gap:0;display:flex;position:relative}.phase-node{z-index:1;flex-direction:column;flex:1;align-items:center;gap:6px;display:flex;position:relative}.phase-dot{background:var(--border-light);border:2px solid var(--border-light);z-index:2;border-radius:50%;width:10px;height:10px;transition:all .3s;position:relative}.phase-dot.done{background:var(--green);border-color:var(--green)}.phase-dot.active{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 3px #007aff33}.phase-dot.active:after{content:"";background:var(--accent);border-radius:50%;position:absolute;inset:1px}.phase-label{color:var(--text-tertiary);text-align:center;white-space:nowrap;text-overflow:ellipsis;max-width:60px;font-size:.6rem;font-weight:500;line-height:1.2;overflow:hidden}.phase-label.active{color:var(--accent);font-weight:600}.phase-label.done{color:var(--green)}.phase-connector{background:var(--border-light);z-index:1;flex:1;min-width:8px;height:2px;margin-top:-18px;position:relative}.phase-connector.done{background:var(--green)}.phase-connector.half{background:linear-gradient(90deg, var(--green) 50%, var(--border-light) 50%)}.phases-timeline-vertical{padding:0 0 0 24px;position:relative}.phases-timeline-vertical .phases-track{flex-direction:column;align-items:flex-start;gap:0}.phases-timeline-vertical .phase-node{flex-direction:row;flex:unset;align-items:center;gap:12px;padding:8px 0}.phases-timeline-vertical .phase-dot{flex-shrink:0}.phases-timeline-vertical .phase-label{white-space:normal;text-align:left;max-width:none;font-size:.75rem}.phases-timeline-vertical .phase-connector{width:2px;height:24px;min-width:unset;flex:unset;min-height:16px;margin-top:0;margin-left:4px}.phases-timeline-vertical .phase-connector.done{background:var(--green)}.phases-timeline-vertical .phase-connector.half{background:linear-gradient(180deg, var(--green) 50%, var(--border-light) 50%)}@media (max-width:768px){.phases-timeline{padding:16px 20px 0}}html.dark .phase-dot{background:var(--border);border-color:var(--border)}html.dark .phase-dot.active{background:var(--surface);border-color:var(--accent)}html.dark .phase-connector{background:var(--border)}html.dark .phase-connector.half{background:linear-gradient(90deg, var(--green) 50%, var(--border) 50%)}
.kanban-board{-webkit-overflow-scrolling:touch;scrollbar-width:thin;gap:16px;padding-bottom:8px;display:flex;overflow-x:auto}.kanban-column{background:var(--surface-secondary);border-radius:var(--radius-lg);flex-direction:column;flex-shrink:0;width:280px;max-height:calc(100vh - 200px);display:flex}.kanban-column-header{color:var(--text);border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:14px 16px;font-size:.82rem;font-weight:700;display:flex}.kanban-column-header .count{color:var(--text-secondary);background:var(--surface);border-radius:var(--radius-full);padding:2px 8px;font-size:.72rem;font-weight:600}.kanban-cards{flex-direction:column;flex:1;gap:8px;min-height:60px;padding:8px;display:flex;overflow-y:auto}.kanban-card{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);cursor:grab;transition:box-shadow .2s var(--ease), transform .2s var(--ease);padding:12px 14px}.kanban-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.kanban-card:active{cursor:grabbing}.kanban-card.dragging{opacity:.5;transform:rotate(2deg)}.kanban-card-title{color:var(--text);margin-bottom:6px;font-size:.84rem;font-weight:600}.kanban-card-meta{color:var(--text-secondary);font-size:.72rem}.kanban-drop-zone{border:2px dashed var(--border);border-radius:var(--radius);min-height:40px;color:var(--text-tertiary);justify-content:center;align-items:center;font-size:.75rem;transition:border-color .2s,background .2s;display:flex}.kanban-drop-zone.active{border-color:var(--accent);background:var(--accent-pale);color:var(--accent)}.temp-quente{border-left:3px solid var(--green)}.temp-morno{border-left:3px solid var(--orange)}.temp-frio{border-left:3px solid var(--accent)}html.dark .kanban-column{background:var(--surface)}html.dark .kanban-card{border-color:var(--border)}
.skeleton{background:linear-gradient(90deg, var(--surface-secondary) 25%, var(--surface) 50%, var(--surface-secondary) 75%);border-radius:var(--radius);background-size:200% 100%;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-card{border-radius:var(--radius-lg);height:320px}.skeleton-metric{border-radius:var(--radius);height:120px}.skeleton-row{border-radius:var(--radius);height:48px;margin-bottom:8px}.skeleton-text{border-radius:4px;height:16px;margin-bottom:8px}.skeleton-text.w-50{width:50%}.skeleton-text.w-75{width:75%}
.calendar-nav{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.5rem;display:flex}.calendar-nav-arrows{gap:.25rem;display:flex}.calendar-nav-arrows .btn{min-width:36px;padding:.4rem .6rem;font-size:1.1rem;line-height:1}.calendar-today-btn{padding:.4rem .75rem!important;font-size:.8rem!important}.calendar-nav-label{color:var(--text);flex:1;font-size:.95rem;font-weight:600}.calendar-nav>.btn-primary{margin-left:auto}.calendar-month-grid{background:var(--border);border:1px solid var(--border);border-radius:var(--radius-lg);grid-template-columns:repeat(7,1fr);gap:1px;display:grid;overflow:hidden}.calendar-month-grid .calendar-header-cell{background:var(--surface);text-align:center;color:var(--text-secondary);padding:.5rem;font-size:.75rem;font-weight:600}.calendar-month-grid .calendar-cell{background:var(--surface);min-height:90px;transition:background var(--duration);padding:.5rem;font-size:.8rem}.calendar-month-grid .calendar-cell:hover{background:var(--surface-hover)}.calendar-month-grid .calendar-cell.other-month{opacity:.4}.calendar-month-grid .calendar-cell.today{background:var(--accent-pale)}.calendar-month-grid .calendar-day{margin-bottom:.35rem;font-size:.82rem;font-weight:600}.event-dot-row{cursor:pointer;transition:background var(--duration);border-radius:3px;align-items:center;gap:.3rem;padding:.1rem 0;display:flex}.event-dot-row:hover{background:var(--surface-hover)}.event-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.event-dot-label{white-space:nowrap;text-overflow:ellipsis;color:var(--text);font-size:.7rem;overflow:hidden}.event-overflow{color:var(--text-secondary);padding-top:.1rem;font-size:.65rem}.week-grid{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden}.week-header{border-bottom:1px solid var(--border);grid-template-columns:56px repeat(7,1fr);display:grid}.week-time-gutter{background:var(--surface-secondary);border-right:1px solid var(--border)}.week-day-header{border-right:1px solid var(--border-light);flex-direction:column;align-items:center;gap:.15rem;padding:.5rem .25rem;display:flex}.week-day-header:last-child{border-right:none}.week-day-header.today{background:var(--accent-pale)}.week-day-name{color:var(--text-secondary);text-transform:uppercase;font-size:.7rem;font-weight:600}.week-day-num{color:var(--text);font-size:1rem;font-weight:700}.week-day-header.today .week-day-num{color:var(--accent)}.week-body{grid-template-columns:56px repeat(7,1fr);display:grid;position:relative}.week-body>.week-time-gutter{flex-direction:column;display:flex}.week-hour-label{height:48px;color:var(--text-tertiary);border-bottom:1px solid var(--border-light);justify-content:center;align-items:flex-start;padding-top:2px;font-size:.65rem;display:flex}.week-column{border-right:1px solid var(--border-light);position:relative}.week-column:last-child{border-right:none}.week-hour-row{border-bottom:1px solid var(--border-light);cursor:pointer;height:48px;transition:background var(--duration)}.week-hour-row:hover{background:var(--surface-hover)}.week-hour-row:last-child{border-bottom:none}.week-event{cursor:pointer;z-index:10;transition:opacity var(--duration);border-radius:4px;padding:.2rem .35rem;font-size:.7rem;position:absolute;left:2px;right:2px;overflow:hidden}.week-event:hover{opacity:.85}.week-event-title{white-space:nowrap;text-overflow:ellipsis;font-weight:600;display:block;overflow:hidden}.week-event-time{opacity:.8;font-size:.6rem;display:block}.week-now-line{background:var(--red);z-index:20;height:2px;position:absolute;left:0;right:0}.week-now-line:before{content:"";background:var(--red);border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;left:-4px}.cal-list{flex-direction:column;gap:1.5rem;display:flex}.cal-list-group{flex-direction:column;gap:.5rem;display:flex}.cal-list-date{color:var(--text-secondary);border-bottom:1px solid var(--border-light);padding-bottom:.25rem;font-size:.85rem;font-weight:700}.event-card{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);cursor:pointer;transition:box-shadow var(--duration), border-color var(--duration);display:flex;overflow:hidden}.event-card:hover{border-color:var(--border);box-shadow:var(--shadow)}.event-card-stripe{flex-shrink:0;width:4px}.event-card-body{flex:1;min-width:0;padding:.75rem 1rem}.event-card-header{justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.3rem;display:flex}.event-card-header strong{white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;overflow:hidden}.event-card-time{color:var(--text-secondary);white-space:nowrap;flex-shrink:0;font-size:.78rem}.event-card-meta{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.event-card-project{color:var(--text-secondary);font-size:.75rem}@media (max-width:768px){.calendar-nav{flex-direction:column;align-items:stretch;gap:.5rem}.calendar-nav>.btn-primary{margin-left:0}.calendar-nav-label{text-align:center}.calendar-nav-arrows{justify-content:center}.calendar-month-grid .calendar-cell{min-height:60px;padding:.3rem}.calendar-month-grid .calendar-day{font-size:.75rem}.event-dot-label{display:none}.event-dot{width:5px;height:5px}.event-dot-row{padding:0;display:inline-flex}.week-grid{-webkit-overflow-scrolling:touch;overflow-x:auto}.week-header,.week-body{min-width:600px}}
*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{min-height:100dvh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;height:auto}.tenant-layout{min-height:100dvh;padding-top:var(--header-height)}.tenant-content{max-width:var(--content-max-width);padding:var(--content-padding);margin:0 auto}.btn{border-radius:var(--radius);font-family:var(--font);cursor:pointer;transition:background var(--duration) var(--ease), opacity var(--duration);border:none;justify-content:center;align-items:center;gap:.4rem;padding:.55rem 1rem;font-size:.875rem;font-weight:600;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--text-inverse)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{border:1px solid var(--border);color:var(--text);background:0 0}.btn-secondary:hover:not(:disabled){background:var(--surface-hover)}.btn-danger{background:var(--red);color:#fff}.btn-danger:hover:not(:disabled){background:#e0342b}.badge{border-radius:var(--radius-full);align-items:center;padding:.2rem .6rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-active{background:var(--green-pale);color:var(--green)}.badge-trial{background:var(--accent-pale);color:var(--accent)}.badge-suspended{background:var(--red-pale);color:var(--red)}.badge-cancelled{color:var(--text-secondary);background:#0000000f}.badge-pending{background:var(--orange-pale);color:var(--orange)}.badge-overdue{background:var(--red-pale);color:var(--red)}.badge-confirmed{background:var(--green-pale);color:var(--green)}.page-header{margin-bottom:1.5rem}.page-title{font-size:1.5rem;font-weight:700}.page-subtitle{color:var(--text-secondary);margin-top:.25rem;font-size:.875rem}.section{margin-bottom:2rem}.section-title{margin-bottom:1rem;font-size:1rem;font-weight:700}.toast{border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:1000;animation:fadeInUp .3s var(--ease);padding:.75rem 1.25rem;font-size:.875rem;font-weight:500;position:fixed;bottom:1.5rem;right:1.5rem}.toast-success{background:var(--green);color:#fff}.toast-error{background:var(--red);color:#fff}.toast-info{background:var(--accent);color:#fff}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.empty-state{text-align:center;color:var(--text-secondary);padding:3rem 2rem}.empty-state-title{color:var(--text);margin-bottom:.5rem;font-size:1.1rem;font-weight:600}.empty-state-desc{margin-bottom:1.5rem;font-size:.875rem}.tab-bar{border-bottom:1px solid var(--border);-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:0;margin-bottom:1.5rem;display:flex;overflow-x:auto}.tab-bar::-webkit-scrollbar{display:none}.tab-item{color:var(--text-secondary);cursor:pointer;transition:all var(--duration);font-size:.875rem;font-weight:600;font-family:var(--font);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:.6rem 1.25rem}.tab-item:hover{color:var(--text)}.tab-item.active{color:var(--accent);border-bottom-color:var(--accent)}.login-container{background:var(--bg);justify-content:center;align-items:center;min-height:100dvh;display:flex}.login-card{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-xl);width:100%;max-width:400px;box-shadow:var(--shadow-lg);padding:2.5rem}.login-logo{text-align:center;margin-bottom:2rem}.login-logo h1{font-size:1.5rem;font-weight:700}.login-logo p{color:var(--text-secondary);margin-top:.25rem;font-size:.85rem}.login-error{background:var(--red-pale);color:var(--red);border-radius:var(--radius);margin-bottom:1rem;padding:.6rem .75rem;font-size:.85rem}.landing-nav{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:1rem 2rem;display:flex}.landing-nav-logo{color:var(--text);align-items:center;gap:.5rem;font-size:1.25rem;font-weight:700;text-decoration:none;display:flex}.landing-nav-logo:hover{text-decoration:none}.landing-nav-links{align-items:center;gap:1.5rem;display:flex}.landing-nav-links a{color:var(--text-secondary);font-size:.875rem;font-weight:500;text-decoration:none}.landing-nav-links a:hover{color:var(--text);text-decoration:none}.landing-hero{text-align:center;max-width:800px;margin:0 auto;padding:5rem 2rem 4rem}.landing-hero h1{letter-spacing:-.02em;margin-bottom:1.25rem;font-size:3rem;font-weight:700;line-height:1.15}.landing-hero p{color:var(--text-secondary);max-width:600px;margin:0 auto 2rem;font-size:1.15rem;line-height:1.6}.landing-hero-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.landing-hero-actions .btn{padding:.75rem 1.5rem;font-size:1rem}.landing-section{max-width:1100px;margin:0 auto;padding:4rem 2rem}.landing-section-title{text-align:center;margin-bottom:.5rem;font-size:1.75rem;font-weight:700}.landing-section-subtitle{text-align:center;color:var(--text-secondary);margin-bottom:3rem;font-size:1rem}.landing-features{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;display:grid}.feature-card{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:1.5rem}.feature-card-icon{margin-bottom:.75rem;font-size:1.75rem}.feature-card h3{margin-bottom:.5rem;font-size:1rem;font-weight:700}.feature-card p{color:var(--text-secondary);font-size:.875rem;line-height:1.5}.landing-steps{text-align:center;grid-template-columns:repeat(3,1fr);gap:2rem;display:grid}.step-number{background:var(--accent);width:48px;height:48px;color:var(--text-inverse);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 1rem;font-size:1.25rem;font-weight:700;display:flex}.step-title{margin-bottom:.5rem;font-weight:700}.step-desc{color:var(--text-secondary);font-size:.875rem;line-height:1.5}.pricing-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;max-width:1100px;margin:0 auto;display:grid}.pricing-card{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-xl);box-shadow:var(--shadow);flex-direction:column;padding:2rem;display:flex;position:relative}.pricing-card.featured{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), var(--shadow-lg)}.pricing-badge{background:var(--accent);color:#fff;border-radius:var(--radius-full);padding:.25rem 1rem;font-size:.75rem;font-weight:700;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.pricing-plan-name{margin-bottom:.5rem;font-size:1.25rem;font-weight:700}.pricing-plan-desc{color:var(--text-secondary);margin-bottom:1.5rem;font-size:.875rem;line-height:1.5}.pricing-price{margin-bottom:.25rem;font-size:2.5rem;font-weight:700}.pricing-price span{color:var(--text-secondary);font-size:1rem;font-weight:400}.pricing-features{flex:1;margin:1.5rem 0;list-style:none}.pricing-features li{align-items:center;gap:.5rem;padding:.4rem 0;font-size:.875rem;display:flex}.pricing-features li:before{content:"✓";color:var(--green);font-weight:700}.pricing-cta{margin-top:auto}.pricing-cta .btn{width:100%}.faq-list{max-width:700px;margin:0 auto}.faq-item{border-bottom:1px solid var(--border);padding:1.25rem 0}.faq-question{cursor:pointer;margin-bottom:.5rem;font-size:.95rem;font-weight:700}.faq-answer{color:var(--text-secondary);font-size:.875rem;line-height:1.6}.landing-footer{border-top:1px solid var(--border);text-align:center;color:var(--text-secondary);padding:2.5rem 2rem;font-size:.85rem}.landing-footer-links{justify-content:center;gap:1.5rem;margin-bottom:1rem;display:flex}.landing-footer-links a{color:var(--text-secondary);font-size:.85rem}.landing-footer-links a:hover{color:var(--text)}.signup-container{max-width:540px;margin:0 auto;padding:3rem 2rem}.signup-steps{gap:.5rem;margin-bottom:2rem;display:flex}.signup-step{background:var(--border);border-radius:2px;flex:1;height:4px}.signup-step.active{background:var(--accent)}.signup-step.done{background:var(--green)}.signup-card{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:2rem}.signup-title{margin-bottom:.25rem;font-size:1.25rem;font-weight:700}.signup-subtitle{color:var(--text-secondary);margin-bottom:1.5rem;font-size:.875rem}.signup-actions{gap:.75rem;margin-top:1.5rem;display:flex}.signup-actions .btn{flex:1}.plan-option{border:2px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:border-color var(--duration);padding:1rem}.plan-option:hover{border-color:var(--accent)}.plan-option.selected{border-color:var(--accent);background:var(--accent-pale)}.plan-option-name{font-weight:700}.plan-option-price{color:var(--text-secondary);font-size:.875rem}.plan-option-desc{color:var(--text-secondary);margin-top:.25rem;font-size:.8rem}.setup-container{max-width:600px;margin:0 auto;padding:3rem 2rem}.setup-card{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:2rem}.setup-title{margin-bottom:.25rem;font-size:1.25rem;font-weight:700}.setup-subtitle{color:var(--text-secondary);margin-bottom:1.5rem;font-size:.875rem}.setup-actions{gap:.75rem;margin-top:1.5rem;display:flex}.setup-actions .btn{flex:1}.tenant-dashboard-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-bottom:2rem;display:grid}.calendar-grid{background:var(--border);border:1px solid var(--border);border-radius:var(--radius-lg);grid-template-columns:repeat(7,1fr);gap:1px;display:grid;overflow:hidden}.calendar-header-cell{background:var(--surface);text-align:center;color:var(--text-secondary);padding:.5rem;font-size:.75rem;font-weight:600}.calendar-cell{background:var(--surface);min-height:80px;padding:.5rem;font-size:.8rem}.calendar-cell.other-month{opacity:.4}.calendar-cell.today{background:var(--accent-pale)}.calendar-day{margin-bottom:.25rem;font-weight:600}.calendar-event{white-space:nowrap;text-overflow:ellipsis;background:var(--accent-pale);color:var(--accent);border-radius:3px;margin-bottom:2px;padding:.15rem .35rem;font-size:.7rem;overflow:hidden}.financeiro-summary{grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem;display:grid}.hero{padding:40px var(--content-padding) 0;max-width:var(--content-max-width);margin:0 auto}.hero-greeting{color:var(--text);letter-spacing:-.02em;margin-bottom:8px;font-size:2rem;font-weight:700;line-height:1.2}.hero-date{color:var(--text-secondary);margin-bottom:32px;font-size:.88rem;font-weight:400}.section-header{padding:0 var(--content-padding);max-width:var(--content-max-width);justify-content:space-between;align-items:center;margin-bottom:20px;margin-left:auto;margin-right:auto;display:flex}.section-header .section-title{letter-spacing:-.01em;color:var(--text);font-size:1.3rem}.section-subtitle{color:var(--text-secondary);margin-left:12px;font-size:.84rem;font-weight:400}.projects-grid{padding:0 var(--content-padding) 60px;max-width:var(--content-max-width);grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:20px;margin:0 auto;display:grid}.sort-select{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;padding:7px 12px;font-family:inherit;font-size:.78rem}.empty-state-icon{background:var(--surface);width:80px;height:80px;box-shadow:var(--shadow-md);border-radius:20px;justify-content:center;align-items:center;margin:0 auto 20px;display:flex}.proj-bar{background:var(--surface);border-bottom:1px solid var(--border-light);flex-wrap:wrap;align-items:center;gap:14px;padding:12px 32px;display:flex}.proj-bar-label{color:var(--text-secondary);white-space:nowrap;font-size:.78rem;font-weight:600}#proj-select{border:1px solid var(--border);color:var(--text);background:var(--surface);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b6460' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;border-radius:7px;outline:none;min-width:260px;padding:8px 32px 8px 12px;font-family:inherit;font-size:.875rem;font-weight:600}.proj-actions{align-items:center;gap:8px;margin-left:8px;display:flex}.btn-cadastro{color:var(--accent);background:var(--accent-pale);cursor:pointer;white-space:nowrap;border:none;border-radius:8px;align-items:center;gap:5px;padding:6px 14px;font-family:inherit;font-size:.76rem;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.btn-cadastro:hover{opacity:.8}.overall-prog{align-items:center;gap:10px;margin-left:auto;display:flex}.overall-prog span{color:var(--text-secondary);font-size:.78rem}.prog-bar-wrap{background:var(--border-light);border-radius:4px;width:160px;height:8px;overflow:hidden}.prog-bar-fill{background:var(--green);border-radius:4px;height:100%;transition:width .4s}.prog-pct{color:var(--green);min-width:36px;font-size:.82rem;font-weight:700}.proj-status-bar{background:var(--surface);border-bottom:1px solid var(--border-light);-webkit-overflow-scrolling:touch;scrollbar-width:none;align-items:center;gap:8px;padding:10px 32px;display:none;overflow-x:auto}.proj-status-bar::-webkit-scrollbar{display:none}.proj-status-bar.visible{display:flex}.proj-status-bar .status-label{color:var(--text-secondary);white-space:nowrap;margin-right:4px;font-size:.72rem;font-weight:600}.status-pill{cursor:pointer;white-space:nowrap;border:1.5px solid #0000;border-radius:16px;flex-shrink:0;padding:5px 12px;font-family:inherit;font-size:.72rem;font-weight:600;transition:all .15s}.status-pill:hover{border-color:currentColor}.status-pill.active{box-shadow:0 0 0 2px}.sp-captacao{color:var(--purple);background:var(--purple-pale)}.sp-proposta{color:var(--accent);background:var(--accent-pale)}.sp-em_andamento{color:var(--green);background:var(--green-pale)}.sp-aprovacao{color:var(--orange);background:var(--orange-pale)}.sp-executivo{color:var(--accent);background:var(--accent-pale)}.sp-obra{color:var(--orange);background:var(--orange-pale)}.sp-encerrado{color:var(--text-secondary);background:var(--surface-secondary)}.dev-container{grid-template-columns:1fr 310px;align-items:start;gap:24px;max-width:1200px;margin:0 auto;padding:28px 20px;display:grid}.task-row{border-bottom:1px solid var(--border-light);align-items:center;gap:8px;padding:8px 16px;transition:background .1s;display:flex;position:relative}.task-row:last-child{border-bottom:none}.task-row:hover{background:var(--surface-hover)}.task-cb{border:2px solid var(--border);cursor:pointer;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;transition:all .15s;display:flex}.task-cb.checked{background:var(--green);border-color:var(--green)}.task-cb svg{width:10px;height:10px;display:none}.task-cb.checked svg{display:block}.task-name-input{color:var(--text);background:0 0;border:1px solid #0000;border-radius:4px;outline:none;flex:1;min-width:0;padding:3px 5px;font-family:inherit;font-size:.83rem;transition:all .15s}.task-name-input:hover,.task-name-input:focus{border-color:var(--border);background:var(--surface)}.task-name-input.done{color:var(--text-secondary);text-decoration:line-through}.task-date-input{color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;outline:none;width:96px;padding:2px 4px;font-family:inherit;font-size:.7rem;transition:all .15s}.task-date-input:hover,.task-date-input:focus{border-color:var(--border);background:var(--surface);color:var(--text)}.task-date-input.overdue{color:var(--red);font-weight:600}.task-pri{white-space:nowrap;cursor:pointer;text-align:center;color:#0000;background:0 0;border:none;border-radius:10px;flex-shrink:0;min-width:28px;padding:2px 7px;font-family:inherit;font-size:.65rem;font-weight:700}.pri-alta{background:var(--red-pale);color:var(--red)}.pri-media{background:var(--orange-pale);color:var(--orange)}.task-hrs{opacity:.45;flex-shrink:0;align-items:center;gap:2px;transition:opacity .15s;display:flex}.task-row:hover .task-hrs{opacity:1}.task-hrs input{width:34px;color:var(--text-secondary);text-align:right;-moz-appearance:textfield;background:0 0;border:1px solid #0000;border-radius:4px;outline:none;padding:2px 4px;font-family:inherit;font-size:.68rem;transition:all .15s}.task-hrs input::-webkit-outer-spin-button{-webkit-appearance:none}.task-hrs input::-webkit-inner-spin-button{-webkit-appearance:none}.task-hrs input:hover,.task-hrs input:focus{border-color:var(--border);background:var(--surface);color:var(--text)}.task-hrs em{color:var(--text-secondary);font-size:.65rem;font-style:normal}.task-del{width:20px;height:20px;color:var(--text-secondary);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;transition:opacity .15s,background .15s;display:flex}.task-row:hover .task-del{opacity:.6}.task-del:hover{background:var(--red-pale);color:var(--red);opacity:1!important}.add-task-row{border-top:1px solid var(--border-light);align-items:center;gap:8px;padding:10px 16px;display:flex}.add-task-row input{border:1px dashed var(--border);color:var(--text);background:0 0;border-radius:6px;outline:none;flex:1;padding:7px 10px;font-family:inherit;font-size:.82rem}.add-task-row input:focus{border-color:var(--accent);background:var(--surface);border-style:solid}.btn-add{background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:6px;padding:6px 14px;font-family:inherit;font-size:.78rem;font-weight:600}.btn-add:hover{background:var(--accent-hover)}.dev-sidebar{flex-direction:column;gap:14px;display:flex}.dev-sidebar .card{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.dev-sidebar .card-header{border-bottom:1px solid var(--border-light);padding:14px 16px}.dev-sidebar .card-header h3{margin:0;font-size:.88rem;font-weight:700}.proj-info-grid{grid-template-columns:1fr 1fr;gap:10px;padding:14px;display:grid}.pi{flex-direction:column;gap:2px;display:flex}.pi-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);font-size:.67rem;font-weight:700}.pi-value{color:var(--text);font-size:.84rem;font-weight:600}.pi-full{grid-column:1/-1}.deadline-list{padding:0}.dl-item{border-bottom:1px solid var(--border-light);align-items:center;gap:10px;padding:9px 14px;display:flex}.dl-item:last-child{border-bottom:none}.dl-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.dl-info{flex:1;min-width:0}.dl-info strong{white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;display:block;overflow:hidden}.dl-info span{color:var(--text-secondary);font-size:.7rem}.dl-date{white-space:nowrap;flex-shrink:0;font-size:.72rem;font-weight:700}.dev-empty{text-align:center;color:var(--text-secondary);padding:48px 24px}.dev-empty svg{opacity:.3;margin-bottom:12px}.dev-empty p{margin-bottom:8px;font-size:.9rem}.dev-empty small{opacity:.7;font-size:.78rem}.team-list{padding:8px 0}.team-member-row{align-items:center;gap:10px;padding:7px 14px;display:flex}.team-member-info{flex-direction:column;gap:1px;min-width:0;display:flex}.team-member-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;font-weight:600;overflow:hidden}.team-member-role{color:var(--text-secondary);text-transform:capitalize;font-size:.68rem}.task-collabs{flex-shrink:0;align-items:center;gap:0;display:flex}.task-collabs .task-avatar{border:2px solid var(--surface);margin-right:-4px}.collab-dropdown-wrap{flex-shrink:0;position:relative}.collab-add-btn{border:1.5px dashed var(--border);width:20px;height:20px;color:var(--text-secondary);cursor:pointer;opacity:0;background:0 0;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:.85rem;line-height:1;transition:all .15s;display:flex}.task-row:hover .collab-add-btn{opacity:1}.collab-add-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-pale);opacity:1!important}.collab-dropdown{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);width:180px;box-shadow:var(--shadow-md);z-index:200;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden}.collab-empty{color:var(--text-secondary);padding:10px 12px;font-size:.78rem}.collab-item{cursor:pointer;align-items:center;gap:8px;padding:8px 12px;font-size:.8rem;transition:background .1s;display:flex}.collab-item:hover{background:var(--surface-hover)}.collab-item.assigned{background:var(--accent-pale)}.collab-item span{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.collab-check{color:var(--accent);flex-shrink:0;font-weight:700;flex:0!important}.layout-with-sidebar{min-height:100dvh;display:flex}.sidebar{color:#ffffffb3;z-index:100;background:#1d1d1f;flex-direction:column;width:240px;padding:1.5rem 0;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.sidebar-logo{color:#fff;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:0 1.25rem;font-size:1.1rem;font-weight:700;display:flex}.sidebar-logo .dot{background:var(--accent);border-radius:50%;width:8px;height:8px}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:0 .75rem;display:flex}.sidebar-item{border-radius:var(--radius);color:#ffffffb3;cursor:pointer;font-size:.875rem;font-family:var(--font);text-align:left;background:0 0;border:none;align-items:center;gap:.6rem;width:100%;padding:.6rem .75rem;text-decoration:none;transition:background .15s,color .15s;display:flex}.sidebar-item:hover{color:#fff;background:#ffffff0f;text-decoration:none}.sidebar-item.active{color:#fff;background:#4f8cff26;font-weight:600}.sidebar-separator{background:#ffffff14;height:1px;margin:.75rem 0}.main-content{flex:1;max-width:1200px;margin-left:240px;padding:2rem}@media (max-width:900px){.dev-container{grid-template-columns:1fr}}@media (max-width:768px){.sidebar{display:none}.main-content{margin-left:0;padding:1rem}.landing-hero h1{font-size:2rem}.landing-steps,.pricing-grid{grid-template-columns:1fr}.landing-nav-links{display:none}.financeiro-summary{grid-template-columns:1fr}.hero{padding:28px 20px 0}.hero-greeting{font-size:1.5rem}.section-header{box-sizing:border-box;flex-direction:column;align-items:flex-start;gap:12px;width:100%;padding:0 20px;overflow:hidden}.section-header>div{width:100%;max-width:100%}.filter-pills{max-width:100%}.projects-grid{grid-template-columns:1fr;gap:16px;padding:0 20px 40px}.proj-bar{flex-direction:column;align-items:stretch;gap:10px;padding:12px 16px;overflow:hidden}#proj-select{box-sizing:border-box;width:100%;min-width:0}.proj-actions{-webkit-overflow-scrolling:touch;scrollbar-width:none;max-width:100%;margin-left:0;padding-bottom:4px;overflow-x:auto}.proj-actions::-webkit-scrollbar{display:none}.overall-prog{justify-content:space-between;max-width:100%;margin-left:0}.prog-bar-wrap{flex:1;min-width:0;max-width:120px}.proj-status-bar{padding:10px 16px}.dev-container{padding:20px 14px}.task-row{gap:6px;padding:8px 12px}.task-name-input{font-size:.78rem}.add-task-row{padding:8px 12px}}@media (max-width:480px){.task-date-input,.task-pri,.task-hrs,.task-del{display:none}}html.dark .sp-captacao{color:var(--purple);background:#bf5af226}html.dark .sp-proposta{color:var(--accent);background:#0a84ff26}html.dark .sp-em_andamento{color:var(--green);background:#30d15826}html.dark .sp-aprovacao{color:var(--orange);background:#ff9f0a26}html.dark .sp-executivo{color:var(--accent);background:#0a84ff1f}html.dark .sp-obra{color:var(--orange);background:#ff9f0a1f}html.dark .sp-encerrado{color:var(--text-tertiary);background:#ffffff14}html.dark .prog-bar-wrap{background:#ffffff1a}html.dark .btn-cadastro{color:var(--accent);background:#0a84ff1f}html.dark .btn-cadastro:hover{background:#0a84ff33}