.wsi-btn{align-items:center;border:var(--wsi-border-width-1) solid transparent;border-radius:var(--wsi-radius-md);cursor:pointer;display:inline-flex;font-family:var(--wsi-font-family-base);font-size:var(--wsi-font-size-sm);font-weight:var(--wsi-font-weight-medium);gap:var(--wsi-spacing-2);justify-content:center;line-height:var(--wsi-line-height-tight);padding:var(--wsi-spacing-3) var(--wsi-spacing-5);text-decoration:none;transition:all var(--wsi-transition-fast)}.wsi-btn:hover{box-shadow:var(--wsi-shadow-md);transform:translateY(-1px)}.wsi-btn:active{transform:translateY(0)}.wsi-btn:disabled{cursor:not-allowed;opacity:.5}.wsi-btn-primary{background-color:var(--wsi-primary-500);color:#fff}.wsi-btn-primary:hover{background-color:var(--wsi-primary-600);color:#fff}.wsi-btn-secondary{background-color:var(--wsi-secondary-500);color:#fff}.wsi-btn-secondary:hover{background-color:var(--wsi-secondary-600)}.wsi-btn-success{background-color:var(--wsi-success-500);color:#fff}.wsi-btn-danger{background-color:var(--wsi-error-500);color:#fff}.wsi-btn-outline{background-color:#fff;border-color:var(--wsi-border-color);color:var(--wsi-text-primary)}.wsi-btn-ghost{background-color:transparent;color:var(--wsi-text-primary)}.wsi-btn-sm{font-size:var(--wsi-font-size-xs);padding:var(--wsi-spacing-2) var(--wsi-spacing-3)}.wsi-btn-lg{font-size:var(--wsi-font-size-base);padding:var(--wsi-spacing-4) var(--wsi-spacing-6)}.wsi-card{background-color:var(--wsi-bg-primary);border:var(--wsi-border-width-1) solid var(--wsi-border-color);border-radius:var(--wsi-radius-lg);box-shadow:var(--wsi-shadow-sm);overflow:hidden}.wsi-card-header{background-color:var(--wsi-bg-secondary);border-bottom:var(--wsi-border-width-1) solid var(--wsi-border-color);padding:var(--wsi-spacing-4) var(--wsi-spacing-6)}.wsi-card-body{padding:var(--wsi-spacing-6)}.wsi-card-footer{background-color:var(--wsi-bg-secondary);border-top:var(--wsi-border-width-1) solid var(--wsi-border-color);padding:var(--wsi-spacing-4) var(--wsi-spacing-6)}.wsi-table{background-color:var(--wsi-bg-primary);border-collapse:collapse;width:100%}.wsi-table thead{background-color:var(--wsi-bg-secondary)}.wsi-table th{border-bottom:var(--wsi-border-width-2) solid var(--wsi-border-color);color:var(--wsi-text-primary);font-size:var(--wsi-font-size-sm);font-weight:var(--wsi-font-weight-semibold);text-align:left}.wsi-table td,.wsi-table th{padding:var(--wsi-spacing-3) var(--wsi-spacing-4)}.wsi-table td{border-bottom:var(--wsi-border-width-1) solid var(--wsi-border-color-light)}.wsi-table tbody tr:hover{background-color:var(--wsi-bg-secondary)}.wsi-badge{align-items:center;border-radius:var(--wsi-radius-base);display:inline-flex;font-size:var(--wsi-font-size-xs);font-weight:var(--wsi-font-weight-medium);gap:var(--wsi-spacing-1);padding:var(--wsi-spacing-1) var(--wsi-spacing-2)}.wsi-badge-success{background-color:var(--wsi-success-50);color:var(--wsi-success-700)}.wsi-badge-warning{background-color:var(--wsi-warning-50);color:var(--wsi-warning-700)}.wsi-badge-error{background-color:var(--wsi-error-50);color:var(--wsi-error-700)}.wsi-badge-info{background-color:var(--wsi-info-50);color:var(--wsi-info-700)}.wsi-form-group{margin-bottom:var(--wsi-spacing-4)}.wsi-label{font-weight:var(--wsi-font-weight-medium);margin-bottom:var(--wsi-spacing-2)}.wsi-input,.wsi-label{color:var(--wsi-text-primary);display:block;font-size:var(--wsi-font-size-sm)}.wsi-input{background-color:var(--wsi-bg-primary);border:var(--wsi-border-width-1) solid var(--wsi-border-color);border-radius:var(--wsi-radius-md);line-height:var(--wsi-line-height-normal);padding:var(--wsi-spacing-3) var(--wsi-spacing-4);transition:border-color var(--wsi-transition-fast);width:100%}.wsi-input:focus{border-color:var(--wsi-primary-500);box-shadow:0 0 0 3px rgba(33,150,243,.1);outline:none}.wsi-input::placeholder{color:var(--wsi-gray-400)}.wsi-textarea{min-height:100px;resize:vertical}.wsi-select{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%23757575' d='M6 9 1 4h10z'/%3E%3C/svg%3E");background-position:right var(--wsi-spacing-3) center;background-repeat:no-repeat;padding-right:var(--wsi-spacing-8)}.wsi-alert{border:var(--wsi-border-width-1) solid;border-radius:var(--wsi-radius-md);padding:var(--wsi-spacing-4)}.wsi-alert-success{background-color:var(--wsi-success-50);border-color:var(--wsi-success-500);color:var(--wsi-success-700)}.wsi-alert-warning{background-color:var(--wsi-warning-50);border-color:var(--wsi-warning-500);color:var(--wsi-warning-700)}.wsi-alert-error{background-color:var(--wsi-error-50);border-color:var(--wsi-error-500);color:var(--wsi-error-700)}.wsi-alert-info{background-color:var(--wsi-info-50);border-color:var(--wsi-info-500);color:var(--wsi-info-700)}.wsi-modal-backdrop{background-color:rgba(0,0,0,.5);inset:0;position:fixed;z-index:var(--wsi-z-modal-backdrop)}.wsi-modal{align-items:center;display:flex;inset:0;justify-content:center;padding:var(--wsi-spacing-4);position:fixed;z-index:var(--wsi-z-modal)}.wsi-modal-content{background-color:var(--wsi-bg-primary);border-radius:var(--wsi-radius-lg);box-shadow:var(--wsi-shadow-xl);max-height:90vh;max-width:600px;overflow-y:auto;width:100%}.wsi-modal-header{border-bottom:var(--wsi-border-width-1) solid var(--wsi-border-color)}.wsi-modal-body,.wsi-modal-footer,.wsi-modal-header{padding:var(--wsi-spacing-6)}.wsi-modal-footer{border-top:var(--wsi-border-width-1) solid var(--wsi-border-color);display:flex;gap:var(--wsi-spacing-3);justify-content:flex-end}.wsi-tooltip{display:inline-block;position:relative}.wsi-tooltip-text{background-color:var(--wsi-gray-900);border-radius:var(--wsi-radius-base);bottom:125%;color:#fff;font-size:var(--wsi-font-size-xs);left:50%;padding:var(--wsi-spacing-2) var(--wsi-spacing-3);position:absolute;transform:translateX(-50%);visibility:hidden;white-space:nowrap;z-index:var(--wsi-z-tooltip)}.wsi-tooltip:hover .wsi-tooltip-text{visibility:visible}@keyframes wsi-spin{to{transform:rotate(1turn)}}.wsi-spinner{animation:wsi-spin .75s linear infinite;border:2px solid;border-radius:50%;border-right:2px solid transparent;display:inline-block;height:1em;width:1em}.wsi-container{margin-left:auto;margin-right:auto;padding-left:var(--wsi-spacing-4);padding-right:var(--wsi-spacing-4);width:100%}@media (min-width:640px){.wsi-container{max-width:640px}}@media (min-width:768px){.wsi-container{max-width:768px}}@media (min-width:1024px){.wsi-container{max-width:1024px}}@media (min-width:1280px){.wsi-container{max-width:1280px}}.wsi-grid{display:grid;gap:var(--wsi-spacing-4)}.wsi-grid-cols-2{grid-template-columns:repeat(2,1fr)}.wsi-grid-cols-3{grid-template-columns:repeat(3,1fr)}.wsi-grid-cols-4{grid-template-columns:repeat(4,1fr)}.wsi-flex{display:flex}.wsi-flex-col{flex-direction:column}.wsi-flex-wrap{flex-wrap:wrap}.wsi-items-center{align-items:center}.wsi-items-start{align-items:flex-start}.wsi-items-end{align-items:flex-end}.wsi-justify-center{justify-content:center}.wsi-justify-between{justify-content:space-between}.wsi-justify-end{justify-content:flex-end}.wsi-gap-2{gap:var(--wsi-spacing-2)}.wsi-gap-4{gap:var(--wsi-spacing-4)}.wsi-gap-6{gap:var(--wsi-spacing-6)}.wsi-p-0{padding:var(--wsi-spacing-0)}.wsi-p-2{padding:var(--wsi-spacing-2)}.wsi-p-4{padding:var(--wsi-spacing-4)}.wsi-p-6{padding:var(--wsi-spacing-6)}.wsi-p-8{padding:var(--wsi-spacing-8)}.wsi-m-0{margin:var(--wsi-spacing-0)}.wsi-m-2{margin:var(--wsi-spacing-2)}.wsi-m-4{margin:var(--wsi-spacing-4)}.wsi-m-6{margin:var(--wsi-spacing-6)}.wsi-m-8{margin:var(--wsi-spacing-8)}.wsi-text-left{text-align:left}.wsi-text-center{text-align:center}.wsi-text-right{text-align:right}.wsi-text-xs{font-size:var(--wsi-font-size-xs)}.wsi-text-sm{font-size:var(--wsi-font-size-sm)}.wsi-text-base{font-size:var(--wsi-font-size-base)}.wsi-text-lg{font-size:var(--wsi-font-size-lg)}.wsi-text-xl{font-size:var(--wsi-font-size-xl)}.wsi-text-2xl{font-size:var(--wsi-font-size-2xl)}.wsi-font-light{font-weight:var(--wsi-font-weight-light)}.wsi-font-normal{font-weight:var(--wsi-font-weight-normal)}.wsi-font-medium{font-weight:var(--wsi-font-weight-medium)}.wsi-font-semibold{font-weight:var(--wsi-font-weight-semibold)}.wsi-font-bold{font-weight:var(--wsi-font-weight-bold)}.wsi-text-primary{color:var(--wsi-text-primary)}.wsi-text-secondary{color:var(--wsi-text-secondary)}.wsi-text-success{color:var(--wsi-success-700)}.wsi-text-warning{color:var(--wsi-warning-700)}.wsi-text-error{color:var(--wsi-error-700)}