@jc-times/business-ui 0.2.53 → 0.2.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -1
- package/README.md +7 -7
- package/THIRD_PARTY_NOTICES.md +13 -13
- package/bin/business-ui-gate.mjs +0 -0
- package/dist/SortableList.js +106 -69
- package/dist/document-viewer/DocumentViewer.js +42 -42
- package/dist/document-viewer-v2/DocumentViewerV2.js +19 -15
- package/dist/document-viewer-v2/HeadlessPdfViewer.js +216 -182
- package/dist/pdfium-viewer.js +1 -0
- package/dist/sortable-transfer-scope.js +4 -1
- package/dist/styles.css +1 -1
- package/dist/types/SortableList.d.ts +11 -2
- package/dist/types/document-viewer/DocumentViewer.d.ts +2 -0
- package/dist/types/document-viewer-v2/DocumentViewerV2.d.ts +1 -0
- package/dist/types/document-viewer-v2/HeadlessPdfViewer.d.ts +2 -0
- package/dist/types/sortable-transfer-scope.d.ts +3 -0
- package/docs/agent-guide.md +2 -1
- package/docs/api.md +4 -0
- package/docs/component-strategy.md +1 -1
- package/docs/dependencies.md +57 -57
- package/docs/document-viewer-v2.md +5 -2
- package/docs/document-viewer.md +28 -28
- package/docs/file-preparation.md +11 -11
- package/docs/maturity-migration.md +62 -62
- package/docs/mrt-poc.md +204 -204
- package/docs/release.md +33 -32
- package/docs/sortable-list.md +43 -0
- package/docs/viewport-qa.md +9 -3
- package/licenses/embedpdf-MIT.txt +21 -21
- package/package.json +21 -20
- package/patches/@embedpdf__plugin-zoom@2.15.0.patch +77 -77
package/dist/styles.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
:root{--ui-primary:#5965a8;--ui-primary-hover:#414a78;--ui-primary-soft:#eef0fb;--ui-text:#242837;--ui-muted:#70778b;--ui-border:#dde0eb;--ui-border-strong:#b8bfdc;--ui-surface:#fff;--ui-canvas:#f4f5f9;--ui-danger:#b44a51;--ui-danger-soft:#fff0f1;--ui-warning:#b87512;--ui-warning-soft:#fff8eb;--ui-success:#2f7d52;--ui-success-soft:#edf8f1;--ui-focus:#5965a847;--ui-shadow:0 12px 32px #29315929;--ui-radius:8px;--ui-radius-large:12px;--ui-control-height:40px;--ui-touch-height:44px;--ui-motion-fast:.12s;--ui-motion-normal:.18s;--ui-motion-slow:.24s;--ui-ease-enter:cubic-bezier(.215,.61,.355,1);--ui-ease-exit:cubic-bezier(.55,.055,.675,.19);--ui-ease-standard:cubic-bezier(.645,.045,.355,1)}.ui-button{box-sizing:border-box;min-width:0;min-height:var(--ui-control-height);border-radius:var(--ui-radius);font:inherit;text-align:center;white-space:nowrap;cursor:pointer;transition:background-color var(--ui-motion-fast) var(--ui-ease-standard),border-color var(--ui-motion-fast) var(--ui-ease-standard),color var(--ui-motion-fast) var(--ui-ease-standard),box-shadow var(--ui-motion-fast) var(--ui-ease-standard),transform var(--ui-motion-fast) var(--ui-ease-standard);border:1px solid #0000;justify-content:center;align-items:center;gap:7px;padding:0 14px;font-weight:700;line-height:1.2;text-decoration:none;display:inline-flex}.ui-button:hover:not(:disabled,[aria-disabled=true]){transform:translateY(-1px)}.ui-button:active:not(:disabled,[aria-disabled=true]){transform:none}.ui-button:focus-visible,.ui-modal-close:focus-visible,.ui-alert-close:focus-visible,.ui-pagination button:focus-visible,.ui-tabs button:focus-visible,.ui-date-input input:focus-visible,.ui-date-trigger:focus-visible{outline:3px solid var(--ui-focus);outline-offset:2px}.ui-button:disabled,.ui-button[aria-disabled=true]{cursor:not-allowed;opacity:.58;transform:none}.ui-button-primary{border-color:var(--ui-primary);color:#fff;background:var(--ui-primary);box-shadow:0 5px 14px color-mix(in srgb,var(--ui-primary) 18%,transparent)}.ui-button-primary:hover:not(:disabled,[aria-disabled=true]){border-color:var(--ui-primary-hover);background:var(--ui-primary-hover)}.ui-button-secondary{border-color:var(--ui-border-strong);color:var(--ui-primary-hover);background:var(--ui-primary-soft)}.ui-button-outline{border-color:var(--ui-border);color:var(--ui-text);background:var(--ui-surface)}.ui-button-ghost{color:var(--ui-primary);background:0 0}.ui-button-danger{border-color:color-mix(in srgb,var(--ui-danger) 35%,white);color:var(--ui-danger);background:var(--ui-danger-soft)}.ui-button-default{height:var(--ui-control-height)}.ui-button-compact{height:32px;min-height:32px;padding-inline:10px;font-size:12px}.ui-button-touch{height:var(--ui-touch-height);min-height:var(--ui-touch-height);padding-inline:16px}.ui-button-icon{width:var(--ui-control-height);min-width:var(--ui-control-height);padding:0}.ui-button-compact.ui-button-icon{width:32px;min-width:32px}.ui-button-touch.ui-button-icon{width:var(--ui-touch-height);min-width:var(--ui-touch-height)}.ui-explainable-action{flex-direction:column;align-items:flex-start;gap:6px;display:inline-flex}.ui-explainable-reason{max-width:34rem;color:var(--ui-muted);align-items:flex-start;gap:5px;font-size:12px;line-height:1.5;display:flex}.ui-explainable-action.reason-popover{position:relative}.reason-popover .ui-explainable-reason{z-index:120;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface);width:max-content;max-width:min(320px,100vw - 24px);box-shadow:var(--ui-shadow);visibility:hidden;opacity:0;padding:8px 10px;position:absolute;top:calc(100% + 7px);left:0}.reason-popover.reason-open .ui-explainable-reason{visibility:visible;opacity:1}.ui-modal-backdrop{z-index:1000;background:#12172a7a;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.ui-modal{border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);width:min(560px,100%);max-height:calc(100dvh - 40px);color:var(--ui-text);background:var(--ui-surface);flex-direction:column;display:flex;overflow:hidden;box-shadow:0 24px 80px #191f373d}.ui-modal-header{border-bottom:1px solid var(--ui-border);flex:none;justify-content:space-between;align-items:flex-start;gap:16px;min-width:0;padding:20px;display:flex}.ui-modal-header>div{min-width:0}.ui-modal-header h2{overflow-wrap:anywhere;margin:4px 0 0;font-size:1.15rem}.ui-modal-header p{color:var(--ui-muted);overflow-wrap:anywhere;margin:7px 0 0;font-size:.82rem;line-height:1.6}.ui-modal-eyebrow{color:var(--ui-primary);letter-spacing:.1em;font-size:.7rem;font-weight:750}.ui-modal-close{width:var(--ui-control-height);height:var(--ui-control-height);border:1px solid var(--ui-border);border-radius:var(--ui-radius);color:var(--ui-muted);background:var(--ui-surface);cursor:pointer;flex:none;place-items:center;display:grid}.ui-modal-content{overscroll-behavior:contain;flex-direction:column;flex:auto;min-height:0;display:flex;overflow:auto}.ui-modal-footer{border-top:1px solid var(--ui-border);background:var(--ui-surface);flex:none}.ui-form-field{min-width:0;color:var(--ui-text);align-content:start;gap:6px;display:grid}.ui-form-label{font-size:13px;font-weight:700}.ui-form-required{color:var(--ui-danger);margin-left:3px}.ui-input,.ui-select,.ui-textarea{box-sizing:border-box;width:100%;min-height:var(--ui-control-height);border:1px solid var(--ui-border);border-radius:var(--ui-radius);color:var(--ui-text);background:var(--ui-surface);font:inherit;padding:0 11px;line-height:1.2}.ui-input,.ui-select{height:var(--ui-control-height)}.ui-select{appearance:auto}.ui-textarea{resize:vertical;height:auto;min-height:88px;padding-block:9px}.ui-input:focus,.ui-select:focus,.ui-textarea:focus{border-color:var(--ui-primary);outline:3px solid var(--ui-focus)}.ui-input[aria-invalid=true],.ui-select[aria-invalid=true],.ui-textarea[aria-invalid=true]{border-color:var(--ui-danger)}.ui-form-help{color:var(--ui-muted);font-size:12px;line-height:1.5}.ui-form-error{color:var(--ui-danger);font-size:12px}.ui-checkbox{align-items:flex-start;gap:9px;display:flex}.ui-checkbox input{width:18px;height:18px;accent-color:var(--ui-primary)}.ui-checkbox-copy{gap:3px;display:grid}.ui-checkbox-copy small{color:var(--ui-muted)}.ui-input-affix{box-sizing:border-box;width:100%;height:var(--ui-control-height);min-height:var(--ui-control-height);border:1px solid var(--ui-border);border-radius:var(--ui-radius);color:var(--ui-text);background:var(--ui-surface);font:inherit;align-items:center;gap:8px;padding:0 11px;line-height:1.2;display:flex}.ui-input-affix:focus-within{border-color:var(--ui-primary);outline:3px solid var(--ui-focus)}.ui-input-affix[data-invalid=true]{border-color:var(--ui-danger)}.ui-input-affix[data-disabled=true],.ui-input-affix[data-disabled=true] .ui-input-adornment{cursor:not-allowed}.ui-input-affix>.ui-input{background:0 0;border:0;border-radius:0;outline:0;flex:auto;align-self:stretch;min-width:0;height:auto;min-height:0;padding:0}.ui-input-affix>.ui-input:focus,.ui-input-affix>.ui-input[aria-invalid=true]{border:0;outline:0}.ui-input-adornment{min-width:0;color:var(--ui-muted);white-space:nowrap;flex:none;justify-content:center;align-items:center;font-size:13px;display:inline-flex}.ui-input-adornment .ui-button-compact{margin-block:3px}.ui-pagination{min-height:58px;color:var(--ui-muted);justify-content:space-between;align-items:center;gap:14px;padding:10px 16px;font-size:12px;display:flex}.ui-pagination-pages{align-items:center;gap:6px;display:flex}.ui-pagination-pages button{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface);cursor:pointer;min-width:34px;height:34px;padding:0 8px}.ui-pagination-pages button.active{border-color:var(--ui-primary);color:var(--ui-primary-hover);background:var(--ui-primary-soft);font-weight:700}.ui-pagination-pages button:disabled{cursor:not-allowed;opacity:.45}.ui-pagination-pages i{padding:0 3px;font-style:normal}.ui-pagination-auto-compact{white-space:nowrap;display:none}.ui-pagination-size{align-items:center;gap:5px;display:flex}.ui-pagination-size select{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface);height:34px}.ui-tabs{align-items:center;gap:7px;display:flex;overflow-x:auto}.ui-tabs button{min-height:var(--ui-control-height);border-radius:var(--ui-radius);color:var(--ui-muted);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;padding:0 12px}.ui-tabs button.active{border-color:var(--ui-border);color:var(--ui-primary-hover);background:var(--ui-primary-soft);font-weight:700}.ui-toggle{cursor:pointer;align-items:center;gap:9px;display:inline-flex}.ui-toggle input{clip-path:inset(50%);width:1px;height:1px;position:absolute}.ui-toggle-track{background:var(--ui-border-strong);border-radius:99px;align-items:center;width:38px;height:22px;padding:3px;transition:background .15s;display:flex}.ui-toggle-track i{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;box-shadow:0 1px 4px #0003}.ui-toggle input:checked+.ui-toggle-track{background:var(--ui-primary)}.ui-toggle input:checked+.ui-toggle-track i{transform:translate(16px)}.ui-toggle input:focus-visible+.ui-toggle-track{outline:3px solid var(--ui-focus);outline-offset:2px}.ui-toggle input[aria-disabled=true]~*{opacity:.58;cursor:not-allowed}.ui-segmented-control{--ui-segmented-height:var(--ui-control-height);box-sizing:border-box;border:1px solid var(--ui-border-strong);border-radius:var(--ui-radius);width:100%;min-width:0;max-width:100%;color:var(--ui-text);background:var(--ui-surface);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid;overflow:hidden}.ui-segmented-option{box-sizing:border-box;min-width:0;min-height:calc(var(--ui-segmented-height) - 2px);border:1px solid #0000;border-left-color:var(--ui-border);cursor:pointer;place-items:center;margin:-1px 0 -1px -1px;display:grid;position:relative}.ui-segmented-option:first-child{border-left-color:#0000;margin-left:-1px}.ui-segmented-option input{clip-path:inset(50%);width:1px;height:1px;min-height:1px;padding:0;position:absolute}.ui-segmented-content{box-sizing:border-box;min-width:0;max-width:100%;font:inherit;justify-content:center;align-items:center;gap:6px;padding:4px 12px;font-weight:650;display:flex}.ui-segmented-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ui-segmented-label:empty{display:none}.ui-segmented-icon{flex:none;align-items:center;display:inline-flex}.ui-segmented-icon svg{width:1em;height:1em}.ui-segmented-option:has(input:checked){z-index:1;border-color:var(--ui-primary);color:#fff;background:var(--ui-primary)}.ui-segmented-option:has(input:focus-visible){z-index:2;outline:3px solid var(--ui-focus);outline-offset:-3px}.ui-segmented-option:has(input:disabled){cursor:not-allowed;opacity:.52}.ui-segmented-compact{--ui-segmented-height:32px}.ui-segmented-compact .ui-segmented-content{padding-inline:10px;font-size:12px}.ui-segmented-touch{--ui-segmented-height:var(--ui-touch-height)}.ui-segmented-touch .ui-segmented-content{padding-inline:16px}.ui-segmented-control{min-height:var(--ui-segmented-height)}.ui-segmented-inline{grid-auto-columns:minmax(0,auto);width:fit-content;display:inline-grid}.ui-segmented-vertical{grid-template-columns:minmax(0,1fr);grid-auto-flow:row}.ui-segmented-vertical .ui-segmented-option{border-left-color:#0000;border-top-color:var(--ui-border);margin:-1px -1px 0}.ui-segmented-vertical .ui-segmented-option:first-child{border-top-color:#0000}.ui-segmented-vertical .ui-segmented-option:has(input:checked){border-color:var(--ui-primary)}.ui-segmented-soft{background:var(--ui-surface-subtle,var(--ui-primary-soft));border-color:#0000;gap:3px;padding:3px}.ui-segmented-soft .ui-segmented-option{border-radius:calc(var(--ui-radius) - 2px);border-color:#0000;margin:0}.ui-segmented-soft .ui-segmented-option:has(input:checked){border-color:var(--ui-border);background:var(--ui-surface);color:var(--ui-text);box-shadow:0 1px 3px #0000001a}.ui-segmented-soft .ui-segmented-option:has(input:not(:checked):not(:disabled)):hover{background:var(--ui-surface);color:var(--ui-primary)}.ui-segmented-shape-round{border-radius:24px}.ui-segmented-shape-round .ui-segmented-option{border-radius:20px}@media (pointer:coarse){.ui-segmented-control{--ui-segmented-height:var(--ui-touch-height)}.ui-segmented-option{min-height:var(--ui-touch-height)}}.ui-async-state{min-height:92px;color:var(--ui-muted);justify-content:center;align-items:center;gap:10px;padding:16px;display:flex}.ui-async-state>span{gap:3px;display:grid}.ui-async-state strong{color:var(--ui-text);font-size:14px}.ui-async-state small{font-size:12px}.ui-async-state.compact{justify-content:flex-start;min-height:54px;padding:8px}.ui-async-state .spin{animation:.8s linear infinite ui-spin}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-date-input{align-items:center;display:inline-flex;position:relative}.ui-date-input input{width:100%;height:var(--ui-control-height);border:1px solid var(--ui-border);border-radius:var(--ui-radius);font:inherit;padding:0 42px 0 11px}.ui-date-trigger{width:36px;height:36px;color:var(--ui-primary);background:0 0;border:0;place-items:center;display:grid;position:absolute;right:2px}.ui-date-calendar{z-index:1100;border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);width:min(332px,100vw);color:var(--ui-text);background:var(--ui-surface);box-shadow:var(--ui-shadow);padding:12px;position:fixed}.ui-date-calendar header,.ui-date-calendar footer{justify-content:space-between;align-items:center;display:flex}.ui-date-calendar button{min-width:36px;min-height:36px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px}.ui-date-grid{grid-template-columns:repeat(7,1fr);gap:2px;margin:8px 0;display:grid}.ui-date-weekday{height:28px;color:var(--ui-muted);place-items:center;font-size:12px;display:grid}.ui-date-grid button[aria-selected=true]{color:#fff;background:var(--ui-primary)}.ui-date-grid button.outside{color:color-mix(in srgb,var(--ui-muted) 50%,transparent)}.ui-date-clear{color:var(--ui-danger)!important}.ui-date-today{font-weight:700;color:var(--ui-primary)!important}.ui-button-spinner{flex:none;animation:.8s linear infinite ui-spin}.ui-alert{border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);color:var(--ui-text);background:var(--ui-surface);animation:ui-slide-down var(--ui-motion-normal) var(--ui-ease-enter);grid-template-columns:auto minmax(0,1fr) auto auto;align-items:start;gap:10px;padding:12px 14px;display:grid;position:relative}.ui-alert-icon{color:var(--ui-primary);margin-top:1px}.ui-alert-content{gap:3px;min-width:0;display:grid}.ui-alert-content strong{font-size:13px}.ui-alert-description{color:var(--ui-muted);font-size:12px;line-height:1.55}.ui-alert-action{align-self:center}.ui-alert-close{width:28px;height:28px;color:var(--ui-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;margin:-5px -6px -5px 0;display:grid}.ui-alert-close:hover{color:var(--ui-text);background:color-mix(in srgb,var(--ui-text) 6%,transparent)}.ui-alert-success{border-color:color-mix(in srgb,var(--ui-success) 28%,var(--ui-border));background:var(--ui-success-soft)}.ui-alert-success .ui-alert-icon{color:var(--ui-success)}.ui-alert-warning{border-color:color-mix(in srgb,var(--ui-warning) 30%,var(--ui-border));background:var(--ui-warning-soft)}.ui-alert-warning .ui-alert-icon{color:var(--ui-warning)}.ui-alert-danger{border-color:color-mix(in srgb,var(--ui-danger) 30%,var(--ui-border));background:var(--ui-danger-soft)}.ui-alert-danger .ui-alert-icon{color:var(--ui-danger)}.ui-empty-state{text-align:center;min-height:180px;color:var(--ui-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:28px;display:flex}.ui-empty-state.compact{min-height:112px;padding:18px}.ui-empty-icon{width:48px;height:48px;color:var(--ui-primary);background:var(--ui-primary-soft);border-radius:50%;place-items:center;margin-bottom:2px;display:grid}.ui-empty-state strong{color:var(--ui-text);font-size:14px}.ui-empty-description{max-width:34rem;font-size:12px;line-height:1.6}.ui-empty-action{margin-top:6px}.ui-skeleton{background:linear-gradient(90deg,var(--ui-canvas) 20%,color-mix(in srgb,var(--ui-border) 58%,var(--ui-surface)) 40%,var(--ui-canvas) 60%);width:100%;height:14px;animation:ui-skeleton-wave 1.5s var(--ui-ease-standard) infinite;background-size:300% 100%;border-radius:5px;display:block}.ui-skeleton.rounded{border-radius:999px}.ui-skeleton-text{align-content:start;gap:9px;display:grid}.reason-popover .ui-explainable-reason{transition:opacity var(--ui-motion-fast) var(--ui-ease-enter),transform var(--ui-motion-fast) var(--ui-ease-enter),visibility 0s linear var(--ui-motion-fast);transform:translateY(-3px)}.reason-popover.reason-open .ui-explainable-reason{transition-delay:0s;transform:none}.ui-modal-backdrop{animation:ui-fade-in var(--ui-motion-normal) var(--ui-ease-enter)}.ui-modal{animation:ui-modal-enter var(--ui-motion-slow) var(--ui-ease-enter)}.ui-date-calendar{transform-origin:top;animation:ui-popover-enter var(--ui-motion-normal) var(--ui-ease-enter)}@keyframes ui-fade-in{0%{opacity:0}}@keyframes ui-modal-enter{0%{opacity:0;transform:translateY(8px)scale(.985)}}@keyframes ui-popover-enter{0%{opacity:0;transform:translateY(-4px)scale(.985)}}@keyframes ui-slide-down{0%{opacity:0;transform:translateY(-5px)}}@keyframes ui-skeleton-wave{0%{background-position:100% 0}to{background-position:0 0}}.ui-tooltip,.ui-popover,.ui-select-content,.ui-combobox-popover{z-index:1200;border:1px solid var(--ui-border);color:var(--ui-text);background:var(--ui-surface);box-shadow:var(--ui-shadow);transform-origin:var(--radix-popover-content-transform-origin,var(--radix-tooltip-content-transform-origin,center));animation:ui-popover-enter var(--ui-motion-normal) var(--ui-ease-enter)}.ui-tooltip{border-radius:7px;max-width:min(280px,100vw - 24px);padding:7px 9px;font-size:12px;line-height:1.45}.ui-floating-arrow{fill:var(--ui-surface)}.ui-popover{width:min(340px,var(--radix-popover-content-available-width,calc(100vw - 24px)));max-height:var(--radix-popover-content-available-height,calc(100dvh - 24px));border-radius:var(--ui-radius-large);overflow:auto}.ui-popover-heading{border-bottom:1px solid var(--ui-border);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-size:13px;display:flex}.ui-popover-body{padding:14px}.ui-floating-close,.ui-toast-close{width:28px;height:28px;color:var(--ui-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;display:grid}.ui-floating-close:hover,.ui-toast-close:hover{color:var(--ui-text);background:color-mix(in srgb,var(--ui-text) 6%,transparent)}.ui-popconfirm-description{color:var(--ui-muted);font-size:12px;line-height:1.55}.ui-popconfirm-actions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.ui-select-trigger{width:100%;min-height:var(--ui-control-height);border:1px solid var(--ui-border);border-radius:var(--ui-radius);color:var(--ui-text);background:var(--ui-surface);font:inherit;text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:0 11px;display:flex}.ui-select-trigger[data-placeholder]{color:var(--ui-muted)}.ui-select-trigger:focus-visible,.ui-combobox-trigger:focus-visible,.ui-floating-close:focus-visible,.ui-toast-close:focus-visible,.ui-table-sort:focus-visible,.ui-data-table input:focus-visible{border-color:var(--ui-primary);outline:3px solid var(--ui-focus);outline-offset:2px}.ui-select-content{min-width:var(--radix-select-trigger-width);max-height:min(320px,var(--radix-select-content-available-height));border-radius:var(--ui-radius);overflow:hidden}.ui-select-viewport{padding:5px}.ui-select-item{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;outline:0;align-items:center;min-height:36px;padding:7px 32px 7px 9px;font-size:13px;line-height:1.4;display:flex;position:relative}.ui-select-item[data-highlighted]{color:var(--ui-primary-hover);background:var(--ui-primary-soft)}.ui-select-item[data-disabled]{opacity:.48;cursor:not-allowed}.ui-select-indicator{color:var(--ui-primary);place-items:center;display:grid;position:absolute;right:9px}.ui-select-scroll{width:100%;height:28px;color:var(--ui-muted);background:var(--ui-surface);border:0;place-items:center;display:grid}.ui-combobox{color:var(--ui-text);align-content:start;gap:6px;display:grid}.ui-combobox-control{display:flex;position:relative}.ui-combobox-control .ui-input{padding-right:42px}.ui-combobox-trigger{width:36px;height:36px;color:var(--ui-primary);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;display:grid;position:absolute;top:2px;right:2px}.ui-combobox-popover{width:var(--trigger-width);max-height:min(320px,var(--available-height));border-radius:var(--ui-radius);overflow:auto}.ui-combobox-list{outline:0;padding:4px;display:block}.ui-combobox-item{cursor:pointer;border-radius:6px;outline:0;justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:7px 9px;display:flex}.ui-combobox-item>span{gap:2px;min-width:0;display:grid}.ui-combobox-item strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.ui-combobox-item small{color:var(--ui-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.ui-combobox-item[data-focused]{color:var(--ui-primary-hover);background:var(--ui-primary-soft)}.ui-combobox-item[data-selected]{font-weight:700}.ui-combobox-item[data-disabled]{opacity:.48;cursor:not-allowed}.ui-combobox-empty,.ui-combobox-loading{color:var(--ui-muted);text-align:center;padding:14px;font-size:12px}.ui-combobox-loading{border-bottom:1px solid var(--ui-border);justify-content:center;align-items:center;gap:7px;display:flex}.ui-async-search-picker{color:var(--ui-text);align-content:start;gap:8px;display:grid}.ui-async-search-control{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;display:grid}.ui-async-search-status:empty{display:none}.ui-async-search-status{color:var(--ui-muted);font-size:12px}.ui-async-search-list{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface);max-height:320px;box-shadow:var(--ui-shadow);padding:4px;overflow:auto}.ui-async-search-option{width:100%;min-height:40px;color:var(--ui-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;padding:8px 9px;display:flex}.ui-async-search-option[aria-selected=true],.ui-async-search-option:hover{color:var(--ui-primary-hover);background:var(--ui-primary-soft)}.ui-async-search-option:focus-visible{outline:3px solid var(--ui-focus);outline-offset:-1px}.ui-async-search-empty{text-align:center;padding:14px}.ui-dropdown-popover{z-index:1300;border:1px solid var(--ui-border);border-radius:var(--ui-radius);min-width:180px;max-width:min(320px,100vw - 24px);color:var(--ui-text);background:var(--ui-surface);box-shadow:var(--ui-shadow);animation:ui-popover-enter var(--ui-motion-normal) var(--ui-ease-enter);overflow:auto}.ui-visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.ui-dropdown-menu{outline:0;padding:5px}.ui-dropdown-item{cursor:pointer;border-radius:6px;outline:0;align-items:center;gap:9px;min-height:36px;padding:7px 9px;font-size:13px;display:flex}.ui-dropdown-item[data-focused]{color:var(--ui-primary-hover);background:var(--ui-primary-soft)}.ui-dropdown-item[data-disabled]{opacity:.48;cursor:not-allowed}.ui-dropdown-item.dangerous{color:var(--ui-danger)}.ui-dropdown-item-icon,.ui-dropdown-item-selected{flex:none;place-items:center;display:grid}.ui-dropdown-item-label{overflow-wrap:anywhere;flex:auto;min-width:0}.ui-dropdown-item-status{min-width:0;color:var(--ui-muted);flex:0 auto;font-size:11px}.ui-dropdown-item-selected{color:var(--ui-primary)}.ui-dropdown-separator{background:var(--ui-border);height:1px;margin:5px}.ui-dropdown-group{display:block}.ui-dropdown-header{color:var(--ui-muted);padding:7px 9px 4px;font-size:11px;font-weight:700}.ui-confirm-dialog-body{overflow-wrap:anywhere;min-width:0;padding:18px 20px}.ui-confirm-dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}.ui-toast-viewport{z-index:2000;pointer-events:none;flex-direction:column;gap:10px;width:min(380px,100vw - 36px);display:flex;position:fixed;top:18px;right:18px}.ui-toast{border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);color:var(--ui-text);background:var(--ui-surface);box-shadow:var(--ui-shadow);pointer-events:auto;animation:ui-toast-enter var(--ui-motion-slow) var(--ui-ease-enter);grid-template-columns:auto minmax(0,1fr) auto auto;align-items:start;gap:10px;padding:12px;display:grid}.ui-toast-icon{color:var(--ui-primary);margin-top:2px}.ui-toast-content{gap:3px;min-width:0;display:grid}.ui-toast-content strong{font-size:13px}.ui-toast-content div{color:var(--ui-muted);font-size:12px;line-height:1.5}.ui-toast-success .ui-toast-icon{color:var(--ui-success)}.ui-toast-warning .ui-toast-icon{color:var(--ui-warning)}.ui-toast-danger .ui-toast-icon{color:var(--ui-danger)}.ui-toast-close{margin:-4px -4px -4px 0}.ui-data-table-wrap{border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);background:var(--ui-surface);max-width:100%;position:relative;overflow-x:auto;container-type:inline-size}.ui-data-table{border-collapse:collapse;width:100%;color:var(--ui-text);font-size:13px}.ui-data-table caption{text-align:left;padding:12px 14px;font-weight:700}.ui-data-table th,.ui-data-table td{border-bottom:1px solid var(--ui-border);text-align:left;vertical-align:middle;padding:11px 13px}.ui-data-table th{color:var(--ui-muted);background:var(--ui-canvas);white-space:nowrap;font-size:12px;font-weight:700}.ui-data-table tbody tr:last-child td{border-bottom:0}.ui-data-table tbody tr[aria-selected=true]{background:var(--ui-primary-soft)}.ui-data-table tbody tr[data-disabled]{opacity:.58}.ui-data-table [data-align=center]{text-align:center}.ui-data-table [data-align=end]{text-align:right}.ui-table-sort{color:inherit;font:inherit;font-weight:inherit;cursor:pointer;background:0 0;border:0;border-radius:5px;align-items:center;gap:6px;margin:-3px;padding:3px;display:inline-flex}.ui-table-sort:hover{color:var(--ui-text);background:color-mix(in srgb,var(--ui-text) 5%,transparent)}.ui-table-selection{width:44px;text-align:center!important}.ui-table-selection input{width:17px;height:17px;accent-color:var(--ui-primary)}.ui-badge{vertical-align:baseline;white-space:nowrap;border:1px solid #0000;border-radius:999px;flex:none;justify-content:center;align-items:center;max-width:100%;font-weight:700;line-height:1;display:inline-flex}.ui-badge-small{min-height:20px;padding:3px 7px;font-size:11px}.ui-badge-medium{min-height:24px;padding:4px 9px;font-size:12px}.ui-badge-neutral{border-color:var(--ui-border);color:var(--ui-text);background:var(--ui-canvas)}.ui-badge-info{border-color:color-mix(in srgb,var(--ui-primary) 24%,var(--ui-border));color:var(--ui-primary-hover);background:var(--ui-primary-soft)}.ui-badge-success{border-color:color-mix(in srgb,var(--ui-success) 28%,var(--ui-border));color:var(--ui-success);background:var(--ui-success-soft)}.ui-badge-warning{border-color:color-mix(in srgb,var(--ui-warning) 30%,var(--ui-border));color:color-mix(in srgb,var(--ui-warning) 80%,var(--ui-text));background:var(--ui-warning-soft)}.ui-badge-danger{border-color:color-mix(in srgb,var(--ui-danger) 30%,var(--ui-border));color:var(--ui-danger);background:var(--ui-danger-soft)}.ui-metric-card{border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);min-width:0;min-height:132px;color:var(--ui-text);background:var(--ui-surface);box-shadow:0 8px 24px color-mix(in srgb,var(--ui-text) 6%,transparent);flex-direction:column;gap:9px;padding:18px;display:flex}.ui-metric-card-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.ui-metric-card-label{min-width:0;color:color-mix(in srgb,var(--ui-muted) 90%,var(--ui-text));overflow-wrap:anywhere;font-size:12px;font-weight:700;line-height:1.45}.ui-metric-card-icon{border-radius:var(--ui-radius);width:34px;height:34px;color:var(--ui-muted);background:var(--ui-canvas);flex:none;place-items:center;display:grid}.ui-metric-card-icon>svg{width:18px;height:18px}.ui-metric-card-value{letter-spacing:-.025em;overflow-wrap:anywhere;font-size:clamp(1.5rem,3vw,2rem);font-weight:750;line-height:1.08}.ui-metric-card-description{color:color-mix(in srgb,var(--ui-muted) 90%,var(--ui-text));overflow-wrap:anywhere;margin-top:auto;font-size:12px;line-height:1.5}.ui-metric-card-info .ui-metric-card-icon{color:var(--ui-primary);background:var(--ui-primary-soft)}.ui-metric-card-success .ui-metric-card-icon{color:var(--ui-success);background:var(--ui-success-soft)}.ui-metric-card-warning .ui-metric-card-icon{color:var(--ui-warning);background:var(--ui-warning-soft)}.ui-metric-card-danger .ui-metric-card-icon{color:var(--ui-danger);background:var(--ui-danger-soft)}.ui-page-header{min-width:0;color:var(--ui-text);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.ui-page-header-copy{flex:24rem;gap:8px;min-width:0;display:grid}.ui-page-header-eyebrow{color:var(--ui-primary);letter-spacing:.14em;text-transform:uppercase;font-size:12px;font-weight:800}.ui-page-header-title{letter-spacing:-.04em;overflow-wrap:anywhere;margin:0;font-size:clamp(1.75rem,4vw,3rem);line-height:1.08}.ui-page-header-description{max-width:48rem;color:color-mix(in srgb,var(--ui-muted) 90%,var(--ui-text));overflow-wrap:anywhere;font-size:14px;line-height:1.65}.ui-page-header-actions{flex-wrap:wrap;flex:0 auto;justify-content:flex-end;align-items:center;gap:10px;max-width:100%;display:flex}.ui-section-card{border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);min-width:0;color:var(--ui-text);background:var(--ui-surface);box-shadow:var(--ui-shadow);overflow:hidden}.ui-section-card-header{border-bottom:1px solid var(--ui-border);justify-content:space-between;align-items:flex-start;gap:20px;padding:20px 24px;display:flex}.ui-section-card-copy{gap:5px;min-width:0;display:grid}.ui-section-card-title{overflow-wrap:anywhere;margin:0;font-size:17px;line-height:1.35}.ui-section-card-description{color:color-mix(in srgb,var(--ui-muted) 90%,var(--ui-text));overflow-wrap:anywhere;font-size:12px;line-height:1.55}.ui-section-card-actions{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:8px;display:flex}.ui-section-card-body{min-width:0}.ui-popover,.ui-select-content,.ui-combobox-popover,.ui-dropdown-popover{overscroll-behavior:contain;max-width:calc(100vw - 24px)}.ui-popover,.ui-combobox-popover,.ui-dropdown-popover{max-height:min(320px,100dvh - 24px);overflow:auto}.ui-select-content{max-height:min(320px,var(--radix-select-content-available-height));overflow:hidden}.ui-select-viewport{overscroll-behavior:contain}.ui-async-search-list{max-height:min(320px,calc(100dvh - 180px - env(safe-area-inset-bottom)));overscroll-behavior:contain;scrollbar-gutter:stable}.ui-combobox .spin{animation:.8s linear infinite ui-spin}.ui-toast-viewport{overscroll-behavior:contain;max-height:calc(100dvh - 36px);overflow-y:auto}.ui-toast{min-width:0}.ui-toast-content{overflow-wrap:anywhere}.ui-data-table-wrap[data-mobile-layout=cards] .ui-empty-state{border-top:1px solid var(--ui-border)}@container (width<=760px){.ui-data-table-wrap[data-mobile-layout=cards] .ui-data-table,.ui-data-table-wrap[data-mobile-layout=cards] tbody,.ui-data-table-wrap[data-mobile-layout=cards] caption{display:block}.ui-data-table-wrap[data-mobile-layout=cards] thead{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.ui-data-table-wrap[data-mobile-layout=cards] tbody tr{border-bottom:1px solid var(--ui-border);padding:10px 12px;display:grid}.ui-data-table-wrap[data-mobile-layout=cards] tbody tr:last-child{border-bottom:0}.ui-data-table-wrap[data-mobile-layout=cards] td{white-space:normal;overflow-wrap:anywhere;border:0;grid-template-columns:minmax(84px,auto) minmax(0,1fr);gap:10px;min-width:0;padding:7px 2px;display:grid}.ui-data-table-wrap[data-mobile-layout=cards] td>*{min-width:0;max-width:100%}.ui-data-table-wrap[data-mobile-layout=cards] td[data-align=end]{text-align:left}.ui-data-table-wrap[data-mobile-layout=cards] td:before{content:attr(data-label);color:var(--ui-muted);text-align:left;font-size:12px;font-weight:700}.ui-data-table-wrap[data-mobile-layout=cards] td.ui-table-selection{width:auto;min-height:var(--ui-touch-height);align-items:center;display:flex;text-align:left!important}.ui-data-table-wrap[data-mobile-layout=cards] td.ui-table-selection:before{content:none}}@keyframes ui-toast-enter{0%{opacity:0;transform:translate(12px)}}.ui-tree-select,.ui-tree-select-root{position:relative}.ui-tree-select-control{display:flex;position:relative}.ui-tree-select-input{padding-right:72px}.ui-tree-select-clear,.ui-tree-select-trigger{height:36px;color:var(--ui-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;display:grid;position:absolute;top:2px}.ui-tree-select-clear{width:32px;right:38px}.ui-tree-select-trigger{width:36px;right:2px}.ui-tree-select-trigger:disabled{cursor:not-allowed;opacity:.55}.ui-tree-select-clear:hover,.ui-tree-select-trigger:hover{color:var(--ui-primary);background:var(--ui-primary-soft)}.ui-tree-select-clear:focus-visible,.ui-tree-select-trigger:focus-visible{outline:3px solid var(--ui-focus);outline-offset:1px}.ui-tree-select-popover{z-index:1100;box-sizing:border-box;overscroll-behavior:contain;border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);width:100%;min-width:min(260px,100vw - 24px);max-height:min(360px,100dvh - 24px);color:var(--ui-text);background:var(--ui-surface);box-shadow:var(--ui-shadow);outline:0;position:absolute;top:calc(100% + 6px);left:0;overflow:hidden auto}.ui-tree-select-tree{padding:5px}.ui-tree-select-branch [role=group]{border-left:1px solid var(--ui-border);margin-left:16px;padding-left:7px}.ui-tree-select-item{cursor:pointer;border-radius:7px;outline:0;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:4px;min-height:36px;padding:3px 8px 3px 2px;display:grid}.ui-tree-select-item.active{color:var(--ui-primary-hover);background:var(--ui-primary-soft)}.ui-tree-select-item.selected{font-weight:700}.ui-tree-select-item.disabled{opacity:.48;cursor:not-allowed}.ui-tree-select-toggle{width:28px;color:var(--ui-muted);cursor:pointer;background:0 0;border:0;border-radius:5px;align-self:stretch;place-items:center;display:grid}.ui-tree-select-toggle:hover{background:color-mix(in srgb,var(--ui-primary-soft) 70%,var(--ui-surface))}.ui-tree-select-spacer{width:28px}.ui-tree-select-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ui-tree-select-status{color:var(--ui-muted);text-align:center;padding:14px;font-size:12px}.ui-tree-select-error{color:var(--ui-danger)}.ui-structured-address{box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);min-width:0;max-width:100%;color:var(--ui-text);gap:10px;padding:12px;display:grid;container-type:inline-size}.ui-structured-address legend{color:var(--ui-muted);padding:0 5px;font-size:12px;font-weight:750}.ui-required-mark{color:var(--ui-danger);margin-right:3px}.ui-structured-address-annotation{margin-left:7px;font-size:11px;font-weight:500}.ui-structured-address label{min-width:0;color:var(--ui-muted);gap:6px;font-size:12px;font-weight:650;display:grid}.ui-structured-address-mode,.ui-structured-address-full,.ui-structured-address-region,.ui-structured-address-detail,.ui-structured-address-version{grid-column:1/-1}.ui-structured-address-region{min-width:0;color:var(--ui-muted);gap:6px;font-size:12px;font-weight:650;display:grid;position:relative}.ui-structured-address-region-control{position:relative}.ui-structured-address-region-control .ui-input{text-overflow:ellipsis;padding-right:36px}.ui-structured-address-region-control>svg{pointer-events:none;position:absolute;top:50%;right:11px;transform:translateY(-50%)}.ui-structured-address-popover{z-index:1100;box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);background:var(--ui-surface);width:min(680px,100vw - 24px);max-width:100%;max-height:min(340px,100dvh - 24px);box-shadow:var(--ui-shadow);position:absolute;top:calc(100% + 6px);left:0;overflow:auto}.ui-structured-address-columns{grid-template-columns:repeat(var(--address-columns,1),minmax(0,1fr));display:grid}.ui-structured-address-columns[data-columns="2"]{--address-columns:2}.ui-structured-address-columns[data-columns="3"]{--address-columns:3}.ui-structured-address-columns[data-columns="4"]{--address-columns:4}.ui-structured-address-column{border-right:1px solid var(--ui-border);min-width:0;max-height:280px;padding:5px;overflow:auto}.ui-structured-address-column:last-child{border-right:0}.ui-structured-address-column button,.ui-structured-address-results button{width:100%;min-height:38px;color:var(--ui-text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;justify-content:space-between;align-items:center;gap:6px;padding:7px 9px;display:flex}.ui-structured-address-column button:hover,.ui-structured-address-column button:focus-visible,.ui-structured-address-column button[aria-selected=true],.ui-structured-address-results button:hover,.ui-structured-address-results button:focus-visible{color:var(--ui-primary-hover);background:var(--ui-primary-soft);outline:0}.ui-structured-address-column button:disabled,.ui-structured-address-results button:disabled{opacity:.48;cursor:not-allowed}.ui-structured-address-results{max-height:280px;padding:5px;overflow:auto}.ui-structured-address-empty{color:var(--ui-muted);text-align:center;padding:16px;font-size:12px}.ui-structured-address-version{color:var(--ui-muted);font-size:11px}.ui-file-dropzone{box-sizing:border-box;border:1.5px dashed var(--ui-border-strong);border-radius:var(--ui-radius-large);min-width:0;color:var(--ui-primary);background:var(--ui-canvas);text-align:center;cursor:pointer;transition:border-color var(--ui-motion-fast) var(--ui-ease-standard),background-color var(--ui-motion-fast) var(--ui-ease-standard);place-content:center;justify-items:center;gap:7px;padding:18px;display:grid}.ui-file-dropzone:hover,.ui-file-dropzone.dragging{border-color:var(--ui-primary);background:var(--ui-primary-soft)}.ui-file-dropzone:focus-visible{outline:3px solid var(--ui-focus);outline-offset:2px}.ui-file-dropzone[aria-disabled=true]{cursor:not-allowed;opacity:.58}.ui-file-dropzone-input{clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.ui-file-dropzone-action{min-height:var(--ui-control-height);border:1px solid var(--ui-border-strong);border-radius:var(--ui-radius);color:var(--ui-primary-hover);background:var(--ui-surface);justify-content:center;align-items:center;padding:0 14px;font-size:13px;font-weight:700;display:inline-flex}@container (width>=520px){.ui-structured-address{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ui-structured-address-mode,.ui-structured-address-detail{grid-column:auto}}@media (pointer:coarse){.ui-button-default,.ui-modal-close,.ui-tabs button,.ui-pagination-pages button,.ui-date-input input,.ui-date-trigger,.ui-date-calendar button,.ui-input,.ui-input-affix,.ui-select,.ui-select-trigger,.ui-select-item,.ui-combobox-item,.ui-dropdown-item,.ui-async-search-option,.ui-tree-select-item,.ui-structured-address-column button,.ui-structured-address-results button{min-height:var(--ui-touch-height)}.ui-input-affix>.ui-input{min-height:0}.ui-button-default.ui-button-icon,.ui-modal-close{width:var(--ui-touch-height);min-width:var(--ui-touch-height)}.ui-tree-select-clear,.ui-tree-select-trigger{height:40px}.ui-tree-select-clear{right:42px}.ui-tree-select-trigger{width:40px}.ui-checkbox input,.ui-table-selection input{width:22px;height:22px}}@media (width<=600px){.ui-tree-select-popover{width:100%;min-width:0;max-width:none;max-height:min(70dvh,calc(100dvh - max(48px,env(safe-area-inset-top))));padding:8px max(8px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(8px,env(safe-area-inset-left));border-radius:var(--ui-radius-large) var(--ui-radius-large) 0 0;border-width:1px 0 0;position:fixed;inset:auto 0 0;box-shadow:0 -18px 48px #191f3738}.ui-structured-address-popover{width:100%;max-width:none;max-height:min(72dvh,calc(100dvh - max(48px,env(safe-area-inset-top))));padding-bottom:env(safe-area-inset-bottom);border-radius:var(--ui-radius-large) var(--ui-radius-large) 0 0;border-width:1px 0 0;position:fixed;inset:auto 0 0;box-shadow:0 -18px 48px #191f3738}.ui-structured-address-columns[data-columns="3"],.ui-structured-address-columns[data-columns="4"]{grid-template-columns:repeat(3,minmax(0,1fr))}.ui-structured-address-column button{padding-inline:6px;font-size:12px}}@media (width<=600px),(width<=900px) and (height<=600px){.ui-dropdown-item{min-height:var(--ui-touch-height)}.ui-popover,.ui-combobox-popover,.ui-dropdown-popover{max-height:calc(100dvh - max(24px,env(safe-area-inset-top)) - max(24px,env(safe-area-inset-bottom)))}.ui-date-calendar{width:min(540px,calc(100vw - max(24px,env(safe-area-inset-left)) - max(24px,env(safe-area-inset-right))));max-height:calc(100dvh - max(12px,env(safe-area-inset-top)) - max(12px,env(safe-area-inset-bottom)));overscroll-behavior:contain;overflow:auto}}@media (width<=600px){.ui-modal-backdrop{padding:0}.ui-modal{border:0;border-radius:0;width:100%;height:100dvh;max-height:100dvh}.ui-modal-header{padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 16px max(16px,env(safe-area-inset-left))}.ui-modal-footer{padding-bottom:env(safe-area-inset-bottom)}.ui-alert{grid-template-columns:auto minmax(0,1fr) auto}.ui-alert-action{grid-column:2;justify-self:start}.ui-alert-close{grid-area:1/3}.ui-popover{max-width:calc(100vw - max(24px,env(safe-area-inset-left)) - max(24px,env(safe-area-inset-right)))}[data-radix-popper-content-wrapper]:has(>.ui-select-content){width:100%!important;min-width:0!important;position:fixed!important;inset:auto 0 0!important;transform:none!important}.ui-select-content{width:100%;min-width:0;max-width:none;max-height:min(70dvh,calc(100dvh - max(48px,env(safe-area-inset-top))));padding-bottom:env(safe-area-inset-bottom);border-radius:var(--ui-radius-large) var(--ui-radius-large) 0 0;transform-origin:bottom;border-width:1px 0 0;box-shadow:0 -18px 48px #191f3738}.ui-select-viewport{padding:10px max(8px,env(safe-area-inset-right)) 10px max(8px,env(safe-area-inset-left))}.ui-toast-viewport{top:auto;right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left));width:auto;max-height:calc(100dvh - max(24px,env(safe-area-inset-top)) - max(24px,env(safe-area-inset-bottom)))}.ui-toast{grid-template-columns:auto minmax(0,1fr) auto}.ui-toast>.ui-button{grid-column:2;justify-self:start}.ui-toast-close{grid-area:1/3}.ui-pagination{flex-wrap:wrap;align-items:flex-start}.ui-pagination-summary{width:100%}.ui-pagination-size{margin-left:auto}.ui-async-search-control{grid-template-columns:1fr}.ui-async-search-control>.ui-button{width:100%}.ui-page-header{flex-direction:column;justify-content:flex-start;align-items:stretch}.ui-page-header-copy{flex:none}.ui-page-header-actions{justify-content:flex-start;width:100%}.ui-page-header-actions>.ui-button{flex:140px}.ui-section-card-header{flex-direction:column;padding:17px 18px}.ui-section-card-actions{justify-content:flex-start;width:100%}.ui-section-card-actions>.ui-button{flex:140px}.ui-metric-card{min-height:120px;padding:16px}}@media (width>=601px) and (height<=600px){.ui-modal-backdrop{padding:12px}.ui-modal{max-height:calc(100dvh - 24px)}.ui-modal-header{padding:12px 16px}}@media (width<=360px){.ui-pagination{gap:8px;padding-inline:10px}.ui-pagination-pages{gap:4px}.ui-pagination-pages .ui-page-number,.ui-pagination-pages .ui-page-ellipsis{display:none}.ui-pagination-auto-compact{display:inline}.ui-pagination-size{margin-left:0}.ui-pagination-size span:first-child,.ui-pagination-size>span:last-child{display:none}}@media (hover:none){.ui-button:hover:not(:disabled,[aria-disabled=true]){transform:none}}@media (prefers-reduced-motion:reduce){.ui-button,.ui-toggle-track,.ui-toggle-track i,.ui-explainable-reason{transition:none}.ui-button-spinner,.ui-async-state .spin,.ui-alert,.ui-modal-backdrop,.ui-modal,.ui-date-calendar,.ui-skeleton,.ui-tooltip,.ui-popover,.ui-select-content,.ui-combobox-popover,.ui-dropdown-popover,.ui-toast{animation:none}}.ui-overlay-container{display:contents}.ui-date-calendar[data-side],.ui-tree-select-popover[data-side],.ui-structured-address-popover[data-side]{box-sizing:border-box;max-height:var(--radix-popover-content-available-height);position:relative;inset:auto;overflow:auto}.ui-tree-select-popover[data-side]{width:var(--radix-popover-trigger-width);min-width:min(260px,100vw - 24px);max-width:calc(100vw - 24px)}.ui-structured-address-popover[data-side]{width:min(680px,100vw - 24px);max-width:calc(100vw - 24px)}.ui-date-calendar header{justify-content:space-between;align-items:center;display:flex}.ui-date-calendar h2{margin:0;font-size:14px}.ui-date-month-jump{color:var(--ui-muted);justify-content:space-between;align-items:center;gap:8px;padding:4px 8px;font-size:12px;display:flex}.ui-date-month-jump input{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface);max-width:180px;min-height:32px;color:var(--ui-text);font:inherit}.ui-aria-calendar-grid{border-collapse:separate;border-spacing:2px;table-layout:fixed;width:100%}.ui-aria-calendar-grid th{height:28px;color:var(--ui-muted);font-size:12px}.ui-aria-calendar-grid td{text-align:center;padding:0}.ui-aria-calendar-grid .react-aria-CalendarCell{border-radius:var(--ui-radius);cursor:pointer;outline:0;place-items:center;min-height:36px;font-size:13px;display:grid}.ui-aria-calendar-grid .react-aria-CalendarCell[data-selected]{background:var(--ui-primary);color:#fff}.ui-aria-calendar-grid .react-aria-CalendarCell[data-focus-visible]{outline:3px solid var(--ui-focus)}.ui-aria-calendar-grid .react-aria-CalendarCell[data-outside-month]{color:var(--ui-muted)}.ui-aria-calendar-grid .react-aria-CalendarCell[data-disabled],.ui-aria-calendar-grid .react-aria-CalendarCell[data-unavailable]{opacity:.4;cursor:not-allowed;text-decoration:line-through}.ui-toast-viewport{margin:0;list-style:none}.ui-table-selection-summary{background:var(--ui-primary-soft);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 12px;font-size:13px;display:flex}.ui-multi-select{gap:6px;min-width:0;display:grid}.ui-multi-selection{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ui-multi-selection .react-aria-TagList{flex-wrap:wrap;gap:6px;display:flex}.ui-selection-tag{border-radius:var(--ui-radius);background:var(--ui-primary-soft);color:var(--ui-primary-hover);align-items:center;gap:6px;padding:3px 8px;font-size:13px;display:inline-flex}.ui-selection-tag[data-focused]{outline:3px solid var(--ui-focus)}.ui-selection-tag button,.ui-selection-clear{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;min-width:28px;min-height:28px}.ui-selection-tag button:disabled,.ui-selection-clear:disabled{opacity:.5;cursor:not-allowed}@media (pointer:coarse){.ui-aria-calendar-grid .react-aria-CalendarCell,.ui-date-month-jump input,.ui-selection-tag button{min-height:var(--ui-touch-height)}}.ui-file-preparation-dialog{width:min(480px,100vw - 32px);height:auto;min-height:0;max-height:calc(100dvh - 32px)}.ui-file-preparation-name{overflow-wrap:anywhere;font-weight:600}.ui-sortable-list{outline:0;gap:12px;display:grid}.ui-sortable-item{outline:0;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px;min-width:0;display:grid;position:relative}.ui-sortable-item[data-focus-visible]{outline:3px solid var(--ui-focus);outline-offset:2px;border-radius:var(--ui-radius-large)}.ui-sortable-item{position:relative}.ui-sortable-placeholder{display:none}.ui-sortable-item[data-dragging]{opacity:1;outline:1px dashed var(--ui-primary);outline-offset:-1px;background:var(--ui-primary-soft)}.ui-sortable-item[data-dragging]>[role=gridcell]>.ui-sortable-content{opacity:.18}.ui-sortable-item[data-dragging]>[role=gridcell]>.ui-sortable-placeholder{z-index:1;border-radius:var(--ui-radius);background:var(--ui-surface);max-width:90%;color:var(--ui-primary);text-align:center;pointer-events:none;padding:8px 12px;font-size:12px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ui-sortable-content{min-width:0}.ui-sortable-handle{border:1px solid var(--ui-border);border-radius:var(--ui-radius);width:32px;height:44px;color:var(--ui-muted);background:var(--ui-surface);cursor:grab;place-items:center;margin-top:8px;padding:0;display:grid}.ui-sortable-handle:active{cursor:grabbing}.ui-sortable-handle:focus-visible{outline:3px solid var(--ui-focus);outline-offset:2px}.react-aria-DropIndicator[data-drop-target]{background:var(--ui-primary);border-radius:999px;height:3px}@media (pointer:coarse){.ui-sortable-handle{width:44px;min-width:44px;height:44px}}.ui-sortable-content:only-child{grid-column:1/-1}.ui-cascader{box-sizing:border-box;width:100%;min-width:0;min-height:var(--ui-control-height);border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface);color:var(--ui-text);font:inherit;cursor:pointer;align-items:center;gap:6px;padding:5px 11px;display:flex;position:relative}.ui-cascader:focus-within{border-color:var(--ui-primary);outline:3px solid var(--ui-focus)}.ui-cascader:has([aria-invalid=true]){border-color:var(--ui-danger)}.ui-cascader-disabled{opacity:.55;cursor:not-allowed}.ui-cascader-content{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;line-height:26px;position:relative;overflow:hidden}.ui-cascader-input{box-sizing:border-box;font:inherit;color:inherit;background:0 0;border:0;outline:0;min-width:0;height:26px;margin:0;padding:0}.ui-cascader-single .ui-cascader-input{width:100%;position:absolute;inset:0}.ui-cascader-single .ui-cascader-content-has-search-value{color:#0000}.ui-cascader-single .ui-cascader-content-has-search-value .ui-cascader-input{color:var(--ui-text);background:var(--ui-surface)}.ui-cascader-content:empty{min-height:26px}.ui-cascader-placeholder{color:var(--ui-muted);pointer-events:none}.ui-cascader-suffix{color:var(--ui-muted);pointer-events:none;align-items:center;display:flex}.ui-cascader-clear,.ui-cascader-tag button{color:var(--ui-muted);cursor:pointer;background:0 0;border:0;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:4px;display:inline-flex}.ui-cascader-clear:focus-visible,.ui-cascader-tag button:focus-visible{outline:2px solid var(--ui-primary)}.ui-cascader-multiple .ui-cascader-content{white-space:normal;flex-wrap:wrap;align-items:center;gap:4px;display:flex;overflow:visible}.ui-cascader-content-item,.ui-cascader-content-item-suffix{align-items:center;min-width:0;max-width:100%;display:inline-flex}.ui-cascader-multiple .ui-cascader-input{width:var(--select-input-width,20px);min-width:20px;max-width:100%}.ui-cascader-tag{background:var(--ui-primary-soft);border-radius:4px;align-items:center;gap:3px;max-width:100%;padding:0 4px;font-size:13px;display:inline-flex}.ui-cascader-tag>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ui-cascader-dropdown{box-sizing:border-box;z-index:1400;background:var(--ui-surface);max-width:calc(100vw - 24px);color:var(--ui-text);border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow);font:inherit;padding:4px;position:absolute}.ui-cascader-dropdown-hidden{display:none}.ui-cascader-menus{overscroll-behavior:contain;max-width:100%;display:flex;overflow-x:auto}.ui-cascader-menu{box-sizing:border-box;overscroll-behavior:contain;border-right:1px solid var(--ui-border);flex:1 0 150px;min-width:0;max-height:min(320px,50dvh);margin:0;padding:0 4px;list-style:none;overflow-y:auto}.ui-cascader-menu:last-child{border-right:0}.ui-cascader-menu-item{box-sizing:border-box;cursor:pointer;border-radius:4px;align-items:center;gap:8px;min-height:36px;padding:6px 8px;display:flex}.ui-cascader-menu-item-content{overflow-wrap:anywhere;flex:1;min-width:0}.ui-cascader-menu-item:hover,.ui-cascader-menu-item-active{background:var(--ui-primary-soft);color:var(--ui-primary-hover)}.ui-cascader-menu-item[aria-checked=true]{font-weight:600}.ui-cascader-menu-item-disabled{opacity:.45;cursor:not-allowed}.ui-cascader-menu-item-expand-icon,.ui-cascader-menu-item-loading-icon{flex:none;display:flex}.ui-cascader-checkbox{box-sizing:border-box;border:1px solid var(--ui-border-strong);border-radius:3px;flex:none;place-items:center;width:16px;height:16px;display:inline-grid}.ui-cascader-checkbox-checked,.ui-cascader-checkbox-indeterminate{background:var(--ui-primary);border-color:var(--ui-primary);color:#fff}.ui-cascader-checkbox-checked:after{content:"";border:2px solid;border-width:0 2px 2px 0;width:4px;height:8px;margin-top:-2px;transform:rotate(45deg)}.ui-cascader-checkbox-indeterminate:after{content:"";background:currentColor;width:8px;height:2px}@media (pointer:coarse){.ui-cascader,.ui-cascader-menu-item{min-height:var(--ui-touch-height)}.ui-cascader-clear,.ui-cascader-tag button{min-width:32px;min-height:32px}}@media (width<=600px){.ui-cascader-menu{flex-basis:125px}.ui-cascader-dropdown{max-width:none;inset:auto 12px max(12px,env(safe-area-inset-bottom)) 12px!important;width:auto!important;position:fixed!important;transform:none!important}.ui-cascader-menu{max-height:45dvh}}.ui-structured-address-region{font:inherit;color:inherit}.ui-data-table-scroll-frame{min-width:0;max-width:100%;position:relative}.ui-data-table-horizontal-scroll{z-index:8;border-top:1px solid var(--ui-border);background:var(--ui-surface);scrollbar-color:var(--ui-border-strong) var(--ui-canvas);width:100%;height:18px;display:none;position:sticky;bottom:0;overflow:auto hidden}.ui-data-table-horizontal-scroll.is-visible{display:block}.ui-data-table-horizontal-scroll>div{height:1px}.ui-data-table-horizontal-scroll::-webkit-scrollbar{height:14px}.ui-data-table-horizontal-scroll::-webkit-scrollbar-track{background:var(--ui-canvas);border-radius:999px}.ui-data-table-horizontal-scroll::-webkit-scrollbar-thumb{border:3px solid var(--ui-canvas);background:var(--ui-border-strong);border-radius:999px}.ui-user-chip{max-width:100%;min-height:var(--ui-control-height);border-radius:var(--ui-radius);color:var(--ui-text);background:var(--ui-canvas);font:inherit;text-align:left;cursor:pointer;border:0;align-items:center;gap:8px;padding:4px 10px 4px 5px;font-size:14px;display:inline-flex}.ui-user-chip:hover{background:var(--ui-primary-soft)}.ui-user-chip:focus-visible{outline:3px solid var(--ui-focus);outline-offset:2px}.ui-user-chip-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ui-user-avatar{color:#fff;background:var(--ui-user-avatar-bg,var(--ui-primary));border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:15px;font-weight:700;line-height:1;display:grid;overflow:hidden}.ui-user-avatar img{object-fit:cover;width:100%;height:100%}.ui-user-avatar-large{width:44px;height:44px;font-size:22px}.ui-popover.ui-user-profile-popover{width:min(var(--ui-user-profile-width,clamp(300px,15vw,560px)),var(--radix-popover-content-available-width,calc(100vw - 24px)));max-height:var(--radix-popover-content-available-height,calc(100dvh - 24px));box-sizing:border-box}.ui-user-profile-popover .ui-popover-body{padding:0}.ui-user-profile{overflow-wrap:anywhere;padding:16px;font-size:14px}.ui-user-profile-header{align-items:center;gap:12px;display:flex}.ui-user-profile-heading{justify-items:start;gap:5px;min-width:0;display:grid}.ui-user-profile-name{font-size:16px;line-height:1.3}.ui-user-profile-tag{color:var(--ui-muted);background:var(--ui-canvas);border-radius:4px;padding:2px 6px;font-size:12px;line-height:1.4}.ui-user-profile-details{border-top:1px solid var(--ui-border);gap:8px;margin:16px 0 0;padding:12px 0 0;display:grid}.ui-user-profile-row{grid-template-columns:4em minmax(0,1fr);gap:8px;min-width:0;line-height:1.5;display:grid}.ui-user-profile-row dt{color:var(--ui-muted)}.ui-user-profile-row dd{white-space:pre-wrap;min-width:0;margin:0}@media (width<=600px){.ui-user-profile{padding:14px}.ui-user-avatar-large{width:42px;height:42px;font-size:21px}.ui-user-profile-details{margin-top:14px;padding-top:12px}}@media (pointer:coarse){.ui-user-chip{min-height:var(--ui-touch-height)}}.ui-sortable-item[data-drop-target]{outline:3px solid var(--ui-primary);outline-offset:3px;border-radius:var(--ui-radius-large)}.ui-multiline-input{min-height:var(--ui-control-height);resize:vertical;field-sizing:content}.ui-combobox-group-heading{color:var(--ui-muted);padding:8px 9px 4px;font-size:12px;font-weight:400;line-height:1.5}.ui-document-viewer{min-width:0;height:100%;min-height:360px;color:var(--ui-text,#253045);background:var(--ui-surface,#fff);flex-direction:column;display:flex;overflow:hidden}.ui-document-viewer.ui-viewer-fullscreen{z-index:10000;width:100vw;height:100dvh;position:fixed;inset:0}.ui-viewer-toolbar{border-bottom:1px solid var(--ui-border,#d9dee7);align-items:center;gap:8px;min-height:52px;padding:6px 12px;display:flex}.ui-viewer-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ui-muted,#697386);flex:1;font-size:13px;font-weight:600;overflow:hidden}.ui-viewer-tools{flex:none;justify-content:flex-end;align-items:center;gap:2px;margin-left:auto;display:flex}.ui-viewer-tools>span{text-align:center;font-variant-numeric:tabular-nums;min-width:46px;color:var(--ui-muted,#697386);font-size:12px}.ui-viewer-tools>.ui-viewer-tool{border-radius:6px;width:34px;height:34px;min-height:34px;padding:0}.ui-viewer-tools>.ui-viewer-tool-separated{margin-left:6px}@media (pointer:coarse){.ui-viewer-tools>.ui-viewer-tool{width:44px;height:44px;min-height:44px}}.ui-viewer-footer{border-top:1px solid var(--ui-border,#d9dee7);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;padding:4px;display:flex}.ui-pdf-workspace{background:var(--ui-surface-muted,#edf0f4);flex:1;grid-template-columns:156px minmax(0,1fr);min-width:0;min-height:0;display:grid;position:relative;overflow:hidden}.ui-pdf-workspace.ui-rail-collapsed{grid-template-columns:minmax(0,1fr)}.ui-viewer-rail{border-right:1px solid var(--ui-border,#d9dee7);min-width:0;min-height:0;padding:8px;overflow:auto}.ui-viewer-rail[hidden]{display:none}.ui-viewer-stage{flex-direction:column;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.ui-pdf-workspace>.ui-viewer-rail-toggle{z-index:5;position:absolute;top:8px;left:164px}.ui-pdf-workspace.ui-rail-collapsed>.ui-viewer-rail-toggle{left:8px}.ui-thumbnail-rail{flex-direction:column;gap:8px;height:100%;min-height:0;display:flex}.ui-thumbnail-list{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex;overflow:hidden auto}.ui-thumbnail-list>.ui-page-thumbnail{white-space:normal;overflow-wrap:anywhere;border:2px solid #0000;flex:none;grid-template-columns:minmax(0,1fr);gap:5px;width:100%;height:auto;min-height:0;padding:6px;display:grid}.ui-thumbnail-list>.ui-page-thumbnail[aria-current=page]{border-color:var(--ui-primary,#5b63a5);background:var(--ui-primary-soft,#eef0fa)}.ui-page-thumbnail canvas,.ui-page-thumbnail img{width:100%;height:auto;display:block}.ui-thumbnail-placeholder{aspect-ratio:1/1.414;background:var(--ui-surface,#fff);width:100%;display:block}.ui-thumbnail-pager{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;display:grid}.ui-thumbnail-pager>span{text-align:center;grid-column:1/-1;font-size:12px}.ui-thumbnail-pager>.ui-button{padding-inline:4px;font-size:12px}.ui-document-viewport{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.ui-continuous-scroll,.ui-image-scroll,.ui-single-page{overscroll-behavior:contain;flex:1;min-width:0;min-height:0;padding:54px 16px 24px;overflow:auto}.ui-continuous-page{flex:none;margin:0 auto 20px}.ui-continuous-page>span{text-align:center;margin-bottom:8px;font-size:12px;display:block}.ui-page-placeholder,.ui-pdf-page{background:#fff;width:100%;position:relative}.ui-pdf-page>canvas{max-width:100%;display:block;width:100%!important;height:auto!important}.ui-pdf-page>[role=alert]{place-items:center;display:grid;position:absolute;inset:0}.ui-image-frame{flex:none;margin-inline:auto;position:relative}.ui-image-frame img{max-width:none;height:auto;position:absolute;top:50%;left:50%}@media (width<=900px){.ui-pdf-workspace{grid-template-columns:128px minmax(0,1fr)}.ui-pdf-workspace>.ui-viewer-rail-toggle{left:136px}.ui-continuous-scroll,.ui-image-scroll,.ui-single-page{padding-inline:8px}.ui-viewer-title{flex-basis:100%}}.ui-document-viewer-v2{box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);width:100%;min-width:0;height:100%;min-height:360px;color:var(--ui-text);background:var(--ui-canvas);box-shadow:0 8px 24px color-mix(in srgb, var(--ui-text) 6%, transparent);flex-direction:column;display:flex;overflow:hidden;container-type:inline-size}.ui-document-viewer-v2-engine{flex:1;min-height:0}.ui-document-viewer-v2>.ui-viewer-toolbar,.ui-document-viewer-v2>.ui-viewer-footer{flex-wrap:wrap;flex:none}.ui-document-viewer-v2-compat{border:1px solid var(--ui-border);border-radius:var(--ui-radius-large)}.ui-document-viewer-v2-compat .ui-viewer-toolbar,.ui-document-viewer-v2-headless .ui-viewer-toolbar{flex-wrap:wrap}.ui-v2-search{border-bottom:1px solid var(--ui-border);flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;display:flex}.ui-v2-search>.ui-input{flex:1;min-width:100px}.ui-v2-native-page{background:#fff;flex:none}.ui-v2-native-page img{display:block}.ui-v2-thumbnail{grid-template-rows:minmax(0,1fr) auto;justify-items:center;padding:0;overflow:hidden}.ui-v2-thumbnail-image{object-fit:contain;max-width:100%;max-height:100%;display:block}.ui-v2-native-single{flex:1;min-height:0;padding:52px 12px 20px;overflow:auto}.ui-v2-native-single>.ui-v2-native-page{margin-inline:auto}.ui-document-viewer-v2-engine,.ui-document-viewer-v2-engine>embedpdf-container{width:100%;min-width:0;height:100%;display:block}@media (width<=600px){.ui-document-viewer-v2{border-left:0;border-right:0;border-radius:0;min-height:300px}}
|
|
1
|
+
:root{--ui-primary:#5965a8;--ui-primary-hover:#414a78;--ui-primary-soft:#eef0fb;--ui-text:#242837;--ui-muted:#70778b;--ui-border:#dde0eb;--ui-border-strong:#b8bfdc;--ui-surface:#fff;--ui-canvas:#f4f5f9;--ui-danger:#b44a51;--ui-danger-soft:#fff0f1;--ui-warning:#b87512;--ui-warning-soft:#fff8eb;--ui-success:#2f7d52;--ui-success-soft:#edf8f1;--ui-focus:#5965a847;--ui-shadow:0 12px 32px #29315929;--ui-radius:8px;--ui-radius-large:12px;--ui-control-height:40px;--ui-touch-height:44px;--ui-motion-fast:.12s;--ui-motion-normal:.18s;--ui-motion-slow:.24s;--ui-ease-enter:cubic-bezier(.215,.61,.355,1);--ui-ease-exit:cubic-bezier(.55,.055,.675,.19);--ui-ease-standard:cubic-bezier(.645,.045,.355,1)}.ui-button{box-sizing:border-box;min-width:0;min-height:var(--ui-control-height);border-radius:var(--ui-radius);font:inherit;text-align:center;white-space:nowrap;cursor:pointer;transition:background-color var(--ui-motion-fast) var(--ui-ease-standard),border-color var(--ui-motion-fast) var(--ui-ease-standard),color var(--ui-motion-fast) var(--ui-ease-standard),box-shadow var(--ui-motion-fast) var(--ui-ease-standard),transform var(--ui-motion-fast) var(--ui-ease-standard);border:1px solid #0000;justify-content:center;align-items:center;gap:7px;padding:0 14px;font-weight:700;line-height:1.2;text-decoration:none;display:inline-flex}.ui-button:hover:not(:disabled,[aria-disabled=true]){transform:translateY(-1px)}.ui-button:active:not(:disabled,[aria-disabled=true]){transform:none}.ui-button:focus-visible,.ui-modal-close:focus-visible,.ui-alert-close:focus-visible,.ui-pagination button:focus-visible,.ui-tabs button:focus-visible,.ui-date-input input:focus-visible,.ui-date-trigger:focus-visible{outline:3px solid var(--ui-focus);outline-offset:2px}.ui-button:disabled,.ui-button[aria-disabled=true]{cursor:not-allowed;opacity:.58;transform:none}.ui-button-primary{border-color:var(--ui-primary);color:#fff;background:var(--ui-primary);box-shadow:0 5px 14px color-mix(in srgb,var(--ui-primary) 18%,transparent)}.ui-button-primary:hover:not(:disabled,[aria-disabled=true]){border-color:var(--ui-primary-hover);background:var(--ui-primary-hover)}.ui-button-secondary{border-color:var(--ui-border-strong);color:var(--ui-primary-hover);background:var(--ui-primary-soft)}.ui-button-outline{border-color:var(--ui-border);color:var(--ui-text);background:var(--ui-surface)}.ui-button-ghost{color:var(--ui-primary);background:0 0}.ui-button-danger{border-color:color-mix(in srgb,var(--ui-danger) 35%,white);color:var(--ui-danger);background:var(--ui-danger-soft)}.ui-button-default{height:var(--ui-control-height)}.ui-button-compact{height:32px;min-height:32px;padding-inline:10px;font-size:12px}.ui-button-touch{height:var(--ui-touch-height);min-height:var(--ui-touch-height);padding-inline:16px}.ui-button-icon{width:var(--ui-control-height);min-width:var(--ui-control-height);padding:0}.ui-button-compact.ui-button-icon{width:32px;min-width:32px}.ui-button-touch.ui-button-icon{width:var(--ui-touch-height);min-width:var(--ui-touch-height)}.ui-explainable-action{flex-direction:column;align-items:flex-start;gap:6px;display:inline-flex}.ui-explainable-reason{max-width:34rem;color:var(--ui-muted);align-items:flex-start;gap:5px;font-size:12px;line-height:1.5;display:flex}.ui-explainable-action.reason-popover{position:relative}.reason-popover .ui-explainable-reason{z-index:120;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface);width:max-content;max-width:min(320px,100vw - 24px);box-shadow:var(--ui-shadow);visibility:hidden;opacity:0;padding:8px 10px;position:absolute;top:calc(100% + 7px);left:0}.reason-popover.reason-open .ui-explainable-reason{visibility:visible;opacity:1}.ui-modal-backdrop{z-index:1000;background:#12172a7a;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.ui-modal{border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);width:min(560px,100%);max-height:calc(100dvh - 40px);color:var(--ui-text);background:var(--ui-surface);flex-direction:column;display:flex;overflow:hidden;box-shadow:0 24px 80px #191f373d}.ui-modal-header{border-bottom:1px solid var(--ui-border);flex:none;justify-content:space-between;align-items:flex-start;gap:16px;min-width:0;padding:20px;display:flex}.ui-modal-header>div{min-width:0}.ui-modal-header h2{overflow-wrap:anywhere;margin:4px 0 0;font-size:1.15rem}.ui-modal-header p{color:var(--ui-muted);overflow-wrap:anywhere;margin:7px 0 0;font-size:.82rem;line-height:1.6}.ui-modal-eyebrow{color:var(--ui-primary);letter-spacing:.1em;font-size:.7rem;font-weight:750}.ui-modal-close{width:var(--ui-control-height);height:var(--ui-control-height);border:1px solid var(--ui-border);border-radius:var(--ui-radius);color:var(--ui-muted);background:var(--ui-surface);cursor:pointer;flex:none;place-items:center;display:grid}.ui-modal-content{overscroll-behavior:contain;flex-direction:column;flex:auto;min-height:0;display:flex;overflow:auto}.ui-modal-footer{border-top:1px solid var(--ui-border);background:var(--ui-surface);flex:none}.ui-form-field{min-width:0;color:var(--ui-text);align-content:start;gap:6px;display:grid}.ui-form-label{font-size:13px;font-weight:700}.ui-form-required{color:var(--ui-danger);margin-left:3px}.ui-input,.ui-select,.ui-textarea{box-sizing:border-box;width:100%;min-height:var(--ui-control-height);border:1px solid var(--ui-border);border-radius:var(--ui-radius);color:var(--ui-text);background:var(--ui-surface);font:inherit;padding:0 11px;line-height:1.2}.ui-input,.ui-select{height:var(--ui-control-height)}.ui-select{appearance:auto}.ui-textarea{resize:vertical;height:auto;min-height:88px;padding-block:9px}.ui-input:focus,.ui-select:focus,.ui-textarea:focus{border-color:var(--ui-primary);outline:3px solid var(--ui-focus)}.ui-input[aria-invalid=true],.ui-select[aria-invalid=true],.ui-textarea[aria-invalid=true]{border-color:var(--ui-danger)}.ui-form-help{color:var(--ui-muted);font-size:12px;line-height:1.5}.ui-form-error{color:var(--ui-danger);font-size:12px}.ui-checkbox{align-items:flex-start;gap:9px;display:flex}.ui-checkbox input{width:18px;height:18px;accent-color:var(--ui-primary)}.ui-checkbox-copy{gap:3px;display:grid}.ui-checkbox-copy small{color:var(--ui-muted)}.ui-input-affix{box-sizing:border-box;width:100%;height:var(--ui-control-height);min-height:var(--ui-control-height);border:1px solid var(--ui-border);border-radius:var(--ui-radius);color:var(--ui-text);background:var(--ui-surface);font:inherit;align-items:center;gap:8px;padding:0 11px;line-height:1.2;display:flex}.ui-input-affix:focus-within{border-color:var(--ui-primary);outline:3px solid var(--ui-focus)}.ui-input-affix[data-invalid=true]{border-color:var(--ui-danger)}.ui-input-affix[data-disabled=true],.ui-input-affix[data-disabled=true] .ui-input-adornment{cursor:not-allowed}.ui-input-affix>.ui-input{background:0 0;border:0;border-radius:0;outline:0;flex:auto;align-self:stretch;min-width:0;height:auto;min-height:0;padding:0}.ui-input-affix>.ui-input:focus,.ui-input-affix>.ui-input[aria-invalid=true]{border:0;outline:0}.ui-input-adornment{min-width:0;color:var(--ui-muted);white-space:nowrap;flex:none;justify-content:center;align-items:center;font-size:13px;display:inline-flex}.ui-input-adornment .ui-button-compact{margin-block:3px}.ui-pagination{min-height:58px;color:var(--ui-muted);justify-content:space-between;align-items:center;gap:14px;padding:10px 16px;font-size:12px;display:flex}.ui-pagination-pages{align-items:center;gap:6px;display:flex}.ui-pagination-pages button{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface);cursor:pointer;min-width:34px;height:34px;padding:0 8px}.ui-pagination-pages button.active{border-color:var(--ui-primary);color:var(--ui-primary-hover);background:var(--ui-primary-soft);font-weight:700}.ui-pagination-pages button:disabled{cursor:not-allowed;opacity:.45}.ui-pagination-pages i{padding:0 3px;font-style:normal}.ui-pagination-auto-compact{white-space:nowrap;display:none}.ui-pagination-size{align-items:center;gap:5px;display:flex}.ui-pagination-size select{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface);height:34px}.ui-tabs{align-items:center;gap:7px;display:flex;overflow-x:auto}.ui-tabs button{min-height:var(--ui-control-height);border-radius:var(--ui-radius);color:var(--ui-muted);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;padding:0 12px}.ui-tabs button.active{border-color:var(--ui-border);color:var(--ui-primary-hover);background:var(--ui-primary-soft);font-weight:700}.ui-toggle{cursor:pointer;align-items:center;gap:9px;display:inline-flex}.ui-toggle input{clip-path:inset(50%);width:1px;height:1px;position:absolute}.ui-toggle-track{background:var(--ui-border-strong);border-radius:99px;align-items:center;width:38px;height:22px;padding:3px;transition:background .15s;display:flex}.ui-toggle-track i{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;box-shadow:0 1px 4px #0003}.ui-toggle input:checked+.ui-toggle-track{background:var(--ui-primary)}.ui-toggle input:checked+.ui-toggle-track i{transform:translate(16px)}.ui-toggle input:focus-visible+.ui-toggle-track{outline:3px solid var(--ui-focus);outline-offset:2px}.ui-toggle input[aria-disabled=true]~*{opacity:.58;cursor:not-allowed}.ui-segmented-control{--ui-segmented-height:var(--ui-control-height);box-sizing:border-box;border:1px solid var(--ui-border-strong);border-radius:var(--ui-radius);width:100%;min-width:0;max-width:100%;color:var(--ui-text);background:var(--ui-surface);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid;overflow:hidden}.ui-segmented-option{box-sizing:border-box;min-width:0;min-height:calc(var(--ui-segmented-height) - 2px);border:1px solid #0000;border-left-color:var(--ui-border);cursor:pointer;place-items:center;margin:-1px 0 -1px -1px;display:grid;position:relative}.ui-segmented-option:first-child{border-left-color:#0000;margin-left:-1px}.ui-segmented-option input{clip-path:inset(50%);width:1px;height:1px;min-height:1px;padding:0;position:absolute}.ui-segmented-content{box-sizing:border-box;min-width:0;max-width:100%;font:inherit;justify-content:center;align-items:center;gap:6px;padding:4px 12px;font-weight:650;display:flex}.ui-segmented-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ui-segmented-label:empty{display:none}.ui-segmented-icon{flex:none;align-items:center;display:inline-flex}.ui-segmented-icon svg{width:1em;height:1em}.ui-segmented-option:has(input:checked){z-index:1;border-color:var(--ui-primary);color:#fff;background:var(--ui-primary)}.ui-segmented-option:has(input:focus-visible){z-index:2;outline:3px solid var(--ui-focus);outline-offset:-3px}.ui-segmented-option:has(input:disabled){cursor:not-allowed;opacity:.52}.ui-segmented-compact{--ui-segmented-height:32px}.ui-segmented-compact .ui-segmented-content{padding-inline:10px;font-size:12px}.ui-segmented-touch{--ui-segmented-height:var(--ui-touch-height)}.ui-segmented-touch .ui-segmented-content{padding-inline:16px}.ui-segmented-control{min-height:var(--ui-segmented-height)}.ui-segmented-inline{grid-auto-columns:minmax(0,auto);width:fit-content;display:inline-grid}.ui-segmented-vertical{grid-template-columns:minmax(0,1fr);grid-auto-flow:row}.ui-segmented-vertical .ui-segmented-option{border-left-color:#0000;border-top-color:var(--ui-border);margin:-1px -1px 0}.ui-segmented-vertical .ui-segmented-option:first-child{border-top-color:#0000}.ui-segmented-vertical .ui-segmented-option:has(input:checked){border-color:var(--ui-primary)}.ui-segmented-soft{background:var(--ui-surface-subtle,var(--ui-primary-soft));border-color:#0000;gap:3px;padding:3px}.ui-segmented-soft .ui-segmented-option{border-radius:calc(var(--ui-radius) - 2px);border-color:#0000;margin:0}.ui-segmented-soft .ui-segmented-option:has(input:checked){border-color:var(--ui-border);background:var(--ui-surface);color:var(--ui-text);box-shadow:0 1px 3px #0000001a}.ui-segmented-soft .ui-segmented-option:has(input:not(:checked):not(:disabled)):hover{background:var(--ui-surface);color:var(--ui-primary)}.ui-segmented-shape-round{border-radius:24px}.ui-segmented-shape-round .ui-segmented-option{border-radius:20px}@media (pointer:coarse){.ui-segmented-control{--ui-segmented-height:var(--ui-touch-height)}.ui-segmented-option{min-height:var(--ui-touch-height)}}.ui-async-state{min-height:92px;color:var(--ui-muted);justify-content:center;align-items:center;gap:10px;padding:16px;display:flex}.ui-async-state>span{gap:3px;display:grid}.ui-async-state strong{color:var(--ui-text);font-size:14px}.ui-async-state small{font-size:12px}.ui-async-state.compact{justify-content:flex-start;min-height:54px;padding:8px}.ui-async-state .spin{animation:.8s linear infinite ui-spin}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-date-input{align-items:center;display:inline-flex;position:relative}.ui-date-input input{width:100%;height:var(--ui-control-height);border:1px solid var(--ui-border);border-radius:var(--ui-radius);font:inherit;padding:0 42px 0 11px}.ui-date-trigger{width:36px;height:36px;color:var(--ui-primary);background:0 0;border:0;place-items:center;display:grid;position:absolute;right:2px}.ui-date-calendar{z-index:1100;border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);width:min(332px,100vw);color:var(--ui-text);background:var(--ui-surface);box-shadow:var(--ui-shadow);padding:12px;position:fixed}.ui-date-calendar header,.ui-date-calendar footer{justify-content:space-between;align-items:center;display:flex}.ui-date-calendar button{min-width:36px;min-height:36px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px}.ui-date-grid{grid-template-columns:repeat(7,1fr);gap:2px;margin:8px 0;display:grid}.ui-date-weekday{height:28px;color:var(--ui-muted);place-items:center;font-size:12px;display:grid}.ui-date-grid button[aria-selected=true]{color:#fff;background:var(--ui-primary)}.ui-date-grid button.outside{color:color-mix(in srgb,var(--ui-muted) 50%,transparent)}.ui-date-clear{color:var(--ui-danger)!important}.ui-date-today{font-weight:700;color:var(--ui-primary)!important}.ui-button-spinner{flex:none;animation:.8s linear infinite ui-spin}.ui-alert{border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);color:var(--ui-text);background:var(--ui-surface);animation:ui-slide-down var(--ui-motion-normal) var(--ui-ease-enter);grid-template-columns:auto minmax(0,1fr) auto auto;align-items:start;gap:10px;padding:12px 14px;display:grid;position:relative}.ui-alert-icon{color:var(--ui-primary);margin-top:1px}.ui-alert-content{gap:3px;min-width:0;display:grid}.ui-alert-content strong{font-size:13px}.ui-alert-description{color:var(--ui-muted);font-size:12px;line-height:1.55}.ui-alert-action{align-self:center}.ui-alert-close{width:28px;height:28px;color:var(--ui-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;margin:-5px -6px -5px 0;display:grid}.ui-alert-close:hover{color:var(--ui-text);background:color-mix(in srgb,var(--ui-text) 6%,transparent)}.ui-alert-success{border-color:color-mix(in srgb,var(--ui-success) 28%,var(--ui-border));background:var(--ui-success-soft)}.ui-alert-success .ui-alert-icon{color:var(--ui-success)}.ui-alert-warning{border-color:color-mix(in srgb,var(--ui-warning) 30%,var(--ui-border));background:var(--ui-warning-soft)}.ui-alert-warning .ui-alert-icon{color:var(--ui-warning)}.ui-alert-danger{border-color:color-mix(in srgb,var(--ui-danger) 30%,var(--ui-border));background:var(--ui-danger-soft)}.ui-alert-danger .ui-alert-icon{color:var(--ui-danger)}.ui-empty-state{text-align:center;min-height:180px;color:var(--ui-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:28px;display:flex}.ui-empty-state.compact{min-height:112px;padding:18px}.ui-empty-icon{width:48px;height:48px;color:var(--ui-primary);background:var(--ui-primary-soft);border-radius:50%;place-items:center;margin-bottom:2px;display:grid}.ui-empty-state strong{color:var(--ui-text);font-size:14px}.ui-empty-description{max-width:34rem;font-size:12px;line-height:1.6}.ui-empty-action{margin-top:6px}.ui-skeleton{background:linear-gradient(90deg,var(--ui-canvas) 20%,color-mix(in srgb,var(--ui-border) 58%,var(--ui-surface)) 40%,var(--ui-canvas) 60%);width:100%;height:14px;animation:ui-skeleton-wave 1.5s var(--ui-ease-standard) infinite;background-size:300% 100%;border-radius:5px;display:block}.ui-skeleton.rounded{border-radius:999px}.ui-skeleton-text{align-content:start;gap:9px;display:grid}.reason-popover .ui-explainable-reason{transition:opacity var(--ui-motion-fast) var(--ui-ease-enter),transform var(--ui-motion-fast) var(--ui-ease-enter),visibility 0s linear var(--ui-motion-fast);transform:translateY(-3px)}.reason-popover.reason-open .ui-explainable-reason{transition-delay:0s;transform:none}.ui-modal-backdrop{animation:ui-fade-in var(--ui-motion-normal) var(--ui-ease-enter)}.ui-modal{animation:ui-modal-enter var(--ui-motion-slow) var(--ui-ease-enter)}.ui-date-calendar{transform-origin:top;animation:ui-popover-enter var(--ui-motion-normal) var(--ui-ease-enter)}@keyframes ui-fade-in{0%{opacity:0}}@keyframes ui-modal-enter{0%{opacity:0;transform:translateY(8px)scale(.985)}}@keyframes ui-popover-enter{0%{opacity:0;transform:translateY(-4px)scale(.985)}}@keyframes ui-slide-down{0%{opacity:0;transform:translateY(-5px)}}@keyframes ui-skeleton-wave{0%{background-position:100% 0}to{background-position:0 0}}.ui-tooltip,.ui-popover,.ui-select-content,.ui-combobox-popover{z-index:1200;border:1px solid var(--ui-border);color:var(--ui-text);background:var(--ui-surface);box-shadow:var(--ui-shadow);transform-origin:var(--radix-popover-content-transform-origin,var(--radix-tooltip-content-transform-origin,center));animation:ui-popover-enter var(--ui-motion-normal) var(--ui-ease-enter)}.ui-tooltip{border-radius:7px;max-width:min(280px,100vw - 24px);padding:7px 9px;font-size:12px;line-height:1.45}.ui-floating-arrow{fill:var(--ui-surface)}.ui-popover{width:min(340px,var(--radix-popover-content-available-width,calc(100vw - 24px)));max-height:var(--radix-popover-content-available-height,calc(100dvh - 24px));border-radius:var(--ui-radius-large);overflow:auto}.ui-popover-heading{border-bottom:1px solid var(--ui-border);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-size:13px;display:flex}.ui-popover-body{padding:14px}.ui-floating-close,.ui-toast-close{width:28px;height:28px;color:var(--ui-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;display:grid}.ui-floating-close:hover,.ui-toast-close:hover{color:var(--ui-text);background:color-mix(in srgb,var(--ui-text) 6%,transparent)}.ui-popconfirm-description{color:var(--ui-muted);font-size:12px;line-height:1.55}.ui-popconfirm-actions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.ui-select-trigger{width:100%;min-height:var(--ui-control-height);border:1px solid var(--ui-border);border-radius:var(--ui-radius);color:var(--ui-text);background:var(--ui-surface);font:inherit;text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:0 11px;display:flex}.ui-select-trigger[data-placeholder]{color:var(--ui-muted)}.ui-select-trigger:focus-visible,.ui-combobox-trigger:focus-visible,.ui-floating-close:focus-visible,.ui-toast-close:focus-visible,.ui-table-sort:focus-visible,.ui-data-table input:focus-visible{border-color:var(--ui-primary);outline:3px solid var(--ui-focus);outline-offset:2px}.ui-select-content{min-width:var(--radix-select-trigger-width);max-height:min(320px,var(--radix-select-content-available-height));border-radius:var(--ui-radius);overflow:hidden}.ui-select-viewport{padding:5px}.ui-select-item{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;outline:0;align-items:center;min-height:36px;padding:7px 32px 7px 9px;font-size:13px;line-height:1.4;display:flex;position:relative}.ui-select-item[data-highlighted]{color:var(--ui-primary-hover);background:var(--ui-primary-soft)}.ui-select-item[data-disabled]{opacity:.48;cursor:not-allowed}.ui-select-indicator{color:var(--ui-primary);place-items:center;display:grid;position:absolute;right:9px}.ui-select-scroll{width:100%;height:28px;color:var(--ui-muted);background:var(--ui-surface);border:0;place-items:center;display:grid}.ui-combobox{color:var(--ui-text);align-content:start;gap:6px;display:grid}.ui-combobox-control{display:flex;position:relative}.ui-combobox-control .ui-input{padding-right:42px}.ui-combobox-trigger{width:36px;height:36px;color:var(--ui-primary);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;display:grid;position:absolute;top:2px;right:2px}.ui-combobox-popover{width:var(--trigger-width);max-height:min(320px,var(--available-height));border-radius:var(--ui-radius);overflow:auto}.ui-combobox-list{outline:0;padding:4px;display:block}.ui-combobox-item{cursor:pointer;border-radius:6px;outline:0;justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:7px 9px;display:flex}.ui-combobox-item>span{gap:2px;min-width:0;display:grid}.ui-combobox-item strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.ui-combobox-item small{color:var(--ui-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.ui-combobox-item[data-focused]{color:var(--ui-primary-hover);background:var(--ui-primary-soft)}.ui-combobox-item[data-selected]{font-weight:700}.ui-combobox-item[data-disabled]{opacity:.48;cursor:not-allowed}.ui-combobox-empty,.ui-combobox-loading{color:var(--ui-muted);text-align:center;padding:14px;font-size:12px}.ui-combobox-loading{border-bottom:1px solid var(--ui-border);justify-content:center;align-items:center;gap:7px;display:flex}.ui-async-search-picker{color:var(--ui-text);align-content:start;gap:8px;display:grid}.ui-async-search-control{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;display:grid}.ui-async-search-status:empty{display:none}.ui-async-search-status{color:var(--ui-muted);font-size:12px}.ui-async-search-list{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface);max-height:320px;box-shadow:var(--ui-shadow);padding:4px;overflow:auto}.ui-async-search-option{width:100%;min-height:40px;color:var(--ui-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;padding:8px 9px;display:flex}.ui-async-search-option[aria-selected=true],.ui-async-search-option:hover{color:var(--ui-primary-hover);background:var(--ui-primary-soft)}.ui-async-search-option:focus-visible{outline:3px solid var(--ui-focus);outline-offset:-1px}.ui-async-search-empty{text-align:center;padding:14px}.ui-dropdown-popover{z-index:1300;border:1px solid var(--ui-border);border-radius:var(--ui-radius);min-width:180px;max-width:min(320px,100vw - 24px);color:var(--ui-text);background:var(--ui-surface);box-shadow:var(--ui-shadow);animation:ui-popover-enter var(--ui-motion-normal) var(--ui-ease-enter);overflow:auto}.ui-visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.ui-dropdown-menu{outline:0;padding:5px}.ui-dropdown-item{cursor:pointer;border-radius:6px;outline:0;align-items:center;gap:9px;min-height:36px;padding:7px 9px;font-size:13px;display:flex}.ui-dropdown-item[data-focused]{color:var(--ui-primary-hover);background:var(--ui-primary-soft)}.ui-dropdown-item[data-disabled]{opacity:.48;cursor:not-allowed}.ui-dropdown-item.dangerous{color:var(--ui-danger)}.ui-dropdown-item-icon,.ui-dropdown-item-selected{flex:none;place-items:center;display:grid}.ui-dropdown-item-label{overflow-wrap:anywhere;flex:auto;min-width:0}.ui-dropdown-item-status{min-width:0;color:var(--ui-muted);flex:0 auto;font-size:11px}.ui-dropdown-item-selected{color:var(--ui-primary)}.ui-dropdown-separator{background:var(--ui-border);height:1px;margin:5px}.ui-dropdown-group{display:block}.ui-dropdown-header{color:var(--ui-muted);padding:7px 9px 4px;font-size:11px;font-weight:700}.ui-confirm-dialog-body{overflow-wrap:anywhere;min-width:0;padding:18px 20px}.ui-confirm-dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}.ui-toast-viewport{z-index:2000;pointer-events:none;flex-direction:column;gap:10px;width:min(380px,100vw - 36px);display:flex;position:fixed;top:18px;right:18px}.ui-toast{border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);color:var(--ui-text);background:var(--ui-surface);box-shadow:var(--ui-shadow);pointer-events:auto;animation:ui-toast-enter var(--ui-motion-slow) var(--ui-ease-enter);grid-template-columns:auto minmax(0,1fr) auto auto;align-items:start;gap:10px;padding:12px;display:grid}.ui-toast-icon{color:var(--ui-primary);margin-top:2px}.ui-toast-content{gap:3px;min-width:0;display:grid}.ui-toast-content strong{font-size:13px}.ui-toast-content div{color:var(--ui-muted);font-size:12px;line-height:1.5}.ui-toast-success .ui-toast-icon{color:var(--ui-success)}.ui-toast-warning .ui-toast-icon{color:var(--ui-warning)}.ui-toast-danger .ui-toast-icon{color:var(--ui-danger)}.ui-toast-close{margin:-4px -4px -4px 0}.ui-data-table-wrap{border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);background:var(--ui-surface);max-width:100%;position:relative;overflow-x:auto;container-type:inline-size}.ui-data-table{border-collapse:collapse;width:100%;color:var(--ui-text);font-size:13px}.ui-data-table caption{text-align:left;padding:12px 14px;font-weight:700}.ui-data-table th,.ui-data-table td{border-bottom:1px solid var(--ui-border);text-align:left;vertical-align:middle;padding:11px 13px}.ui-data-table th{color:var(--ui-muted);background:var(--ui-canvas);white-space:nowrap;font-size:12px;font-weight:700}.ui-data-table tbody tr:last-child td{border-bottom:0}.ui-data-table tbody tr[aria-selected=true]{background:var(--ui-primary-soft)}.ui-data-table tbody tr[data-disabled]{opacity:.58}.ui-data-table [data-align=center]{text-align:center}.ui-data-table [data-align=end]{text-align:right}.ui-table-sort{color:inherit;font:inherit;font-weight:inherit;cursor:pointer;background:0 0;border:0;border-radius:5px;align-items:center;gap:6px;margin:-3px;padding:3px;display:inline-flex}.ui-table-sort:hover{color:var(--ui-text);background:color-mix(in srgb,var(--ui-text) 5%,transparent)}.ui-table-selection{width:44px;text-align:center!important}.ui-table-selection input{width:17px;height:17px;accent-color:var(--ui-primary)}.ui-badge{vertical-align:baseline;white-space:nowrap;border:1px solid #0000;border-radius:999px;flex:none;justify-content:center;align-items:center;max-width:100%;font-weight:700;line-height:1;display:inline-flex}.ui-badge-small{min-height:20px;padding:3px 7px;font-size:11px}.ui-badge-medium{min-height:24px;padding:4px 9px;font-size:12px}.ui-badge-neutral{border-color:var(--ui-border);color:var(--ui-text);background:var(--ui-canvas)}.ui-badge-info{border-color:color-mix(in srgb,var(--ui-primary) 24%,var(--ui-border));color:var(--ui-primary-hover);background:var(--ui-primary-soft)}.ui-badge-success{border-color:color-mix(in srgb,var(--ui-success) 28%,var(--ui-border));color:var(--ui-success);background:var(--ui-success-soft)}.ui-badge-warning{border-color:color-mix(in srgb,var(--ui-warning) 30%,var(--ui-border));color:color-mix(in srgb,var(--ui-warning) 80%,var(--ui-text));background:var(--ui-warning-soft)}.ui-badge-danger{border-color:color-mix(in srgb,var(--ui-danger) 30%,var(--ui-border));color:var(--ui-danger);background:var(--ui-danger-soft)}.ui-metric-card{border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);min-width:0;min-height:132px;color:var(--ui-text);background:var(--ui-surface);box-shadow:0 8px 24px color-mix(in srgb,var(--ui-text) 6%,transparent);flex-direction:column;gap:9px;padding:18px;display:flex}.ui-metric-card-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.ui-metric-card-label{min-width:0;color:color-mix(in srgb,var(--ui-muted) 90%,var(--ui-text));overflow-wrap:anywhere;font-size:12px;font-weight:700;line-height:1.45}.ui-metric-card-icon{border-radius:var(--ui-radius);width:34px;height:34px;color:var(--ui-muted);background:var(--ui-canvas);flex:none;place-items:center;display:grid}.ui-metric-card-icon>svg{width:18px;height:18px}.ui-metric-card-value{letter-spacing:-.025em;overflow-wrap:anywhere;font-size:clamp(1.5rem,3vw,2rem);font-weight:750;line-height:1.08}.ui-metric-card-description{color:color-mix(in srgb,var(--ui-muted) 90%,var(--ui-text));overflow-wrap:anywhere;margin-top:auto;font-size:12px;line-height:1.5}.ui-metric-card-info .ui-metric-card-icon{color:var(--ui-primary);background:var(--ui-primary-soft)}.ui-metric-card-success .ui-metric-card-icon{color:var(--ui-success);background:var(--ui-success-soft)}.ui-metric-card-warning .ui-metric-card-icon{color:var(--ui-warning);background:var(--ui-warning-soft)}.ui-metric-card-danger .ui-metric-card-icon{color:var(--ui-danger);background:var(--ui-danger-soft)}.ui-page-header{min-width:0;color:var(--ui-text);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.ui-page-header-copy{flex:24rem;gap:8px;min-width:0;display:grid}.ui-page-header-eyebrow{color:var(--ui-primary);letter-spacing:.14em;text-transform:uppercase;font-size:12px;font-weight:800}.ui-page-header-title{letter-spacing:-.04em;overflow-wrap:anywhere;margin:0;font-size:clamp(1.75rem,4vw,3rem);line-height:1.08}.ui-page-header-description{max-width:48rem;color:color-mix(in srgb,var(--ui-muted) 90%,var(--ui-text));overflow-wrap:anywhere;font-size:14px;line-height:1.65}.ui-page-header-actions{flex-wrap:wrap;flex:0 auto;justify-content:flex-end;align-items:center;gap:10px;max-width:100%;display:flex}.ui-section-card{border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);min-width:0;color:var(--ui-text);background:var(--ui-surface);box-shadow:var(--ui-shadow);overflow:hidden}.ui-section-card-header{border-bottom:1px solid var(--ui-border);justify-content:space-between;align-items:flex-start;gap:20px;padding:20px 24px;display:flex}.ui-section-card-copy{gap:5px;min-width:0;display:grid}.ui-section-card-title{overflow-wrap:anywhere;margin:0;font-size:17px;line-height:1.35}.ui-section-card-description{color:color-mix(in srgb,var(--ui-muted) 90%,var(--ui-text));overflow-wrap:anywhere;font-size:12px;line-height:1.55}.ui-section-card-actions{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:8px;display:flex}.ui-section-card-body{min-width:0}.ui-popover,.ui-select-content,.ui-combobox-popover,.ui-dropdown-popover{overscroll-behavior:contain;max-width:calc(100vw - 24px)}.ui-popover,.ui-combobox-popover,.ui-dropdown-popover{max-height:min(320px,100dvh - 24px);overflow:auto}.ui-select-content{max-height:min(320px,var(--radix-select-content-available-height));overflow:hidden}.ui-select-viewport{overscroll-behavior:contain}.ui-async-search-list{max-height:min(320px,calc(100dvh - 180px - env(safe-area-inset-bottom)));overscroll-behavior:contain;scrollbar-gutter:stable}.ui-combobox .spin{animation:.8s linear infinite ui-spin}.ui-toast-viewport{overscroll-behavior:contain;max-height:calc(100dvh - 36px);overflow-y:auto}.ui-toast{min-width:0}.ui-toast-content{overflow-wrap:anywhere}.ui-data-table-wrap[data-mobile-layout=cards] .ui-empty-state{border-top:1px solid var(--ui-border)}@container (width<=760px){.ui-data-table-wrap[data-mobile-layout=cards] .ui-data-table,.ui-data-table-wrap[data-mobile-layout=cards] tbody,.ui-data-table-wrap[data-mobile-layout=cards] caption{display:block}.ui-data-table-wrap[data-mobile-layout=cards] thead{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.ui-data-table-wrap[data-mobile-layout=cards] tbody tr{border-bottom:1px solid var(--ui-border);padding:10px 12px;display:grid}.ui-data-table-wrap[data-mobile-layout=cards] tbody tr:last-child{border-bottom:0}.ui-data-table-wrap[data-mobile-layout=cards] td{white-space:normal;overflow-wrap:anywhere;border:0;grid-template-columns:minmax(84px,auto) minmax(0,1fr);gap:10px;min-width:0;padding:7px 2px;display:grid}.ui-data-table-wrap[data-mobile-layout=cards] td>*{min-width:0;max-width:100%}.ui-data-table-wrap[data-mobile-layout=cards] td[data-align=end]{text-align:left}.ui-data-table-wrap[data-mobile-layout=cards] td:before{content:attr(data-label);color:var(--ui-muted);text-align:left;font-size:12px;font-weight:700}.ui-data-table-wrap[data-mobile-layout=cards] td.ui-table-selection{width:auto;min-height:var(--ui-touch-height);align-items:center;display:flex;text-align:left!important}.ui-data-table-wrap[data-mobile-layout=cards] td.ui-table-selection:before{content:none}}@keyframes ui-toast-enter{0%{opacity:0;transform:translate(12px)}}.ui-tree-select,.ui-tree-select-root{position:relative}.ui-tree-select-control{display:flex;position:relative}.ui-tree-select-input{padding-right:72px}.ui-tree-select-clear,.ui-tree-select-trigger{height:36px;color:var(--ui-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;display:grid;position:absolute;top:2px}.ui-tree-select-clear{width:32px;right:38px}.ui-tree-select-trigger{width:36px;right:2px}.ui-tree-select-trigger:disabled{cursor:not-allowed;opacity:.55}.ui-tree-select-clear:hover,.ui-tree-select-trigger:hover{color:var(--ui-primary);background:var(--ui-primary-soft)}.ui-tree-select-clear:focus-visible,.ui-tree-select-trigger:focus-visible{outline:3px solid var(--ui-focus);outline-offset:1px}.ui-tree-select-popover{z-index:1100;box-sizing:border-box;overscroll-behavior:contain;border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);width:100%;min-width:min(260px,100vw - 24px);max-height:min(360px,100dvh - 24px);color:var(--ui-text);background:var(--ui-surface);box-shadow:var(--ui-shadow);outline:0;position:absolute;top:calc(100% + 6px);left:0;overflow:hidden auto}.ui-tree-select-tree{padding:5px}.ui-tree-select-branch [role=group]{border-left:1px solid var(--ui-border);margin-left:16px;padding-left:7px}.ui-tree-select-item{cursor:pointer;border-radius:7px;outline:0;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:4px;min-height:36px;padding:3px 8px 3px 2px;display:grid}.ui-tree-select-item.active{color:var(--ui-primary-hover);background:var(--ui-primary-soft)}.ui-tree-select-item.selected{font-weight:700}.ui-tree-select-item.disabled{opacity:.48;cursor:not-allowed}.ui-tree-select-toggle{width:28px;color:var(--ui-muted);cursor:pointer;background:0 0;border:0;border-radius:5px;align-self:stretch;place-items:center;display:grid}.ui-tree-select-toggle:hover{background:color-mix(in srgb,var(--ui-primary-soft) 70%,var(--ui-surface))}.ui-tree-select-spacer{width:28px}.ui-tree-select-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ui-tree-select-status{color:var(--ui-muted);text-align:center;padding:14px;font-size:12px}.ui-tree-select-error{color:var(--ui-danger)}.ui-structured-address{box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);min-width:0;max-width:100%;color:var(--ui-text);gap:10px;padding:12px;display:grid;container-type:inline-size}.ui-structured-address legend{color:var(--ui-muted);padding:0 5px;font-size:12px;font-weight:750}.ui-required-mark{color:var(--ui-danger);margin-right:3px}.ui-structured-address-annotation{margin-left:7px;font-size:11px;font-weight:500}.ui-structured-address label{min-width:0;color:var(--ui-muted);gap:6px;font-size:12px;font-weight:650;display:grid}.ui-structured-address-mode,.ui-structured-address-full,.ui-structured-address-region,.ui-structured-address-detail,.ui-structured-address-version{grid-column:1/-1}.ui-structured-address-region{min-width:0;color:var(--ui-muted);gap:6px;font-size:12px;font-weight:650;display:grid;position:relative}.ui-structured-address-region-control{position:relative}.ui-structured-address-region-control .ui-input{text-overflow:ellipsis;padding-right:36px}.ui-structured-address-region-control>svg{pointer-events:none;position:absolute;top:50%;right:11px;transform:translateY(-50%)}.ui-structured-address-popover{z-index:1100;box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);background:var(--ui-surface);width:min(680px,100vw - 24px);max-width:100%;max-height:min(340px,100dvh - 24px);box-shadow:var(--ui-shadow);position:absolute;top:calc(100% + 6px);left:0;overflow:auto}.ui-structured-address-columns{grid-template-columns:repeat(var(--address-columns,1),minmax(0,1fr));display:grid}.ui-structured-address-columns[data-columns="2"]{--address-columns:2}.ui-structured-address-columns[data-columns="3"]{--address-columns:3}.ui-structured-address-columns[data-columns="4"]{--address-columns:4}.ui-structured-address-column{border-right:1px solid var(--ui-border);min-width:0;max-height:280px;padding:5px;overflow:auto}.ui-structured-address-column:last-child{border-right:0}.ui-structured-address-column button,.ui-structured-address-results button{width:100%;min-height:38px;color:var(--ui-text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;justify-content:space-between;align-items:center;gap:6px;padding:7px 9px;display:flex}.ui-structured-address-column button:hover,.ui-structured-address-column button:focus-visible,.ui-structured-address-column button[aria-selected=true],.ui-structured-address-results button:hover,.ui-structured-address-results button:focus-visible{color:var(--ui-primary-hover);background:var(--ui-primary-soft);outline:0}.ui-structured-address-column button:disabled,.ui-structured-address-results button:disabled{opacity:.48;cursor:not-allowed}.ui-structured-address-results{max-height:280px;padding:5px;overflow:auto}.ui-structured-address-empty{color:var(--ui-muted);text-align:center;padding:16px;font-size:12px}.ui-structured-address-version{color:var(--ui-muted);font-size:11px}.ui-file-dropzone{box-sizing:border-box;border:1.5px dashed var(--ui-border-strong);border-radius:var(--ui-radius-large);min-width:0;color:var(--ui-primary);background:var(--ui-canvas);text-align:center;cursor:pointer;transition:border-color var(--ui-motion-fast) var(--ui-ease-standard),background-color var(--ui-motion-fast) var(--ui-ease-standard);place-content:center;justify-items:center;gap:7px;padding:18px;display:grid}.ui-file-dropzone:hover,.ui-file-dropzone.dragging{border-color:var(--ui-primary);background:var(--ui-primary-soft)}.ui-file-dropzone:focus-visible{outline:3px solid var(--ui-focus);outline-offset:2px}.ui-file-dropzone[aria-disabled=true]{cursor:not-allowed;opacity:.58}.ui-file-dropzone-input{clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.ui-file-dropzone-action{min-height:var(--ui-control-height);border:1px solid var(--ui-border-strong);border-radius:var(--ui-radius);color:var(--ui-primary-hover);background:var(--ui-surface);justify-content:center;align-items:center;padding:0 14px;font-size:13px;font-weight:700;display:inline-flex}@container (width>=520px){.ui-structured-address{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ui-structured-address-mode,.ui-structured-address-detail{grid-column:auto}}@media (pointer:coarse){.ui-button-default,.ui-modal-close,.ui-tabs button,.ui-pagination-pages button,.ui-date-input input,.ui-date-trigger,.ui-date-calendar button,.ui-input,.ui-input-affix,.ui-select,.ui-select-trigger,.ui-select-item,.ui-combobox-item,.ui-dropdown-item,.ui-async-search-option,.ui-tree-select-item,.ui-structured-address-column button,.ui-structured-address-results button{min-height:var(--ui-touch-height)}.ui-input-affix>.ui-input{min-height:0}.ui-button-default.ui-button-icon,.ui-modal-close{width:var(--ui-touch-height);min-width:var(--ui-touch-height)}.ui-tree-select-clear,.ui-tree-select-trigger{height:40px}.ui-tree-select-clear{right:42px}.ui-tree-select-trigger{width:40px}.ui-checkbox input,.ui-table-selection input{width:22px;height:22px}}@media (width<=600px){.ui-tree-select-popover{width:100%;min-width:0;max-width:none;max-height:min(70dvh,calc(100dvh - max(48px,env(safe-area-inset-top))));padding:8px max(8px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(8px,env(safe-area-inset-left));border-radius:var(--ui-radius-large) var(--ui-radius-large) 0 0;border-width:1px 0 0;position:fixed;inset:auto 0 0;box-shadow:0 -18px 48px #191f3738}.ui-structured-address-popover{width:100%;max-width:none;max-height:min(72dvh,calc(100dvh - max(48px,env(safe-area-inset-top))));padding-bottom:env(safe-area-inset-bottom);border-radius:var(--ui-radius-large) var(--ui-radius-large) 0 0;border-width:1px 0 0;position:fixed;inset:auto 0 0;box-shadow:0 -18px 48px #191f3738}.ui-structured-address-columns[data-columns="3"],.ui-structured-address-columns[data-columns="4"]{grid-template-columns:repeat(3,minmax(0,1fr))}.ui-structured-address-column button{padding-inline:6px;font-size:12px}}@media (width<=600px),(width<=900px) and (height<=600px){.ui-dropdown-item{min-height:var(--ui-touch-height)}.ui-popover,.ui-combobox-popover,.ui-dropdown-popover{max-height:calc(100dvh - max(24px,env(safe-area-inset-top)) - max(24px,env(safe-area-inset-bottom)))}.ui-date-calendar{width:min(540px,calc(100vw - max(24px,env(safe-area-inset-left)) - max(24px,env(safe-area-inset-right))));max-height:calc(100dvh - max(12px,env(safe-area-inset-top)) - max(12px,env(safe-area-inset-bottom)));overscroll-behavior:contain;overflow:auto}}@media (width<=600px){.ui-modal-backdrop{padding:0}.ui-modal{border:0;border-radius:0;width:100%;height:100dvh;max-height:100dvh}.ui-modal-header{padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 16px max(16px,env(safe-area-inset-left))}.ui-modal-footer{padding-bottom:env(safe-area-inset-bottom)}.ui-alert{grid-template-columns:auto minmax(0,1fr) auto}.ui-alert-action{grid-column:2;justify-self:start}.ui-alert-close{grid-area:1/3}.ui-popover{max-width:calc(100vw - max(24px,env(safe-area-inset-left)) - max(24px,env(safe-area-inset-right)))}[data-radix-popper-content-wrapper]:has(>.ui-select-content){width:100%!important;min-width:0!important;position:fixed!important;inset:auto 0 0!important;transform:none!important}.ui-select-content{width:100%;min-width:0;max-width:none;max-height:min(70dvh,calc(100dvh - max(48px,env(safe-area-inset-top))));padding-bottom:env(safe-area-inset-bottom);border-radius:var(--ui-radius-large) var(--ui-radius-large) 0 0;transform-origin:bottom;border-width:1px 0 0;box-shadow:0 -18px 48px #191f3738}.ui-select-viewport{padding:10px max(8px,env(safe-area-inset-right)) 10px max(8px,env(safe-area-inset-left))}.ui-toast-viewport{top:auto;right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left));width:auto;max-height:calc(100dvh - max(24px,env(safe-area-inset-top)) - max(24px,env(safe-area-inset-bottom)))}.ui-toast{grid-template-columns:auto minmax(0,1fr) auto}.ui-toast>.ui-button{grid-column:2;justify-self:start}.ui-toast-close{grid-area:1/3}.ui-pagination{flex-wrap:wrap;align-items:flex-start}.ui-pagination-summary{width:100%}.ui-pagination-size{margin-left:auto}.ui-async-search-control{grid-template-columns:1fr}.ui-async-search-control>.ui-button{width:100%}.ui-page-header{flex-direction:column;justify-content:flex-start;align-items:stretch}.ui-page-header-copy{flex:none}.ui-page-header-actions{justify-content:flex-start;width:100%}.ui-page-header-actions>.ui-button{flex:140px}.ui-section-card-header{flex-direction:column;padding:17px 18px}.ui-section-card-actions{justify-content:flex-start;width:100%}.ui-section-card-actions>.ui-button{flex:140px}.ui-metric-card{min-height:120px;padding:16px}}@media (width>=601px) and (height<=600px){.ui-modal-backdrop{padding:12px}.ui-modal{max-height:calc(100dvh - 24px)}.ui-modal-header{padding:12px 16px}}@media (width<=360px){.ui-pagination{gap:8px;padding-inline:10px}.ui-pagination-pages{gap:4px}.ui-pagination-pages .ui-page-number,.ui-pagination-pages .ui-page-ellipsis{display:none}.ui-pagination-auto-compact{display:inline}.ui-pagination-size{margin-left:0}.ui-pagination-size span:first-child,.ui-pagination-size>span:last-child{display:none}}@media (hover:none){.ui-button:hover:not(:disabled,[aria-disabled=true]){transform:none}}@media (prefers-reduced-motion:reduce){.ui-button,.ui-toggle-track,.ui-toggle-track i,.ui-explainable-reason{transition:none}.ui-button-spinner,.ui-async-state .spin,.ui-alert,.ui-modal-backdrop,.ui-modal,.ui-date-calendar,.ui-skeleton,.ui-tooltip,.ui-popover,.ui-select-content,.ui-combobox-popover,.ui-dropdown-popover,.ui-toast{animation:none}}.ui-overlay-container{display:contents}.ui-date-calendar[data-side],.ui-tree-select-popover[data-side],.ui-structured-address-popover[data-side]{box-sizing:border-box;max-height:var(--radix-popover-content-available-height);position:relative;inset:auto;overflow:auto}.ui-tree-select-popover[data-side]{width:var(--radix-popover-trigger-width);min-width:min(260px,100vw - 24px);max-width:calc(100vw - 24px)}.ui-structured-address-popover[data-side]{width:min(680px,100vw - 24px);max-width:calc(100vw - 24px)}.ui-date-calendar header{justify-content:space-between;align-items:center;display:flex}.ui-date-calendar h2{margin:0;font-size:14px}.ui-date-month-jump{color:var(--ui-muted);justify-content:space-between;align-items:center;gap:8px;padding:4px 8px;font-size:12px;display:flex}.ui-date-month-jump input{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface);max-width:180px;min-height:32px;color:var(--ui-text);font:inherit}.ui-aria-calendar-grid{border-collapse:separate;border-spacing:2px;table-layout:fixed;width:100%}.ui-aria-calendar-grid th{height:28px;color:var(--ui-muted);font-size:12px}.ui-aria-calendar-grid td{text-align:center;padding:0}.ui-aria-calendar-grid .react-aria-CalendarCell{border-radius:var(--ui-radius);cursor:pointer;outline:0;place-items:center;min-height:36px;font-size:13px;display:grid}.ui-aria-calendar-grid .react-aria-CalendarCell[data-selected]{background:var(--ui-primary);color:#fff}.ui-aria-calendar-grid .react-aria-CalendarCell[data-focus-visible]{outline:3px solid var(--ui-focus)}.ui-aria-calendar-grid .react-aria-CalendarCell[data-outside-month]{color:var(--ui-muted)}.ui-aria-calendar-grid .react-aria-CalendarCell[data-disabled],.ui-aria-calendar-grid .react-aria-CalendarCell[data-unavailable]{opacity:.4;cursor:not-allowed;text-decoration:line-through}.ui-toast-viewport{margin:0;list-style:none}.ui-table-selection-summary{background:var(--ui-primary-soft);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 12px;font-size:13px;display:flex}.ui-multi-select{gap:6px;min-width:0;display:grid}.ui-multi-selection{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ui-multi-selection .react-aria-TagList{flex-wrap:wrap;gap:6px;display:flex}.ui-selection-tag{border-radius:var(--ui-radius);background:var(--ui-primary-soft);color:var(--ui-primary-hover);align-items:center;gap:6px;padding:3px 8px;font-size:13px;display:inline-flex}.ui-selection-tag[data-focused]{outline:3px solid var(--ui-focus)}.ui-selection-tag button,.ui-selection-clear{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;min-width:28px;min-height:28px}.ui-selection-tag button:disabled,.ui-selection-clear:disabled{opacity:.5;cursor:not-allowed}@media (pointer:coarse){.ui-aria-calendar-grid .react-aria-CalendarCell,.ui-date-month-jump input,.ui-selection-tag button{min-height:var(--ui-touch-height)}}.ui-file-preparation-dialog{width:min(480px,100vw - 32px);height:auto;min-height:0;max-height:calc(100dvh - 32px)}.ui-file-preparation-name{overflow-wrap:anywhere;font-weight:600}.ui-sortable-list{outline:0;gap:12px;display:grid}.ui-sortable-item{outline:0;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px;min-width:0;display:grid;position:relative}.ui-sortable-item[data-focus-visible]{outline:3px solid var(--ui-focus);outline-offset:2px;border-radius:var(--ui-radius-large)}.ui-sortable-item{position:relative}.ui-sortable-placeholder{display:none}.ui-sortable-item[data-dragging]{opacity:1;outline:1px dashed var(--ui-primary);outline-offset:-1px;background:var(--ui-primary-soft)}.ui-sortable-item[data-dragging]>[role=gridcell]>.ui-sortable-content{opacity:.18}.ui-sortable-item[data-dragging]>[role=gridcell]>.ui-sortable-placeholder{z-index:1;border-radius:var(--ui-radius);background:var(--ui-surface);max-width:90%;color:var(--ui-primary);text-align:center;pointer-events:none;padding:8px 12px;font-size:12px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ui-sortable-content{min-width:0}.ui-sortable-handle{border:1px solid var(--ui-border);border-radius:var(--ui-radius);width:32px;height:44px;color:var(--ui-muted);background:var(--ui-surface);cursor:grab;place-items:center;margin-top:8px;padding:0;display:grid}.ui-sortable-handle:active{cursor:grabbing}.ui-sortable-handle:focus-visible{outline:3px solid var(--ui-focus);outline-offset:2px}.react-aria-DropIndicator[data-drop-target]{background:var(--ui-primary);border-radius:999px;height:3px}@media (pointer:coarse){.ui-sortable-handle{width:44px;min-width:44px;height:44px}}.ui-sortable-content:only-child{grid-column:1/-1}.ui-sortable-list[data-empty]{min-height:80px}.ui-sortable-empty{text-align:center;color:var(--ui-muted);padding:24px;display:block}.ui-sortable-list[data-drop-target]{outline:2px dashed var(--ui-primary);outline-offset:2px;background:var(--ui-primary-soft);border-radius:var(--ui-radius)}.ui-cascader{box-sizing:border-box;width:100%;min-width:0;min-height:var(--ui-control-height);border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface);color:var(--ui-text);font:inherit;cursor:pointer;align-items:center;gap:6px;padding:5px 11px;display:flex;position:relative}.ui-cascader:focus-within{border-color:var(--ui-primary);outline:3px solid var(--ui-focus)}.ui-cascader:has([aria-invalid=true]){border-color:var(--ui-danger)}.ui-cascader-disabled{opacity:.55;cursor:not-allowed}.ui-cascader-content{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;line-height:26px;position:relative;overflow:hidden}.ui-cascader-input{box-sizing:border-box;font:inherit;color:inherit;background:0 0;border:0;outline:0;min-width:0;height:26px;margin:0;padding:0}.ui-cascader-single .ui-cascader-input{width:100%;position:absolute;inset:0}.ui-cascader-single .ui-cascader-content-has-search-value{color:#0000}.ui-cascader-single .ui-cascader-content-has-search-value .ui-cascader-input{color:var(--ui-text);background:var(--ui-surface)}.ui-cascader-content:empty{min-height:26px}.ui-cascader-placeholder{color:var(--ui-muted);pointer-events:none}.ui-cascader-suffix{color:var(--ui-muted);pointer-events:none;align-items:center;display:flex}.ui-cascader-clear,.ui-cascader-tag button{color:var(--ui-muted);cursor:pointer;background:0 0;border:0;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:4px;display:inline-flex}.ui-cascader-clear:focus-visible,.ui-cascader-tag button:focus-visible{outline:2px solid var(--ui-primary)}.ui-cascader-multiple .ui-cascader-content{white-space:normal;flex-wrap:wrap;align-items:center;gap:4px;display:flex;overflow:visible}.ui-cascader-content-item,.ui-cascader-content-item-suffix{align-items:center;min-width:0;max-width:100%;display:inline-flex}.ui-cascader-multiple .ui-cascader-input{width:var(--select-input-width,20px);min-width:20px;max-width:100%}.ui-cascader-tag{background:var(--ui-primary-soft);border-radius:4px;align-items:center;gap:3px;max-width:100%;padding:0 4px;font-size:13px;display:inline-flex}.ui-cascader-tag>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ui-cascader-dropdown{box-sizing:border-box;z-index:1400;background:var(--ui-surface);max-width:calc(100vw - 24px);color:var(--ui-text);border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow);font:inherit;padding:4px;position:absolute}.ui-cascader-dropdown-hidden{display:none}.ui-cascader-menus{overscroll-behavior:contain;max-width:100%;display:flex;overflow-x:auto}.ui-cascader-menu{box-sizing:border-box;overscroll-behavior:contain;border-right:1px solid var(--ui-border);flex:1 0 150px;min-width:0;max-height:min(320px,50dvh);margin:0;padding:0 4px;list-style:none;overflow-y:auto}.ui-cascader-menu:last-child{border-right:0}.ui-cascader-menu-item{box-sizing:border-box;cursor:pointer;border-radius:4px;align-items:center;gap:8px;min-height:36px;padding:6px 8px;display:flex}.ui-cascader-menu-item-content{overflow-wrap:anywhere;flex:1;min-width:0}.ui-cascader-menu-item:hover,.ui-cascader-menu-item-active{background:var(--ui-primary-soft);color:var(--ui-primary-hover)}.ui-cascader-menu-item[aria-checked=true]{font-weight:600}.ui-cascader-menu-item-disabled{opacity:.45;cursor:not-allowed}.ui-cascader-menu-item-expand-icon,.ui-cascader-menu-item-loading-icon{flex:none;display:flex}.ui-cascader-checkbox{box-sizing:border-box;border:1px solid var(--ui-border-strong);border-radius:3px;flex:none;place-items:center;width:16px;height:16px;display:inline-grid}.ui-cascader-checkbox-checked,.ui-cascader-checkbox-indeterminate{background:var(--ui-primary);border-color:var(--ui-primary);color:#fff}.ui-cascader-checkbox-checked:after{content:"";border:2px solid;border-width:0 2px 2px 0;width:4px;height:8px;margin-top:-2px;transform:rotate(45deg)}.ui-cascader-checkbox-indeterminate:after{content:"";background:currentColor;width:8px;height:2px}@media (pointer:coarse){.ui-cascader,.ui-cascader-menu-item{min-height:var(--ui-touch-height)}.ui-cascader-clear,.ui-cascader-tag button{min-width:32px;min-height:32px}}@media (width<=600px){.ui-cascader-menu{flex-basis:125px}.ui-cascader-dropdown{max-width:none;inset:auto 12px max(12px,env(safe-area-inset-bottom)) 12px!important;width:auto!important;position:fixed!important;transform:none!important}.ui-cascader-menu{max-height:45dvh}}.ui-structured-address-region{font:inherit;color:inherit}.ui-data-table-scroll-frame{min-width:0;max-width:100%;position:relative}.ui-data-table-horizontal-scroll{z-index:8;border-top:1px solid var(--ui-border);background:var(--ui-surface);scrollbar-color:var(--ui-border-strong) var(--ui-canvas);width:100%;height:18px;display:none;position:sticky;bottom:0;overflow:auto hidden}.ui-data-table-horizontal-scroll.is-visible{display:block}.ui-data-table-horizontal-scroll>div{height:1px}.ui-data-table-horizontal-scroll::-webkit-scrollbar{height:14px}.ui-data-table-horizontal-scroll::-webkit-scrollbar-track{background:var(--ui-canvas);border-radius:999px}.ui-data-table-horizontal-scroll::-webkit-scrollbar-thumb{border:3px solid var(--ui-canvas);background:var(--ui-border-strong);border-radius:999px}.ui-user-chip{max-width:100%;min-height:var(--ui-control-height);border-radius:var(--ui-radius);color:var(--ui-text);background:var(--ui-canvas);font:inherit;text-align:left;cursor:pointer;border:0;align-items:center;gap:8px;padding:4px 10px 4px 5px;font-size:14px;display:inline-flex}.ui-user-chip:hover{background:var(--ui-primary-soft)}.ui-user-chip:focus-visible{outline:3px solid var(--ui-focus);outline-offset:2px}.ui-user-chip-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ui-user-avatar{color:#fff;background:var(--ui-user-avatar-bg,var(--ui-primary));border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:15px;font-weight:700;line-height:1;display:grid;overflow:hidden}.ui-user-avatar img{object-fit:cover;width:100%;height:100%}.ui-user-avatar-large{width:44px;height:44px;font-size:22px}.ui-popover.ui-user-profile-popover{width:min(var(--ui-user-profile-width,clamp(300px,15vw,560px)),var(--radix-popover-content-available-width,calc(100vw - 24px)));max-height:var(--radix-popover-content-available-height,calc(100dvh - 24px));box-sizing:border-box}.ui-user-profile-popover .ui-popover-body{padding:0}.ui-user-profile{overflow-wrap:anywhere;padding:16px;font-size:14px}.ui-user-profile-header{align-items:center;gap:12px;display:flex}.ui-user-profile-heading{justify-items:start;gap:5px;min-width:0;display:grid}.ui-user-profile-name{font-size:16px;line-height:1.3}.ui-user-profile-tag{color:var(--ui-muted);background:var(--ui-canvas);border-radius:4px;padding:2px 6px;font-size:12px;line-height:1.4}.ui-user-profile-details{border-top:1px solid var(--ui-border);gap:8px;margin:16px 0 0;padding:12px 0 0;display:grid}.ui-user-profile-row{grid-template-columns:4em minmax(0,1fr);gap:8px;min-width:0;line-height:1.5;display:grid}.ui-user-profile-row dt{color:var(--ui-muted)}.ui-user-profile-row dd{white-space:pre-wrap;min-width:0;margin:0}@media (width<=600px){.ui-user-profile{padding:14px}.ui-user-avatar-large{width:42px;height:42px;font-size:21px}.ui-user-profile-details{margin-top:14px;padding-top:12px}}@media (pointer:coarse){.ui-user-chip{min-height:var(--ui-touch-height)}}.ui-sortable-item[data-drop-target]{outline:3px solid var(--ui-primary);outline-offset:3px;border-radius:var(--ui-radius-large)}.ui-multiline-input{min-height:var(--ui-control-height);resize:vertical;field-sizing:content}.ui-combobox-group-heading{color:var(--ui-muted);padding:8px 9px 4px;font-size:12px;font-weight:400;line-height:1.5}.ui-document-viewer{min-width:0;height:100%;min-height:360px;color:var(--ui-text,#253045);background:var(--ui-surface,#fff);flex-direction:column;display:flex;overflow:hidden}.ui-document-viewer.ui-viewer-fill{flex:auto;width:100%;min-width:0;height:100%;min-height:0}.ui-pdfium-viewer-fallback{box-sizing:border-box;width:100%;min-width:0;min-height:360px;padding:24px}.ui-pdfium-viewer-fallback.ui-viewer-fill{flex:auto;place-items:center;height:100%;min-height:0;display:grid}.ui-document-viewer.ui-viewer-fullscreen{z-index:10000;width:100vw;height:100dvh;position:fixed;inset:0}.ui-viewer-toolbar{border-bottom:1px solid var(--ui-border,#d9dee7);align-items:center;gap:8px;min-height:52px;padding:6px 12px;display:flex}.ui-viewer-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ui-muted,#697386);flex:1;font-size:13px;font-weight:600;overflow:hidden}.ui-viewer-tools{flex:none;justify-content:flex-end;align-items:center;gap:2px;margin-left:auto;display:flex}.ui-viewer-tools>span{text-align:center;font-variant-numeric:tabular-nums;min-width:46px;color:var(--ui-muted,#697386);font-size:12px}.ui-viewer-tools>.ui-viewer-tool{border-radius:6px;width:34px;height:34px;min-height:34px;padding:0}.ui-viewer-tools>.ui-viewer-tool-separated{margin-left:6px}@media (pointer:coarse){.ui-viewer-tools>.ui-viewer-tool{width:44px;height:44px;min-height:44px}}.ui-viewer-footer{border-top:1px solid var(--ui-border,#d9dee7);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;padding:4px;display:flex}.ui-pdf-workspace{background:var(--ui-surface-muted,#edf0f4);flex:1;grid-template-columns:156px minmax(0,1fr);min-width:0;min-height:0;display:grid;position:relative;overflow:hidden}.ui-pdf-workspace.ui-rail-collapsed{grid-template-columns:minmax(0,1fr)}.ui-viewer-rail{border-right:1px solid var(--ui-border,#d9dee7);min-width:0;min-height:0;padding:8px;overflow:auto}.ui-viewer-rail[hidden]{display:none}.ui-viewer-stage{flex-direction:column;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.ui-pdf-workspace>.ui-viewer-rail-toggle{z-index:5;position:absolute;top:8px;left:164px}.ui-pdf-workspace.ui-rail-collapsed>.ui-viewer-rail-toggle{left:8px}.ui-thumbnail-rail{flex-direction:column;gap:8px;height:100%;min-height:0;display:flex}.ui-thumbnail-list{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex;overflow:hidden auto}.ui-thumbnail-list>.ui-page-thumbnail{white-space:normal;overflow-wrap:anywhere;border:2px solid #0000;flex:none;grid-template-columns:minmax(0,1fr);gap:5px;width:100%;height:auto;min-height:0;padding:6px;display:grid}.ui-thumbnail-list>.ui-page-thumbnail[aria-current=page]{border-color:var(--ui-primary,#5b63a5);background:var(--ui-primary-soft,#eef0fa)}.ui-page-thumbnail canvas,.ui-page-thumbnail img{width:100%;height:auto;display:block}.ui-thumbnail-placeholder{aspect-ratio:1/1.414;background:var(--ui-surface,#fff);width:100%;display:block}.ui-thumbnail-pager{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;display:grid}.ui-thumbnail-pager>span{text-align:center;grid-column:1/-1;font-size:12px}.ui-thumbnail-pager>.ui-button{padding-inline:4px;font-size:12px}.ui-document-viewport{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.ui-continuous-scroll,.ui-image-scroll,.ui-single-page{overscroll-behavior:contain;flex:1;min-width:0;min-height:0;padding:54px 16px 24px;overflow:auto}.ui-continuous-page{flex:none;margin:0 auto 20px}.ui-continuous-page>span{text-align:center;margin-bottom:8px;font-size:12px;display:block}.ui-page-placeholder,.ui-pdf-page{background:#fff;width:100%;position:relative}.ui-pdf-page>canvas{max-width:100%;display:block;width:100%!important;height:auto!important}.ui-pdf-page>[role=alert]{place-items:center;display:grid;position:absolute;inset:0}.ui-image-frame{flex:none;margin-inline:auto;position:relative}.ui-image-frame img{max-width:none;height:auto;position:absolute;top:50%;left:50%}@media (width<=900px){.ui-pdf-workspace{grid-template-columns:128px minmax(0,1fr)}.ui-pdf-workspace>.ui-viewer-rail-toggle{left:136px}.ui-continuous-scroll,.ui-image-scroll,.ui-single-page{padding-inline:8px}.ui-viewer-title{flex-basis:100%}}.ui-document-viewer-v2{box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius-large);width:100%;min-width:0;height:100%;min-height:360px;color:var(--ui-text);background:var(--ui-canvas);box-shadow:0 8px 24px color-mix(in srgb, var(--ui-text) 6%, transparent);flex-direction:column;display:flex;overflow:hidden;container-type:inline-size}.ui-document-viewer-v2.ui-viewer-fill{flex:auto;height:100%;min-height:0}.ui-document-viewer-v2-engine{flex:1;min-height:0}.ui-document-viewer-v2>.ui-viewer-toolbar,.ui-document-viewer-v2>.ui-viewer-footer{flex-wrap:wrap;flex:none}.ui-document-viewer-v2-compat{border:1px solid var(--ui-border);border-radius:var(--ui-radius-large)}.ui-document-viewer-v2-compat .ui-viewer-toolbar,.ui-document-viewer-v2-headless .ui-viewer-toolbar{flex-wrap:wrap}.ui-v2-search{border-bottom:1px solid var(--ui-border);flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;display:flex}.ui-v2-search-disclosure{border-bottom:1px solid var(--ui-border);background:var(--ui-surface);flex:none;justify-content:flex-end;min-height:38px;padding:3px 8px;display:flex}.ui-v2-search>.ui-input{flex:1;min-width:100px}.ui-v2-native-page{background:#fff;flex:none}.ui-v2-native-page img{display:block}.ui-v2-thumbnail{grid-template-rows:minmax(0,1fr) auto;justify-items:center;padding:0;overflow:hidden}.ui-v2-thumbnail-image{object-fit:contain;max-width:100%;max-height:100%;display:block}.ui-v2-native-single{flex:1;min-height:0;padding:52px 12px 20px;overflow:auto}.ui-v2-native-single>.ui-v2-native-page{margin-inline:auto}@media (width<=900px),(hover:none) and (pointer:coarse){.ui-document-viewer-v2-headless.ui-mobile-continuous-reader .ui-pdf-workspace,.ui-document-viewer-v2-headless.ui-mobile-continuous-reader .ui-pdf-workspace:not(.ui-rail-collapsed){grid-template-columns:minmax(0,1fr)}.ui-document-viewer-v2-headless.ui-mobile-continuous-reader .ui-viewer-rail,.ui-document-viewer-v2-headless.ui-mobile-continuous-reader .ui-viewer-rail-toggle,.ui-document-viewer-v2-headless.ui-mobile-continuous-reader>.ui-viewer-footer{display:none}.ui-document-viewer-v2-headless.ui-mobile-continuous-reader>.ui-viewer-toolbar{overscroll-behavior-inline:contain;scrollbar-width:none;flex-wrap:nowrap;gap:2px;min-height:44px;padding:2px 4px;overflow-x:auto}.ui-document-viewer-v2-headless.ui-mobile-continuous-reader>.ui-viewer-toolbar::-webkit-scrollbar{display:none}.ui-document-viewer-v2-headless.ui-mobile-continuous-reader .ui-mobile-reader-search-label{display:none}.ui-document-viewer-v2-headless.ui-mobile-continuous-reader .ui-v2-native-viewport,.ui-document-viewer-v2-headless.ui-mobile-continuous-reader .ui-v2-native-page,.ui-document-viewer-v2-headless.ui-mobile-continuous-reader .ui-v2-native-page>div{touch-action:pan-x pan-y!important}.ui-document-viewer-v2-headless.ui-mobile-continuous-reader .ui-v2-native-viewport{overscroll-behavior:auto;scroll-behavior:auto;-webkit-overflow-scrolling:touch;overflow:auto!important}}.ui-document-viewer-v2-engine,.ui-document-viewer-v2-engine>embedpdf-container{width:100%;min-width:0;height:100%;display:block}@media (width<=600px){.ui-document-viewer-v2{border-left:0;border-right:0;border-radius:0;min-height:300px}.ui-document-viewer-v2.ui-viewer-fill{min-height:0}}
|
|
2
2
|
/*$vite$:1*/
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { type ReactNode } from "react";
|
|
2
2
|
import { type SortableKey, type SortableTransferScope } from "./sortable-transfer-scope";
|
|
3
3
|
export { useSortableTransferScope, type SortableTransferScope } from "./sortable-transfer-scope";
|
|
4
|
+
export type SortableMoveContext = {
|
|
5
|
+
sourceListId?: SortableKey;
|
|
6
|
+
targetListId?: SortableKey;
|
|
7
|
+
};
|
|
4
8
|
export type SortableListProps<T> = {
|
|
5
9
|
items: T[];
|
|
6
10
|
getKey(item: T): SortableKey;
|
|
@@ -8,12 +12,17 @@ export type SortableListProps<T> = {
|
|
|
8
12
|
renderItem(item: T, index: number): ReactNode;
|
|
9
13
|
onReorder(items: T[]): void;
|
|
10
14
|
/** Handles an internal drop onto an item; the consumer owns grouping and persistence. */
|
|
11
|
-
onDropOnItem?(moving: T[], target: T): void;
|
|
15
|
+
onDropOnItem?(moving: T[], target: T, context: SortableMoveContext): void;
|
|
12
16
|
canDropOnItem?(moving: T[], target: T): boolean;
|
|
13
17
|
/** Share an opaque scope to enable transfers between lists with the same item type. */
|
|
14
18
|
transferScope?: SortableTransferScope<T>;
|
|
15
|
-
onDropBetweenItems?(moving: T[], target: T, position: "before" | "after"): void;
|
|
19
|
+
onDropBetweenItems?(moving: T[], target: T, position: "before" | "after", context: SortableMoveContext): void;
|
|
16
20
|
canDropBetweenItems?(moving: T[], target: T, position: "before" | "after"): boolean;
|
|
21
|
+
listId?: SortableKey;
|
|
22
|
+
/** Accept transfers onto the collection itself, including an empty list. */
|
|
23
|
+
onDropOnList?(moving: T[], context: SortableMoveContext): void;
|
|
24
|
+
canDropOnList?(moving: T[]): boolean;
|
|
25
|
+
renderEmptyState?(): ReactNode;
|
|
17
26
|
"aria-label": string;
|
|
18
27
|
disabled?: boolean;
|
|
19
28
|
className?: string;
|
|
@@ -15,6 +15,8 @@ export type DocumentViewerProps = {
|
|
|
15
15
|
title?: ReactNode;
|
|
16
16
|
className?: string;
|
|
17
17
|
style?: CSSProperties;
|
|
18
|
+
/** `fill` participates in a bounded flex/grid container without imposing the standalone minimum height. */
|
|
19
|
+
layoutMode?: "standalone" | "fill";
|
|
18
20
|
ariaLabel?: string;
|
|
19
21
|
toolbar?: ReactNode;
|
|
20
22
|
footer?: ReactNode;
|
|
@@ -22,6 +22,7 @@ export type DocumentViewerV2Config = Omit<PDFViewerConfig, "src" | "documentMana
|
|
|
22
22
|
type SharedViewerProps = {
|
|
23
23
|
className?: string;
|
|
24
24
|
style?: CSSProperties;
|
|
25
|
+
layoutMode?: "standalone" | "fill";
|
|
25
26
|
ariaLabel?: string;
|
|
26
27
|
};
|
|
27
28
|
export type DocumentViewerV2NativeProps = SharedViewerProps & Pick<DocumentViewerProps, 'title' | 'toolbar' | 'footer'> & {
|
|
@@ -20,6 +20,8 @@ export type DocumentViewerV2HeadlessProps = Omit<DocumentViewerProps, 'source'>
|
|
|
20
20
|
rotation?: number;
|
|
21
21
|
showToolbar?: boolean;
|
|
22
22
|
defaultRailCollapsed?: boolean;
|
|
23
|
+
mobileMode?: 'standard' | 'continuous-reader';
|
|
24
|
+
searchMode?: 'expanded' | 'collapsible';
|
|
23
25
|
focusTarget?: {
|
|
24
26
|
page: number;
|
|
25
27
|
y: number;
|
|
@@ -2,6 +2,7 @@ export type SortableKey = string | number;
|
|
|
2
2
|
declare const transferState: unique symbol;
|
|
3
3
|
type Transfer<T> = {
|
|
4
4
|
source: object;
|
|
5
|
+
sourceListId?: SortableKey;
|
|
5
6
|
keys: Set<SortableKey>;
|
|
6
7
|
resolve(): T[];
|
|
7
8
|
consumed?: boolean;
|
|
@@ -24,4 +25,6 @@ export declare function registerSortableTarget<T>(scope: SortableTransferScope<T
|
|
|
24
25
|
/** Nested React Aria drop indicators may dispatch through an ancestor; resolve the unique current owner. */
|
|
25
26
|
export declare function routeSortableTarget<T>(scope: SortableTransferScope<T> | undefined, source: object, key: SortableKey, position: "on" | "before" | "after"): void;
|
|
26
27
|
export declare function consumeSortableTransfer<T>(scope?: SortableTransferScope<T>): void;
|
|
28
|
+
/** Reject ambiguous keys even when the event arrives directly at an owning list. */
|
|
29
|
+
export declare function hasUniqueSortableTarget<T>(scope: SortableTransferScope<T> | undefined, key: SortableKey): boolean;
|
|
27
30
|
export {};
|
package/docs/agent-guide.md
CHANGED
|
@@ -69,13 +69,14 @@
|
|
|
69
69
|
| 列表表格、排序、行选择 | [DataTable](data-table.md) | 当前源码已采用MRT;旧参数兼容,完整配置用options或useDataTable/DataTableView;固定高度列表优先容器原生滚动,长页面可按需开启底部吸附横向滚动条 |
|
|
70
70
|
| 评估筛选、列管理、主从明细行合并或展开 | [表格能力与 MRT 样例](mrt-poc.md) | productDisplay由调用方选择;同行用rowSpan且按合同分页;仅本地验证,不是已发布API |
|
|
71
71
|
| 页码导航 | `Pagination` | 页面负责取数;窄屏自动简化 |
|
|
72
|
-
|
|
|
72
|
+
| 卡片拖动排序、跨区块与空区块接收 | [SortableList](sortable-list.md) | 同列表用 onReorder;共享 scope 跨区块移动;空区块用 onDropOnList,来源/目标通过 listId 标识;新增接口须核对安装版本 |
|
|
73
73
|
| 点击、键盘或拖入选择文件 | `FileDropzone` | accept/maxFileSize/maxFiles 与拒绝反馈;不负责上传请求 |
|
|
74
74
|
| 上传前异步转换、校验或解密适配 | `PreparedFileDropzone` | prepareFile(file, signal),整批成功后提交;必须提供 ownerKey |
|
|
75
75
|
| 非文件选择器入口需要同一前处理流程 | `useFilePreparation` + `FilePreparationDialog` | 复用取消、进度、错误处理;密钥和服务端策略不进入 UI 包 |
|
|
76
76
|
| 图片、已有 PDF.js 对象或旧业务叠层 | V2 兼容 `DocumentViewer`,`document-viewer-v2` 子入口 | 未发布候选保留全部 V1 参数及底层组合;PDF 加载和销毁仍由调用方负责;旧包继续原入口 |
|
|
77
77
|
| PDFium/WASM PDF 查看迁移 | `DocumentViewerV2`,`document-viewer-v2` 子入口 | URL/Buffer 使用 PDFium;兼容分支不是引擎替换,核对安装版本与专题文档 |
|
|
78
78
|
| PDFium 原生 React 叠层、受控页码、单页显示 | V2 的 `renderer="headless"` | 未发布候选;用 `renderPageOverlay` 追加业务层,基础工具栏与默认成品 UI 的能力不同 |
|
|
79
|
+
| 手机连续阅读 PDF | `PdfiumViewer` / Headless 的 `mobileMode="continuous-reader"`、`searchMode="collapsible"` 与 `layoutMode="fill"` | 只读长文档放入弹窗、抽屉或 flex/grid 容器时使用;公共组件负责填充尺寸、窄屏/触屏识别、连续滚动、折叠搜索、工具区和分页栏,业务层只组合下载、权限和标题 |
|
|
79
80
|
| 服务端或文档中的金额格式化 | `amount-format` 子入口 | 无 React 依赖;formatDecimalAmount/formatScaledMoney 不负责汇率或中文大写 |
|
|
80
81
|
| 中国省市区数据 | `chinese-address-regions` 子入口 | 按需加载,核对数据版本;不跨仓库引用源码 |
|
|
81
82
|
|
package/docs/api.md
CHANGED
|
@@ -238,6 +238,10 @@ PdfiumViewer 支持 defaultRailCollapsed:传 true 默认收起页面侧栏,
|
|
|
238
238
|
|
|
239
239
|
可选 `onDropOnItem(moving, target)` 启用同一列表内拖到目标项;`canDropOnItem(moving, target)` 决定哪些目标可接收。组件保留前后排序、鼠标/触屏/键盘交互、目标高亮与取消行为,不接收外部拖入的数据,不自行变更分组或请求接口。输入均来自当前受控 items;自投、缺失来源、目标或禁用状态不回调。消费方在回调中用当前文档所有者与业务规则重新核验,再更新分组与持久化。
|
|
240
240
|
|
|
241
|
+
### SortableList 空列表与移动上下文(0.2.54)
|
|
242
|
+
|
|
243
|
+
新增 `listId`、`onDropOnList(moving, context)`、`canDropOnList(moving)`、`renderEmptyState()`;现有 onDropOnItem/onDropBetweenItems 末尾追加含 sourceListId/targetListId 的 context,旧回调兼容。disabled 切换保留卡片内部状态。接口、边界与示例见 [拖动专题](sortable-list.md)。
|
|
244
|
+
|
|
241
245
|
### SortableList 跨区块移动(0.2.50)
|
|
242
246
|
同一业务编辑范围用 `useSortableTransferScope<T>(ownerKey)` 创建并共享 `transferScope`;嵌套列表必须使用同一种 T,范围内每个列表拥有的 key 不重复。ownerKey 改变即隔离旧拖动。`onDropBetweenItems(moving,target,position)` / `canDropBetweenItems` 处理跨列表的 before/after,`onDropOnItem` 处理放入容器,原 `onReorder` 保留同列表排序。消费者一次性更新来源和目标,拖动过程中不移除来源。来源自动保留占位(可用 draggingLabel 修改文案)、目标沿用 React Aria 插入线和目标高亮。未共享同一对象的列表和外部拖入不接受;来源/目标失效、禁用、重复目标键不提交。来源清理和目标注册由组件持有。
|
|
243
247
|
|
|
@@ -91,4 +91,4 @@
|
|
|
91
91
|
|
|
92
92
|
## 2026-09-11 Cascader 内核采用
|
|
93
93
|
|
|
94
|
-
新增固定 @rc-component/cascader@1.25.0(MIT),公共包装提供业务主题、表单元信息、空值归一、最近弹窗 portal、窄屏底部面板与默认独立多选。StructuredAddressInput 复用通用组件;TreeSelect 保留兼容。无 antd 依赖;依赖外置,发行包保留 RC 许可证。当前为本地实现,消费接入与发布独立验证。
|
|
94
|
+
新增固定 @rc-component/cascader@1.25.0(MIT),公共包装提供业务主题、表单元信息、空值归一、最近弹窗 portal、窄屏底部面板与默认独立多选。StructuredAddressInput 复用通用组件;TreeSelect 保留兼容。无 antd 依赖;依赖外置,发行包保留 RC 许可证。当前为本地实现,消费接入与发布独立验证。
|
package/docs/dependencies.md
CHANGED
|
@@ -1,57 +1,57 @@
|
|
|
1
|
-
# 依赖维护与升级
|
|
2
|
-
|
|
3
|
-
核查日期:2026-09-12。以下为当前工作树的未发布候选;正式 0.2.31 不包含本次升级。版本来自 npm 官方 registry 的 `latest` 标签,并排除 prerelease。直接依赖使用精确版本,传递依赖遵守上游范围,不用全局 override 强行跨主版本。
|
|
4
|
-
|
|
5
|
-
## 版本清单
|
|
6
|
-
|
|
7
|
-
| 依赖 | 当前候选 | 上游最新稳定版 | 结论 |
|
|
8
|
-
| --- | --- | --- | --- |
|
|
9
|
-
| lucide-react | 1.45.0 | 1.45.0 | 升级;消费 peer 仍允许已有 0.x |
|
|
10
|
-
| react / react-dom | 19.3.0 | 19.3.0 | 默认开发版本;继续验证 18.3.1 |
|
|
11
|
-
| @types/react / @types/react-dom | 19.3.0 | 19.3.0 | 与开发版本配套 |
|
|
12
|
-
| material-react-table | 3.2.1 | 3.2.1 | 已是最新 |
|
|
13
|
-
| @mui/material / @mui/icons-material | 7.3.11 | 9.4.0 | 最新兼容分支,原因见下文 |
|
|
14
|
-
| @mui/x-date-pickers | 9.13.0 | 9.13.0 | 升级;支持 MUI 7.3+ |
|
|
15
|
-
| @emotion/react | 11.14.0 | 11.14.0 | 已是最新 |
|
|
16
|
-
| @emotion/styled | 11.14.1 | 11.14.1 | 升级 |
|
|
17
|
-
| @embedpdf/react-pdf-viewer | 2.15.0 | 2.15.0 | 已是最新 |
|
|
18
|
-
| @embedpdf/core / engines / plugin-document-manager / plugin-viewport / plugin-scroll / plugin-render / plugin-zoom / plugin-rotate / plugin-thumbnail | 2.15.0 | 2.15.0 | Headless 原生模式使用的精确版本依赖;仅选择该模式时加载 |
|
|
19
|
-
| pdfjs-dist | 6.3.289 | 6.3.289 | 升级;可选 peer 有迁移要求 |
|
|
20
|
-
| @internationalized/date | 3.12.4 | 3.12.4 | 已是最新 |
|
|
21
|
-
| @radix-ui/react-dialog / react-popover | 1.1.23 | 1.1.23 | 已是最新 |
|
|
22
|
-
| @radix-ui/react-select | 2.3.7 | 2.3.7 | 已是最新 |
|
|
23
|
-
| @radix-ui/react-toast | 1.2.23 | 1.2.23 | 已是最新 |
|
|
24
|
-
| @radix-ui/react-tooltip | 1.2.16 | 1.2.16 | 已是最新 |
|
|
25
|
-
| @rc-component/cascader | 1.25.0 | 1.25.0 | 已是最新 |
|
|
26
|
-
| react-aria-components | 1.21.1 | 1.21.1 | 升级 |
|
|
27
|
-
| cn-division | 2026.0.1 | 2026.0.1 | 升级 |
|
|
28
|
-
| @playwright/test | 1.63.0 | 1.63.0 | 已是最新 |
|
|
29
|
-
| @testing-library/jest-dom | 7.0.1 | 7.0.1 | 升级 |
|
|
30
|
-
| @testing-library/react | 16.3.3 | 16.3.3 | 固定最新版本 |
|
|
31
|
-
| jsdom | 30.0.1 | 30.0.1 | 升级;本地 Node 24.19 |
|
|
32
|
-
| typescript | 6.0.3 | 7.0.2 | 最新兼容分支,原因见下文 |
|
|
33
|
-
| vite | 8.3.0 | 8.3.0 | 升级至 Rolldown/Oxc 构建链 |
|
|
34
|
-
| vitest | 5.0.0 | 5.0.0 | 升级 |
|
|
35
|
-
| dayjs | 1.11.23 | 1.11.23 | 仅新增为日期筛选回归的开发依赖 |
|
|
36
|
-
|
|
37
|
-
## 兼容例外
|
|
38
|
-
|
|
39
|
-
**MUI 7.3.11。** MRT 3.2.1 的 peer 声明为 `@mui/material >=6`,安装器允许 MUI 9,但其内部编辑字段、选择框及部分控件仍使用 `InputProps`、`SelectProps`、`inputProps` 等旧 API。[MUI 9 迁移指南](https://mui.com/material-ui/migration/upgrade-to-v9/) 已删除这些 API。不能把宽松 peer 范围当成完成适配的证据;待 MRT 正式迁移后再升级,避免自行维护第三方分支。MUI X 是独立版本线,9.13.0 支持 MUI 7.3+,无需与 Material 同主版本。
|
|
40
|
-
|
|
41
|
-
**TypeScript 6.0.3。** 实测 7.0.2 的主入口只暴露版本信息,不再提供门禁 CLI 依赖的 `createSourceFile`、`ScriptTarget` 等传统 Compiler API,导致四项门禁测试失败。其新 API 位于 `unstable/*`;本库暂保留提供稳定 Compiler API 的最新 6.x。不要在消费项目用 TypeScript 7 执行当前 `business-ui-gate`;先保留 6.x 工具环境或等待门禁解析器迁移。类型构建显式设置 `rootDir: src`,CSS 副作用导入有类型声明。
|
|
42
|
-
|
|
43
|
-
## 消费与按需加载
|
|
44
|
-
|
|
45
|
-
- PDF.js 4→6 是跨主版本变更:消费旧查看器的项目须同步更新 `pdfjs-dist`、worker 和文档对象类型,详见 [查看器迁移](document-viewer.md)。本次未修改或部署消费服务。
|
|
46
|
-
- Lucide 1.x 已本地验证;peer 范围保留 `>=0.468.0 <2`。消费者继续使用具名导入,避免导入完整图标字典。
|
|
47
|
-
- 不要求消费项目跟随升级 React 19。CI 保留 React 18/19 两条验证线;开发/测试环境采用 Node 24.15+。
|
|
48
|
-
- 公共库继续保留组件模块边界;Button/TextInput 消费构建中日期与 MRT/MUI 实现模块均为零。MRT 的日期实现由其自身静态依赖引入,不因安装 Day.js 测试依赖就进入轻量组件入口。
|
|
49
|
-
- 新增日期选择/清除的桌面和手机浏览器回归,使用 `LocalizationProvider` 和消费方提供的 adapter;日期适配器不是公共库强制运行依赖。
|
|
50
|
-
|
|
51
|
-
## 已知上游开发警告
|
|
52
|
-
|
|
53
|
-
React 19 开发模式下,Cascader 的传递依赖 `@rc-component/select@1.11.0` 仍读取 `InputComponent.ref`,触发弃用警告;两者已是上游最新稳定版。禁用的 SortableList 在 React Aria 中触发缺少拖动按钮提示。现有交互回归通过,但不能宣称控制台完全无警告;未屏蔽警告或修改第三方源码。
|
|
54
|
-
|
|
55
|
-
2026-09-12 本地验证:React 18.3.1 / 19.3.0 均通过 136 项单测、类型检查、库构建、按需打包门禁和视觉矩阵构建。React 19 的 38 项公共浏览器回归及新增 2 项日期回归、React 18 的完整 40 项浏览器回归通过;React 19 的 MRT 14 项浏览器回归和样例构建通过。日期回归 fixture 另经严格 TypeScript 检查。尚未提交、执行远端 CI 或发布,消费服务未升级。
|
|
56
|
-
|
|
57
|
-
后续运行 `pnpm verify`、`pnpm test:browser`、`pnpm test:mrt`,并检查 `pnpm pack` 的声明、子入口和文档清单。最新版本可从 [npm 官方 registry](https://registry.npmjs.org/) 重新核查,具体迁移参考 [Vite 8](https://vite.dev/guide/migration) 与 [MUI X 9](https://mui.com/x/migration/migration-pickers-v8/)。
|
|
1
|
+
# 依赖维护与升级
|
|
2
|
+
|
|
3
|
+
核查日期:2026-09-12。以下为当前工作树的未发布候选;正式 0.2.31 不包含本次升级。版本来自 npm 官方 registry 的 `latest` 标签,并排除 prerelease。直接依赖使用精确版本,传递依赖遵守上游范围,不用全局 override 强行跨主版本。
|
|
4
|
+
|
|
5
|
+
## 版本清单
|
|
6
|
+
|
|
7
|
+
| 依赖 | 当前候选 | 上游最新稳定版 | 结论 |
|
|
8
|
+
| --- | --- | --- | --- |
|
|
9
|
+
| lucide-react | 1.45.0 | 1.45.0 | 升级;消费 peer 仍允许已有 0.x |
|
|
10
|
+
| react / react-dom | 19.3.0 | 19.3.0 | 默认开发版本;继续验证 18.3.1 |
|
|
11
|
+
| @types/react / @types/react-dom | 19.3.0 | 19.3.0 | 与开发版本配套 |
|
|
12
|
+
| material-react-table | 3.2.1 | 3.2.1 | 已是最新 |
|
|
13
|
+
| @mui/material / @mui/icons-material | 7.3.11 | 9.4.0 | 最新兼容分支,原因见下文 |
|
|
14
|
+
| @mui/x-date-pickers | 9.13.0 | 9.13.0 | 升级;支持 MUI 7.3+ |
|
|
15
|
+
| @emotion/react | 11.14.0 | 11.14.0 | 已是最新 |
|
|
16
|
+
| @emotion/styled | 11.14.1 | 11.14.1 | 升级 |
|
|
17
|
+
| @embedpdf/react-pdf-viewer | 2.15.0 | 2.15.0 | 已是最新 |
|
|
18
|
+
| @embedpdf/core / engines / plugin-document-manager / plugin-viewport / plugin-scroll / plugin-render / plugin-zoom / plugin-rotate / plugin-thumbnail | 2.15.0 | 2.15.0 | Headless 原生模式使用的精确版本依赖;仅选择该模式时加载 |
|
|
19
|
+
| pdfjs-dist | 6.3.289 | 6.3.289 | 升级;可选 peer 有迁移要求 |
|
|
20
|
+
| @internationalized/date | 3.12.4 | 3.12.4 | 已是最新 |
|
|
21
|
+
| @radix-ui/react-dialog / react-popover | 1.1.23 | 1.1.23 | 已是最新 |
|
|
22
|
+
| @radix-ui/react-select | 2.3.7 | 2.3.7 | 已是最新 |
|
|
23
|
+
| @radix-ui/react-toast | 1.2.23 | 1.2.23 | 已是最新 |
|
|
24
|
+
| @radix-ui/react-tooltip | 1.2.16 | 1.2.16 | 已是最新 |
|
|
25
|
+
| @rc-component/cascader | 1.25.0 | 1.25.0 | 已是最新 |
|
|
26
|
+
| react-aria-components | 1.21.1 | 1.21.1 | 升级 |
|
|
27
|
+
| cn-division | 2026.0.1 | 2026.0.1 | 升级 |
|
|
28
|
+
| @playwright/test | 1.63.0 | 1.63.0 | 已是最新 |
|
|
29
|
+
| @testing-library/jest-dom | 7.0.1 | 7.0.1 | 升级 |
|
|
30
|
+
| @testing-library/react | 16.3.3 | 16.3.3 | 固定最新版本 |
|
|
31
|
+
| jsdom | 30.0.1 | 30.0.1 | 升级;本地 Node 24.19 |
|
|
32
|
+
| typescript | 6.0.3 | 7.0.2 | 最新兼容分支,原因见下文 |
|
|
33
|
+
| vite | 8.3.0 | 8.3.0 | 升级至 Rolldown/Oxc 构建链 |
|
|
34
|
+
| vitest | 5.0.0 | 5.0.0 | 升级 |
|
|
35
|
+
| dayjs | 1.11.23 | 1.11.23 | 仅新增为日期筛选回归的开发依赖 |
|
|
36
|
+
|
|
37
|
+
## 兼容例外
|
|
38
|
+
|
|
39
|
+
**MUI 7.3.11。** MRT 3.2.1 的 peer 声明为 `@mui/material >=6`,安装器允许 MUI 9,但其内部编辑字段、选择框及部分控件仍使用 `InputProps`、`SelectProps`、`inputProps` 等旧 API。[MUI 9 迁移指南](https://mui.com/material-ui/migration/upgrade-to-v9/) 已删除这些 API。不能把宽松 peer 范围当成完成适配的证据;待 MRT 正式迁移后再升级,避免自行维护第三方分支。MUI X 是独立版本线,9.13.0 支持 MUI 7.3+,无需与 Material 同主版本。
|
|
40
|
+
|
|
41
|
+
**TypeScript 6.0.3。** 实测 7.0.2 的主入口只暴露版本信息,不再提供门禁 CLI 依赖的 `createSourceFile`、`ScriptTarget` 等传统 Compiler API,导致四项门禁测试失败。其新 API 位于 `unstable/*`;本库暂保留提供稳定 Compiler API 的最新 6.x。不要在消费项目用 TypeScript 7 执行当前 `business-ui-gate`;先保留 6.x 工具环境或等待门禁解析器迁移。类型构建显式设置 `rootDir: src`,CSS 副作用导入有类型声明。
|
|
42
|
+
|
|
43
|
+
## 消费与按需加载
|
|
44
|
+
|
|
45
|
+
- PDF.js 4→6 是跨主版本变更:消费旧查看器的项目须同步更新 `pdfjs-dist`、worker 和文档对象类型,详见 [查看器迁移](document-viewer.md)。本次未修改或部署消费服务。
|
|
46
|
+
- Lucide 1.x 已本地验证;peer 范围保留 `>=0.468.0 <2`。消费者继续使用具名导入,避免导入完整图标字典。
|
|
47
|
+
- 不要求消费项目跟随升级 React 19。CI 保留 React 18/19 两条验证线;开发/测试环境采用 Node 24.15+。
|
|
48
|
+
- 公共库继续保留组件模块边界;Button/TextInput 消费构建中日期与 MRT/MUI 实现模块均为零。MRT 的日期实现由其自身静态依赖引入,不因安装 Day.js 测试依赖就进入轻量组件入口。
|
|
49
|
+
- 新增日期选择/清除的桌面和手机浏览器回归,使用 `LocalizationProvider` 和消费方提供的 adapter;日期适配器不是公共库强制运行依赖。
|
|
50
|
+
|
|
51
|
+
## 已知上游开发警告
|
|
52
|
+
|
|
53
|
+
React 19 开发模式下,Cascader 的传递依赖 `@rc-component/select@1.11.0` 仍读取 `InputComponent.ref`,触发弃用警告;两者已是上游最新稳定版。禁用的 SortableList 在 React Aria 中触发缺少拖动按钮提示。现有交互回归通过,但不能宣称控制台完全无警告;未屏蔽警告或修改第三方源码。
|
|
54
|
+
|
|
55
|
+
2026-09-12 本地验证:React 18.3.1 / 19.3.0 均通过 136 项单测、类型检查、库构建、按需打包门禁和视觉矩阵构建。React 19 的 38 项公共浏览器回归及新增 2 项日期回归、React 18 的完整 40 项浏览器回归通过;React 19 的 MRT 14 项浏览器回归和样例构建通过。日期回归 fixture 另经严格 TypeScript 检查。尚未提交、执行远端 CI 或发布,消费服务未升级。
|
|
56
|
+
|
|
57
|
+
后续运行 `pnpm verify`、`pnpm test:browser`、`pnpm test:mrt`,并检查 `pnpm pack` 的声明、子入口和文档清单。最新版本可从 [npm 官方 registry](https://registry.npmjs.org/) 重新核查,具体迁移参考 [Vite 8](https://vite.dev/guide/migration) 与 [MUI X 9](https://mui.com/x/migration/migration-pickers-v8/)。
|
|
@@ -85,7 +85,8 @@ export function ContractPreview({ fileVersion, pdfUrl, token }: Props) {
|
|
|
85
85
|
| `source` | `url / buffer / pdf / image` 联合类型 | 必填;前两类用 PDFium,后两类完整兼容 V1 |
|
|
86
86
|
| `renderer` | `"viewer"`(默认)/ `"headless"` | 仅 URL/Buffer;成品 UI 与原生页面组合模式 |
|
|
87
87
|
| `config` | `DocumentViewerV2Config` | 仅成品 UI;透传 EmbedPDF 配置,但初始文档由 `source` 统一管理 |
|
|
88
|
-
| `className` / `style` | 常规容器属性 | 作用于外层 `<section>` |
|
|
88
|
+
| `className` / `style` | 常规容器属性 | 作用于外层 `<section>` |
|
|
89
|
+
| `layoutMode` | `standalone`(默认)/ `fill` | `fill` 用于已有明确高度的弹窗、抽屉或 flex/grid 容器,公共外壳填满父级并取消自身最小高度,避免撑破容器 |
|
|
89
90
|
| `ariaLabel` | `"PDF 文档查看器"` | 查看区域的可访问名称 |
|
|
90
91
|
| `onInit` | EmbedPDF 初始化回调 | 仅成品 UI;公共工具栏样式注入后调用 |
|
|
91
92
|
| `onReady` | EmbedPDF 就绪回调 | 仅 URL/Buffer;不等同于业务文件已获授权 |
|
|
@@ -153,6 +154,8 @@ export function ContractPreview({ fileVersion, pdfUrl, token }: Props) {
|
|
|
153
154
|
| --- | --- |
|
|
154
155
|
| `currentPage` / `onCurrentPageChange` | 从 1 开始;可受控或省略后内部管理。手动滚动、缩略图及翻页按钮报告页码;外部跳页不会被布局重算覆盖 |
|
|
155
156
|
| `pageMode` | 默认 `continuous` 使用原生页面虚拟化;`single` 只挂载选中的正文页 |
|
|
157
|
+
| `mobileMode` | 默认 `standard`;`continuous-reader` 在窄屏/粗指针设备收起缩略图与分页底栏、压缩工具栏并把单指手势交给连续滚动区域,同时将请求的单页模式转为连续模式并关闭文字选择。仅用于连续只读场景 |
|
|
158
|
+
| `searchMode` | 默认 `expanded`;`collapsible` 将搜索面板改为公共搜索开关,文档切换或收起时清理旧搜索。`showToolbar=false` 时仍显示紧凑的公共搜索入口;配合移动连续阅读模式时仅显示搜索图标 |
|
|
156
159
|
| `renderPageOverlay(context)` | 追加 React 内容;context 包含 `documentId`、从 1 开始的 `page`、从 0 开始的 `pageIndex`、原始 `width/height`、`zoom`、角度制 `rotation` |
|
|
157
160
|
| `renderPage({ page, zoom, rotation })` | 与 V1 一样替换整个正文页。只添加印章或标记时应使用 `renderPageOverlay`,避免替换 PDF 位图 |
|
|
158
161
|
| `engineOptions` | `usePdfiumEngine` 的选项,例如 `wasmUrl`;默认 Worker 开启、外部字体回退关闭。改变初始化选项时更新 `source.id` |
|
|
@@ -160,7 +163,7 @@ export function ContractPreview({ fileVersion, pdfUrl, token }: Props) {
|
|
|
160
163
|
|
|
161
164
|
叠层坐标以**未缩放、未旋转页面的左上角**为原点;`width/height` 是页面尺寸,不是视口 CSS 尺寸。组件统一应用缩放和 PDF 内置旋转加用户旋转,业务不要再次乘 `zoom` 或旋转整个叠层。业务若使用 PDF 底部原点坐标,应先转换成左上原点。叠层容器不拦截页面事件;可交互元素自行设置 `pointerEvents: 'auto'` 并提供键盘可访问控件。
|
|
162
165
|
|
|
163
|
-
Headless 提供缩略图、翻页、50%–300% 缩放、90° 旋转、全屏以及 `title/toolbar/footer` 插槽。0.2.33 新增 features.search/textSelection/pinchZoom(默认开启),提供文本搜索、选择和双指缩放;打印、批注编辑仍由成品模式及消费方权限决定。搜索没有 OCR 能力。交互式业务控件标记 data-pdf-business-control,避免正文选择截获拖动。zoom/rotation 可受控,onZoomChange/onRotationChange 报告变化,showToolbar=false
|
|
166
|
+
Headless 提供缩略图、翻页、50%–300% 缩放、90° 旋转、全屏以及 `title/toolbar/footer` 插槽。0.2.33 新增 features.search/textSelection/pinchZoom(默认开启),提供文本搜索、选择和双指缩放;打印、批注编辑仍由成品模式及消费方权限决定。搜索没有 OCR 能力。交互式业务控件标记 data-pdf-business-control,避免正文选择截获拖动。zoom/rotation 可受控,onZoomChange/onRotationChange 报告变化,showToolbar=false 可使用外部业务工具栏。`mobileMode="continuous-reader"` 只用于窄屏只读连续阅读,不应用于定位或编辑;公共组件会在匹配设备上统一连续页模式、手势和文字选择策略。`searchMode="collapsible"` 由公共查看器管理搜索入口和资源切换重置。叠层是业务 UI,不会自动写入或导出到 PDF 文件。
|
|
164
167
|
|
|
165
168
|
`source.kind/id` 变化销毁旧会话,重置内部缩放、旋转与非受控页码;受控 `currentPage` 由调用方重置。订阅和引擎随卸载清理。原生模块按选择模式动态加载,不进入公共主入口;新增插件是公共包的精确版本依赖,不代表会进入未使用查看器的首屏。
|
|
166
169
|
|