:root{font-family:var(--xhx-font-body)}html,body{font-family:var(--xhx-font-body);font-size:var(--xhx-font-size-body);color:var(--xhx-text-base);background:var(--xhx-bg-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.xhx-h1{font-size:var(--xhx-font-size-h1);font-weight:var(--xhx-font-weight-bold);color:var(--xhx-text-base);line-height:var(--xhx-line-height-tight);margin:0}.xhx-h2{font-size:var(--xhx-font-size-h2);font-weight:var(--xhx-font-weight-semibold);color:var(--xhx-text-base);line-height:var(--xhx-line-height-tight);margin:0}.xhx-h3{font-size:var(--xhx-font-size-h3);font-weight:var(--xhx-font-weight-semibold);color:var(--xhx-text-base);line-height:var(--xhx-line-height-tight);margin:0}.xhx-body{font-size:var(--xhx-font-size-body);color:var(--xhx-text-base);line-height:var(--xhx-line-height-normal)}.xhx-body-sm{font-size:var(--xhx-font-size-body-sm);color:var(--xhx-text-secondary);line-height:var(--xhx-line-height-normal)}.xhx-caption{font-size:var(--xhx-font-size-caption);color:var(--xhx-text-muted);line-height:var(--xhx-line-height-normal)}.xhx-micro{font-size:var(--xhx-font-size-micro);color:var(--xhx-text-muted);line-height:var(--xhx-line-height-tight)}.xhx-value-positive{font-weight:var(--xhx-font-weight-semibold);color:var(--xhx-success)}.xhx-value-negative{font-weight:var(--xhx-font-weight-semibold);color:var(--xhx-error)}.xhx-value-info{font-weight:var(--xhx-font-weight-semibold);color:var(--xhx-info)}*,*:before,*:after{transition:background-color var(--xhx-duration-normal) var(--xhx-ease-smooth),border-color var(--xhx-duration-normal) var(--xhx-ease-smooth),color var(--xhx-duration-normal) var(--xhx-ease-smooth)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important}}.xhx-sider{background:var(--xhx-bg-sider)!important;border-right:1px solid var(--xhx-border)!important}.xhx-header{background:var(--xhx-bg-header)!important;border-bottom:1px solid var(--xhx-border)!important}.xhx-card{background:var(--xhx-bg-card);border:1px solid var(--xhx-border);border-radius:var(--xhx-radius);box-shadow:var(--xhx-shadow-card);transition:box-shadow var(--xhx-duration-fast) var(--xhx-ease-smooth),transform var(--xhx-duration-fast) var(--xhx-ease-smooth)}.xhx-card:hover{box-shadow:var(--xhx-shadow-hover);transform:translateY(-2px)}.xhx-card-flat{background:var(--xhx-bg-card);border:1px solid var(--xhx-border);border-radius:var(--xhx-radius);overflow:hidden}.xhx-card-inline{background:var(--xhx-bg-card);border:1px solid var(--xhx-border);border-radius:var(--xhx-radius-sm);padding:var(--xhx-space-sm) var(--xhx-space-md)}.xhx-btn-soft{border-radius:var(--xhx-radius-sm)!important;transition:transform var(--xhx-duration-instant) var(--xhx-ease-smooth),box-shadow var(--xhx-duration-instant) var(--xhx-ease-smooth)!important}.xhx-btn-soft:active{transform:translateY(1px)!important}.xhx-stat-card{background:var(--xhx-bg-card);border:1px solid var(--xhx-border);border-radius:var(--xhx-radius);box-shadow:var(--xhx-shadow-card);padding:var(--xhx-space-xl);text-align:center;transition:box-shadow var(--xhx-duration-fast) var(--xhx-ease-smooth),transform var(--xhx-duration-fast) var(--xhx-ease-smooth)}.xhx-stat-card:hover{box-shadow:var(--xhx-shadow-hover);transform:translateY(-2px)}.xhx-stat-value{font-size:28px;font-weight:var(--xhx-font-weight-bold);color:var(--xhx-primary);line-height:var(--xhx-line-height-tight)}.xhx-stat-label{font-size:var(--xhx-font-size-body-sm);color:var(--xhx-text-muted);margin-top:6px}.xhx-section-title{font-size:var(--xhx-font-size-h3);font-weight:var(--xhx-font-weight-semibold);color:var(--xhx-text-base);margin:0 0 var(--xhx-space-md) 0}.xhx-desc-text{color:var(--xhx-text-secondary);font-size:var(--xhx-font-size-body);line-height:var(--xhx-line-height-relaxed)}.xhx-badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:var(--xhx-radius-sm);font-size:var(--xhx-font-size-caption);font-weight:var(--xhx-font-weight-medium);line-height:var(--xhx-line-height-tight)}.xhx-badge-success{background:var(--xhx-success-bg);color:var(--xhx-success)}.xhx-badge-warning{background:var(--xhx-warning-bg);color:var(--xhx-warning)}.xhx-badge-error{background:var(--xhx-error-bg);color:var(--xhx-error)}.xhx-badge-info{background:var(--xhx-info-bg);color:var(--xhx-info)}.xhx-table-wrap{background:var(--xhx-bg-card);border:1px solid var(--xhx-border);border-radius:var(--xhx-radius);overflow:hidden}.xhx-table-wrap :deep(.n-data-table .n-data-table-th){font-size:var(--xhx-font-size-caption);font-weight:var(--xhx-font-weight-semibold);color:var(--xhx-text-secondary);background:var(--xhx-bg-sider);padding:var(--xhx-space-sm) var(--xhx-space-md)}.xhx-table-wrap :deep(.n-data-table .n-data-table-td){padding:var(--xhx-space-sm) var(--xhx-space-md);font-size:var(--xhx-font-size-body-sm);height:var(--xhx-row-height)}.xhx-table-wrap :deep(.n-data-table .n-data-table-tr){transition:background var(--xhx-duration-fast) var(--xhx-ease-smooth)}.n-data-table-base-table .n-data-table-th,.n-data-table-base-table .n-data-table-td{border-right:1px solid var(--xhx-border);text-align:center}.n-data-table-base-table .n-data-table-tr{vertical-align:middle!important}.n-data-table-base-table td.n-data-table-td,.n-data-table-base-table th.n-data-table-th{vertical-align:middle!important;line-height:var(--xhx-row-height)}.n-data-table-base-table div.n-data-table-td,.n-data-table-base-table div.n-data-table-th{display:table-cell!important;vertical-align:middle!important;line-height:var(--xhx-row-height)}.n-data-table-base-table .n-data-table-td>*,.n-data-table-base-table .n-data-table-td .n-data-table-td__inner{vertical-align:middle}.n-data-table-base-table .n-data-table-td .n-space,.n-data-table-base-table .n-data-table-td .n-flex{align-items:center}.n-data-table-base-table .n-data-table-tr:nth-child(2n){background:var(--n-color-embedded)}.n-data-table-base-table table{table-layout:auto!important}.n-data-table-base-table .n-data-table-td{max-width:400px}.xhx-skeleton{background:var(--xhx-bg-card);border:1px solid var(--xhx-border);border-radius:var(--xhx-radius);padding:var(--xhx-space-md);overflow:hidden}.xhx-skeleton-header{display:flex;gap:var(--xhx-space-md);margin-bottom:var(--xhx-space-md);padding-bottom:var(--xhx-space-sm);border-bottom:1px solid var(--xhx-border)}.xhx-skeleton-row{display:flex;gap:var(--xhx-space-md);align-items:center;padding:10px 0}.xhx-sk-cell,.xhx-sk-bar{background:linear-gradient(90deg,var(--xhx-border) 25%,transparent 50%,var(--xhx-border) 75%);background-size:200% 100%;animation:xhx-shimmer 1.5s infinite;border-radius:4px;flex-shrink:0}.xhx-sk-cell{height:16px}@keyframes xhx-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.xhx-empty-state{background:var(--xhx-bg-card);border:1px solid var(--xhx-border);border-radius:var(--xhx-radius);padding:var(--xhx-space-5xl)}.xhx-error-state{background:var(--xhx-bg-card);border:1px solid var(--xhx-border);border-radius:var(--xhx-radius);padding:var(--xhx-space-5xl);text-align:center}.xhx-cell-edit{cursor:pointer;display:inline-block;width:100%;padding:2px 4px;margin:-2px -4px;border-radius:3px;transition:background var(--xhx-duration-fast) var(--xhx-ease-smooth)}.xhx-cell-edit:hover{background:var(--n-color-hover);outline:1px dashed var(--xhx-border)}.xhx-form-row{display:flex;gap:var(--xhx-space-2xl);align-items:start}.xhx-form-row>.n-form-item,.xhx-form-row>.xhx-form-col{flex:1;min-width:0}.n-modal .n-form-item .n-form-item-label,.n-dialog .n-form-item .n-form-item-label{text-align:justify!important;text-align-last:justify;text-justify:inter-ideograph}.n-modal .n-form-item .n-form-item-label:after,.n-dialog .n-form-item .n-form-item-label:after{content:"";display:inline-block;width:100%;height:0}.xhx-gap-xs{gap:var(--xhx-space-xs)}.xhx-gap-sm{gap:var(--xhx-space-sm)}.xhx-gap-md{gap:var(--xhx-space-md)}.xhx-gap-lg{gap:var(--xhx-space-lg)}.xhx-gap-xl{gap:var(--xhx-space-xl)}.xhx-gap-2xl{gap:var(--xhx-space-2xl)}.xhx-flex{display:flex}.xhx-flex-center{display:flex;align-items:center;justify-content:center}.xhx-flex-between{display:flex;align-items:center;justify-content:space-between}.xhx-flex-wrap{display:flex;flex-wrap:wrap;align-items:center}.xhx-flex-col{display:flex;flex-direction:column}.xhx-text-left{text-align:left}.xhx-text-center{text-align:center}.xhx-text-right{text-align:right}.xhx-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xhx-w-full{width:100%}.xhx-w-auto{width:auto}.xhx-fade-enter-active,.xhx-fade-leave-active{transition:opacity var(--xhx-duration-normal) var(--xhx-ease-smooth)}.xhx-fade-enter-from,.xhx-fade-leave-to{opacity:0}.n-base-select-menu .v-vl,.v-vl .v-vl-items{max-height:min(50vh,400px)!important;overflow-y:auto!important}.n-popover-menu,.n-popover__content{max-height:60vh;overflow-y:auto}body>.n-base-select-menu,body>.n-popover{z-index:2000}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--n-text-color-3);border-radius:3px}*::-webkit-scrollbar-thumb:hover{background:var(--n-text-color-2)}*{scrollbar-width:thin;scrollbar-color:var(--n-text-color-3) transparent}:focus-visible{outline:2px solid var(--n-color-primary, #409eff);outline-offset:2px}.n-button:focus-visible,.n-input:focus-visible,.n-select:focus-visible,.n-checkbox:focus-visible,.n-date-picker:focus-visible,.n-radio:focus-visible,.n-switch:focus-visible,.n-slider:focus-visible{outline:2px solid var(--n-color-primary, #409eff);outline-offset:2px}.n-card[style*=cursor],.clickable{cursor:pointer}@media(max-width:768px){.xhx-form-row{flex-direction:column;gap:0}}.xhx-page-enter-active{animation:xhx-page-in var(--xhx-duration-entrance) var(--xhx-ease-expressive)}.xhx-page-leave-active{animation:xhx-page-out var(--xhx-duration-fast) var(--xhx-ease-smooth)}@keyframes xhx-page-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes xhx-page-out{0%{opacity:1}to{opacity:0}}.xhx-list-enter>*{opacity:0;transform:translateY(8px);animation:xhx-row-in var(--xhx-duration-normal) var(--xhx-ease-expressive) forwards}.xhx-list-enter>*:nth-child(1){animation-delay:0ms}.xhx-list-enter>*:nth-child(2){animation-delay:40ms}.xhx-list-enter>*:nth-child(3){animation-delay:80ms}.xhx-list-enter>*:nth-child(4){animation-delay:.12s}.xhx-list-enter>*:nth-child(5){animation-delay:.16s}.xhx-list-enter>*:nth-child(6){animation-delay:.2s}.xhx-list-enter>*:nth-child(7){animation-delay:.24s}.xhx-list-enter>*:nth-child(8){animation-delay:.28s}.xhx-list-enter>*:nth-child(9){animation-delay:.32s}.xhx-list-enter>*:nth-child(10){animation-delay:.36s}.xhx-list-enter>*:nth-child(11){animation-delay:.4s}.xhx-list-enter>*:nth-child(12){animation-delay:.44s}.xhx-list-enter>*:nth-child(13){animation-delay:.48s}.xhx-list-enter>*:nth-child(14){animation-delay:.52s}.xhx-list-enter>*:nth-child(15){animation-delay:.56s}.xhx-list-enter>*:nth-child(16){animation-delay:.6s}.xhx-list-enter>*:nth-child(17){animation-delay:.64s}.xhx-list-enter>*:nth-child(18){animation-delay:.68s}.xhx-list-enter>*:nth-child(19){animation-delay:.72s}.xhx-list-enter>*:nth-child(20){animation-delay:.76s}.xhx-list-enter>*:nth-child(n+21){animation-delay:.8s}@keyframes xhx-row-in{to{opacity:1;transform:translateY(0)}}.xhx-hover-lift{transition:transform var(--xhx-duration-fast) var(--xhx-ease-smooth),box-shadow var(--xhx-duration-fast) var(--xhx-ease-smooth)}.xhx-hover-lift:hover{transform:translateY(-2px);box-shadow:var(--xhx-shadow-hover)}.xhx-hover-scale{transition:transform var(--xhx-duration-fast) var(--xhx-ease-bounce)}.xhx-hover-scale:hover{transform:scale(1.04)}.n-modal-mask{animation:xhx-fade-in var(--xhx-duration-fast) var(--xhx-ease-smooth)}.n-modal{animation:xhx-modal-in var(--xhx-duration-entrance) var(--xhx-ease-expressive)}@keyframes xhx-fade-in{0%{opacity:0}to{opacity:1}}@keyframes xhx-modal-in{0%{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.xhx-skeleton-fade-leave-active{transition:opacity var(--xhx-duration-normal) var(--xhx-ease-smooth)}.xhx-skeleton-fade-leave-to{opacity:0}.xhx-count-up{display:inline-block;font-variant-numeric:tabular-nums}@keyframes xhx-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.12);opacity:.85}}.xhx-pulse{animation:xhx-pulse 2s var(--xhx-ease-smooth) infinite}@keyframes xhx-ripple{to{transform:scale(4);opacity:0}}@keyframes xhx-shake{0%,to{transform:translate(0)}10%,50%,90%{transform:translate(-4px)}30%,70%{transform:translate(4px)}}.xhx-shake{animation:xhx-shake .4s var(--xhx-ease-smooth)}@keyframes xhx-spin-in{0%{transform:rotate(-180deg);opacity:0}to{transform:rotate(0);opacity:1}}.xhx-spin-in{animation:xhx-spin-in var(--xhx-duration-slow) var(--xhx-ease-expressive)}@keyframes xhx-voice-pulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--xhx-error) 30%,transparent)}50%{box-shadow:0 0 0 12px color-mix(in srgb,var(--xhx-error) 0%,transparent)}}.xhx-voice-pulse{animation:xhx-voice-pulse 1.5s ease-out infinite}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.xhx-list-enter>*{animation:none!important;opacity:1!important;transform:none!important}.xhx-pulse,.xhx-voice-pulse{animation:none!important}.xhx-sk-cell,.xhx-sk-bar{animation:xhx-shimmer 1.5s infinite!important}}
