/* Panel «Dirección» (2026-09-29). Solo tokens de app.css. */
[data-management-entry][hidden]{display:none!important}
.management-workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}
.management-workspace>*{min-width:0}
.management-toolbar{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center}
.management-toolbar small{color:var(--muted);font-size:12px}
.management-section{display:grid;gap:10px}
.management-section h3{margin:0;font-size:15px}
.management-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.management-kpi{display:grid;align-content:start;gap:4px;min-height:132px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer}
.management-kpi:hover,.management-kpi:focus-visible{border-color:var(--text)}
.management-kpi[data-tone="negative"]{border-left:4px solid var(--red)}
.management-kpi[data-tone="positive"]{border-left:4px solid var(--green)}
.management-kpi-label{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:12px;font-weight:700}
.management-kpi-label em{font-style:normal;font-weight:600;font-size:11px}
.management-kpi strong{font-size:24px;line-height:1.2}
.management-kpi small{color:var(--muted);font-size:12px}
.management-kpi .management-source{font-size:11px}
.management-kpi[data-tone="negative"] strong{color:var(--red)}
.management-rows{margin:4px 0 0;padding:0;list-style:none;display:grid;gap:3px;font-size:12px}
.management-rows li{display:grid;grid-template-columns:1fr auto;gap:0 8px;align-items:baseline}
.management-rows li span{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.management-rows li b{font-variant-numeric:tabular-nums}
.management-rows li small{grid-column:1/-1;color:var(--muted);font-size:11px}
.management-warning{margin:0;padding:10px 12px;border-left:4px solid var(--amber-strong);border-radius:0 var(--radius) var(--radius) 0;background:var(--amber-soft);font-size:13px}
@media (max-width:640px){.management-grid{grid-template-columns:1fr 1fr}.management-kpi{min-height:0}.management-kpi .management-source{display:none}.management-rows li small{display:none}.management-kpi strong{font-size:20px}}
@media (max-width:380px){.management-grid{grid-template-columns:1fr}}
/* Cuenta de resultados (2026-10-26): se lee de arriba abajo y cada fila se abre hasta el documento. */
.income-statement{display:grid;gap:12px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.income-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.income-head h3{margin:0;font-size:17px}
.income-month{display:flex;align-items:center;gap:6px;margin:0;font-size:13px;font-weight:700}
.income-month select{margin:0;min-height:38px}
.income-links{display:flex;flex-wrap:wrap;gap:6px;margin-left:auto}
.income-intro,.income-source{margin:0;color:var(--muted);font-size:12px}
.income-table{display:grid;border-top:1px solid var(--line)}
.income-row{display:grid;grid-template-columns:minmax(0,1fr) 120px 140px;gap:10px;align-items:baseline;padding:9px 4px;border-bottom:1px solid var(--line-inner)}
.income-columns{color:var(--muted);font-size:12px;font-weight:700;text-align:right}
.income-estimated{display:inline-block;margin-left:4px;padding:0 6px;border-radius:999px;background:var(--amber-soft);color:var(--amber);font-style:normal;font-size:11px;font-weight:800}
.income-amount{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.income-amount small{display:block;color:var(--muted);font-size:11px;font-weight:600}
.income-label{min-width:0;overflow-wrap:anywhere}
.income-label small{display:block;color:var(--muted);font-size:11px;font-weight:500}
.income-group>summary,.income-line>summary{cursor:pointer;list-style:none}
.income-group>summary::-webkit-details-marker,.income-line>summary::-webkit-details-marker{display:none}
.income-group>summary .income-label::before,.income-line>summary .income-label::before{content:"▸ ";color:var(--muted)}
.income-group[open]>summary .income-label::before,.income-line[open]>summary .income-label::before{content:"▾ "}
.income-group>summary{font-weight:700}
.income-group>summary:hover,.income-line>summary:hover{background:var(--row-hover)}
.income-group>summary:focus-visible,.income-line>summary:focus-visible{outline:2px solid var(--text);outline-offset:-2px}
.income-group[data-tone="warning"]>summary{background:var(--amber-soft)}
.income-revenue>summary{font-size:15px}
.income-children{display:grid;gap:2px;padding:6px 0 8px 18px;background:var(--foot)}
.income-children .income-row{font-size:13px}
.income-static{padding-left:18px}
.income-items{margin:0 0 6px;padding:0;list-style:none;display:grid;gap:2px}
.income-items li{display:grid;grid-template-columns:minmax(0,1fr) 120px 140px;gap:2px 10px;align-items:center;padding:6px 4px;border-bottom:1px dashed var(--line-inner);font-size:12px}
.income-items li small{grid-column:1/-1;color:var(--muted);font-size:11px}
.income-item-main{display:flex;flex-wrap:wrap;gap:2px 8px;min-width:0}
.income-item-main span{color:var(--muted)}
.income-item-party{overflow-wrap:anywhere}
.income-items .small-action{min-height:32px}
.income-item-action{justify-self:start}
.income-item-main{padding-left:18px}
.income-items li.income-group-picker{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;border-bottom:0;padding-top:8px}
.income-group-picker label{display:inline-flex;align-items:center;gap:6px;font-weight:600}
.income-group-picker select{font-size:12px;padding:3px 6px;max-width:260px}
.income-group-picker small{grid-column:auto}
.income-more,.income-empty{color:var(--muted);font-size:12px;margin:4px 0}
.income-heading{padding:12px 4px 4px;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.income-total{font-weight:700;border-top:1px solid var(--line)}
.income-result{font-size:16px;font-weight:800;border-top:2px solid var(--text);border-bottom:0;background:var(--thead)}
.income-result[data-tone="negative"]>.income-amount:first-of-type,.income-result .income-amount[data-tone="negative"]{color:var(--red)}
.income-result[data-tone="positive"]>.income-amount:first-of-type,.income-result .income-amount[data-tone="positive"]{color:var(--green)}
.income-tasks{display:grid;gap:6px}
.income-tasks h4{margin:0;font-size:15px}
.income-tasks ul{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.income-task{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;border:1px solid var(--line);border-left:4px solid var(--amber-strong);border-radius:0 var(--radius) var(--radius) 0;background:var(--surface);font-size:13px}
.income-task-main{flex:1 1 220px;display:grid;gap:4px}
.income-task-title{font-weight:700}
.income-task-amount{font-variant-numeric:tabular-nums;white-space:nowrap}
.income-task-reasons{margin:0;padding-left:18px!important;list-style:disc!important;color:var(--muted);font-weight:400}
.income-task-person{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:13px}
.income-task-items{display:flex;flex-wrap:wrap;gap:6px}
.income-howto summary{cursor:pointer;font-size:12px;color:var(--muted)}
.income-howto ul,.income-howto p{margin:6px 0 0;font-size:12px;color:var(--muted)}
.income-howto ul{padding-left:20px;display:grid;gap:4px}
.income-lines-scope{margin:0;font-size:13px}
.income-information .income-row{color:var(--muted);font-size:13px}
.income-checks summary{cursor:pointer;font-weight:700;font-size:13px}
.income-checks ul{margin:6px 0 0;padding-left:20px;display:grid;gap:4px;font-size:13px}
.income-lines{display:grid;gap:8px}
.income-lines h4{margin:8px 0 0;font-size:15px}
.income-lines-table td{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.income-lines-result small,.income-lines-table th small{display:block;color:var(--muted);font-size:11px;font-weight:500;white-space:normal}
.income-lines-table tr[data-tone="negative"] .income-lines-result strong{color:var(--red)}
.income-lines-table tr[data-tone="positive"] .income-lines-result strong{color:var(--green)}
.income-bridge{display:grid;gap:6px;margin-top:14px}
.income-bridge h4{margin:0;font-size:14px}
.income-bridge .income-row,.income-bridge .income-items li{grid-template-columns:minmax(0,1fr) 140px}
.income-bridge .income-items{padding-left:18px}
.income-bridge .income-amount[data-tone="negative"]{color:var(--red)}
@media (max-width:640px){.income-bridge .income-row,.income-bridge .income-items li{grid-template-columns:minmax(0,1fr) 112px}.income-statement{padding:12px}.income-row{grid-template-columns:minmax(0,1fr) 92px 100px;gap:6px;font-size:13px}.income-columns{font-size:11px}.income-children{padding-left:8px}.income-items li{grid-template-columns:minmax(0,1fr) auto}.income-item-main{padding-left:6px}.income-item-action{grid-column:1/-1}.income-item-action:empty{display:none}.income-links{margin-left:0}.income-result{font-size:14px}}

/* Evolución del año en Dirección (2026-11-05): barras de lo facturado y línea del resultado. */
.income-evolution{display:grid;gap:8px;padding-top:4px;border-top:1px solid var(--line)}
.income-evolution h4{margin:0;font-size:15px}
.income-evo-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--muted)}
.income-evo-legend span{display:inline-flex;align-items:center;gap:6px}
.income-evo-swatch{display:inline-block;width:12px;height:12px;border-radius:2px;background:var(--blue)}
.income-evo-swatch.is-estimated{background:repeating-linear-gradient(45deg,var(--blue) 0 1px,var(--soft) 1px 5px);outline:1px solid var(--blue);outline-offset:-1px}
.income-evo-key{display:inline-block;width:18px;height:0;border-top:2px solid var(--info);position:relative}
.income-evo-key::after{content:"";position:absolute;left:50%;top:-5px;width:6px;height:6px;margin-left:-4px;border-radius:50%;background:var(--info);border:1px solid var(--surface)}
.income-evo-scroll{overflow-x:auto}
/* El svg global de los iconos (app.css) pone trazo negro a todo lo que hay dentro: aquí se anula y cada pieza lleva el suyo. */
.income-evo-chart{display:block;width:100%;min-width:460px;height:auto;max-height:340px;fill:none;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter}
.income-evo-chart text{stroke:none;font-family:inherit}
.income-evo-grid{stroke:var(--line-inner);stroke-width:1;fill:none}
.income-evo-grid.is-zero{stroke:var(--line-control);stroke-width:1.2}
.income-evo-tick,.income-evo-axis{fill:var(--muted);font-size:11px;font-weight:500}
.income-evo-axis.is-note{font-size:11px;font-weight:400;fill:var(--muted)}
.income-evo-value{fill:var(--muted);font-size:11px;font-weight:500;paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round}
.income-evo-bar{fill:var(--blue);stroke:none}
.income-evo-bar.is-estimated{fill:url(#income-evo-hatch);stroke:var(--blue);stroke-width:1;stroke-opacity:.7}
.income-evo-hatch-bg{fill:var(--soft);stroke:none}
.income-evo-hatch-line{stroke:var(--blue);stroke-width:1;stroke-opacity:.55}
.income-evo-line{fill:none;stroke:var(--info);stroke-width:2;stroke-linejoin:round;stroke-linecap:round;pointer-events:none}
.income-evo-dot{fill:var(--info);stroke:var(--surface);stroke-width:2;pointer-events:none}
.income-evo-dot.is-loss{fill:var(--red)}
.income-evo-result{fill:var(--info);font-size:11px;font-weight:800;paint-order:stroke;stroke:var(--surface);stroke-width:3px;pointer-events:none}
.income-evo-result.is-loss{fill:var(--red)}
.income-evo-hit{fill:transparent;stroke:none}
.income-evo-month{outline:none}
.income-evo-month:hover .income-evo-hit,.income-evo-month:focus-visible .income-evo-hit{fill:rgba(21,156,132,.10)}
.income-evo-details>summary{cursor:pointer;color:var(--blue-dark);font-size:13px;font-weight:700}
.income-evo-table{overflow-x:auto;margin-top:6px}
.income-evo-table table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}
.income-evo-table th,.income-evo-table td{padding:6px 8px;border-bottom:1px solid var(--line-inner);text-align:right;white-space:nowrap}
.income-evo-table th:first-child,.income-evo-table td:first-child{text-align:left}
.income-evo-table th{color:var(--muted);font-size:12px;background:var(--thead)}
.income-evo-table td[data-tone="negative"]{color:var(--red)}
.income-evo-table td small{color:var(--muted);font-size:11px}
