/* i9Core — entidades, stock e conta corrente.
   Componentes novos (I9Chip, I9Chips, I9SearchBox, I9Meter, I9StackedBar) e o desenho das paginas de Entidades, Stock e Conta
   corrente. Carrega depois de i9core.css; usa só as variaveis --i9-* e os tons .i9-tone--* (claro e escuro). */

/* ---------- I9Chip / I9Chips ---------- */
.i9-chips { display: inline-flex; flex-wrap: wrap; gap: .35rem; }
.i9-chip {
    --tone: var(--i9-tone-info);
    display: inline-flex; align-items: center; gap: .4rem; height: 30px; padding: 0 .75rem; flex-shrink: 0;
    border: 1px solid var(--i9-border-strong); border-radius: var(--i9-radius-pill); background: var(--i9-surface);
    color: var(--i9-text-regular); font: inherit; font-size: .82rem; font-weight: 550; line-height: 1; cursor: pointer; white-space: nowrap;
    transition: background .14s, border-color .14s, color .14s, box-shadow .14s;
}
.i9-chip:hover:not(:disabled) { background: var(--i9-surface-3); border-color: var(--i9-text-placeholder); color: var(--i9-text); }
.i9-chip:focus-visible { outline: 2px solid var(--i9-primary); outline-offset: 1px; }
.i9-chip.is-active {
    color: var(--tone); border-color: color-mix(in srgb, var(--tone) 45%, var(--i9-surface));
    background: color-mix(in srgb, var(--tone) 11%, var(--i9-surface)); font-weight: 650;
}
.i9-chip:disabled { opacity: .5; cursor: default; }
.i9-chip__count {
    display: inline-grid; place-items: center; min-width: 18px; height: 18px; padding: 0 .35rem; border-radius: var(--i9-radius-pill);
    font-size: .7rem; font-weight: 650; font-variant-numeric: tabular-nums; background: var(--i9-surface-3); color: var(--i9-text-2nd);
}
.i9-chip.is-active .i9-chip__count { background: color-mix(in srgb, var(--tone) 18%, var(--i9-surface)); color: var(--tone); }

/* ---------- I9SearchBox ---------- */
.i9-search {
    display: flex; align-items: center; gap: .5rem; height: var(--i9-control-h); padding: 0 .65rem; width: 280px; max-width: 100%;
    border: 1px solid var(--i9-border-strong); border-radius: var(--i9-radius); background: var(--i9-surface); color: var(--i9-text-placeholder);
    transition: border-color .14s, box-shadow .14s; font-weight: 400; margin: 0;
}
.i9-search:focus-within { border-color: var(--i9-primary); box-shadow: var(--i9-ring); color: var(--i9-primary); }
.i9-search input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; font: inherit; font-size: .84rem; color: var(--i9-text); }
.i9-search input::placeholder { color: var(--i9-text-placeholder); }

/* ---------- I9Meter ---------- */
.i9-meter { --tone: var(--i9-tone-success); width: 100%; }
.i9-meter__track { position: relative; height: var(--i9-meter-h, 8px); border-radius: var(--i9-radius-pill); background: var(--i9-surface-3); overflow: hidden; box-shadow: inset 0 0 0 1px var(--i9-border-2); }
.i9-meter__fill { height: 100%; border-radius: inherit; background: var(--tone); transition: width .35s ease, background-color .2s; }
.i9-meter__limit { position: absolute; top: 0; bottom: 0; right: 0; width: 2px; background: var(--i9-surface); opacity: .85; }

