.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-2);font-family:var(--font-family);font-weight:var(--font-weight-medium);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:1px solid transparent;outline:none}.btn:focus-visible{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--brand)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--sm{padding:var(--spacing-1) var(--spacing-3);font-size:var(--font-size-xs);height:32px}.btn--md{padding:var(--spacing-2) var(--spacing-4);font-size:var(--font-size-sm);height:40px}.btn--lg{padding:var(--spacing-3) var(--spacing-6);font-size:var(--font-size-base);height:48px}.btn--primary{background-color:var(--brand);color:var(--on-brand);border-color:var(--brand)}.btn--primary:hover:not(:disabled){background-color:var(--brand-hover);border-color:var(--brand-hover)}.btn--secondary{background-color:var(--surface);color:var(--text);border-color:var(--border)}.btn--secondary:hover:not(:disabled){background-color:var(--surface-muted);border-color:var(--text-subtle)}.btn--outline{background-color:var(--surface);color:var(--text);border:1px solid var(--border)}.btn--outline:hover:not(:disabled){background-color:var(--surface-muted)}.btn--ghost{background-color:transparent;color:var(--text-muted);border-color:transparent}.btn--ghost:hover:not(:disabled){background-color:var(--surface-muted);color:var(--text)}.btn--danger{background-color:var(--color-error);color:var(--color-white);border-color:var(--color-error)}.btn--danger:hover:not(:disabled){background-color:#b91c1c;border-color:#b91c1c}.btn__icon{display:inline-flex;align-items:center;justify-content:center}.btn__icon svg{width:16px;height:16px}.btn--lg .btn__icon svg{width:20px;height:20px}.btn--loading{position:relative}.btn__spinner{display:inline-flex;align-items:center;justify-content:center}.btn__spinner-icon{width:16px;height:16px;animation:btn-spin 1s linear infinite}.btn__spinner-circle{opacity:.25}.btn__spinner-circle{stroke-dasharray:60;stroke-dashoffset:45;opacity:1}@keyframes btn-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.input-container{display:flex;flex-direction:column;gap:var(--spacing-1)}.input-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-gray-700)}.input-wrapper{position:relative;display:flex;align-items:center}.input{width:100%;font-family:var(--font-family);border:1px solid var(--color-gray-300);border-radius:var(--radius-lg);background-color:var(--color-white);color:var(--color-gray-900);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);outline:none}.input::placeholder{color:var(--color-gray-400)}.input:hover:not(:disabled){border-color:var(--color-gray-400)}.input:focus{border-color:var(--color-black);box-shadow:0 0 0 1px var(--color-black)}.input:disabled{background-color:var(--color-gray-50);color:var(--color-gray-500);cursor:not-allowed}.input-wrapper--sm .input{padding:var(--spacing-1) var(--spacing-3);font-size:var(--font-size-xs);height:32px}.input-wrapper--md .input{padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-sm);height:40px}.input-wrapper--lg .input{padding:var(--spacing-3) var(--spacing-4);font-size:var(--font-size-base);height:48px}.input-icon{position:absolute;display:flex;align-items:center;justify-content:center;color:var(--color-gray-400);pointer-events:none}.input-icon svg{width:16px;height:16px}.input-icon--left{left:var(--spacing-3)}.input-icon--right{right:var(--spacing-3)}.input-wrapper--has-left-icon .input{padding-left:calc(var(--spacing-3) + 16px + var(--spacing-2))}.input-wrapper--has-right-icon .input{padding-right:calc(var(--spacing-3) + 16px + var(--spacing-2))}.input-wrapper--error .input{border-color:var(--color-error)}.input-wrapper--error .input:focus{border-color:var(--color-error);box-shadow:0 0 0 1px var(--color-error)}.input-error{font-size:var(--font-size-xs);color:var(--color-error)}.input-wrapper--disabled{opacity:.7}.select-container{display:flex;flex-direction:column;gap:var(--spacing-1)}.select-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-gray-700)}.select-wrapper{position:relative;display:flex;align-items:center}.select-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;font-family:var(--font-family);border:1px solid var(--color-gray-300);border-radius:var(--radius-lg);background-color:var(--color-white);color:var(--color-gray-900);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);outline:none;text-align:left;gap:var(--spacing-2);line-height:1.2}.select-trigger:hover:not(:disabled){border-color:var(--color-gray-400)}.select-trigger:focus{border-color:var(--color-black);box-shadow:0 0 0 1px var(--color-black)}.select-trigger--open{border-color:var(--color-black);box-shadow:0 0 0 1px var(--color-black)}.select-trigger--placeholder{color:var(--color-gray-500)}.select-trigger:disabled{background-color:var(--color-gray-50);color:var(--color-gray-500);cursor:not-allowed}.select-trigger__label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.select-trigger__icon{display:flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--color-gray-400);flex-shrink:0;transition:transform var(--transition-fast)}.select-trigger__icon svg{display:block}.select-trigger--open .select-trigger__icon{transform:rotate(180deg)}.select-wrapper--sm .select-trigger{padding:var(--spacing-1) var(--spacing-2);font-size:var(--font-size-xs);height:32px}.select-wrapper--md .select-trigger{padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-sm);height:40px}.select-wrapper--lg .select-trigger{padding:var(--spacing-3) var(--spacing-4);font-size:var(--font-size-base);height:48px}.select-wrapper--error .select-trigger{border-color:var(--color-error)}.select-wrapper--error .select-trigger:focus,.select-wrapper--error .select-trigger--open{border-color:var(--color-error);box-shadow:0 0 0 1px var(--color-error)}.select-error{font-size:var(--font-size-xs);color:var(--color-error)}.select-wrapper--disabled{opacity:.7}.select-wrapper--disabled .select-trigger__icon{color:var(--color-gray-300)}.select-dropdown{box-sizing:border-box;background-color:var(--color-white, #fff);color:var(--color-gray-900, #142033);border:1px solid var(--color-gray-200, #dbe3ef);border-radius:var(--radius-lg, 8px);box-shadow:var(--shadow-lg, 0 12px 30px #14203326);z-index:var(--z-dropdown, 9999);max-height:240px;overflow-y:auto;overflow-x:hidden;padding:var(--spacing-1, 4px);animation:select-dropdown-fade-in .15s ease-out}@keyframes select-dropdown-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.select-dropdown::-webkit-scrollbar{width:6px}.select-dropdown::-webkit-scrollbar-track{background:transparent}.select-dropdown::-webkit-scrollbar-thumb{background-color:var(--color-gray-300);border-radius:3px}.select-dropdown__item{display:flex;align-items:center;justify-content:space-between;width:100%;min-width:0;padding:var(--spacing-2, 8px) var(--spacing-3, 12px);font-family:inherit;font-size:var(--font-size-sm, 14px);color:var(--color-gray-700, #34445e);background-color:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:background-color var(--transition-fast),color var(--transition-fast);outline:none}.select-dropdown__item:hover:not(:disabled),.select-dropdown__item--focused:not(:disabled){background-color:var(--color-gray-100);color:var(--color-gray-900)}.select-dropdown__item--selected{color:var(--color-gray-900);font-weight:var(--font-weight-medium)}.select-dropdown__item--disabled{color:var(--color-gray-400);cursor:not-allowed;opacity:.6}.select-dropdown__item--disabled:hover{background-color:transparent}.select-dropdown__item-label{flex:1;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere}.select-dropdown__item-check{flex-shrink:0;color:var(--color-black);margin-left:var(--spacing-2)}.select-dropdown__group+.select-dropdown__group{border-top:1px solid var(--color-gray-100);margin-top:var(--spacing-1);padding-top:var(--spacing-1)}.select-dropdown__group-label{padding:var(--spacing-1) var(--spacing-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.05em;-webkit-user-select:none;user-select:none}.badge{display:inline-flex;align-items:center;font-family:var(--font-family);font-weight:var(--font-weight-medium);border-radius:var(--radius-full);white-space:nowrap}.badge--sm{padding:0 var(--spacing-2);font-size:.6875rem;height:20px}.badge--md{padding:var(--spacing-1) var(--spacing-3);font-size:var(--font-size-xs);height:24px}.badge--default{background-color:var(--color-gray-100);color:var(--color-gray-700)}.badge--primary{background-color:var(--color-primary-light);color:var(--color-primary)}.badge--success{background-color:var(--color-success-bg);color:var(--color-success)}.badge--warning{background-color:var(--color-warning-bg);color:var(--color-warning)}.badge--error{background-color:var(--color-error-bg);color:var(--color-error)}.badge--info{background-color:var(--color-info-bg);color:var(--color-info)}.badge--purple{background-color:var(--color-purple-bg);color:var(--color-purple)}.status-badge{display:inline-block;padding:4px 8px;border-radius:var(--radius-sm, 4px);font-size:12px;font-weight:500;font-variant-numeric:tabular-nums}.status-badge.badge-default{background:var(--surface-muted, #f0f0f0);color:var(--text-muted, #666)}.status-badge.badge-success{background:var(--success-bg, #dcfce7);color:var(--success, #16a34a)}.status-badge.badge-warning{background:var(--warning-bg, #fef9c3);color:var(--warning, #ca8a04)}.status-badge.badge-error{background:var(--error-bg, #fee2e2);color:var(--error, #dc2626)}.data-table-container{width:100%;overflow-x:auto;border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);background-color:var(--color-white)}.data-table{width:100%;border-collapse:collapse;font-family:var(--font-family)}.data-table__head{background-color:var(--color-gray-50);border-bottom:1px solid var(--color-gray-200)}.data-table__header-cell{padding:var(--spacing-3) var(--spacing-6);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.05em;color:var(--color-gray-500);text-align:left;white-space:nowrap}.data-table__header-cell--sortable{-webkit-user-select:none;user-select:none}.data-table__header-cell--sortable:hover,.data-table__sort-button:hover{color:var(--color-gray-700)}.data-table__row--clickable:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.data-table__sort-button{display:inline-flex;align-items:center;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;text-transform:inherit}.data-table__sort-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}.data-table__header-content{display:inline-flex;align-items:center;gap:var(--spacing-1)}.sort-icon{display:inline-flex;align-items:center;color:var(--color-gray-400)}.sort-icon--active{color:var(--color-gray-700)}.data-table__body{background-color:var(--color-white)}.data-table__row{border-bottom:1px solid var(--color-gray-200);transition:background-color var(--transition-fast)}.data-table__row:last-child{border-bottom:none}.data-table__row:hover{background-color:var(--color-gray-50)}.data-table__row--clickable{cursor:pointer}.data-table__cell{padding:var(--spacing-4) var(--spacing-6);font-size:var(--font-size-sm);color:var(--color-gray-900);vertical-align:middle}.data-table__loading-row,.data-table__loading-row:hover{background-color:var(--color-white)}.data-table__loading-cell{padding:0;border-bottom:none}.data-table__loading{padding:var(--spacing-8) var(--spacing-6);color:var(--color-gray-500);font-size:var(--font-size-sm);text-align:center}.data-table__empty{padding:var(--spacing-16) var(--spacing-6);text-align:center}.data-table__empty-row,.data-table__empty-row:hover{background-color:var(--color-white)}.data-table__empty-cell{padding:0;border-bottom:none}.skeleton{background:linear-gradient(90deg,var(--color-gray-100) 25%,var(--color-gray-200) 50%,var(--color-gray-100) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:var(--radius-sm)}.skeleton--text{height:16px;width:80%}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(max-width:640px){.data-table__header-cell{padding:var(--spacing-2) var(--spacing-3)}.data-table__cell{padding:var(--spacing-3) var(--spacing-3)}.data-table__empty{padding:var(--spacing-8) var(--spacing-3)}}.pagination{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-4) 0;gap:var(--spacing-4);flex-wrap:wrap}.pagination__info{flex-shrink:0}.pagination__text{font-size:var(--font-size-sm);color:var(--color-gray-600)}.pagination__text strong{color:var(--color-gray-900);font-weight:var(--font-weight-medium)}.pagination__controls{display:flex;align-items:center;gap:var(--spacing-6)}.pagination__page-size{display:flex;align-items:center;gap:var(--spacing-2)}.pagination__page-size .select-wrapper{width:70px}.pagination__nav,.pagination__pages{display:flex;align-items:center;gap:var(--spacing-1)}.pagination__page{display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 var(--spacing-2);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--brand);background-color:transparent;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.pagination__page:hover{background-color:var(--brand-tint);color:var(--brand-hover);border-color:var(--brand-hover)}.pagination__page--active{background-color:var(--brand);border-color:var(--brand);color:var(--on-brand)}.pagination__page--active:hover{background-color:var(--brand-hover);border-color:var(--brand-hover);color:var(--on-brand)}.pagination__ellipsis{display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;color:var(--color-gray-400);font-size:var(--font-size-sm)}@media(max-width:640px){.pagination{flex-direction:column;align-items:flex-start}.pagination__controls{width:100%;justify-content:space-between}}.traffic-badge{width:20px;height:20px;padding:0;display:inline-flex;justify-content:center;align-items:center;font-weight:700}.ui-search-input.search-input{position:relative;display:flex;align-items:center;min-width:0;padding:0;background:transparent;border:none;border-radius:0;box-shadow:none}.ui-search-input .search-input__icon{position:absolute;left:12px;top:50%;display:flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--color-gray-400);pointer-events:none;transform:translateY(-50%)}.ui-search-input .search-input__icon svg,.ui-search-input .search-input__clear svg{display:block}.ui-search-input .search-input__field{width:100%;height:40px;padding:0 34px 0 38px;font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-gray-900);background:var(--color-white);border:1px solid rgba(203,213,225,.9);border-radius:999px;box-shadow:none;outline:none;transition:border-color var(--transition-fast),color var(--transition-fast),background-color var(--transition-fast)}.ui-search-input .search-input__field::placeholder{color:var(--color-gray-500)}.ui-search-input .search-input__field:hover{border-color:#94a3b8e0}.ui-search-input .search-input__field:focus{border-color:var(--color-black);background:var(--color-white);box-shadow:none}.ui-search-input .search-input__clear{position:absolute;right:6px;top:50%;display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background-color:transparent;border:none;border-radius:999px;color:var(--color-gray-400);cursor:pointer;transform:translateY(-50%);transition:color var(--transition-fast)}.ui-search-input .search-input__clear:hover{color:var(--color-gray-700)}.ui-search-input .search-input__clear:focus{outline:none;box-shadow:0 0 0 1px var(--color-black)}.modal-backdrop{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background-color:#00000080;z-index:var(--z-modal-backdrop);animation:modal-backdrop-fade-in .15s ease-out}@keyframes modal-backdrop-fade-in{0%{opacity:0}to{opacity:1}}.modal{display:flex;flex-direction:column;max-height:calc(100vh - 64px);background-color:var(--color-white);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);z-index:var(--z-modal);animation:modal-slide-in .2s ease-out;outline:none}@keyframes modal-slide-in{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal--sm{width:100%;max-width:400px}.modal--md{width:100%;max-width:500px}.modal--lg{width:100%;max-width:640px}.modal--xl{width:100%;max-width:800px}.modal--full{width:min(1440px,calc(100vw - 32px));height:calc(100vh - 32px);max-height:calc(100vh - 32px)}.modal-backdrop--drawer{align-items:stretch;justify-content:flex-end;z-index:calc(var(--z-popover, 1060) + 1)}.modal--drawer{width:min(760px,100vw);max-width:none;height:100vh;max-height:100vh;border-radius:0;animation-name:modal-drawer-slide-in}@keyframes modal-drawer-slide-in{0%{opacity:0;transform:translate(32px)}to{opacity:1;transform:translate(0)}}.modal--drawer .modal__footer{position:sticky;bottom:0;border-radius:0}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-6);border-bottom:1px solid var(--color-gray-200)}.modal__title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-gray-900)}.modal__close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background-color:transparent;border:none;border-radius:var(--radius-md);color:var(--color-gray-400);cursor:pointer;transition:all var(--transition-fast)}.modal__close:hover{background-color:var(--color-gray-100);color:var(--color-gray-600)}.modal__close:focus{outline:none;box-shadow:0 0 0 2px var(--color-primary)}.modal__body{flex:1;overflow-y:auto;padding:var(--spacing-6)}.modal__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-3);padding:var(--spacing-4) var(--spacing-6);border-top:1px solid var(--color-gray-200);background-color:var(--color-gray-50);border-radius:0 0 var(--radius-xl) var(--radius-xl)}@media(max-width:640px){.modal{margin:var(--spacing-4);max-height:calc(100vh - 32px)}.modal--drawer{margin:0;max-width:100vw;max-height:100vh}.modal--sm,.modal--md,.modal--lg,.modal--xl{max-width:calc(100vw - 32px)}}.confirm-dialog__content{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--spacing-4)}.confirm-dialog__icon{width:48px;height:48px;flex-shrink:0}.confirm-dialog__icon--danger{color:var(--color-error)}.confirm-dialog__icon--warning{color:var(--color-warning, #f59e0b)}.confirm-dialog__icon--info{color:var(--color-primary)}.confirm-dialog__message{margin:0;font-size:var(--font-size-base);color:var(--color-gray-600);line-height:1.5}.confirm-dialog__actions{display:flex;gap:var(--spacing-3);width:100%;justify-content:flex-end}.dropdown-menu{position:relative;display:inline-flex}.dropdown-menu__trigger{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-1);background-color:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;color:var(--color-gray-500);transition:all var(--transition-fast)}.dropdown-menu__trigger:hover{background-color:var(--color-gray-100);color:var(--color-gray-700)}.dropdown-menu__trigger:focus{outline:none;box-shadow:0 0 0 2px var(--color-primary)}.dropdown-menu__content{min-width:160px;padding:var(--spacing-1);background-color:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);animation:dropdown-fade-in .15s ease-out}@keyframes dropdown-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.dropdown-menu__item{display:flex;align-items:center;gap:var(--spacing-2);width:100%;padding:var(--spacing-2) var(--spacing-3);font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-gray-700);background-color:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:all var(--transition-fast)}.dropdown-menu__item:hover{background-color:var(--color-gray-100);color:var(--color-gray-900)}.dropdown-menu__item:focus{outline:none;background-color:var(--color-gray-100)}.dropdown-menu__item--danger{color:var(--color-error)}.dropdown-menu__item--danger:hover{background-color:var(--color-error-bg);color:var(--color-error)}.dropdown-menu__item--disabled{opacity:.5;cursor:not-allowed}.dropdown-menu__item--disabled:hover{background-color:transparent}.dropdown-menu__item-icon{display:flex;align-items:center;justify-content:center;width:16px;height:16px}.dropdown-menu__item-icon svg{width:16px;height:16px}.dropdown-menu__item-label{flex:1}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-12) var(--spacing-6);text-align:center}.empty-state--inline-table{width:100%;padding:var(--spacing-12) var(--spacing-8)}.empty-state__icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin-bottom:var(--spacing-4);background-color:var(--color-gray-100);border-radius:var(--radius-full);color:var(--color-gray-400)}.empty-state__icon svg{width:32px;height:32px}.empty-state__icon--emoji{font-size:2rem;background-color:transparent}.empty-state__title{margin:0 0 var(--spacing-2);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-gray-900)}.empty-state__description{margin:0 0 var(--spacing-6);max-width:360px;font-size:var(--font-size-sm);color:var(--color-gray-500);line-height:var(--line-height-relaxed)}.empty-state__actions{display:flex;align-items:center;gap:var(--spacing-3);flex-wrap:wrap;justify-content:center}.empty-state__actions .btn{min-width:148px}.empty-state__demo-action{background:linear-gradient(180deg,var(--color-white) 0%,var(--color-gray-50) 100%);border-color:var(--color-gray-300);color:var(--color-gray-700)}.empty-state__demo-action:hover:not(:disabled){background:linear-gradient(180deg,var(--color-gray-50) 0%,var(--color-gray-100) 100%);border-color:var(--color-gray-400);color:var(--color-gray-900)}.empty-state--inline-table .empty-state__icon{width:56px;height:56px;margin-bottom:var(--spacing-3)}.empty-state--inline-table .empty-state__icon svg{width:28px;height:28px}.empty-state--inline-table .empty-state__title{font-size:var(--font-size-lg);margin-bottom:var(--spacing-3)}.empty-state--inline-table .empty-state__description{max-width:420px;margin-bottom:var(--spacing-5)}.tabs{display:inline-flex;max-width:100%;overflow-x:auto;scrollbar-width:thin;gap:4px;padding:4px;background:var(--color-gray-100, #f3f4f6);border-radius:10px;margin-bottom:var(--spacing-4, 16px)}.tabs__tab{position:relative;flex:0 0 auto;padding:8px 16px;font-size:14px;font-weight:500;color:var(--color-gray-500, #6b7280);background:transparent;border:none;border-radius:8px;cursor:pointer;transition:color .15s ease;z-index:1}@media(max-width:640px){.tabs{display:flex;width:100%}.tabs__tab{padding-inline:12px}}.tabs__tab:hover{color:var(--color-gray-700, #374151)}.tabs__tab--active{color:var(--color-gray-900, #111827)}.tabs__pill{position:absolute;inset:0;background:var(--color-white, #ffffff);border-radius:8px;box-shadow:0 1px 3px #00000014;z-index:0;animation:tabs-pill-in .16s ease-out}.tabs__label{position:relative;z-index:1}.tabs__count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;margin-left:var(--spacing-2, 8px);font-size:12px;font-weight:500;color:var(--color-gray-600, #4b5563);background-color:var(--color-gray-200, #e5e7eb);border-radius:10px;position:relative;z-index:1}.tabs__tab--active .tabs__count{color:var(--color-white, #ffffff);background-color:var(--color-gray-900, #111827)}@keyframes tabs-pill-in{0%{opacity:0}to{opacity:1}}.accordion{display:flex;flex-direction:column;gap:.75rem}.accordion-item{background:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-xl);overflow:hidden;transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}.accordion-item:hover:not(.accordion-item--disabled){border-color:var(--color-gray-300)}.accordion-item--open{border-color:var(--color-indigo);box-shadow:0 0 0 1px var(--color-indigo)}.accordion-item--disabled{opacity:.6;cursor:not-allowed}.accordion-header{display:flex;align-items:center;width:100%;padding:1rem 1.25rem;background:transparent;border:none;cursor:pointer;text-align:left;gap:1rem;transition:background-color var(--transition-fast)}.accordion-header:hover:not(:disabled){background-color:var(--color-gray-50)}.accordion-header:disabled{cursor:not-allowed}.accordion-header__progress{flex-shrink:0}.accordion-header__content{flex:1;min-width:0}.accordion-header__icon{flex-shrink:0;color:var(--color-gray-400);transition:transform var(--transition-normal),color var(--transition-fast)}.accordion-header:hover:not(:disabled) .accordion-header__icon{color:var(--color-gray-600)}.accordion-header__icon--open{transform:rotate(180deg);color:var(--color-indigo)}.accordion-content{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease-out}.accordion-content--open{grid-template-rows:1fr}.accordion-content__inner{overflow:hidden}@keyframes accordion-item-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.accordion-item{animation:accordion-item-enter .3s ease-out both}.accordion-item:nth-child(1){animation-delay:0ms}.accordion-item:nth-child(2){animation-delay:.1s}.accordion-item:nth-child(3){animation-delay:.2s}.accordion-item:nth-child(4){animation-delay:.3s}.accordion-item:nth-child(5){animation-delay:.4s}@media(max-width:640px){.accordion-header{padding:.875rem 1rem;gap:.75rem}}.progress-ring{position:relative;display:inline-flex;align-items:center;justify-content:center}.progress-ring__svg{display:block}.progress-ring__background{stroke:var(--color-gray-200);transition:stroke var(--transition-normal)}.progress-ring--complete .progress-ring__background{stroke:var(--color-success-light)}.progress-ring__progress{stroke:var(--color-indigo);transition:stroke-dashoffset .5s ease-out,stroke var(--transition-normal)}.progress-ring--complete .progress-ring__progress{stroke:var(--color-success)}.progress-ring__center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center}.progress-ring__number{font-weight:600;color:var(--color-gray-500);line-height:1}.progress-ring--complete .progress-ring__number{color:var(--color-success)}.progress-ring__checkmark{color:var(--color-success);animation:progress-ring-checkmark-pop .3s ease-out}@keyframes progress-ring-checkmark-pop{0%{transform:scale(0);opacity:0}50%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.progress-ring--sm{width:24px;height:24px}.progress-ring--md{width:32px;height:32px}.progress-ring--lg{width:40px;height:40px}.skeleton{background:var(--skeleton-bg, var(--color-gray-100));border-radius:var(--radius-sm);--skeleton-shimmer-highlight: var(--skeleton-highlight, rgba(255, 255, 255, .5))}.skeleton--shimmer{position:relative;overflow:hidden}.skeleton--shimmer:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,var(--skeleton-shimmer-highlight) 50%,transparent 100%);animation:skeletonShimmer 1.5s ease-in-out infinite}@keyframes skeletonShimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.skeleton--pulse{animation:skeletonPulse 1.8s ease-in-out infinite}@keyframes skeletonPulse{0%,to{opacity:1}50%{opacity:.4}}.skeleton-text,.skeleton-heading{border-radius:var(--radius-sm)}.skeleton-circle{border-radius:var(--radius-full)}.skeleton-rect{border-radius:var(--radius-lg)}.skeleton-badge{border-radius:var(--radius-full)}.skeleton-button{border-radius:var(--radius-md)}.skeleton-text-block{display:flex;flex-direction:column;gap:8px}.skeleton-chart-bar{display:flex;align-items:flex-end;gap:8px;padding:16px 0}.skeleton-bar{flex:1;border-radius:var(--radius-sm) var(--radius-sm) 0 0;min-width:20px}.skeleton-chart-line{width:100%;background:var(--skeleton-panel-muted, var(--color-gray-50));border-radius:var(--radius-lg);padding:16px}.skeleton-line-svg{width:100%;height:100%}.skeleton-line-path{stroke-dasharray:800}.skeleton-line-path.skeleton--shimmer{animation:skeletonLineDraw 2s ease-in-out infinite}.skeleton-line-path.skeleton--pulse{animation:skeletonPulse 1.8s ease-in-out infinite}@keyframes skeletonLineDraw{0%{stroke-dashoffset:800;opacity:.4}50%{opacity:1}to{stroke-dashoffset:0;opacity:.4}}.skeleton-table{border:1px solid var(--skeleton-border, var(--color-gray-200));border-radius:var(--radius-lg);overflow:hidden}.skeleton-table-header{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:16px;padding:12px 16px;background:var(--skeleton-panel-muted, var(--color-gray-50));border-bottom:1px solid var(--skeleton-border, var(--color-gray-200))}.skeleton-table-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:16px;padding:12px 16px;border-bottom:1px solid var(--skeleton-border, var(--color-gray-100))}.skeleton-table-row:last-child{border-bottom:none}.skeleton-dashboard{padding:var(--spacing-6);display:flex;flex-direction:column;gap:var(--spacing-6)}.skeleton-dashboard--flush{padding:0}.skeleton-page-header{display:flex;flex-direction:column;gap:8px}.skeleton-metric-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--spacing-4)}.skeleton-metric-card{display:flex;flex-direction:column;gap:10px;padding:20px;background:var(--skeleton-panel, var(--color-white));border:1px solid var(--skeleton-border, var(--color-gray-200));border-radius:var(--radius-lg)}.skeleton-chart-area{background:var(--skeleton-panel, var(--color-white));border:1px solid var(--skeleton-border, var(--color-gray-200));border-radius:var(--radius-lg);padding:20px}.skeleton-toolbar{display:flex;align-items:center;gap:12px}.skeleton-fade-in{animation:skeletonFadeIn var(--transition-normal) ease-out}@keyframes skeletonFadeIn{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.skeleton--shimmer:after,.skeleton--pulse,.skeleton-line-path.skeleton--shimmer,.skeleton-line-path.skeleton--pulse,.skeleton-fade-in{animation:none}}.top-loader{position:fixed;top:0;left:0;height:3px;background:var(--color-primary);z-index:9999;transition:width .3s ease;box-shadow:0 0 8px #667eea66}.top-loader--done{opacity:0;transition:width .15s ease,opacity .3s ease .15s}.error-boundary{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-8, 2rem);text-align:center;border-radius:var(--radius-lg, 8px);background-color:var(--color-gray-50, #f9fafb);border:1px dashed var(--color-gray-200, #e5e7eb);min-height:120px}.error-boundary--compact{flex-direction:row;gap:var(--spacing-3, .75rem);padding:var(--spacing-4, 1rem);min-height:auto}.error-boundary__icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background-color:var(--color-error, #ef4444);color:#fff;font-weight:var(--font-weight-bold, 700);font-size:var(--font-size-sm, .875rem);flex-shrink:0}.error-boundary:not(.error-boundary--compact) .error-boundary__icon{width:40px;height:40px;font-size:var(--font-size-base, 1rem);margin-bottom:var(--spacing-3, .75rem)}.error-boundary__title{font-size:var(--font-size-base, 1rem);font-weight:var(--font-weight-semibold, 600);color:var(--color-gray-900, #111827);margin-bottom:var(--spacing-1, .25rem)}.error-boundary__message{font-size:var(--font-size-sm, .875rem);color:var(--color-gray-600, #4b5563);margin:0}.error-boundary__detail{font-size:var(--font-size-sm, .875rem);color:var(--color-gray-500, #6b7280);margin-bottom:var(--spacing-4, 1rem);max-width:400px}.error-boundary__retry{display:inline-flex;align-items:center;padding:var(--spacing-1, .25rem) var(--spacing-3, .75rem);font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-medium, 500);color:var(--color-primary, #667eea);background:transparent;border:1px solid var(--color-primary, #667eea);border-radius:var(--radius-md, 6px);cursor:pointer;transition:all var(--transition-fast, .15s)}.error-boundary__retry:hover{background-color:var(--color-primary, #667eea);color:#fff}.error-boundary--compact .error-boundary__retry{margin-left:auto}.refresh-indicator{display:inline-flex;align-items:center;justify-content:center}.refresh-indicator__dot{width:8px;height:8px;border-radius:50%;background-color:var(--color-primary, #667eea);animation:refresh-pulse 1.5s ease-in-out infinite}@keyframes refresh-pulse{0%,to{opacity:.4;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}
