/* V28.4.0 — Roadmap UI refinement
   Camada visual global. Não altera estrutura, dados, cálculos ou navegação. */
:root{
  --ui-bg:#f5f7fb;--ui-surface:#fff;--ui-surface-2:#f8fafc;--ui-line:#e3eaf2;
  --ui-text:#10233f;--ui-muted:#6b7c93;--ui-blue:#1769e0;--ui-blue-2:#0f58bd;--ui-blue-soft:#eef5ff;
  --ui-green:#18a66a;--ui-green-soft:#ebfaf3;--ui-amber:#f59e0b;--ui-amber-soft:#fff7e8;
  --ui-red:#e44343;--ui-red-soft:#fff1f1;--ui-purple:#7457d9;--ui-purple-soft:#f4f0ff;
  --ui-teal:#168f97;--ui-teal-soft:#eaf9f9;--ui-radius:13px;--ui-radius-sm:9px;
  --ui-shadow:0 5px 18px rgba(35,58,85,.055);--ui-shadow-hover:0 8px 24px rgba(30,74,124,.09);
  --v21-bg:var(--ui-bg);--v21-border:var(--ui-line);--v21-text:var(--ui-text);--v21-muted:var(--ui-muted);
  --v21-blue:var(--ui-blue);--v21-blue-2:var(--ui-blue-2);--v21-blue-soft:var(--ui-blue-soft);
  --v21-green:var(--ui-green);--v21-green-soft:var(--ui-green-soft);--v21-amber:var(--ui-amber);--v21-amber-soft:var(--ui-amber-soft);
  --v21-red:var(--ui-red);--v21-red-soft:var(--ui-red-soft);--v21-purple:var(--ui-purple);--v21-purple-soft:var(--ui-purple-soft);
  --v21-radius:var(--ui-radius);--v21-shadow:var(--ui-shadow);
}
html,body{background:var(--ui-bg)!important;color:var(--ui-text)!important}
body.v2840-ui{letter-spacing:.001em}
::selection{background:#dbeaff;color:#123a6b}

/* Ícones */
.v2840-svg{width:1em;height:1em;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.v21-nav-ico .v2840-svg{width:19px;height:19px}

/* Shell */
.v21-sidebar{background:linear-gradient(180deg,#fff 0%,#fbfcfe 100%);border-right:1px solid #e6ecf3;box-shadow:2px 0 10px rgba(33,56,83,.025)}
.v21-brand{padding-top:9px}.v21-brand-mark{background:linear-gradient(145deg,#123f78,#2977c9);border-radius:10px;box-shadow:0 6px 14px rgba(26,90,158,.2)}
.v21-brand strong{color:#173354}.v21-brand small{color:#7087a1}
.v21-nav{gap:4px}.v21-nav-btn{min-height:43px;border-radius:10px;color:#354963;padding:10px 11px;transition:.16s ease}
.v21-nav-btn:hover{background:#f1f6fd;color:#165da9;transform:translateX(1px)}
.v21-nav-btn.on{background:linear-gradient(90deg,#eaf3ff,#f2f7ff);color:#0a67d0;box-shadow:inset 3px 0 #1677e8,0 1px 3px rgba(22,119,232,.06)}
.v21-nav-ico{display:grid;place-items:center;width:22px;color:#58708e}.v21-nav-btn.on .v21-nav-ico{color:#126dcc}
.v2742-sidebar-toggle{border-color:#e2e9f1;box-shadow:none}.v2742-sidebar-toggle:hover{box-shadow:0 3px 10px rgba(20,94,170,.08)}
.v21-user{border-top-color:#e7edf4}.v21-version{color:#a0aaba}
.v21-topbar{min-height:66px;border-bottom:1px solid #e5ebf2;box-shadow:0 1px 8px rgba(26,47,73,.025);padding-left:24px;padding-right:24px}
.v21-crumbs{color:#94a2b4;letter-spacing:.02em}.v21-top-title{font-size:18px;letter-spacing:-.01em;color:#172d49}.v21-top-sub{color:#7d8ba0}
.v21-content{padding:18px 24px 30px}

/* Cards e painéis */
.v21-card,.v21-panel,.v21-content .panel,.v279-chart-card,.v125-health,.v161-qbox,.v2831-attention-panel,.v280-item,.v281-range>div{
  border-color:var(--ui-line)!important;border-radius:var(--ui-radius)!important;box-shadow:var(--ui-shadow)!important;background:var(--ui-surface)!important;
}
.v21-panel,.v21-card{transition:box-shadow .16s ease,border-color .16s ease}
.v21-page-title h1,.v21-page-title h2,.v21-section-title,.v279-chart-title b{color:#18304d}
.v21-section-title{font-size:12.5px;letter-spacing:-.005em}
.v21-muted{color:var(--ui-muted)}

/* Botões */
.v21-btn,.v21-content .btn,.btn{border-radius:9px!important;border-color:#d8e2ed!important;background:#fff!important;color:#315a86!important;min-height:31px;transition:.15s ease;box-shadow:0 1px 1px rgba(20,50,80,.02)}
.v21-btn:hover,.v21-content .btn:hover,.btn:hover{background:#f5f9fe!important;border-color:#a9c8e9!important;color:#145ea9!important;box-shadow:0 3px 10px rgba(31,92,154,.07)}
.v21-btn.primary,.v21-content .btn.prim,.btn.prim{background:linear-gradient(180deg,#1d7bea,#1468cf)!important;color:#fff!important;border-color:#1468cf!important;box-shadow:0 4px 10px rgba(23,105,224,.18)}
.v21-btn.primary:hover,.v21-content .btn.prim:hover,.btn.prim:hover{background:linear-gradient(180deg,#176ed8,#0e5dbd)!important;color:#fff!important}
.v21-btn.danger{color:#bd3338!important;border-color:#efc9cc!important}.v21-btn.danger:hover{background:#fff5f5!important;border-color:#e9a9ad!important}
.v21-linkbtn{color:#1566b8!important}.v21-linkbtn:hover{text-decoration:underline}

/* Inputs / filtros */
.v21-input,.v21-select,.v21-textarea,.sel,.v21-content input:not([type=checkbox]):not([type=radio]):not([type=color]),.v21-content select,.v21-content textarea{
  border-color:#dbe4ee;border-radius:9px;background:#fff;color:#243a56;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
.v21-input:focus,.v21-select:focus,.v21-textarea:focus,.v21-content input:focus,.v21-content select:focus,.v21-content textarea:focus{border-color:#76aee9!important;box-shadow:0 0 0 3px rgba(23,105,224,.09)!important;background:#fff!important;outline:none}
.v21-searchbar{border-radius:10px;border-color:#dde6ef;box-shadow:0 1px 3px rgba(20,40,70,.025)}
.v21-filter,.v2831-attention-filters button{border-color:#d9e4ef;border-radius:999px;background:#fff;color:#536a84;font-weight:700}
.v21-filter:hover,.v2831-attention-filters button:hover{background:#f4f8fd;border-color:#b9d1eb}.v21-filter.on,.v2831-attention-filters button.active{background:#edf5ff;border-color:#7bb2eb;color:#1264b9;box-shadow:0 1px 3px rgba(24,101,184,.06)}

/* KPI globais com ícone sem alterar a estrutura */
.v21-kpi.v2840-kpi{position:relative;min-height:90px;padding:14px 54px 13px 14px!important;border-radius:12px!important;border-color:#e1e8f0!important;box-shadow:var(--ui-shadow)!important;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.v21-kpi.v2840-kpi:hover{transform:translateY(-1px);box-shadow:var(--ui-shadow-hover)!important;border-color:#d4e0ec!important}
.v2840-kpi-icon{position:absolute;right:13px;top:13px;width:32px;height:32px;border-radius:10px;display:grid;place-items:center;color:var(--tone,#1769e0);background:var(--tint,#eef5ff)}
.v2840-kpi-icon .v2840-svg{width:18px;height:18px}.v21-kpi .label{font-weight:750!important;color:#6d7d91!important;text-transform:uppercase;letter-spacing:.035em}.v21-kpi .value{color:#172d48!important;letter-spacing:-.02em}.v21-kpi .sub{color:#8491a2!important;line-height:1.35}
.v2840-tone-blue{--tone:var(--ui-blue);--tint:var(--ui-blue-soft)}.v2840-tone-success{--tone:var(--ui-green);--tint:var(--ui-green-soft)}.v2840-tone-warning{--tone:var(--ui-amber);--tint:var(--ui-amber-soft)}.v2840-tone-danger{--tone:var(--ui-red);--tint:var(--ui-red-soft)}.v2840-tone-purple{--tone:var(--ui-purple);--tint:var(--ui-purple-soft)}.v2840-tone-teal{--tone:var(--ui-teal);--tint:var(--ui-teal-soft)}

/* Tabelas */
.v21-table,.v2831-attention-table{border-collapse:separate!important;border-spacing:0!important}
.v21-table th,.v2831-attention-table th{background:#f7f9fc!important;color:#687a91!important;font-weight:800!important;border-bottom:1px solid #dfe7ef!important;letter-spacing:.045em!important}
.v21-table td,.v2831-attention-table td{border-bottom:1px solid #edf1f5!important;color:#344b66}
.v21-table tbody tr,.v2831-attention-table tbody tr{transition:background .12s ease}
.v21-table tbody tr:hover td,.v2831-attention-table tbody tr:hover td{background:#f9fbfe!important}
.v21-table th:first-child,.v2831-attention-table th:first-child{border-top-left-radius:8px}.v21-table th:last-child,.v2831-attention-table th:last-child{border-top-right-radius:8px}
.v21-progress{height:6px;background:#e9eef5}.v21-progress i{background:linear-gradient(90deg,#3d91eb,#1769e0)}

/* Status e badges */
.v21-status,.v21-source,.v281-pill,.v2831-severity{border-radius:999px!important;font-weight:800}.v21-status.green{background:#eaf9f1;color:#168453}.v21-status.amber{background:#fff5df;color:#9d6800}.v21-status.red{background:#fff0f0;color:#c23439}.v21-status.purple{background:#f2efff;color:#6747c8}

/* Tabs */
.v21-project-tabs{border-bottom:1px solid #e2e8f0;padding:0 7px;background:#fff;box-shadow:0 1px 3px rgba(25,52,80,.025)}
.v21-project-tabs button{color:#5f6f84;border-bottom-width:3px;border-radius:8px 8px 0 0;padding-top:13px;padding-bottom:12px}
.v21-project-tabs button:hover{background:#f6f9fd;color:#205f9d}.v21-project-tabs button.on{background:#f7fbff;color:#086ddc;border-bottom-color:#1978e8}
.v280-subnav{background:#f4f7fa;border-color:#e0e7ef;border-radius:11px}.v280-subnav button{border-radius:8px}.v280-subnav button.on{color:#0f68cf;box-shadow:0 2px 7px rgba(34,83,132,.1)}

/* Projeto / visão gerencial */
.v21-project-head h1{color:#142b47}.v21-project-metrics{border-color:var(--ui-line);border-radius:12px;box-shadow:var(--ui-shadow)}
.v125-health{padding:13px 15px!important;border-left-width:4px!important}.v125-health.GREEN{border-left-color:var(--ui-green)!important}.v125-health.YELLOW{border-left-color:var(--ui-amber)!important}.v125-health.RED{border-left-color:var(--ui-red)!important}
.v125-health-title{color:#182e49}.v125-health-grid{gap:9px}
.v125-metric.v2840-metric{position:relative;background:linear-gradient(180deg,#fbfcfe,#f7f9fc)!important;border:1px solid #edf1f5;border-radius:10px;padding:9px 11px!important;overflow:hidden}
.v125-metric.v2840-metric:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--tone,#8da2b8);opacity:.72}
.v125-metric .k{color:#6e7d91!important}.v125-metric .v{color:#172d49!important}
.v161-qbox{padding:11px 13px!important}.v161-quality{border-radius:999px}

/* Painel de atenção */
.v2831-attention-panel{padding:14px 15px!important;margin-top:12px!important}.v2831-attention-head b{font-size:13px!important;color:#17304c!important}.v2831-attention-head span{font-size:9.5px!important}.v2831-attention-count{background:#edf5ff;color:#155fae;min-width:34px;height:30px;border-radius:999px}
.v2831-attention-table-wrap{border-color:#e2e9f1!important;border-radius:10px!important}.v2831-attention-table td{padding:10px 9px!important;vertical-align:middle!important}
.v2831-attention-table tr.sev-CRITICAL td:first-child{box-shadow:inset 3px 0 var(--ui-red)}.v2831-attention-table tr.sev-HIGH td:first-child{box-shadow:inset 3px 0 #f08c20}.v2831-attention-table tr.sev-MEDIUM td:first-child{box-shadow:inset 3px 0 #e3b326}.v2831-attention-table tr.sev-LOW td:first-child{box-shadow:inset 3px 0 #5b9be2}
.v2840-att-progress{display:flex;align-items:center;gap:7px;min-width:115px}.v2840-att-progress>b{min-width:31px;font-size:10px!important}.v2840-att-progress-bar{height:6px;flex:1;background:#e9eef4;border-radius:999px;overflow:hidden}.v2840-att-progress-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#2c8bdd,#1b6dcc)}.v2840-att-progress.warn i{background:linear-gradient(90deg,#f8b347,#ef8e16)}.v2840-att-progress.bad i{background:linear-gradient(90deg,#ee7474,#d93e43)}
.v2831-attention-table .btn{font-weight:800!important;padding-left:13px!important;padding-right:13px!important}.v2831-attention-panel.empty{background:linear-gradient(180deg,#fbfcfe,#f7f9fc)!important}

/* Dashboard executivo */
.v279-dashboard-head h2{color:#18314d}.v279-exec-grid{gap:14px}.v279-chart-card{transition:box-shadow .16s ease,transform .16s ease}.v279-chart-card:hover{box-shadow:var(--ui-shadow-hover)!important;transform:translateY(-1px)}
.v279-donut-seg.green{stroke:#27a768}.v279-donut-seg.yellow{stroke:#f2a11b}.v279-donut-seg.red{stroke:#e34a4a}.v279-donut-bg{stroke:#edf1f6}.v279-line.capacity{stroke:#317bd1}.v279-line.demand{stroke:#ef8b34}.v279-risk-bars .critical i{background:#e34a4a}.v279-risk-bars .high i{background:#ef8b34}.v279-risk-bars .medium i{background:#e3b43a}.v279-risk-bars .low i{background:#39a56a}

/* Custos */
.v280-kpi{border-color:#e1e8f0!important;box-shadow:var(--ui-shadow)!important;border-radius:12px!important}.v283-kpi-icon{border-radius:10px}.v283-curve-panel{border-radius:13px!important}.v283-legend{gap:16px}.v283-lower-grid{gap:14px}.v280-item{transition:border-color .15s ease,box-shadow .15s ease}.v280-item:hover{border-color:#d2deeb!important;box-shadow:0 6px 18px rgba(25,58,92,.06)!important}.v280-movements{background:#f8fafc!important}.v281-range>div{padding:15px!important}.v281-scenario-strip{border-color:#dfe7f0!important;background:#f8fafc!important}.v281-pill{background:#edf5ff!important;color:#145ea8!important}.v281-maturity-bars i{background:#eaf0f6!important}

/* Gantt/Cronograma: somente acabamento, sem alterar geometria */
.v21-project .v18-wbs-head{background:#f7f9fc!important;color:#66778e!important;border-bottom-color:#dfe6ee!important}.v21-project .v18-wbs-row{border-bottom-color:#edf1f5!important}.v21-project .v18-wbs-row:hover{background:#fafcff!important}.v21-project .v18-wbs-grid{border-color:#e1e8ef!important;border-radius:10px!important;overflow:visible}.v21-project .v18-mode-switch{border-radius:9px!important;background:#f4f7fa!important}.v21-project .v18-mode-switch button{border-radius:7px!important}.v21-project .v18-mode-switch button.on{background:#1769e0!important;color:#fff!important}

/* Riscos e cards de integração */
.v21-risk-card{border-radius:11px!important;border-color:#e2e9f1!important;box-shadow:0 2px 8px rgba(28,54,82,.035)}.v21-risk-card:hover{box-shadow:0 6px 18px rgba(28,54,82,.065)}.v21-integration-row{border-radius:11px!important;background:#fff}.v21-integration-row:hover{background:#fbfdff;border-color:#d5e0eb}

/* Assistente e administrativo */
.v26-chat{border-color:#e0e8f1!important;background:#f7f9fc!important;border-radius:12px!important}.v26-message.user{background:#eaf3ff!important;border-color:#c9def8!important}.v26-message.assistant{box-shadow:0 2px 7px rgba(27,55,85,.035)}.v26-quick button{border-radius:9px!important;transition:.15s ease}.v26-quick button:hover{border-color:#bfd4ec!important;background:#f6faff!important}.v211-help-step,.v26-provider,.v272-credential-state{border-radius:9px!important}

/* Dialogs / drawers */
.v21-dialog,.v280-dialog{border-radius:15px!important;box-shadow:0 28px 80px rgba(16,35,58,.24)!important}.v21-dialog::backdrop{background:rgba(20,36,57,.42)!important;backdrop-filter:blur(2px)}.v21-dialog .inner{padding:19px!important}.v21-dialog h2{font-size:16px!important;color:#172e49}.v21-dialog menu{border-top:1px solid #edf1f5;padding-top:12px}.v21-drawer{box-shadow:-16px 0 46px rgba(24,48,76,.15)!important}.v21-drawer-head{background:#fbfcfe}.v21-drawer-actions{background:#fbfcfe}

/* Legacy ainda usado em recursos, relatórios e configuração */
.v21-content .v5-box,.v21-content .v12-card,.v21-content .v12-box{border-color:#e2e9f1!important;border-radius:12px!important;box-shadow:var(--ui-shadow)!important;background:#fff!important}.v21-content .v5-table th,.v21-content table.cat th{background:#f7f9fc!important;color:#6b7b90!important}.v21-content .v5-table tr:hover td,.v21-content table.cat tr:hover td{background:#fafcff!important}

/* Responsividade */
@media(max-width:900px){.v21-content{padding-left:15px;padding-right:15px}.v21-topbar{padding-left:15px;padding-right:15px}.v21-kpi.v2840-kpi{min-height:84px}}
@media(max-width:760px){.v21-content{padding:12px 10px 22px}.v21-topbar{min-height:58px}.v21-card,.v21-panel,.v21-content .panel{border-radius:11px!important}.v2831-attention-panel{padding:10px!important}.v21-project-tabs button{padding-left:11px;padding-right:11px}.v21-kpi.v2840-kpi{padding-right:50px!important}}
