fluent-drawer.gestao-operacao-drawer:has(.gestao-operacao-subprocess) {
    visibility: hidden;
}

fluent-drawer.gestao-operacao-drawer.gestao-operacao-subprocess-open {
    visibility: hidden;
}

fluent-drawer.gestao-operacao-drawer:has(.gestao-operacao-subprocess) :is(fluent-dialog, .disbursement-backdrop) {
    visibility: visible;
}
/* ---- Contrato por escritório (Administração → Contrato): folha A4, chips, blocos e menu do contrato-editor.js ----
   Global e não .razor.css: o Quill e o menu criam os elementos em JS, fora do âmbito do Blazor. */

.contrato-folha-area {
    width: 100%; max-width: 100%; overflow-x: auto; overflow-y: visible;
    padding: 1rem .5rem 1.5rem; box-sizing: border-box;
    overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch;
    scrollbar-gutter: stable;
}
.contrato-folha {
    width: 21cm; min-height: 29.7cm; margin: 0 auto; background: #fff; color: #111;
    box-shadow: 0 1px 3px rgb(0 0 0 / .12), 0 8px 24px rgb(0 0 0 / .08); line-height: 1.25;
}
.contrato-folha p { margin: 0; }
.contrato-folha ol, .contrato-folha ul { margin: 0; padding-left: 1.5em; }
.contrato-folha ol { list-style-type: decimal; }
.contrato-folha ol ol { list-style-type: lower-alpha; }
.contrato-folha ol ol ol { list-style-type: lower-roman; }
.contrato-folha ul { list-style-type: disc; }
.contrato-folha .titulo { text-align: center; font-weight: bold; padding: .15cm .3cm; margin: .2cm 0 .4cm; }
.contrato-folha .titulo.caixa { border: 1px solid #111; }
.contrato-folha .titulo.fioduplo { border-top: 3px double #111; border-bottom: 3px double #111; }
.contrato-folha .titulo.sublinhado { text-decoration: underline; }
.contrato-folha .colunas { display: flex; gap: .5cm; }
.contrato-folha .colunas > div { flex: 1; min-width: 0; }

.contrato-clausula { position: relative; margin: 0 -.25cm .3cm; padding: .1cm .25cm; border: 1px dashed transparent; border-radius: 4px; cursor: text; }
.contrato-clausula:hover { border-color: #c8c8c8; }
.contrato-clausula.activa { border-color: var(--colorBrandBackground); cursor: auto; }
.contrato-clausula.desligada .corpo, .contrato-clausula.desligada .cabecalho { color: #9a9a9a; text-decoration: line-through; }
.contrato-clausula .cabecalho { text-align: center; }
.contrato-clausula .barra {
    position: absolute; right: .1cm; top: 0; transform: translateY(-60%); z-index: 6; display: none; gap: 3px;
    max-width: calc(100% - .2cm); flex-wrap: wrap; justify-content: flex-end;
    font: 11px system-ui, sans-serif; white-space: normal;
    padding: 4px; border-radius: var(--borderRadiusMedium);
    background: var(--colorNeutralBackground1); box-shadow: var(--shadow4);
}
.contrato-clausula:hover .barra, .contrato-clausula.activa .barra { display: flex; }
.contrato-clausula .etiqueta { font: 10px system-ui, sans-serif; text-transform: uppercase; letter-spacing: .03em; padding: 0 4px; border-radius: 3px; }

/* chips e blocos (folha e editor) */
.contrato-folha span.var, .ql-editor span.var {
    background: color-mix(in oklch, var(--colorBrandBackground) 12%, white); border: 1px solid color-mix(in oklch, var(--colorBrandBackground) 45%, white);
    color: #1d3c78; border-radius: 4px; padding: 0 4px; font-family: system-ui, sans-serif; font-size: .85em; white-space: nowrap;
}
.contrato-folha div.bloco, .ql-editor div.bloco {
    border: 2px dashed #9a9a9a; border-radius: 6px; padding: .3cm; margin: .1cm 0; text-align: center;
    color: #555; font-family: system-ui, sans-serif; font-size: .9em;
}
.contrato-folha div.bloco::before, .ql-editor div.bloco::before { content: "▭ "; }

/* Quill dentro da folha: herda a letra da folha */
.contrato-clausula .ql-toolbar.ql-snow {
    position: sticky; top: 0; z-index: 5; max-width: 100%; overflow-x: auto;
    background: #fafafa; border-radius: 4px 4px 0 0; font-family: system-ui, sans-serif;
}
.contrato-clausula .ql-toolbar .ql-variavel, .contrato-clausula .ql-toolbar .ql-bloco { width: auto !important; font-size: 12px; }
.contrato-clausula .ql-container.ql-snow { font-family: inherit; font-size: inherit; border-radius: 0 0 4px 4px; }
.contrato-clausula .ql-editor { padding: .15cm; text-align: inherit; line-height: inherit; }

.contrato-menu {
    position: fixed; z-index: 1000; width: min(300px, calc(100vw - 1rem)); max-height: min(280px, calc(100vh - 1rem));
    overflow: auto; box-sizing: border-box; background: var(--colorNeutralBackground1); color: var(--colorNeutralForeground1);
    border: 1px solid var(--colorNeutralStroke1); border-radius: var(--borderRadiusMedium); box-shadow: var(--shadow16); font: 13px system-ui, sans-serif;
}
.contrato-menu input { width: calc(100% - 16px); margin: 8px; padding: 4px 8px; border: 1px solid var(--colorNeutralStroke1); border-radius: var(--borderRadiusMedium); background: var(--colorNeutralBackground1); color: var(--colorNeutralForeground1); }
.contrato-menu input::placeholder { color: var(--colorNeutralForeground3); }
.contrato-menu input:focus-visible { outline: 2px solid var(--colorBrandStroke1); outline-offset: 1px; }
.contrato-menu .grupo { padding: 6px 10px 2px; font-size: 11px; color: var(--colorNeutralForeground2); text-transform: uppercase; }
.contrato-menu .item { padding: 4px 14px; cursor: pointer; }
.contrato-menu .item.sel { background: var(--colorBrandBackground2); color: var(--colorBrandForeground1); }
.contrato-menu .vazio { padding: 8px 14px; color: var(--colorNeutralForeground2); }

/* AdministracaoLayout owns the viewport and clips its child. The wizard owns
   the vertical scroll so the step actions remain reachable after a long sheet. */

/* The paper stays A4-sized. On a narrow screen it scrolls from the left instead
   of centring the inaccessible part of the sheet outside the viewport. */
@media (max-width: 22cm) {
    .contrato-folha { margin-left: 0; margin-right: 0; }
}

@media (max-width: 767px) {
    .contrato-folha-area { padding-left: .25rem; padding-right: .25rem; }
    .contrato-clausula .barra { position: static; max-width: none; transform: none; margin-bottom: .25rem; justify-content: flex-start; }
    .contrato-clausula .ql-toolbar.ql-snow { position: static; }
}

/* histórico: diff de palavras */
.contrato-diff del { background: #fde2e2; color: #9b1c1c; }
.contrato-diff ins { background: #dcfce7; color: #166534; text-decoration: none; }

/* Pesquisar crédito: no mobile o diálogo ocupa o ecrã todo. Global porque ::part(dialog) não chega do .razor.css. */
@media (max-width: 767px) {
    fluent-dialog:has(.credit-picker)::part(dialog) {
        width: 100vw;
        max-width: 100vw;
        height: 100dvh;
        max-height: 100dvh;
        margin: 0;
        border-radius: 0;
    }
}