/* ---------- I9StackedBar ---------- */
.i9-sbar { display: flex; flex-direction: column; gap: .6rem; }
.i9-sbar__title { font-size: .8rem; font-weight: 600; color: var(--i9-text-regular); }
.i9-sbar__track { display: flex; gap: 2px; height: 14px; border-radius: var(--i9-radius-pill); overflow: hidden; background: var(--i9-surface-3); }
.i9-sbar__track.is-empty { box-shadow: inset 0 0 0 1px var(--i9-border-2); }
.i9-sbar__seg { flex-basis: 0; min-width: 6px; border: 0; padding: 0; margin: 0; background: var(--tone, var(--i9-tone-neutral)); cursor: default; transition: opacity .15s, filter .15s; }
.i9-sbar__seg:not(:disabled) { cursor: pointer; }
.i9-sbar__seg:not(:disabled):hover { filter: brightness(1.08); }
.i9-sbar__seg.is-dim { opacity: .35; }
.i9-sbar__legend { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .25rem .5rem; }
.i9-sbar__item {
    display: inline-flex; align-items: center; gap: .45rem; padding: .25rem .5rem; border: 1px solid transparent; border-radius: var(--i9-radius);
    background: none; font: inherit; font-size: .8rem; color: var(--i9-text-regular); cursor: default;
}
.i9-sbar__item:not(:disabled) { cursor: pointer; }
.i9-sbar__item:not(:disabled):hover { background: var(--i9-surface-3); }
.i9-sbar__item.is-selected { border-color: var(--i9-primary-300); background: var(--i9-primary-soft); }
.i9-sbar__swatch { width: 10px; height: 10px; border-radius: 3px; background: var(--tone, var(--i9-tone-neutral)); flex-shrink: 0; }
.i9-sbar__name { color: var(--i9-text-2nd); }
.i9-sbar__val { font-weight: 650; font-variant-numeric: tabular-nums; color: var(--i9-text); }

/* ---------- I9PageHeader: elemento inicial (avatar) ---------- */
.i9-pagehead__lead { display: inline-flex; flex-shrink: 0; }

/* ---------- Celulas de grelha (Entidades e afins) ---------- */
.i9-toolbar__select { width: 180px; flex: 0 0 auto; }

/* ---------- Ficha de entidade: moradas e contactos adicionais ---------- */
.ef-subitem { padding: .85rem 1rem 1rem; margin-bottom: .75rem; background: var(--i9-surface-2); border: 1px solid var(--i9-border-2); border-radius: 12px; }
.ef-subitem:last-child { margin-bottom: 0; }
.ef-subitem__head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .6rem; }
.ef-subitem__who { display: inline-flex; align-items: center; gap: .55rem; min-width: 0; }

