.ui-card{background-color:var(--card);color:var(--card-foreground);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-sm);transition:box-shadow var(--duration-normal)var(--ease-default),border-color var(--duration-normal)var(--ease-default);overflow:hidden}.ui-card:focus-within{border-color:var(--border-hover)}.ui-card--flat{box-shadow:none;border-color:var(--border)}.ui-card--bordered{box-shadow:none;border:1px solid var(--border)}.ui-card__header{padding:var(--space-5)var(--space-6);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;display:flex}.ui-card__title{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--text-primary);line-height:var(--leading-tight);margin:0}.ui-card__content{padding:var(--space-5)var(--space-6)}.ui-card__footer{padding:var(--space-4)var(--space-6);border-top:1px solid var(--border);background-color:var(--surface-0);justify-content:flex-end;align-items:center;gap:.75rem;display:flex}@media (max-width:640px){.ui-card__header,.ui-card__content,.ui-card__footer{padding:1rem}}
.ui-confirm-overlay{z-index:var(--z-modal,1000);background:var(--overlay-bg);-webkit-backdrop-filter:blur(4px);animation:fadeIn var(--duration-fast)var(--ease-default);padding:var(--space-4);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ui-confirm{text-align:center;align-items:center;gap:var(--space-3);padding:var(--space-8)var(--space-7)var(--space-6);background:var(--card);border-radius:var(--radius-2xl);overscroll-behavior:contain;overflow-wrap:anywhere;border:1px solid var(--border);width:100%;max-width:24rem;max-height:calc(100dvh - 2rem);box-shadow:var(--shadow-xl);animation:scaleIn var(--duration-normal)var(--ease-default);flex-direction:column;display:flex;overflow-y:auto}.ui-confirm__icon-circle{width:3.5rem;height:3.5rem;margin-bottom:var(--space-1);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.ui-confirm__icon-circle--danger{background:var(--danger-light);color:var(--danger)}.ui-confirm__icon-circle--warning{background:var(--warning-light);color:var(--warning)}.ui-confirm__icon-circle--info{background:var(--primary-light);color:var(--primary)}.ui-confirm__title{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--text-primary);letter-spacing:var(--tracking-tight);margin:0}.ui-confirm__description{font-size:var(--text-sm);color:var(--text-muted);line-height:var(--leading-normal);max-width:20rem;margin:0}.ui-confirm__actions{align-items:center;gap:var(--space-2);width:100%;margin-top:var(--space-2);flex-wrap:wrap;display:flex}.ui-confirm__btn{justify-content:center;align-items:center;gap:var(--space-1-5);padding:var(--space-2-5)var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--duration-fast)var(--ease-default);border:none;flex:1;display:inline-flex}.ui-confirm__btn:disabled{opacity:.6;cursor:not-allowed}.ui-confirm__btn--cancel{background:var(--muted);color:var(--text-primary)}.ui-confirm__btn--cancel:hover:not(:disabled){background:var(--border)}.ui-confirm__btn--danger{background:var(--danger);color:var(--danger-fg)}.ui-confirm__btn--danger:hover:not(:disabled){background:var(--danger-hover)}.ui-confirm__btn--warning{background:var(--warning);color:var(--warning-fg)}.ui-confirm__btn--warning:hover:not(:disabled){background:var(--warning-hover)}.ui-confirm__btn--info{background:var(--primary);color:var(--primary-fg)}.ui-confirm__btn--info:hover:not(:disabled){background:var(--primary-hover)}.ui-confirm__btn-spinner{animation:.8s linear infinite spin}@media (max-width:768px){.ui-confirm-overlay{align-items:flex-end;padding:0}.ui-confirm{border-radius:var(--bottom-sheet-radius)var(--bottom-sheet-radius)0 0;max-width:100%;padding:var(--space-2)var(--space-5)calc(var(--space-6) + var(--safe-bottom));animation:slideUpSheet var(--duration-slow)cubic-bezier(.32,.72,0,1)}.ui-confirm:before{content:"";background:var(--border-hover);border-radius:var(--radius-full);width:2rem;height:.25rem;margin:var(--space-2)auto var(--space-4);display:block}.ui-confirm__btn{min-height:var(--touch-target-comfortable);font-size:var(--text-md)}}[data-theme=dark] .ui-confirm{background:var(--surface-1);box-shadow:var(--shadow-xl)}[data-theme=dark] .ui-confirm__title{color:var(--text-primary)}[data-theme=dark] .ui-confirm__icon-circle--danger{background:var(--danger-light)}[data-theme=dark] .ui-confirm__icon-circle--warning{background:var(--warning-light)}[data-theme=dark] .ui-confirm__icon-circle--info{background:var(--primary-light)}[data-theme=dark] .ui-confirm__btn--cancel{background:var(--surface-2);color:var(--text-primary)}[data-theme=dark] .ui-confirm__btn--cancel:hover:not(:disabled){background:var(--surface-3)}[data-theme=blue] .ui-confirm{background:var(--card);box-shadow:var(--shadow-xl)}[data-theme=blue] .ui-confirm__title{color:var(--text-primary)}[data-theme=blue] .ui-confirm__icon-circle--danger{background:var(--danger-light)}[data-theme=blue] .ui-confirm__icon-circle--warning{background:var(--warning-light)}[data-theme=blue] .ui-confirm__icon-circle--info{background:var(--primary-light)}[data-theme=blue] .ui-confirm__btn--cancel{background:var(--surface-2);color:var(--text-primary)}[data-theme=blue] .ui-confirm__btn--cancel:hover:not(:disabled){background:var(--surface-3)}
.ui-datatable-wrapper{border:var(--border-width)solid var(--border);border-radius:var(--radius-lg);background-color:var(--card);width:100%;box-shadow:var(--shadow-xs);overflow:hidden}.ui-datatable-container{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.ui-datatable{border-collapse:collapse;text-align:left;width:100%;font-family:var(--font-sans);font-size:var(--text-sm);color:var(--foreground)}.ui-datatable thead{background-color:var(--muted);border-bottom:var(--border-width)solid var(--border)}.ui-datatable th{padding:var(--space-3)var(--space-4);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-table-header);letter-spacing:var(--tracking-caps);text-transform:uppercase;white-space:nowrap}.ui-datatable tbody tr{border-bottom:var(--border-width)solid var(--border);transition:background-color var(--duration-fast)var(--ease-default)}.ui-datatable tbody tr:last-child{border-bottom:none}.ui-datatable tbody td{padding:var(--space-3)var(--space-4);vertical-align:middle;line-height:var(--leading-normal)}.ui-datatable-row--clickable{cursor:pointer}.ui-datatable-row--clickable:hover{background-color:var(--primary-light)}.ui-datatable-empty,.ui-datatable-loading{text-align:center;padding:var(--space-8)var(--space-4);color:var(--text-muted)}
.ui-empty-state{justify-content:center;align-items:center;gap:var(--space-3);min-height:16rem;padding:var(--space-12)var(--space-8);text-align:center;border-radius:var(--radius-xl);background:var(--card);border:1.5px dashed var(--border);transition:all var(--duration-normal)var(--ease-default);flex-direction:column;display:flex}.ui-empty-state:hover{border-color:var(--primary);background:var(--hover-bg)}.ui-empty-state--compact{min-height:auto;padding:var(--space-8)var(--space-6);gap:var(--space-2);background:0 0;border:none}.ui-empty-state--compact:hover{background:0 0}.ui-empty-state__icon{border-radius:var(--radius-xl);background:var(--muted);width:4rem;height:4rem;color:var(--text-muted);transition:all var(--duration-normal)var(--ease-default);justify-content:center;align-items:center;display:flex}.ui-empty-state--compact .ui-empty-state__icon{border-radius:var(--radius-lg);width:3rem;height:3rem}.ui-empty-state:hover .ui-empty-state__icon{background:var(--primary-light);color:var(--primary);transform:scale(1.05)}.ui-empty-state__title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary);letter-spacing:-.01em;margin:0}.ui-empty-state--compact .ui-empty-state__title{font-size:var(--text-base)}.ui-empty-state__description{font-size:var(--text-sm);color:var(--text-muted);line-height:var(--leading-normal);max-width:28rem;margin:0}.ui-empty-state__actions{align-items:center;gap:var(--space-2);margin-top:var(--space-2);display:flex}[data-theme=dark] .ui-empty-state{background:var(--surface-1);border-color:var(--border)}[data-theme=dark] .ui-empty-state:hover{background:var(--hover-bg);border-color:var(--primary)}[data-theme=dark] .ui-empty-state__icon{background:var(--surface-2);color:var(--text-muted)}[data-theme=dark] .ui-empty-state:hover .ui-empty-state__icon{background:var(--primary-light);color:var(--primary)}[data-theme=dark] .ui-empty-state__title{color:var(--text-primary)}[data-theme=dark] .ui-empty-state__description{color:var(--text-muted)}[data-theme=blue] .ui-empty-state{background:var(--card);border-color:var(--border)}[data-theme=blue] .ui-empty-state:hover{border-color:var(--primary);background:var(--hover-bg)}[data-theme=blue] .ui-empty-state__icon{background:var(--primary-light);color:var(--text-muted)}[data-theme=blue] .ui-empty-state:hover .ui-empty-state__icon{background:var(--primary-soft);color:var(--primary)}[data-theme=blue] .ui-empty-state__title{color:var(--text-primary)}
.ui-dialog-overlay{background-color:var(--overlay-bg,#0f172a66);z-index:var(--z-modal,1000);padding:var(--space-4);-webkit-backdrop-filter:blur(3px);animation:fadeIn var(--duration-normal)var(--ease-default);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ui-dialog-content{background-color:var(--card);color:var(--card-foreground);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:100%;min-height:0;max-height:calc(100dvh - 2rem);animation:slideUp var(--duration-normal)var(--ease-spring);overscroll-behavior:contain;flex-direction:column;display:flex;position:relative;overflow:auto}.ui-dialog--sm{max-width:400px}.ui-dialog--md{max-width:500px}.ui-dialog--lg{max-width:700px}.ui-dialog--xl{max-width:900px}.ui-dialog--full{border-radius:0;max-width:100%;height:100dvh;max-height:100dvh}.ui-dialog-header{padding:var(--space-5)var(--space-6)var(--space-4);border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-shrink:0;display:flex}.ui-dialog-header-content{overflow-wrap:anywhere;flex:1;min-width:0}.ui-dialog-title{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--text-primary);line-height:var(--leading-tight);margin:0}.ui-dialog-description{margin:var(--space-1)0 0 0;font-size:var(--text-sm);color:var(--text-muted)}.ui-dialog-close{min-width:var(--control-height-sm);min-height:var(--control-height-sm);color:var(--text-muted);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm);transition:background-color var(--duration-fast)ease,color var(--duration-fast)ease;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.ui-dialog-close:hover{background-color:var(--hover-bg);color:var(--text-primary)}.ui-dialog-close:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.ui-dialog-footer{padding:var(--space-4)var(--space-6);border-top:1px solid var(--border);background-color:var(--surface-0);justify-content:flex-end;align-items:center;gap:var(--space-3);flex-wrap:wrap;flex-shrink:0;display:flex}.ui-dialog-body{padding:var(--space-4)var(--space-6);flex:1;min-height:0;overflow-y:auto}@media (max-width:640px){.ui-dialog-overlay{align-items:flex-end;padding:0}.ui-dialog-content{max-height:min(88dvh,44rem);padding-bottom:var(--safe-bottom);border-radius:var(--radius-xl)var(--radius-xl)0 0}.ui-dialog-header,.ui-dialog-footer,.ui-dialog-body{padding-inline:var(--space-4)}}.ui-dialog-overlay{top:var(--visual-viewport-top,0px);height:var(--visual-viewport-height,100dvh);bottom:auto}.ui-dialog-content{max-height:calc(var(--visual-viewport-height,100dvh) - 2rem)}.ui-dialog-content:has(>.ui-dialog-body){overflow:hidden}.ui-dialog-content>form{min-height:0;max-height:100%;overflow-y:auto}.ui-dialog-close{min-width:44px;min-height:44px}.ui-dialog-body{overflow-wrap:anywhere;overscroll-behavior:contain}.ui-dialog-footer>*{max-width:100%}@media (max-width:640px){.ui-dialog-content{max-height:calc(var(--visual-viewport-height,100dvh) - env(safe-area-inset-top))}.ui-dialog--full{height:var(--visual-viewport-height,100dvh)}.ui-dialog-footer{padding-bottom:max(1rem,env(safe-area-inset-bottom))}.ui-dialog-footer :is(button,a){white-space:normal;min-height:44px}}
.ui-error-boundary{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-12)var(--space-8);text-align:center;flex-direction:column;min-height:40vh;display:flex}.ui-error-boundary__icon{border-radius:var(--radius-xl);background:var(--danger-light);width:4rem;height:4rem;color:var(--danger);justify-content:center;align-items:center;display:flex}.ui-error-boundary__title{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--text-primary);letter-spacing:var(--tracking-tight);margin:0}.ui-error-boundary__message{font-size:var(--text-sm);color:var(--text-muted);line-height:var(--leading-normal);max-width:24rem;margin:0}.ui-error-boundary__details{margin-top:var(--space-2);text-align:left;width:100%;max-width:36rem}.ui-error-boundary__details summary{cursor:pointer;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-muted);padding:var(--space-2)0}.ui-error-boundary__details pre{font-size:var(--text-xs);background:var(--background);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3);white-space:pre-wrap;word-break:break-word;color:var(--danger);margin:var(--space-1)0;overflow-x:auto}.ui-error-boundary__actions{margin-top:var(--space-2)}.ui-error-boundary__btn{align-items:center;gap:var(--space-1-5);padding:var(--space-2-5)var(--space-5);border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;background:var(--primary);color:var(--primary-fg);transition:all var(--duration-fast)var(--ease-default);border:none;display:inline-flex}.ui-error-boundary__btn:hover{background:var(--primary-hover);transform:translateY(-1px)}[data-theme=dark] .ui-error-boundary__icon{background:var(--danger-light)}[data-theme=dark] .ui-error-boundary__title{color:var(--text-primary)}[data-theme=dark] .ui-error-boundary__details pre{background:var(--surface-1);border-color:var(--border)}[data-theme=blue] .ui-error-boundary__icon{background:var(--danger-light)}[data-theme=blue] .ui-error-boundary__title{color:var(--text-primary)}[data-theme=blue] .ui-error-boundary__details pre{background:var(--surface-1);border-color:var(--border)}
