/* HANDOFF-049/F1 — extraído de components.css (linhas 491-662 do original).
   DAEs de GF (WF-06, namespace .wf6) e painel/cadastro de DVPFs-3i (TP-11 e TP-11b,
   namespaces .tp11 e .tp11b). Reusa .kpi/.badge/.btn de components.css. */
/* ===== WF-06 — DAEs de GF refinada (HANDOFF-035, telas-daes-gf/gpt-design.md).
   Namespaced em .wf6 para não colidir com .banner/.tag globais. Reusa .kpi/.badge/.btn. ===== */
.wf6 .head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.wf6 .headactions{display:flex;gap:8px;align-items:center;position:relative}
.wf6 .banner{border-radius:8px;padding:12px 16px;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.wf6 .banner.b-crit{background:var(--u-erro-fundo,#ffebee);border:1px solid var(--block)}
.wf6 .banner.b-warn{background:var(--u-ambar-fundo,#fff8e1);border:1px solid var(--warn)}
.wf6 .banner .btitle{font-weight:700;font-size:13.5px}
.wf6 .banner.b-crit .btitle{color:var(--block)}
.wf6 .banner.b-warn .btitle{color:var(--warn)}
.wf6 .banner .btext{font-size:12.5px;color:var(--muted);margin-top:2px}
.wf6 .banner .bactions{display:flex;gap:8px;flex-shrink:0}
.wf6 .kpis{grid-template-columns:repeat(5,1fr)}
.wf6 .kpi.active{border-color:var(--accent);background:var(--u-verde-fundo,#f3f9f3)}
.wf6 .kpi.active .n{color:var(--accent);font-size:14px}
.wf6 .grid2col{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;align-items:start}
@media (max-width:900px){.wf6 .grid2col{grid-template-columns:1fr}.wf6 .kpis{grid-template-columns:repeat(2,1fr)}}
.wf6 .card{background:var(--panel);border:1px solid var(--line);border-radius:10px;margin-bottom:14px}
.wf6 .card>.ch{padding:12px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}
.wf6 .card>.ch h3{font-size:14px;margin:0;font-weight:700}
.wf6 .card>.ch .sub2{font-size:11.5px;color:var(--muted);margin-top:2px;font-weight:400}
.wf6 .card>.cb{padding:14px 16px}
.wf6 .fldrow{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:12px}
.wf6 .fld .k{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.3px}
.wf6 .fld .v{font-size:14px;font-weight:700;margin-top:2px}
.wf6 .consumo-bar-wrap{margin:14px 0}
.wf6 .consumo-label{display:flex;justify-content:space-between;font-size:12.5px;margin-bottom:5px}
.wf6 .consumo-bar{height:14px;border-radius:7px;background:var(--u-hover,#eceff1);overflow:hidden;display:flex}
.wf6 .consumo-bar .used{background:var(--warn)}
.wf6 .consumo-bar .rest{background:var(--u-verde-marca,var(--ok))}
.wf6 .consumo-msg{font-size:12px;color:var(--warn);background:var(--u-ambar-fundo,#fff8e1);border:1px solid var(--warn);border-radius:6px;padding:8px 10px;margin-top:10px}
.wf6 .consumo-msg b{display:block;margin-bottom:2px}
.wf6 .origem-ativacao{font-size:12px;color:var(--muted);margin-top:10px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.wf6 .origem-ativacao .tag{font-size:10px;padding:1px 7px;border-radius:8px;background:var(--u-hover,#eceff1);color:var(--u-tinte-ink,var(--muted));font-weight:600}
.wf6 .actions-row{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.wf6 table.fila{width:100%;border-collapse:collapse;font-size:12.5px}
.wf6 table.fila th{text-align:left;font-size:10px;text-transform:uppercase;color:var(--muted);padding:6px 8px;border-bottom:1px solid var(--line)}
.wf6 table.fila td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
.wf6 .ordem-badge{display:inline-block;min-width:20px;height:20px;border-radius:50%;background:var(--u-hover,#eceff1);color:var(--u-tinte-ink,var(--muted));font-size:11px;font-weight:700;text-align:center;line-height:20px;margin-right:6px;padding:0 4px}
.wf6 .proxima-tag{font-size:10px;background:var(--u-verde-fundo,#e8f5e9);color:var(--ok);border-radius:8px;padding:1px 8px;font-weight:700;margin-left:6px}
.wf6 .pg-pendente-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-top:1px dashed var(--line)}
.wf6 .pg-pendente-row:first-child{border-top:0}
.wf6 .timeline{display:flex;flex-direction:column;gap:10px}
.wf6 .tl-item{display:flex;gap:10px;align-items:flex-start;font-size:12.5px}
.wf6 .tl-icon{flex-shrink:0}
.wf6 .tl-text{flex:1}
.wf6 .tl-time{color:var(--muted);font-size:11px}
.wf6 .tl-badge{font-size:9.5px;padding:1px 6px;border-radius:6px;background:var(--u-hover,#eceff1);color:var(--u-tinte-ink,var(--muted));font-weight:700;margin-left:4px;vertical-align:middle}
.wf6 .accordion-head{cursor:pointer}
.wf6 .chev{color:var(--muted);font-size:12px}
.wf6 .recon-row{display:flex;gap:24px;font-size:13px;margin-bottom:6px}
.wf6 .recon-row .rk{color:var(--muted);font-size:11px;text-transform:uppercase}
.wf6 .recon-row .rv{font-weight:700;font-size:15px}
.wf6 .btn.ghost{border-color:transparent;color:var(--muted)}
.wf6 .muted-note{font-size:11.5px;color:var(--muted);margin-top:8px}
/* modal "Trocar DAE ativa" (override manual, POST /daes-gf/:id/ativar) */
.dae-scrim{position:fixed;inset:0;background:rgba(20,28,34,.45);z-index:70}
.dae-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--panel);border-radius:10px;width:420px;max-width:92vw;z-index:71;box-shadow:0 12px 40px rgba(0,0,0,.25)}
.dae-modal .m-head{padding:16px 18px;border-bottom:1px solid var(--line)}
.dae-modal .m-head h3{margin:0;font-size:15px}
.dae-modal .m-body{padding:16px 18px}
.dae-modal .m-check{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;margin:0 0 16px;cursor:pointer}
.dae-modal .m-foot{display:flex;justify-content:flex-end;gap:8px}

/* ===== TP-11 — Painel de DVPFs-3i (HANDOFF-035, telas-pedido/TP-11-dvpfs/gpt-design.md).
   Namespaced em .tp11; drawer da ficha em .tp11-scrim/.tp11-drawer (nível body). Reusa .badge/.btn. ===== */
.tp11 .head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.tp11 .headactions{display:flex;gap:8px;align-items:center}
.tp11 .kpis{grid-template-columns:repeat(6,1fr)}
.tp11 .kpi.warn .n{color:var(--warn)}
.tp11 .kpi.ok .n{color:var(--ok)}
.tp11 .kpi.block .n{color:var(--warn)}
@media (max-width:900px){.tp11 .kpis{grid-template-columns:repeat(2,1fr)}}
.tp11 .toolbar{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.tp11 .toolbar .search{flex:1;max-width:300px;padding:7px 10px;border:1px solid var(--line);border-radius:6px;font-size:13px}
.tp11 .toolbar select{padding:6px 8px;border:1px solid var(--line);border-radius:6px;font-size:12px;color:var(--muted)}
.tp11 .toolbar .spacer{flex:1}
.tp11 .toolbar .chk{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.tp11 .cards{display:flex;flex-direction:column;gap:10px}
.tp11 .dvpfcard{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 16px;cursor:pointer}
.tp11 .dvpfcard:hover{border-color:var(--line)}
.tp11 .dvpfcard .top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.tp11 .dvpfcard .cliente{font-weight:700;font-size:14px}
.tp11 .dvpfcard .cnpj{font-size:11px;color:var(--muted)}
.tp11 .dvpfcard .nums{font-size:12px;color:var(--muted);margin-top:4px}
.tp11 .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}
.tp11 .d-ok{background:var(--u-verde-marca,var(--ok))}.tp11 .d-warn{background:var(--warn)}.tp11 .d-block{background:var(--block)}.tp11 .d-info{background:var(--u-linha-forte,#b0bec5)}
.tp11 .saldo-wrap{margin-top:10px;max-width:360px}
.tp11 .saldo-label{display:flex;justify-content:space-between;gap:12px;font-size:12px;margin-bottom:4px}
.tp11 .saldo-bar{height:8px;border-radius:5px;background:var(--u-hover,#eceff1);overflow:hidden}
.tp11 .saldo-fill{height:100%;background:var(--u-verde-marca,var(--accent))}
.tp11 .linhas-count{font-size:11px;color:var(--muted);margin-top:4px}
.tp11 .indicadores{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:11.5px;color:var(--muted)}
.tp11 .rowactions{display:flex;gap:8px;margin-top:10px}
/* ficha (drawer 540px) */
.tp11-scrim{position:fixed;inset:0;background:rgba(20,28,34,.45);z-index:60}
.tp11-drawer{position:fixed;top:0;right:0;width:540px;max-width:94vw;height:100vh;background:var(--panel);box-shadow:-8px 0 30px rgba(0,0,0,.25);overflow:auto;z-index:61}
.tp11-drawer .dhead{position:sticky;top:0;background:var(--panel);border-bottom:1px solid var(--line);padding:14px 18px}
.tp11-drawer .dhead .toprow{display:flex;align-items:center;justify-content:space-between}
.tp11-drawer .dhead .titulo{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tp11-drawer .dhead h2{font-size:16px;margin:0}
.tp11-drawer .dhead .x{cursor:pointer;color:var(--muted);font-size:18px;border:1px solid var(--line);border-radius:6px;padding:0 8px}
.tp11-drawer .dbody{padding:16px 18px}
.tp11-drawer .fcard{border:1px solid var(--line);border-radius:8px;margin:0 0 14px}
.tp11-drawer .fcard>h3{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--u-tinte-ink,var(--muted));margin:0;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--u-hover,#fbfcfd)}
.tp11-drawer .fcard .card-body{padding:12px 14px}
.tp11-drawer .fld{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-top:1px dashed var(--line);font-size:13px}
.tp11-drawer .fld:first-child{border-top:0}
.tp11-drawer .fld .k{color:var(--muted);font-size:12px}
.tp11-drawer .fld .v{font-weight:600;text-align:right}
.tp11-drawer table.linhas{width:100%;border-collapse:collapse;font-size:12px}
.tp11-drawer table.linhas th{text-align:left;font-size:10px;text-transform:uppercase;color:var(--muted);padding:6px 4px;border-bottom:1px solid var(--line)}
.tp11-drawer table.linhas td{padding:8px 4px;border-bottom:1px solid var(--line);vertical-align:middle}

/* ===== TP-11b — Cadastro de DVPF-3i (wizard, HANDOFF-035, gpt-design-cadastro.md).
   Namespaced em .tp11b. "Salvar DVPF" é dry-run (flag OFF) — não grava no SISFLORA. ===== */
.tp11b{display:flex;gap:0;align-items:flex-start}
.tp11b-center{flex:1;min-width:0;max-width:860px}
.tp11b-resumo{width:280px;flex-shrink:0;padding:2px 18px;border-left:1px solid var(--line);position:sticky;top:8px}
.tp11b .breadcrumb{font-size:11px;color:var(--muted);margin-bottom:6px}
.tp11b .breadcrumb a{color:var(--accent);cursor:pointer}
.tp11b .docid{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin-top:4px}
.tp11b .docdot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--u-linha-forte,#b0bec5)}
.tp11b .stepper{display:flex;align-items:center;gap:6px;margin:14px 0;flex-wrap:wrap}
.tp11b .step{display:flex;align-items:center;gap:6px}
.tp11b .step .circ{width:24px;height:24px;border-radius:50%;background:var(--u-hover,#eceff1);color:var(--u-tinte-ink,var(--muted));font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}
.tp11b .step.done .circ{background:var(--u-verde-marca,var(--ok));color:var(--u-marca-ink,#fff)}
.tp11b .step.on .circ{background:var(--u-verde-marca,var(--accent));color:var(--u-marca-ink,#fff);box-shadow:0 0 0 3px var(--u-verde-fundo,#e8f5e9)}
.tp11b .step .lbl{font-size:11.5px;color:var(--muted);white-space:nowrap}
.tp11b .step.on .lbl{color:var(--ink);font-weight:700}
.tp11b .step .ln{width:22px;height:2px;background:var(--u-hover,#eceff1)}
.tp11b .step.done .ln{background:var(--u-verde-marca,var(--ok))}
.tp11b .card{background:var(--panel);border:1px solid var(--line);border-radius:10px;margin-top:8px}
.tp11b .card>.ch{padding:12px 16px;border-bottom:1px solid var(--line);font-weight:700;font-size:14px}
.tp11b .card>.cb{padding:16px}
.tp11b .grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.tp11b .field{margin-bottom:14px}
.tp11b .field label{display:block;font-size:12px;color:var(--muted);margin-bottom:4px;font-weight:600}
.tp11b .field .req{color:var(--block)}
.tp11b .field input,.tp11b .field select,.tp11b .field textarea{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:6px;font-size:13px;font-family:inherit}
.tp11b .field textarea{min-height:80px;resize:vertical}
.tp11b .field .hint{font-size:11px;color:var(--muted);margin-top:3px}
.tp11b .field.readonly input{background:var(--bg);color:var(--muted)}
.tp11b .field.err input,.tp11b .field.err textarea{border-color:var(--block)}
.tp11b .field .errmsg{font-size:11.5px;color:var(--block);margin-top:3px;display:none}
.tp11b .field.err .errmsg{display:block}
.tp11b .readonly-box{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:12.5px;color:var(--muted);line-height:1.7}
.tp11b .dup-alert{background:var(--u-ambar-fundo,#fff8e1);border:1px solid var(--warn);border-radius:8px;padding:8px 12px;font-size:12px;color:var(--warn);margin-top:6px}
.tp11b table.linhas-tbl{width:100%;border-collapse:collapse}
.tp11b table.linhas-tbl th{text-align:left;font-size:10px;text-transform:uppercase;color:var(--muted);padding:6px;border-bottom:1px solid var(--line)}
.tp11b table.linhas-tbl td{padding:6px;border-bottom:1px solid var(--line);vertical-align:middle}
.tp11b table.linhas-tbl input,.tp11b table.linhas-tbl select{width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:5px;font-size:12.5px}
.tp11b .rmv{color:var(--block);cursor:pointer;border:1px solid var(--block);border-radius:5px;padding:3px 7px;background:var(--panel)}
.tp11b .tbl-foot{display:flex;justify-content:flex-end;gap:24px;margin-top:10px;font-size:12.5px;color:var(--muted);border-top:1px dashed var(--line);padding-top:8px}
.tp11b .rev-card{border:1px solid var(--line);border-radius:8px;margin-bottom:12px}
.tp11b .rev-card h4{margin:0;padding:8px 12px;font-size:11px;text-transform:uppercase;color:var(--u-tinte-ink,var(--muted));background:var(--u-hover,#fbfcfd);border-bottom:1px solid var(--line)}
.tp11b .rev-card .rb{padding:10px 12px;font-size:13px}
.tp11b .rev-fld{display:flex;justify-content:space-between;gap:12px;padding:4px 0;border-top:1px dashed var(--line)}
.tp11b .rev-fld:first-child{border-top:0}
.tp11b .rev-fld .k{color:var(--muted);font-size:12px}
.tp11b .rev-fld .v{font-weight:600;text-align:right}
.tp11b .checkbox-row{display:flex;align-items:flex-start;gap:8px;background:var(--u-ambar-fundo,#fff8e1);border:1px solid var(--warn);border-radius:8px;padding:10px 12px;margin-top:14px;font-size:12.5px}
.tp11b .rodape{position:sticky;bottom:0;background:var(--panel);border-top:1px solid var(--line);padding:12px 2px;display:flex;align-items:center;gap:10px;margin-top:18px}
.tp11b .autosave{font-size:11px;color:var(--muted)}
.tp11b .resumo-h{font-size:11px;text-transform:uppercase;color:var(--muted);margin:0 0 12px;letter-spacing:.6px}
.tp11b .rf{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-top:1px dashed var(--line);font-size:12.5px}
.tp11b .rf:first-child{border-top:0}
.tp11b .rf .k{color:var(--muted)}
.tp11b .rf .v{font-weight:700;text-align:right;max-width:150px}
.tp11b .estado{margin-top:14px;padding:8px 10px;background:var(--u-hover,#f5f5f5);border-radius:6px;font-size:12px;text-align:center;font-weight:600}
@media (max-width:900px){.tp11b{flex-direction:column}.tp11b-resumo{width:100%;border-left:0;border-top:1px solid var(--line);position:static;padding:14px 0}}

/* ====================================================================== */
/* UIX01/HANDOFF-056 — FASE 4                                             */
/* ====================================================================== */
/*
 * "Texto sobre TINTE pede a TINTA." A regra falhou na F1 (um badge), na F2 (tres
 * lugares do topo) e na F3 (seis classes em nove seletores). Aqui ela falha em
 * daes-gf, e o motivo e instrutivo: a F1 remapeou os legados sob os tokens de um
 * jeito que ja resolve quase tudo —
 *     --ok    -> --u-verde-ink      --warn  -> --u-ambar      --block -> --u-erro
 * ou seja, as tres cores de ESTADO ja viram tinta de tinte sozinhas. Sobram
 * exatamente as duas que o remap manda para cor de PAGINA:
 *     --muted  -> --u-texto-2       (secundario sobre a pagina, 4,54 no limite)
 *     --accent -> --u-verde-texto   (verde de texto sobre a pagina)
 * Sobre um tinte, as duas caem abaixo de 4,5. O proprio tokens.css avisa disso na
 * declaracao de --u-tinte-ink. Medido no render, nao lido no CSS:
 *     .wf6 .banner .btext      4,38   (min 4,5)
 *     .wf6 .kpi.active .n      4,25
 *     .wf6 .kpi.active .l      4,25   <- NAO tinha regra: herda `--muted` de
 *                                        components.css:21. Defeito por HERANCA,
 *                                        invisivel a qualquer leitura de CSS.
 *
 * ESCOPO: tudo daqui para baixo vive sob [data-uix01-demais], o quarto elo. Sem o
 * atributo — que e o caso de PRODUCAO hoje — nada muda. A alternativa (deixar
 * `var(--u-tinte-ink, ...)` solto) faria a correcao valer no instante em que os
 * TOKENS estivessem ligados, o que e hoje: mudaria producao sem passar pela flag
 * desta fase. Correcao boa entrando pela porta errada continua entrando errado.
 */
:root[data-uix01-demais] .wf6 .banner .btext{color:var(--u-tinte-ink,var(--muted))}
:root[data-uix01-demais] .wf6 .kpi.active .n{color:var(--u-verde-ink,var(--accent))}
:root[data-uix01-demais] .wf6 .kpi.active .l,
:root[data-uix01-demais] .wf6 .kpi.active .d{color:var(--u-tinte-ink,var(--muted))}