/* ---------- Dados do cliente no documento (consumidor final, morada/NIF emitidos) ---------- */
.i9-customer { margin-top: 1rem; padding: .8rem 1rem; background: var(--i9-surface-2); border: 1px solid var(--i9-border-2); border-radius: 12px; }
.i9-customer__head { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.i9-customer__title { display: inline-flex; align-items: center; gap: .45rem; color: var(--i9-text); }
.i9-customer__summary { flex: 1 1 200px; min-width: 0; color: var(--i9-text-2nd); font-size: .84rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.i9-customer__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: .65rem .85rem; margin-top: .75rem; }
.i9-customer__grid > label { display: flex; flex-direction: column; gap: .3rem; font-size: .78rem; font-weight: 600; color: var(--i9-text-2nd); }
.i9-customer__c2 { grid-column: span 2; }
.i9-customer__c3 { grid-column: span 3; }
.i9-customer__c6 { grid-column: span 6; }
@media (max-width: 900px) { .i9-customer__c2, .i9-customer__c3 { grid-column: span 6; } .i9-customer__c6 { grid-column: span 12; } }
.i9-cell-title { font-weight: 600; color: var(--i9-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pe-code { font-variant-numeric: tabular-nums; font-weight: 600; color: var(--i9-text-regular); }
.i9-toolbar__sep { width: 1px; align-self: stretch; margin: .2rem .25rem; background: var(--i9-border-strong); }
.i9-badges { display: inline-flex; flex-wrap: wrap; gap: .25rem; }
.i9-entcell { display: flex; align-items: center; gap: .65rem; min-width: 0; }
.i9-entcell__txt { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.i9-entcell__name { font-weight: 600; color: var(--i9-text); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.i9-entcell__name:hover { color: var(--i9-primary); text-decoration: underline; }
.i9-entcell__txt small { color: var(--i9-text-2nd); font-size: .75rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.i9-nif { font-variant-numeric: tabular-nums; }
.i9-nif small { margin-right: .3rem; color: var(--i9-text-2nd); font-weight: 600; }
.i9-cellstack { display: flex; flex-direction: column; gap: .1rem; min-width: 0; line-height: 1.3; }
.i9-cellstack small { color: var(--i9-text-2nd); font-size: .75rem; }
.i9-cellstack--end { align-items: flex-end; text-align: right; }
.i9-cellstack--meter { width: 100%; gap: .3rem; }
.i9-cellstack--meter .i9-meter { max-width: 110px; }
.i9-cellstack__line { display: flex; align-items: center; gap: .4rem; min-width: 0; color: var(--i9-text-regular); font-size: .82rem; }
.i9-cellstack__line a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: inherit; text-decoration: none; }
.i9-cellstack__line a:hover { color: var(--i9-primary); text-decoration: underline; }
.i9-cellstack__line svg { flex-shrink: 0; color: var(--i9-text-placeholder); }

/* ---------- Ligacao com aspeto de botao ---------- */
.i9-button-link {
    display: inline-flex; align-items: center; gap: .4rem; height: var(--i9-control-h); padding: 0 .85rem;
    border: 1px solid var(--i9-border-strong); border-radius: var(--i9-radius); background: var(--i9-surface);
    color: var(--i9-text-regular); font-size: .84rem; font-weight: 600; text-decoration: none;
    transition: background .14s, border-color .14s, color .14s;
}
.i9-button-link:hover { background: var(--i9-surface-3); color: var(--i9-text); }

/* ---------- Cartao financeiro da entidade ---------- */
.i9-fin__hero { display: flex; flex-direction: column; gap: .15rem; margin-bottom: .9rem; }
.i9-fin__label { font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--i9-text-2nd); }
.i9-fin__value { font-size: 1.75rem; font-weight: 700; line-height: 1.15; font-variant-numeric: tabular-nums; color: var(--i9-text); }
.i9-fin__value.is-credit { color: var(--i9-tone-success); }
.i9-fin__hint { font-size: .8rem; color: var(--i9-text-2nd); }
.i9-fin__alert {
    display: flex; align-items: flex-start; gap: .5rem; padding: .55rem .7rem; margin-bottom: .9rem; border-radius: var(--i9-radius);
    font-size: .82rem; font-weight: 550; color: var(--tone, var(--i9-tone-danger));
    background: color-mix(in srgb, var(--tone, var(--i9-tone-danger)) 10%, var(--i9-surface));
    border: 1px solid color-mix(in srgb, var(--tone, var(--i9-tone-danger)) 30%, var(--i9-surface));
}
.i9-fin__alert svg { flex-shrink: 0; margin-top: .1rem; }
.i9-fin__stats { margin: 0 0 1rem; display: grid; gap: 0; }
.i9-fin__stats > div { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .45rem 0; border-top: 1px solid var(--i9-border-2); }
.i9-fin__stats dt { margin: 0; font-size: .82rem; color: var(--i9-text-2nd); }
.i9-fin__stats dd { margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--i9-text); }
.i9-fin__limit { padding-top: .75rem; border-top: 1px solid var(--i9-border-2); display: flex; flex-direction: column; gap: .5rem; }
.i9-fin__limithead { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.i9-fin__limithead strong { font-variant-numeric: tabular-nums; }
.i9-fin__limitfoot { display: flex; justify-content: space-between; align-items: center; gap: .75rem; font-size: .8rem; color: var(--i9-text-2nd); }
.i9-fin__actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; padding-top: .9rem; border-top: 1px solid var(--i9-border-2); }
