/* Reuse the retained task form inside the sales contract workspace. */
.crm-contract-create-host{display:flex;flex-direction:column;min-height:420px;height:calc(100dvh - 390px);margin:12px 0 10px;overflow:hidden}
.crm-contract-create-host[hidden],.crm-contract-list-panel[hidden]{display:none!important}
.crm-contract-create-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;flex-shrink:0}
.crm-contract-create-heading h2{display:flex;align-items:center;gap:7px;margin:0 0 3px}
.crm-contract-create-heading h2 svg{width:16px;height:16px}

.crm-contract-create-body{flex:1;min-height:0;overflow:auto}
@media(max-width:760px){.crm-contract-create-host{margin:10px 0;height:calc(100dvh - 340px)}.crm-contract-create-heading{padding:10px;align-items:flex-start}.crm-contract-create-heading small{display:none}}

/* Bound the complete host chain to the available workspace, then let only the form scroll. */
[class*="crm_ai_workspace_content"]:has(:is(#xinocler-crm-sales-contract-view,.crm-contract-embedded-customer02) [data-contract-view="create"]){min-height:0;overflow:hidden}
:is(#xinocler-crm-sales-contract-view,.crm-contract-embedded-customer02):has([data-contract-view="create"]){height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box}
:is(#xinocler-crm-sales-contract-view,.crm-contract-embedded-customer02):has([data-contract-view="create"])>.crm-window{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}
:is(#xinocler-crm-sales-contract-view,.crm-contract-embedded-customer02) [data-contract-view="create"]{display:flex;flex-direction:column;flex:1;min-height:0;height:100%;overflow:hidden}
:is(#xinocler-crm-sales-contract-view,.crm-contract-embedded-customer02) [data-contract-view="create"]>.crm-contract-page-banner{flex-shrink:0}
:is(#xinocler-crm-sales-contract-view,.crm-contract-embedded-customer02) [data-contract-view="create"]>.crm-contract-create-host{flex:1;min-height:0;height:auto}

/* Keep both workspace gutters stable when switching between list and form. */
[class*="crm_ai_workspace_content"]:has(:is(#xinocler-crm-sales-contract-view,.crm-contract-embedded-customer02)){scrollbar-gutter:stable}
.app-main:has(:is(#xinocler-crm-sales-contract-view,.crm-contract-embedded-customer02) [data-contract-view="create"]){overflow:hidden;scrollbar-gutter:stable}

/* Signature details use the shared accordion and start closed for each contract. */
.crm-contract-signature>summary{list-style:none;cursor:pointer;gap:12px}
.crm-contract-signature>summary::-webkit-details-marker{display:none}
.crm-contract-signature-toggle{display:inline-flex;align-items:center;gap:6px}
.crm-contract-signature-toggle svg{width:14px;height:14px;flex-shrink:0}
.crm-contract-signature[open]>summary .crm-contract-signature-toggle svg{transform:rotate(90deg)}

.crm-contract-party-relations{grid-column:1 / -1;min-width:0}

/* Contain the banner margin inside the full-height route instead of adding 12px outside it. */
:is(#xinocler-crm-sales-contract-view,.crm-contract-embedded-customer02){display:flow-root}

/* Page gutters belong to the host; Banner geometry stays in the public library. */
.crm-contract-page-banner{margin:12px 16px 0;min-width:0}
@media(max-width:760px){.crm-contract-page-banner{margin:10px 10px 0}}
