/* ERP interface library. Sizes and colours are shared by all working pages. */
.ui-input[data-ui-no-spin] { appearance:textfield; -moz-appearance:textfield; }
.ui-input[data-ui-no-spin]::-webkit-inner-spin-button, .ui-input[data-ui-no-spin]::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
[data-ui-input-fill-right] input[data-matrix-active="true"] { outline:2px solid #2563eb; outline-offset:-2px; background:#eff6ff; }
.ui-unsaved-selection { position:absolute; z-index:20; top:100%; left:0; width:max-content; max-width:100%; margin:2px 0 0; padding:2px 6px; border:1px solid #f59e0b; border-radius:4px; background:#fffbeb; color:#92400e; font-size:12px; line-height:18px; pointer-events:none; opacity:0; }
.ui-unsaved-selection[hidden] { display:none!important; }
.editor-accordion-body { display:grid; gap:8px; min-width:0; align-content:start; }
.editor-accordion-body > details { min-width:0; border:1px solid #e4e4e7; border-radius:6px; }
.editor-accordion-body > details > summary { cursor:pointer; padding:10px 12px; font-weight:600; font-size:14px; background:#fafafa; }
.editor-accordion-content { min-width:0; padding:12px; }
:root { --ui-control-height:32px; --ui-control-radius:6px; --ui-border:#d4d4d8; --ui-ink:#09090b; --ui-muted:#71717a; --ui-surface:#fff; --ui-selected:#3f3f46; --ui-row-height:42px; }
.ui-field { display:block; min-width:0; }
:is(.erp-page, dialog) :is(input,select,textarea), .ui-input { color:var(--ui-ink); }
.ui-input[data-ui-completion="filled"]:not(:disabled):not([readonly]) { background-color:#ecfdf5; border-color:#6ee7b7; }
.ui-input[data-ui-completion="empty"]:not(:disabled):not([readonly]) { background-color:#fffbeb; border-color:#fcd34d; }
.ui-button-warning:not(:disabled) { background-color:#fef3c7!important; border-color:#fcd34d!important; color:#92400e!important; }
.ui-button-warning:not(:disabled):hover { background-color:#fde68a!important; }
.ui-field > span:first-child { display:block; margin-bottom:4px; }
.ui-field > :is(input:not([type=checkbox]):not([type=radio]),select,textarea),
.ui-field > .ui-unsaved-control > :is(input:not([type=checkbox]):not([type=radio]),select,textarea) { width:100%; }
[data-ui-toast-region] { position:fixed; z-index:10000; top:50%; left:50%; right:auto; bottom:auto; margin:0; transform:translate(-50%,-50%); width:min(420px,calc(100vw - 2rem)); max-height:calc(100dvh - 2rem); overflow:auto; }
:is(.erp-page, dialog) :is(input:not([type]),input[type=text],input[type=search],input[type=email],input[type=password],input[type=number],input[type=date],input[type=url],input[type=tel],input[type=month],input[type=week],input[type=time],input[type=datetime-local],select),
.ui-input { box-sizing:border-box; height:var(--ui-control-height); min-height:var(--ui-control-height); border:1px solid var(--ui-border); border-radius:var(--ui-control-radius); padding:4px 8px; background-color:var(--ui-surface); font-size:13px; line-height:20px; }
:is(.erp-page, dialog) select { padding-right:24px; }
.ui-input-unit { display:flex; align-items:center; min-width:0; box-sizing:border-box; border:1px solid var(--ui-border); border-radius:var(--ui-control-radius); background:var(--ui-surface); }
:is(.erp-page, dialog) .ui-input-unit > input { flex:1 1 0; width:0; min-width:0; height:calc(var(--ui-control-height) - 2px); min-height:0; border:0; background:transparent; padding:4px 8px; }
.ui-input-unit-suffix { flex:none; padding-right:8px; color:var(--ui-muted); font-size:13px; line-height:20px; white-space:nowrap; }
.ui-input-unit:focus-within { outline:2px solid #71717a; outline-offset:2px; }
:is(.erp-page, dialog) .ui-input-unit > input:focus-visible { outline:none; }
:is(.erp-page, dialog) textarea { box-sizing:border-box; min-height:72px; border:1px solid var(--ui-border); border-radius:var(--ui-control-radius); padding:8px; font-size:13px; line-height:20px; background:white; }
:is(.erp-page, dialog) input:is([type=checkbox],[type=radio]) { width:16px; height:16px; min-height:16px; flex-shrink:0; vertical-align:middle; accent-color:var(--ui-ink); cursor:pointer; }
:is(.erp-page, dialog) :is(input,select,textarea,button,a,summary):focus-visible { outline:2px solid #71717a; outline-offset:2px; }
/* A locked value stays readable; the surface, not faded text, indicates its state. */
:is(.erp-page, dialog) :is(input,select,textarea,button):disabled,
:is(.erp-page, dialog) :is(input,textarea)[readonly],
:is(.erp-page, dialog) [aria-disabled="true"] { cursor:default!important; opacity:1!important; }
:is(.erp-page, dialog) :is(input,select,textarea):disabled,
:is(.erp-page, dialog) :is(input,textarea)[readonly] { background-color:#f4f4f5!important; color:var(--ui-ink)!important; -webkit-text-fill-color:var(--ui-ink); }
:is(.erp-page, dialog) .ui-input-unit:has(> input:is(:disabled,[readonly])) { background-color:#f4f4f5; }
:is(.erp-page, dialog) .ui-input-unit > input:is(:disabled,[readonly]) { background-color:transparent!important; }
:is(.erp-page, dialog) button:disabled,
:is(.erp-page, dialog) .ui-button[aria-disabled="true"] { background-color:#e4e4e7!important; color:var(--ui-ink)!important; border-color:var(--ui-border)!important; }
:is(.erp-page, dialog) .ui-selection-field:not(:has(.ui-selection-field-action :is(button:not(:disabled),a[href]))) > .ui-selection-field-value { background-color:#f4f4f5; color:var(--ui-ink); }
:is(.erp-page, dialog) .ui-selection-field:not(:has(.ui-selection-field-action :is(button:not(:disabled),a[href]))) > .ui-selection-field-value,
:is(.erp-page, dialog) .ui-selection-field:not(:has(.ui-selection-field-action :is(button:not(:disabled),a[href]))) > .ui-selection-field-value * { cursor:default!important; }
:is(.erp-page, dialog) :is(input,textarea)::placeholder { color:#a1a1aa; }
:is(.erp-page, dialog) :is(button,a)[class*="rounded"][class*="border"],
:is(.erp-page, dialog) :is(button,a)[class*="rounded"][class*="bg-zinc-950"],
:is(.erp-page, dialog) .ft-button, .ui-button { box-sizing:border-box; display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:var(--ui-control-height); height:var(--ui-control-height); padding:4px 12px; border-radius:var(--ui-control-radius); font-size:13px; line-height:20px; font-weight:600; white-space:nowrap; }
:is(.erp-page, dialog) [data-page-home] { width:48px!important; height:48px!important; padding:0!important; }
:is(.erp-page, dialog) :is(button,a)[data-ui-size=icon][class] { width:32px; padding:0; font-size:20px; }
:is(.erp-page, dialog) :is([data-ui-sort-trigger],[data-ui-filter-button]) { min-height:0; }
:is(.erp-page, dialog) [data-ui-sort-trigger] { height:auto; padding:0; border-radius:0; font-size:12px; }
:is(.erp-page, dialog) :is([data-ui-filter-zone],thead th > div > span[aria-hidden=true]) { background:#fafafa; }
:is(.erp-page, dialog) :is([data-ui-data-table] table,.ui-table) { width:100%; border-collapse:collapse; text-align:left; font-size:12px; }
:is(.erp-page, dialog) :is([data-ui-data-table] table,.ui-table) > thead { background:var(--ui-ink); color:white; text-transform:none; letter-spacing:normal; font-size:12px; }
:is(.erp-page, dialog) .ui-table :is(.ui-input,.ui-selection-field-value,.ui-input-unit-suffix,.ui-button,select,textarea) { font-family:inherit; font-size:12px; line-height:20px; }
:is(.erp-page, dialog) :is([data-ui-data-table] table,.ui-table) > tbody > tr > :is(td,th) { padding:8px; height:var(--ui-row-height); border-bottom:1px solid #e4e4e7; vertical-align:middle; }
:is(.erp-page, dialog) :is([data-ui-data-table] table,.ui-table) > tbody > tr:hover { background:#fafafa; }
:is(.erp-page, dialog) th:is([aria-sort=ascending],[aria-sort=descending]) { background:var(--ui-selected); color:white; }
:is(.erp-page, dialog) th:is([aria-sort=ascending],[aria-sort=descending]) [data-ui-sort-indicator] { color:white; }
.ui-table-toolbar,.ui-table-footer { display:flex; flex-wrap:wrap; align-items:center; gap:12px; padding:8px 16px; background:white; font-size:12px; }
.ui-table-toolbar { border-bottom:1px solid #e4e4e7; }
.ui-toolbar-group { display:flex; flex-direction:column; gap:4px; flex:0 1 auto; min-width:0; max-width:100%; box-sizing:border-box; padding:6px; border:1px solid #e4e4e7; border-radius:var(--ui-control-radius); background:#fafafa; }
.ui-toolbar-group-label { color:var(--ui-muted); font-size:12px; line-height:16px; font-weight:400; }
.ui-toolbar-group-body { display:flex; flex-wrap:wrap; align-items:center; gap:6px; min-width:0; }
.ui-toolbar-group-body > :is(input,select,form) { max-width:100%; min-width:0; }
.ui-table-toolbar.ui-table-toolbar-grouped { align-items:stretch; gap:12px; }
.ui-table-toolbar-grouped .ui-toolbar-group-body > .ui-table-reset { margin-left:auto; }
.ui-table-toolbar-with-controls { align-items:flex-end; gap:8px; padding:8px; }
.ui-table-toolbar-with-controls > .ui-table-reset { margin-left:auto; align-self:center; }
.ui-table-toolbar-controls { display:flex; flex:0 1 auto; flex-wrap:wrap; align-items:flex-end; gap:8px; min-width:0; }
.ui-table-toolbar-controls > :is(select,input) { max-width:100%; }
.ui-period-fields { display:flex; flex-wrap:wrap; align-items:flex-end; gap:8px; min-width:0; }
.ui-period-presets { display:flex; flex-wrap:wrap; align-items:flex-end; gap:6px; }
.ui-period-presets select, .ui-report-grouping { font-weight:500; }
.ui-period-date { display:inline-flex; align-items:center; gap:4px; }
.ui-period-date > span { font-size:10px; font-weight:500; text-transform:uppercase; color:var(--ui-muted); }
.ui-table-toolbar.ui-table-toolbar-with-controls [data-ui-data-table-active-filters] { min-width:0; flex:1 1 auto; }
.ui-table-toolbar-with-controls [data-ui-data-table-active-filters]:empty { display:none; }
.ui-table-toolbar-status:empty { display:none; }
/* Строка полей формы: поля в одну строку, перенос при нехватке ширины. */
.ui-form-row { display:grid; grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)); gap:16px; align-items:end; }
.ui-field-group { min-width:0; margin:0; padding:0; border:0; }
.ui-field-group > legend { margin-bottom:4px; padding:0; font-size:12px; font-weight:500; color:#52525b; }
.ui-field-group-controls { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.ui-table-toolbar input[type=search] { width:288px; max-width:100%; }
.ui-table-toolbar [data-ui-data-table-active-filters] { display:flex; flex:1; flex-wrap:wrap; gap:8px; }
.ui-table-footer { justify-content:space-between; border-top:1px solid #e4e4e7; color:var(--ui-muted); }
.ui-table-footer > div { display:flex; align-items:center; gap:12px; }
.ui-table-footer nav { display:flex; flex-wrap:wrap; }
.ui-table-reset { color:#0369a1; font-size:12px; }
.ui-table-scroll { overflow-x:auto; min-width:0; flex:1; }
.ui-table-workspace { display:flex; align-items:stretch; }
.ui-columns { position:relative; flex:0 0 36px; border-left:1px solid var(--ui-border); background:#fafafa; }
.ui-columns > summary { writing-mode:vertical-rl; cursor:pointer; padding:12px 8px; font-size:12px; font-weight:600; list-style:none; }
.ui-columns[open] { z-index:40; }
.ui-columns-panel { position:absolute; top:0; right:35px; width:280px; border:1px solid var(--ui-border); padding:12px; background:white; box-shadow:-4px 4px 12px #0002; }
.ui-columns-panel label { display:flex; align-items:center; gap:8px; padding:6px 4px; font-size:12px; }
.ui-columns-panel label[hidden] { display:none; }
.ui-columns-panel [data-column-options] { max-height:60vh; overflow:auto; }
.ui-columns-panel [draggable] { cursor:grab; }
.ui-columns-panel .is-drop-target { outline:1px solid #71717a; background:#f4f4f5; }
.ui-column-overlay[popover] { position:fixed; inset:auto; margin:0; box-sizing:border-box; overflow:auto; max-width:calc(100vw - 16px); max-height:calc(100dvh - 16px); }
:is(.erp-page, dialog) .order-column-sidebar > summary:hover,:is(.erp-page, dialog) .order-column-sidebar[open] > summary { background:#e4e4e7; color:#18181b; }
/* Financial matrices deliberately retain their compact cells and semantic colours. */
:is(.erp-page, dialog) .pl-table :is(input:not([type=checkbox]):not([type=radio]),select) { height:26px; min-height:26px; padding:2px 6px; font-size:12px; }
:is(.erp-page, dialog) [hidden] { display:none!important; }

/* Shared column picker, used by orders, lots and employees. */
.column-drag-handle { cursor: grab; color: #71717a; user-select: none; font-size: 16px; line-height: 1; }
.column-drag-handle:active { cursor: grabbing; }
.column-drop-target { outline: 1px solid #71717a; background: #f4f4f5; }
.order-table-workspace { display: flex; align-items: stretch; width: 100%; }
.order-table-scroll { flex: 1; min-width: 0; overflow-x: auto; }
.order-column-sidebar { position: relative; flex: 0 0 36px; min-height: 360px; border-left: 1px solid #d4d4d8; background: #fafafa; }
.order-column-sidebar[open] { z-index: 40; }
.order-column-sidebar > summary { position: absolute; top: 0; right: 0; width: 35px; display: flex; align-items: center; gap: 8px; padding: 12px 8px; writing-mode: vertical-rl; cursor: pointer; font-size: 12px; font-weight: 600; list-style: none; border-bottom: 1px solid #d4d4d8; }
.order-column-sidebar > summary::-webkit-details-marker { display: none; }
.order-column-sidebar > summary:hover, .order-column-sidebar[open] > summary { background: #f4f4f5; color: #18181b; }
.order-column-sidebar > summary:focus-visible { outline: 2px solid #71717a; outline-offset: -2px; }
.order-column-sidebar-content { position: absolute; top: 0; right: 35px; width: 280px; padding: 12px; background: white; border: 1px solid #d4d4d8; box-shadow: -4px 4px 12px rgb(0 0 0 / 12%); }
.order-column-sidebar-options { max-height: 60vh; overflow-y: auto; }
.order-column-sidebar-options label { padding: 6px 4px; cursor: pointer; }
.order-column-sidebar-options label:hover { background: #f4f4f5; }
.order-column-sidebar-options label[hidden] { display: none; }
:is(.erp-page,dialog) [data-ui-filter-panel] { border:1px solid var(--ui-border); border-radius:6px; background:white; color:var(--ui-ink); font-size:12px; box-shadow:0 8px 24px #0002; }
dialog:not(.editor-modal) { border:1px solid var(--ui-border); border-radius:8px; }
dialog::backdrop { background:#0006; }

/* Shared document intake / progress / drop zone primitives (legacy ft-* aliases). */
        .ft-input { width:100%; border:1px solid #d4d4d8; border-radius:6px; padding:8px 10px; background:white; font-size:14px; }
        .ft-button { border-radius:6px; padding:8px 14px; font-size:13px; font-weight:600; border:1px solid #d4d4d8; background:white; display:inline-block; }
        .ft-primary { background:#09090b; color:white; border-color:#09090b; }
        .ft-button:disabled { opacity:.5; cursor:wait; }
        [data-drop-zone] { border:2px dashed #d4d4d8; border-radius:8px; padding:28px 16px; text-align:center; cursor:pointer; background:#fafafa; }
        [data-drop-zone].dragging { border-color:#52525b; background:#f4f4f5; }
        .ui-document-row[data-drop-zone] { display:flex; align-items:center; gap:12px; padding:8px 12px; text-align:left; cursor:default; }
        .ui-document-row-title { flex:0 0 var(--ui-document-title-width,155px); }
        .ui-document-row[data-document-state="empty"] { background:#fffbeb; border-color:#fcd34d; }
        .ui-document-row[data-document-state="filled"] { background:#ecfdf5; border-color:#6ee7b7; }
        .ui-document-row-content { flex:1; min-width:0; }
        .ui-document-row-actions { display:flex; gap:8px; flex-shrink:0; }
        .ui-document-row-content [data-linked-documents]:empty::before { content:'Перетащите файл сюда'; color:#71717a; font-size:13px; }
        .ui-document-row-content .ui-button { max-width:100%; overflow:hidden; text-overflow:ellipsis; }
        @media(max-width:850px) { .ui-document-row[data-drop-zone] { flex-wrap:wrap; } .ui-document-row-title { flex-basis:100%; } .ui-document-row-actions { flex-wrap:wrap; } }
        .ft-status { display:inline-block; border-radius:4px; padding:3px 7px; white-space:nowrap; background:#f4f4f5; }
        .ft-status-pending { background:#fef3c7; color:#92400e; }
        .ft-status-digitized { background:#ecfdf5; color:#047857; }
        .ft-processing-overlay { position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center; background:rgb(0 0 0 / 40%); padding:20px; cursor:wait; outline:none; }
        .ft-processing-card { width:min(440px,100%); background:white; border:1px solid #d4d4d8; padding:24px; box-shadow:0 12px 32px rgb(0 0 0 / 18%); }
        .ft-progress-label { display:flex; justify-content:space-between; gap:12px; margin-bottom:7px; font-size:12px; color:#52525b; }
        .ft-progress-track { height:7px; overflow:hidden; border-radius:999px; background:#e4e4e7; }
        .ft-progress-track span { display:block; width:35%; height:100%; border-radius:inherit; background:#52525b; animation:ft-progress-slide 1.5s ease-in-out infinite; }
        @keyframes ft-progress-slide { from { transform:translateX(-100%); } to { transform:translateX(386%); } }
        @media(prefers-reduced-motion:reduce) { .ft-progress-track span { animation:none; width:100%; opacity:.6; } }

:is(.erp-page,dialog) .ft-button {height:var(--ui-control-height);padding:4px 12px;font-size:13px;}

.employee-dialog { width:min(560px,calc(100vw - 32px)); margin:auto; padding:0; max-height:calc(100dvh - 32px); }
.ui-matrix {border-collapse:collapse;}
/* Collapsed table borders scroll independently of sticky cells and expose the
   underlying months. Keep each pinned-total cell's opaque border with the cell. */
.ui-matrix:has([data-ui-pinned-right]), .ui-table.ui-matrix:has([data-ui-pinned-right]) { border-collapse:separate; border-spacing:0; }
.ui-matrix:has([data-ui-pinned-right]) > :is(thead,tbody) > tr > :is(th,td) { border-right:1px solid #d4d4d8; border-bottom:1px solid #d4d4d8; background-clip:border-box; }
.ui-table.ui-matrix > tbody > tr { background-color:var(--ui-surface); }
.ui-matrix [data-ui-pinned-left] { position:sticky; left:var(--ui-pinned-left,0px); z-index:2; background:inherit; box-shadow:1px 0 0 var(--ui-border); }
.ui-matrix thead [data-ui-pinned-left] { z-index:3; background:var(--ui-ink); }
.ui-matrix [data-ui-pinned-right] { position:sticky; right:var(--ui-pinned-right,0px); z-index:2; box-shadow:-1px 0 0 var(--ui-border); }
.ui-matrix thead [data-ui-pinned-right] { z-index:3; padding:8px; }
@media(max-width:960px) { .ui-matrix [data-ui-pinned-right] { position:static; } }
.ui-matrix-group { overflow:auto; max-height:70dvh; margin-top:8px; border:1px solid var(--ui-border); background:var(--ui-surface); }
.ui-matrix-group-content { min-width:var(--ui-matrix-min-width); }
.ui-matrix-group-fit { width:var(--ui-matrix-min-width); max-width:100%; }
.ui-matrix-group-fit .ui-matrix { font-size:13px; line-height:1.35; }
.ui-matrix-group-fit .ui-matrix > :is(thead,tbody) > tr > :is(th,td) { padding:4px 8px; }
.ui-matrix-group-fit .ui-matrix > thead > tr > th:first-child { text-align:left; }
.ui-matrix-group-fit .ui-matrix > :is(thead,tbody) > tr > :is(th,td):not(:first-child) { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
@media(max-width:640px) { .ui-matrix-unpin-narrow [data-ui-pinned-left], .ui-table-panel .ui-table.ui-matrix-unpin-narrow [data-ui-pinned-left] { position:static; } }
.ui-matrix-group-header { position:sticky; top:0; z-index:10; background:var(--ui-ink); }
.ui-matrix-group .ui-matrix { width:100%; table-layout:fixed; }
.ui-matrix-group .ui-matrix-label-column { width:var(--ui-matrix-label-width); }
.ui-matrix-group-section + .ui-matrix-group-section { margin-top:8px; }
.ui-matrix > thead {background:var(--ui-ink);color:white;}
.ui-table > thead > tr > th:not([data-ui-sort-key]):not(:has(> div)) {padding:8px;}
/* Document preview with a compact data-entry panel. */
.ui-table > tfoot.ui-table-totals > tr > td { padding:8px; height:var(--ui-row-height); vertical-align:middle; font-weight:600; background:#f4f4f5; border-top:2px solid #d4d4d8; border-bottom:1px solid #e4e4e7; }
.ft-doc-layout { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:16px; }
.ft-doc-layout > * { min-width:0; }
.ft-doc-layout select { max-width:100%; }
@media(max-width:1100px) { .ft-doc-layout { grid-template-columns:1fr; } }
/* A fullscreen child frame replaces the host chrome until its dialog closes. */
[data-ui-fullscreen-frame-host][open] { display:flex; flex-direction:column; }
[data-ui-fullscreen-frame-host] > [data-ui-fullscreen-frame-body] { position:relative; flex:1; min-height:0; }
[data-ui-fullscreen-frame-host] > [data-ui-fullscreen-frame-body] > iframe { display:block; width:100%; height:100%; border:0; }
[data-ui-fullscreen-frame-host].ui-child-fullscreen > :not([data-ui-fullscreen-frame-body]) { display:none!important; }
[data-ui-fullscreen-frame-host].ui-child-fullscreen > [data-ui-fullscreen-frame-body] { padding:0!important; }
[data-ui-fullscreen-frame-host].ui-child-fullscreen > [data-ui-fullscreen-frame-body] > iframe { display:block; width:100%; height:100dvh; border:0; }
.ui-table [data-ui-master-row] { cursor:pointer; }
.ui-presence-dot { display:inline-block; width:12px; height:12px; border-radius:50%; background:#facc15; border:1px solid #ca8a04; vertical-align:middle; }
.ui-presence-dot[data-filled="true"] { background:#22c55e; border-color:#15803d; }
.ui-presence-dot[data-state="missing"] { background:#ef4444; border-color:#b91c1c; }
.ui-presence-dot[data-state="pending"] { background:#facc15; border-color:#ca8a04; }
.ui-presence-dot[data-state="complete"] { background:#22c55e; border-color:#15803d; }
.ui-document-row[data-document-state].dragging { background:#dbeafe; border-color:#2563eb; outline:2px solid #2563eb; outline-offset:2px; }
.ui-table [data-ui-master-row][aria-selected="true"] > td { background:#dbeafe; color:#1e3a8a; }
.ui-table [data-ui-master-row]:focus-visible { outline:2px solid #2563eb; outline-offset:-2px; }
.ui-selection-field { display:flex; align-items:stretch; gap:8px; }
.ui-selection-field-value { display:flex; align-items:center; flex:1; min-width:0; min-height:32px; border:1px solid #d4d4d8; border-radius:6px; padding:5px 10px; background:white; overflow-wrap:anywhere; }
.ui-selection-field-action { display:flex; align-items:stretch; flex-shrink:0; gap:8px; }
.ui-selection-field-action > button { height:auto!important; min-height:32px; }
[data-ui-filter-panel] { width:max-content; min-width:min(300px,calc(100vw - 16px)); max-width:min(440px,calc(100vw - 16px)); }
[data-ui-filter-panel][popover] { position:fixed; inset:auto; margin:0; max-height:calc(100dvh - 16px); overflow:auto; }
[data-ui-filter-option-row] > span { min-width:0; overflow-wrap:anywhere; white-space:normal; }

/* Compact bulk actions retain standard control height and readable labels. */
.ui-bulk-toolbar { gap:6px; }
.ui-bulk-toolbar > div { padding:6px; gap:6px; }
.ui-bulk-toolbar label { width:auto; font-size:12px; font-weight:400; }
.ui-bulk-toolbar input:not([type="hidden"]) { width:80px; padding-inline:6px; }
.ui-bulk-toolbar button { padding-inline:8px!important; white-space:nowrap; }
.ui-bulk-toolbar [data-markup-selection-count] { white-space:nowrap; }
.ui-bulk-toolbar > .ui-bulk-single { display:grid; grid-template-columns:auto auto; column-gap:6px; row-gap:4px; align-items:end; }
.ui-bulk-toolbar .ui-bulk-single > label { display:contents; }
.ui-bulk-toolbar .ui-bulk-single > label > span,
.ui-bulk-toolbar .ui-bulk-single > .ui-bulk-title { grid-column:1 / -1; }
.ui-bulk-toolbar .ui-bulk-single > label > input,
.ui-bulk-toolbar .ui-bulk-single > label > div { margin-top:0; }

/* Validation summaries sit outside editor grids. */
.ui-editor-errors { margin-bottom:16px; padding:12px 16px; border:1px solid #fca5a5; border-radius:6px; background:#fef2f2; color:#991b1b; font-size:13px; overflow-wrap:anywhere; }
.ui-editor-errors ul { margin:8px 0 0; padding-left:20px; list-style:disc; }
.ui-editor-errors li + li { margin-top:6px; }

.ui-validation-list { max-height:45vh; overflow-y:auto; margin:0; padding:0 8px 0 20px; list-style:disc; font-size:13px; overflow-wrap:anywhere; }
.ui-validation-list li + li { margin-top:8px; }

.ui-input[aria-invalid="true"] { border-color:#dc2626 !important; background:#fef2f2 !important; color:#991b1b !important; }
.ui-validation-link { color:inherit; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.ui-validation-link:focus-visible { outline:2px solid #dc2626; outline-offset:3px; }

.ui-validation-table { max-height: 55vh; }
.ui-validation-table td { white-space: normal; vertical-align: top; min-width: 150px; }
.ui-validation-table td:last-child { min-width: 260px; }
.ui-validation-table td p + p { margin-top: 8px; }

/* Scrollable editor matrix; expansion preserves the original form controls. */
.ui-table-panel { min-width:0; }
.ui-table-panel .ui-table-scroll { overflow:auto; max-height:45dvh; }
.ui-table-panel .ui-table thead th { position:sticky; top:0; z-index:2; background:var(--ui-ink); }
.ui-table-panel .ui-table tfoot td { position:sticky; bottom:0; z-index:2; background:#f4f4f5; }
.ui-table-panel.is-expanded { position:fixed; inset:0; z-index:50; margin:0!important; border-radius:0; display:flex; flex-direction:column; gap:12px; padding:16px; background:var(--ui-surface); overflow:hidden; }
.ui-table-panel.is-expanded > * { margin-top:0!important; }
.ui-table-panel.is-expanded > [data-ui-repeater] { flex:1; min-height:0; display:flex; flex-direction:column; }
.ui-table-panel.is-expanded .ui-table-workspace { flex:1; min-height:0; }
.ui-table-panel.is-expanded .ui-table-scroll { max-height:none; }

/* Pin identifying cells independently of column order and visibility. */
.ui-table-panel .ui-table [data-ui-pinned-left] { position:sticky; left:var(--ui-pinned-left,0px); z-index:1; background:var(--ui-surface); box-shadow:1px 0 0 var(--ui-border); }
.ui-table-panel .ui-table thead [data-ui-pinned-left] { top:0; z-index:4; background:var(--ui-ink); }
.ui-table-panel .ui-table tfoot [data-ui-pinned-left] { bottom:0; z-index:3; background:#f4f4f5; }
.ui-table-panel .ui-table tbody tr:hover [data-ui-pinned-left] { background:#fafafa; }

.ui-validation-summary { padding:0; }
.ui-validation-summary summary { min-height:48px; padding:12px 16px; cursor:pointer; font-weight:600; }
.ui-validation-summary .editor-accordion-content { padding:0 16px 12px; }
.ui-validation-summary [data-validation-content] { height:240px; overflow:auto; }
.ui-validation-summary .ui-validation-table { max-height:none; overflow:visible; }
.ui-validation-summary[data-error-count="0"] { background:#f4f4f5; border-color:#d4d4d8; color:#52525b; }
.ui-validation-summary[data-error-count="0"]:not([data-warning-count="0"]) { background:#fffbeb; border-color:#fcd34d; color:#92400e; }
[data-ui-issue-severity="warning"] td, [data-ui-issue-field="warning"] { background:#fffbeb !important; color:#92400e !important; border-color:#fcd34d !important; }
[data-ui-issue-severity="error"] td, [data-ui-selected-label][data-ui-issue-field="error"] { background:#fef2f2 !important; color:#b91c1c !important; }
[data-ui-selection]:has([data-ui-selected-label][data-ui-issue-field="error"]) .ui-selection-field-value { border-color:#ef4444; background:#fef2f2; }

.ui-centered-page-header { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); overflow:visible; }
.ui-centered-page-header > [data-page-brand] { grid-column:1; grid-row:1; flex-wrap:nowrap; width:max-content; }
.ui-centered-page-header > [data-page-navigation] { grid-column:2; grid-row:1; min-width:0; max-width:100%; overflow-x:auto; }
.ui-centered-page-header [data-page-navigation] > nav { width:max-content; flex-wrap:nowrap; }
.ui-section-nav-groups { display:flex; flex-direction:column; align-items:stretch; gap:6px; }
.ui-section-nav-group { display:flex; align-items:center; gap:8px; }
.ui-section-nav-group-label { width:105px; flex-shrink:0; font-size:11px; color:var(--ui-muted, #71717a); }
.ui-section-nav-group > nav { flex-wrap:nowrap; white-space:nowrap; }
.ui-centered-page-header > [data-page-actions] { grid-column:3; grid-row:1; justify-self:end; }
.ui-centered-page-header[data-navigation-wrap] { grid-template-columns:minmax(0,1fr) auto; }
.ui-centered-page-header[data-navigation-wrap] > [data-page-actions] { grid-column:2; }
.ui-centered-page-header[data-navigation-wrap] > [data-page-navigation] { grid-column:1 / -1; grid-row:2; justify-self:center; }
@media(max-width:640px) {
 .ui-centered-page-header[data-navigation-wrap] { grid-template-columns:minmax(0,1fr); }
 .ui-centered-page-header[data-navigation-wrap] > [data-page-brand] { max-width:100%; white-space:normal; flex-wrap:wrap; }
 .ui-centered-page-header[data-navigation-wrap] [data-page-updated-at] { flex-basis:100%; max-width:100%; }
 .ui-centered-page-header[data-navigation-wrap] > [data-page-brand] h1 { flex-shrink:1; }
 .ui-centered-page-header[data-navigation-wrap] > [data-page-actions] { grid-column:1; grid-row:3; flex-wrap:wrap; max-width:100%; }
}

.ui-unsaved-control { position:relative; min-width:0; }
.ui-unsaved-control:is(:hover,:focus-within) > .ui-unsaved-selection { opacity:1; }
.ui-unsaved-control[data-ui-unsaved] > :is(input,select,textarea,.ui-input-unit,.ui-selection-field-value) { outline:1px solid #d97706; outline-offset:-1px; }
/* Dense registries retain readable controls without double vertical padding. */
:is(.erp-page, dialog) table.ui-table-compact > tbody > tr > td { height:32px; padding:4px 8px; }
:is(.erp-page, dialog) table.ui-table-compact > tbody > tr > td :is(button,a):not(.ui-button) { padding-block:2px; }

/* Registry viewport: keep column headers, filters and pagination visible. */
[data-ui-registry-scroll] .ui-table-scroll { overflow:auto; min-height:0!important; overscroll-behavior:contain; }
[data-ui-registry-scroll] .ui-table thead { position:sticky; top:0; z-index:3; background:var(--ui-surface); }
[data-ui-registry-scroll="section"] .ui-table-scroll { max-height:65dvh; }
[data-ui-registry-scroll="section"] .ui-matrix > thead { position:sticky; top:0; z-index:3; background:var(--ui-ink); }

.ui-registry { min-width:0; padding:0; border:1px solid var(--ui-border); border-radius:8px; background:var(--ui-surface); }

.ui-registry thead [data-ui-sort-trigger] { white-space:nowrap; }

/* Grouped financial matrices use registry controls without changing calculations. */
.ui-table-matrix { table-layout:fixed; user-select:none; }
:is(.erp-page,dialog) table.ui-table-matrix { border-collapse:separate; border-spacing:0; }
.ui-registry .ui-table-matrix thead [data-ui-sort-trigger] { white-space:normal; }
.ui-table-matrix [data-ui-column-headings] > th > div > div:first-child { height:48px; }
.ui-table-matrix [data-ui-column-groups] > th { padding:8px; border-right:1px solid #52525b; white-space:nowrap; }
:is(.erp-page,dialog) table.ui-table-matrix > :is(tbody,tfoot) > tr > td { height:auto; padding:4px 8px; font-size:10px; line-height:1.25; }
.ui-table-matrix > tfoot { position:sticky; bottom:0; z-index:2; background:#f4f4f5; }
.ui-table-matrix [data-ui-pinned-left] { position:sticky; left:var(--ui-pinned-left,0px); z-index:1; background:var(--ui-surface); box-shadow:1px 0 0 var(--ui-border); }
.ui-table-matrix thead [data-ui-pinned-left] { z-index:4; background:var(--ui-ink); }
.ui-table-matrix tfoot [data-ui-pinned-left] { z-index:3; background:#f4f4f5; }
.ui-table-matrix .selected { background:#bfdbfe!important; outline:1px solid #2563eb; outline-offset:-1px; }
.ui-table-matrix [data-ui-data-table-no-results] > td { text-align:left!important; }
/* Сравнение периодов: показатель открывает группу столбцов, спутники (период сравнения, отклонения) следуют за ним. */
.ui-compare-period { display:flex; flex-wrap:wrap; align-items:flex-end; gap:8px; min-width:0; }
.ui-compare-period[data-ui-period-form] { padding-left:8px; border-left:1px solid var(--ui-border); }
.ui-compare-toggle { display:inline-flex; align-items:center; gap:6px; height:var(--ui-control-height,32px); font-size:13px; font-weight:500; white-space:nowrap; cursor:pointer; }
.ui-table-matrix > :is(thead,tbody,tfoot) > tr > .ui-compare-start { border-left:2px solid #a1a1aa; }
.ui-table-matrix thead th[data-ui-column-companion-of]:not([aria-sort=ascending]):not([aria-sort=descending]) { background:#27272a; }
.ui-table-matrix td.ui-compare-value { color:#71717a; }
.ui-table-matrix td.ui-compare-positive { color:#15803d; }
.ui-table-matrix td.ui-compare-negative { color:#b91c1c; }

.ui-document-metadata > div > dd { display:flex; flex-wrap:wrap; align-items:center; gap:8px; min-height:var(--ui-control-height); }

/* Inline actions preserve the density of numeric tables. */
:is(.erp-page,dialog) .ui-button-link { display:inline; min-height:0; height:auto; padding:0; border:0; border-radius:0; background:transparent; color:inherit; font:inherit; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }

.ui-calculation-detail { white-space:normal; text-align:left; font-size:13px; line-height:1.5; }
.ui-calculation-detail [data-calculation-content] { overflow-wrap:anywhere; }

/* Reserve dirty-label space for the entire row, keeping text and controls aligned. */

/* Give the wider detail table more room; wrap by available container width. */
.ui-detail-split { display:flex; flex-wrap:wrap; gap:16px; min-width:0; width:100%; contain:inline-size; }
.ui-detail-split > :first-child { flex:2 1 440px; min-width:0; max-width:100%; }
.ui-detail-split > :last-child { flex:3 1 720px; min-width:0; max-width:100%; }
.ui-detail-split[data-layout="stack"] { display:block; }
.ui-detail-split[data-layout="stack"] > * + * { margin-top:16px; }

.editor-accordion-body > details[data-tone="error"] { border-color:#fca5a5; background:#fef2f2; }
.editor-accordion-body > details[data-tone="error"] > summary { background:#fee2e2; color:#991b1b; }

.ui-badge[data-tone="complete"] { background:#fff; color:#166534; box-shadow:inset 0 0 0 1px #86c9a5; gap:4px; align-items:center; }
.ui-badge[data-tone="complete"]::before { content:"✓"; font-weight:700; }
.ui-badge[data-tone="warning"] { background:#fef3c7; color:#92400e; }
.ui-row-actions { display:grid; grid-template-columns:var(--ui-row-action-columns); align-items:center; gap:8px; }
.ui-row-actions > div { display:grid; min-width:0; }
.ui-row-actions > div > :is(button,a) { width:100%; white-space:nowrap; }

/* Registry rows stay compact: long values use the existing horizontal scroll. */
.ui-registry .ui-table > tbody > tr > td { white-space:nowrap; }
.ui-registry .ui-table > tbody > tr > td .ui-badge { white-space:nowrap; flex-shrink:0; }

/* Financial workbook tree. Office accent5 (#5B9BD5), tints 40% and 60%. */
.ui-matrix-tree tbody > tr > th, .ui-matrix-tree tbody > tr > td { background:#fff; border-bottom:1px solid #ddd; padding-top:2px; padding-bottom:2px; }
.ui-matrix-tree tbody > tr > [data-ui-pinned-left] { background:#fff; }
.ui-matrix-tree tbody > tr[data-tree-tone="section"] > * { background:#9dc3e6; }
.ui-matrix-tree tbody > tr[data-tree-tone="subsection"] > * { background:#bdd7ee; }
.ui-matrix-tree tbody > tr > [data-matrix-total] { background:#f0f9ff; color:#0c4a6e; font-weight:600; }
.ui-matrix-tree tbody > tr > [data-matrix-incomplete] { background:#fffbeb; color:#78350f; }
.ui-matrix-tree tbody > tr[data-tree-control="true"] > * { background:#fff8df; }
.ui-matrix-tree tbody > tr[data-tree-format="spacer"] > * { height:25px; padding-top:2px; padding-bottom:2px; }
.ui-matrix-tree tbody > tr[hidden] { display:none !important; }
.ui-matrix-tree tbody > tr > td { border-right:1px solid #aaa; }
.ui-matrix-tree-label { display:flex; align-items:center; gap:4px; padding-left:calc(8px + var(--tree-depth, 0) * 14px); min-height:20px; }
.erp-page .ui-matrix-tree .ui-matrix-tree-label .ui-matrix-tree-toggle { width:18px; height:18px; min-height:18px; padding:0; border:1px solid #63788a; border-radius:2px; color:#172b3a; background:transparent; font-size:14px; line-height:1; }
.ui-matrix-tree-branch { flex:0 0 18px; width:18px; height:12px; border-left:1px solid #b8c3cc; border-bottom:1px solid #b8c3cc; transform:translateY(-3px); }
.ui-matrix-tree-label[style="--tree-depth: 0"] > .ui-matrix-tree-branch { border:0; }
.ui-matrix-tree[data-tree-guides="false"] .ui-matrix-tree-branch { border:0; }
.ui-matrix-tree th.ui-matrix-tree-heading { width:320px; }

.ui-matrix-section-heading { margin:0; padding:6px 8px; border-block:1px solid #94b6d2; background:#fff; color:#172f43; font-size:12px; font-weight:600; line-height:18px; }
.ui-matrix-group-section:has(> .ui-matrix-section-heading) { margin-top:0; }

.ui-matrix-section-heading > span { position:sticky; left:8px; }

[data-ui-save-state="pending"] { outline:1px solid #d97706; outline-offset:-1px; }
[data-ui-save-state="saved"] { outline:1px solid #16a34a; outline-offset:-1px; }
[data-ui-save-state="error"] { outline:2px solid #dc2626; outline-offset:-2px; }


.ui-amount-percent-cell { display:grid; gap:4px; }
.ui-amount-percent-row { display:grid; grid-template-columns:28px minmax(100px,1fr); align-items:center; gap:4px; }
.ui-amount-percent-row > label { display:flex; align-items:center; gap:4px; margin:0; font-size:10px; line-height:1.2; }
.ui-amount-percent-cell .ui-input { width:100%; min-width:0; }
.ui-amount-percent-cell input:not([type=radio]) { text-align:right; }

.ui-amount-percent-options .ui-amount-percent-row { grid-template-columns:1fr; min-height:26px; }
/* Every planning-cell owns its opaque fill and grid, including sticky headers.
   A transparent th over a painted thead still leaks scrolled cells at seams. */
.ui-planning-matrix > thead > tr > th { background:#09090b; color:#fff; padding:8px; border-right:1px solid #52525b; border-bottom:1px solid #52525b; background-clip:border-box; }
.ui-planning-matrix > thead > tr > th[data-matrix-total] { background:#e0f2fe; color:#0c4a6e; border-color:#cbd5e1; }
.erp-page .ui-table.ui-planning-matrix > tbody > tr > td { border-right:1px solid #b8c2cc; border-bottom:1px solid #b8c2cc; background-clip:border-box; }
.ui-planning-matrix .ui-matrix-outline-gutter { box-shadow:0 1px 0 #b8c2cc; }

.ui-comparison-matrix .ui-comparison-note-column { width:56px; }
.ui-comparison-matrix th { padding:4px 8px; border:solid #555; border-width:0 1px 1px 0; text-align:center; }
.ui-comparison-matrix td.ui-comparison-value { text-align:right; white-space:nowrap; padding:2px 8px; font-variant-numeric:tabular-nums; }
.ui-comparison-matrix .ui-matrix-tree td[data-variance="neutral"] { background:#fff; color:#18181b; }
.ui-comparison-matrix .ui-matrix-tree td[data-variance="good"] { background:#dcfce7; color:#166534; }
.ui-comparison-matrix .ui-matrix-tree td[data-variance="bad"] { background:#fee2e2; color:#991b1b; }
.ui-comparison-matrix td.ui-comparison-block-start { border-left:0; }
.ui-comparison-matrix td.ui-comparison-share-start { border-left:0; }
.ui-comparison-matrix .ui-comparison-note { vertical-align:middle; text-align:center; padding:2px; }
[data-ui-row-note] .ui-input { width:100%; min-width:0; }
[data-ui-row-note] [role="status"] { font-size:12px; }

.ui-comparison-matrix .ui-comparison-amount-column { width:128px; }
.ui-comparison-matrix .ui-comparison-percent-column { width:88px; }

.ui-matrix .ui-matrix-selected { background:#bfdbfe!important; outline:1px solid #2563eb; outline-offset:-1px; }
.ui-table .ui-matrix-selected { background:#bfdbfe!important; outline:1px solid #2563eb; outline-offset:-1px; }
[data-copy-ignore] { user-select:none; -webkit-user-select:none; }
.ui-matrix-reference { display:block; font-size:11px; font-weight:400; color:#52525b; line-height:1.5; }
.ui-matrix-selection-status { position:fixed; inset:auto 0 0; z-index:40; display:flex; justify-content:flex-end; gap:20px; padding:6px 12px; border-top:1px solid #d4d4d8; background:#f4f4f5; color:#3f3f46; font-size:12px; white-space:nowrap; overflow-x:auto; }
@media(max-width:640px) { .ui-matrix-selection-status { justify-content:flex-start; gap:12px; } }

:is(.erp-page, dialog) [data-ui-size=icon] > svg { flex-shrink:0; }
.ui-row-note-dialog { text-align:left; white-space:normal; font-weight:400; font-size:14px; line-height:1.5; }
[data-ui-row-note] [hidden] { display:none!important; }

.ui-matrix-tree-name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

[data-ui-row-note][data-note-saved="0"]:not([data-note-text="true"]) [data-note-toggle] { color:#9ca3af; }
[data-ui-row-note][data-note-saved="1"] [data-note-toggle] { color:#fff; background:#7c3aed; border-color:#7c3aed; }
[data-ui-row-note][data-note-saved="1"] [data-note-toggle]:hover { color:#fff; background:#6d28d9; border-color:#6d28d9; }

.ui-comparison-matrix .ui-matrix { border-collapse:separate; border-spacing:0; font-size:10px; line-height:1.25; }

:is(.erp-page, dialog) :is(button,a)[data-ui-size=icon-xs][class] { width:20px; height:20px; min-height:20px; padding:0; font-size:14px; line-height:1; }
:is(.erp-page, dialog) [data-ui-size=icon-xs] > svg { width:14px; height:14px; flex-shrink:0; }
.ui-comparison-matrix .ui-matrix-tree-name { font-weight:500; }
.ui-comparison-matrix .ui-matrix-reference { font-size:9px; line-height:1.25; }

.ui-matrix-outline-levels { position:absolute; inset:0 auto 0 0; box-sizing:border-box; width:var(--ui-outline-width); display:flex; align-items:flex-start; gap:2px; padding:12px 8px; background:#f4f4f5; border-right:1px solid #d4d4d8; }
.ui-matrix-outline th.ui-outline-header { padding-left:calc(var(--ui-outline-width) + 12px); }
.ui-matrix-outline-levels [aria-pressed="true"] { background:#d4d4d8; color:#18181b; border-color:#71717a; }
.ui-matrix-outline .ui-outline-label-cell { padding-left:calc(var(--ui-outline-width) + 6px); }
.erp-page .ui-planning-matrix.ui-matrix-outline > tbody > tr > td.ui-outline-label-cell { padding-left:calc(var(--ui-outline-width) + 6px); }
.erp-page .ui-planning-matrix.ui-matrix-outline > thead > tr > th.ui-outline-header { padding-left:calc(var(--ui-outline-width) + 12px); }
.ui-matrix-outline .ui-outline-label-cell .ui-matrix-tree-label { padding-left:0; }
.ui-matrix-outline-gutter { position:absolute; inset:0 auto 0 0; width:var(--ui-outline-width); box-sizing:border-box; padding:0 8px; display:flex; background:#f4f4f5; border-right:1px solid #d4d4d8; }
.ui-matrix-outline-gutter > span { position:relative; flex:0 0 22px; display:flex; align-items:center; justify-content:center; }
.ui-outline-track::before { content:""; position:absolute; top:0; bottom:0; left:10px; border-left:1px solid #a1a1aa; }
.ui-outline-track.ui-outline-end::before { bottom:50%; }
.ui-outline-track.ui-outline-end::after { content:""; position:absolute; top:50%; left:10px; width:7px; border-top:1px solid #a1a1aa; }
.ui-outline-toggle-track:has([aria-expanded="true"])::after { content:""; position:absolute; top:50%; bottom:0; left:10px; border-left:1px solid #a1a1aa; }
.ui-matrix-outline-gutter .ui-outline-toggle { position:relative; z-index:1; border:1px solid #a1a1aa; background:#e4e4e7; color:#3f3f46; }
@media(max-width:640px) { .ui-matrix-outline .ui-outline-label-cell, .ui-matrix-outline th.ui-outline-header { position:relative; } }

.ui-markdown-content { font-size:14px; line-height:1.6; overflow-wrap:anywhere; overflow-x:auto; text-align:left; }
.ui-markdown-content > * + * { margin-top:12px; }
.ui-markdown-content :is(h1,h2,h3,h4) { font-weight:700; line-height:1.3; margin:20px 0 10px; }
.ui-markdown-content h1 { font-size:24px; } .ui-markdown-content h2 { font-size:21px; } .ui-markdown-content h3 { font-size:18px; }
.ui-markdown-content :is(ul,ol) { padding-left:24px; } .ui-markdown-content ul { list-style:disc; } .ui-markdown-content ol { list-style:decimal; }
.ui-markdown-content li + li { margin-top:6px; }
.ui-markdown-content table { border-collapse:collapse; width:100%; font-size:13px; }
.ui-markdown-content :is(th,td) { padding:8px 10px; border:1px solid #d4d4d8; }
.ui-markdown-content th { background:#f4f4f5; font-weight:600; }
.ui-markdown-content a { color:#2563eb; text-decoration:underline; }
.ui-markdown-content blockquote { border-left:3px solid #d4d4d8; padding-left:12px; color:#52525b; }
.ui-markdown-content pre { overflow-x:auto; padding:12px; background:#f4f4f5; }
[data-ui-markdown-editor] [data-markdown-preview] { max-height:55vh; overflow-y:auto; padding-right:8px; }
[data-ui-markdown-editor] textarea { max-height:55vh; }

/* Shared row-order picker: keep actions visible in narrow dialogs. */
.ui-reorder-items { max-height:45dvh; overflow:auto; }

.ui-reorder-handle { cursor:grab; touch-action:none; }
.ui-reorder-items .is-drop-target { outline:2px solid var(--ui-selected); outline-offset:-2px; }

@media(max-width:960px) { .ui-table-matrix.ui-matrix-unpin-narrow [data-ui-pinned-left] { position:static; } }

/* Calculated financial report rows. */
.ui-calculated-row > :is(td,th) { background:#fef3c7; }

/* Emphasise the main monetary result in financial tables. */
.ui-table > :is(thead,tbody,tfoot) > tr > .ui-table-primary-value { background:#eff6ff; color:#172554; font-weight:700; border-left:2px solid #bfdbfe; }
.ui-table > thead > tr > th.ui-table-primary-value { background:#1e3a5f; color:#fff; }
.ui-table > tfoot.ui-table-totals > tr > td.ui-table-primary-value { background:#dbeafe; font-weight:700; }
.ui-table > tbody > tr.ui-calculated-row > td.ui-table-primary-value { background:#fde68a; }

.ui-table > tbody > tr.ui-table-section-row > td.ui-table-primary-value { background:#bfdbfe; }

.ui-table > tfoot.ui-table-totals > tr.ui-calculated-row > td { background:#fde68a; border-top:2px solid #d6a62b; font-weight:700; }

.ui-analysis-layout { display:grid; grid-template-columns:minmax(330px, 410px) minmax(0,1fr); gap:16px; align-items:start; }
.ui-analysis-panel { min-width:0; padding:16px; border:1px solid #e4e4e7; border-radius:8px; background:white; }
.ui-analysis-panel .ui-table input { width:100%; min-width:58px; }
.ui-analysis-panel .ui-table th, .ui-analysis-panel .ui-table td { padding:8px 5px; }
.ui-analysis-panel .ui-table th { font-size:12px; }
.ui-chart-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.ui-line-chart { min-width:0; margin:0; padding:12px; border:1px solid #e4e4e7; border-radius:6px; background:#fff; }
.ui-line-chart[hidden] { display:none; }
.ui-line-chart svg { display:block; width:100%; height:auto; }
.ui-line-chart circle:focus { outline:2px solid #111827; }
@media(max-width:1000px) { .ui-analysis-layout { grid-template-columns:1fr; } }
@media(max-width:650px) { .ui-chart-grid { grid-template-columns:1fr; } .ui-analysis-panel { padding:10px; } }

/* Required supplier selection: empty marker follows select/clear without a reload. */
.ui-selection-field[data-ui-required-selection][data-ui-selection-empty="true"] > .ui-selection-field-value,
.ui-selection-field[data-ui-required-selection]:has([data-supplier-empty]:not([hidden])) > .ui-selection-field-value { background-color:#fffbeb; border-color:#fcd34d; }

/* Structured supplier selection and OCR assistance. */
.ui-supplier-block { min-width:0; margin:0; padding:16px; border:1px solid #d4d4d8; border-radius:8px; }
.ui-supplier-block-title { padding:0 6px; font-size:14px; font-weight:600; color:#18181b; }
.ui-supplier-section-label { margin:0 0 8px; font-size:12px; line-height:1.5; color:#71717a; }
.ui-supplier-assistance { margin-top:12px; font-size:14px; line-height:1.5; overflow-wrap:anywhere; }
.ui-supplier-section { margin-top:12px; padding-top:12px; border-top:1px solid #e4e4e7; }
.ui-supplier-source { margin:0; color:#18181b; }
.ui-supplier-match { margin:0; font-weight:500; }
.ui-supplier-match[data-match-quality="low"] { color:#a16207; }
.ui-supplier-match[data-match-quality="good"] { color:#047857; }
.ui-supplier-candidates { display:grid; gap:8px; }
.ui-supplier-candidate { display:flex; flex-wrap:wrap; gap:12px; align-items:center; padding:12px; background:#fafafa; border:1px solid #e4e4e7; border-radius:6px; }
.ui-supplier-candidate-details { flex:1 1 180px; min-width:0; }
.ui-supplier-candidate-details p { margin:0; }
.ui-supplier-section > .ui-supplier-section-label:last-child { margin:8px 0 0; }
.ui-supplier-block .ui-selection-field-value { white-space:normal; overflow-wrap:anywhere; }

.ui-supplier-candidate[data-exact-match="true"] { background:#ecfdf5; border-color:#a7f3d0; }
.ui-supplier-candidate[data-exact-match="true"] [data-suggestion-score] { color:#047857; font-weight:600; }

.ui-form-section { min-width:0; padding:16px; border:1px solid #d4d4d8; border-radius:8px; }
.ui-version-toolbar { margin-top:12px; padding:12px 16px; border:1px solid #e4e4e7; border-radius:8px; background:#fff; box-shadow:0 1px 2px #0000000d; }
.ui-version-toolbar + .ui-notice { margin-top:16px; }
.ui-version-toolbar-main,.ui-version-toolbar-info,.ui-version-toolbar-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; min-width:0; }
.ui-version-toolbar-main { justify-content:space-between; }
.ui-version-toolbar-selector { display:flex; align-items:center; gap:8px; color:#52525b; font-size:14px; }
.ui-version-toolbar-meta { font-size:12px; color:#71717a; }
.ui-version-toolbar-actions { gap:8px; }
.ui-version-toolbar-details { margin-top:8px; padding-top:8px; border-top:1px solid #f4f4f5; font-size:12px; color:#71717a; }
.ui-button-success { border-color:#059669; background:#fff; color:#047857; }
.ui-button-success:hover { background:#ecfdf5; }
.ui-form-section + .ui-form-section { margin-top:20px; }
.ui-form-section-title { padding:0 6px; font-size:14px; font-weight:600; color:#18181b; }
.ui-sales-calendar { min-width:0; border:1px solid #e4e4e7; border-radius:6px; overflow:hidden; }
.ui-sales-calendar-header { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; padding:12px; background:#fafafa; }
.ui-sales-calendar .ui-table { min-width:520px; }
.ui-sales-calendar .ui-table .ui-input { width:100%; min-width:0; }
.ui-sales-calendar .ui-table th:first-child { width:50%; }
.ui-sales-calendar .ui-table th:last-child { width:44px; }
.ui-sales-calendar .ui-table tfoot td { padding:12px 8px; font-weight:600; }
.ui-sales-calendar [data-calendar-status] { margin-left:8px; }
.ui-share-row { min-width:0; border:1px solid #e4e4e7; border-radius:6px; background:#fff; }
.ui-share-row + .ui-share-row { margin-top:8px; }
.ui-share-row-header { display:grid; grid-template-columns:minmax(160px,1fr) minmax(240px,1fr); align-items:center; gap:12px; padding:12px; }
summary.ui-share-row-header { cursor:pointer; list-style:none; }
summary.ui-share-row-header::-webkit-details-marker { display:none; }
.ui-share-name { min-width:0; font-weight:600; overflow-wrap:anywhere; }
.ui-share-name::before { content:''; display:inline-block; width:18px; }
details.ui-share-row > summary .ui-share-name::before { content:'▸'; }
details.ui-share-row[open] > summary .ui-share-name::before { content:'▾'; }
.ui-share-values { display:flex; flex-wrap:wrap; align-items:center; gap:12px; min-width:0; }
.ui-share-values .ui-input { width:110px; }
.ui-share-values output { color:#52525b; font-size:12px; }
.ui-share-body { min-width:0; padding:12px; border-top:1px solid #e4e4e7; }
@media(max-width:640px) { .ui-share-row-header { grid-template-columns:minmax(0,1fr); } }

.ui-notice { padding:12px 16px; background:#fffbeb; border:1px solid #fcd34d; border-radius:6px; color:#92400e; font-size:14px; line-height:1.5; overflow-wrap:anywhere; }
.ui-notice a { color:inherit; text-decoration:underline; font-weight:600; }
.ui-notice p + p { margin-top:8px; }
.ui-notice-info { background:#fff; border-color:#e4e4e7; color:#52525b; }
.ui-notice-title { margin:0 0 8px; color:#18181b; font-size:14px; font-weight:600; }

[data-ui-required-empty="true"] { background-color:#fffbeb!important; border-color:#fcd34d!important; }
.ui-required-mark { color:#dc2626; font-size:12px; font-weight:600; }

/* Expanded editor for long notes and other document text. */
:is(.erp-page, dialog) textarea[data-ui-textarea-size="large"] { height:min(360px,45vh); min-height:180px; resize:vertical; }

/* Expanded editor for long notes and other document text. */
:is(.erp-page, dialog) textarea[data-ui-textarea-size="large"] { height:min(360px,45vh); min-height:180px; resize:vertical; }

.ui-document-notes-table { min-width:1500px; }
.ui-document-notes-table th:first-child { width:28%; min-width:260px; }
.ui-document-notes-table th:nth-child(6) { width:20%; min-width:220px; }
.ui-table .ui-table-label-wide { min-width:200px; white-space:nowrap; }
.ui-amount-percent-cell[data-custom-unconfigured] .ui-input { background-color:#fffbeb!important; border-color:#fcd34d!important; }

.ui-table > tfoot.ui-table-totals-sticky { position:sticky; bottom:0; z-index:2; }

.ui-table > tfoot.ui-table-totals > tr.ui-complete-row > td, .ui-complete-row > :is(td,th) { background:#dcfce7; color:#166534; }
.ui-table > tfoot.ui-table-totals > tr.ui-error-row > td, .ui-error-row > :is(td,th) { background:#fee2e2; color:#991b1b; }

[data-ui-autosave-matrix] .ui-input[data-matrix-input] { width:100%; min-width:0; max-width:100%; }
[data-ui-autosave-matrix] input.ui-input[type="number"] { appearance:textfield; -moz-appearance:textfield; }
[data-ui-autosave-matrix] input.ui-input[type="number"]::-webkit-inner-spin-button,
[data-ui-autosave-matrix] input.ui-input[type="number"]::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }

:is([data-ui-autosave-matrix],[data-ui-planning-matrix]) input[data-matrix-active="true"] { outline:2px solid #2563eb; outline-offset:-2px; background:#eff6ff; }

[data-ui-selection]:has([data-ui-selected-label][data-ui-issue-field="warning"]):not(:has([data-ui-issue-field="error"])) .ui-selection-field-value { border-color:#fcd34d !important; background:#fffbeb !important; color:#92400e !important; }

.erp-page .ui-table.ui-planning-matrix.ui-matrix-outline > tbody > tr > td { position:relative; border-bottom:0; box-shadow:none; }
.erp-page .ui-table.ui-planning-matrix.ui-matrix-outline > tbody > tr > td[data-ui-pinned-left] { position:sticky; box-shadow:1px 0 0 #b8c2cc; }
.erp-page .ui-table.ui-planning-matrix.ui-matrix-outline > tbody > tr > td[data-ui-pinned-right] { position:sticky; box-shadow:-1px 0 0 #b8c2cc; }
.erp-page .ui-table.ui-planning-matrix.ui-matrix-outline > tbody > tr > td::after { content:""; position:absolute; inset:auto 0 0; border-bottom:1px solid #b8c2cc; pointer-events:none; z-index:1; }
.ui-planning-matrix.ui-matrix-outline .ui-matrix-outline-gutter { box-shadow:none; }
@media(max-width:640px) { .erp-page .ui-table.ui-planning-matrix.ui-matrix-outline > tbody > tr > td[data-ui-pinned-left] { position:relative; left:auto; } }
.ui-planning-matrix.ui-matrix-outline > tbody > tr[data-tree-tone="section"] { background:#9dc3e6; }
.ui-planning-matrix.ui-matrix-outline > tbody > tr[data-tree-tone="subsection"] { background:#bdd7ee; }