:root{--ui-color-primary: #2563eb;--ui-color-primary-hover: #1d4ed8;--ui-color-primary-light: #dbeafe;--ui-color-success: #22c55e;--ui-color-success-hover: #16a34a;--ui-color-success-light: #dcfce7;--ui-color-warning: #f59e0b;--ui-color-warning-hover: #d97706;--ui-color-warning-light: #fef3c7;--ui-color-error: #ef4444;--ui-color-error-hover: #dc2626;--ui-color-error-light: #fee2e2;--ui-color-gray-50: #f8fafc;--ui-color-gray-100: #f1f5f9;--ui-color-gray-200: #e2e8f0;--ui-color-gray-300: #cbd5e1;--ui-color-gray-400: #94a3b8;--ui-color-gray-500: #64748b;--ui-color-gray-600: #475569;--ui-color-gray-700: #334155;--ui-color-gray-800: #1e293b;--ui-color-gray-900: #0f172a;--ui-color-background: var(--ui-color-gray-50);--ui-color-surface: #ffffff;--ui-color-surface-raised: #ffffff;--ui-color-text: var(--ui-color-gray-900);--ui-color-text-secondary: var(--ui-color-gray-500);--ui-color-text-muted: var(--ui-color-gray-400);--ui-color-text-inverse: #ffffff;--ui-color-border: var(--ui-color-gray-200);--ui-color-border-hover: var(--ui-color-gray-300);--ui-color-border-focus: var(--ui-color-primary);--ui-font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;--ui-font-family-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--ui-font-size-xs: .75rem;--ui-font-size-sm: .875rem;--ui-font-size-base: 1rem;--ui-font-size-lg: 1.125rem;--ui-font-size-xl: 1.25rem;--ui-font-size-2xl: 1.5rem;--ui-font-size-3xl: 2rem;--ui-font-weight-normal: 400;--ui-font-weight-medium: 500;--ui-font-weight-semibold: 600;--ui-font-weight-bold: 700;--ui-line-height-tight: 1.25;--ui-line-height-normal: 1.5;--ui-line-height-relaxed: 1.75;--ui-spacing-0: 0;--ui-spacing-1: .25rem;--ui-spacing-2: .5rem;--ui-spacing-3: .75rem;--ui-spacing-4: 1rem;--ui-spacing-5: 1.25rem;--ui-spacing-6: 1.5rem;--ui-spacing-8: 2rem;--ui-spacing-10: 2.5rem;--ui-spacing-12: 3rem;--ui-spacing-16: 4rem;--ui-radius-none: 0;--ui-radius-sm: .25rem;--ui-radius-md: .375rem;--ui-radius-lg: .5rem;--ui-radius-xl: .75rem;--ui-radius-full: 9999px;--ui-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--ui-shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ui-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ui-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--ui-focus-ring: 0 0 0 2px var(--ui-color-surface), 0 0 0 4px var(--ui-color-primary);--ui-transition-fast: .1s ease;--ui-transition-normal: .15s ease;--ui-transition-slow: .3s ease;--ui-z-dropdown: 100;--ui-z-sticky: 200;--ui-z-modal-backdrop: 300;--ui-z-modal: 400;--ui-z-tooltip: 500}.ui-container{width:100%;padding-left:var(--ui-spacing-4);padding-right:var(--ui-spacing-4)}.ui-container--centered{margin-left:auto;margin-right:auto}.ui-container--sm{max-width:640px}.ui-container--md{max-width:768px}.ui-container--lg{max-width:1024px}.ui-container--xl{max-width:1280px}.ui-container--full{max-width:100%}.ui-grid{display:grid}.ui-grid--cols-1{grid-template-columns:repeat(1,1fr)}.ui-grid--cols-2{grid-template-columns:repeat(2,1fr)}.ui-grid--cols-3{grid-template-columns:repeat(3,1fr)}.ui-grid--cols-4{grid-template-columns:repeat(4,1fr)}.ui-grid--cols-6{grid-template-columns:repeat(6,1fr)}.ui-grid--cols-12{grid-template-columns:repeat(12,1fr)}.ui-grid--auto{grid-template-columns:repeat(auto-fit,minmax(var(--ui-grid-min-column-width, 250px),1fr))}.ui-grid--spacing-none{gap:0}.ui-grid--spacing-sm{gap:var(--ui-spacing-2)}.ui-grid--spacing-md{gap:var(--ui-spacing-4)}.ui-grid--spacing-lg{gap:var(--ui-spacing-6)}.ui-grid--spacing-xl{gap:var(--ui-spacing-8)}.ui-stack{display:flex}.ui-stack--horizontal{flex-direction:row}.ui-stack--vertical{flex-direction:column}.ui-stack--spacing-none{gap:0}.ui-stack--spacing-xs{gap:var(--ui-spacing-1)}.ui-stack--spacing-sm{gap:var(--ui-spacing-2)}.ui-stack--spacing-md{gap:var(--ui-spacing-4)}.ui-stack--spacing-lg{gap:var(--ui-spacing-6)}.ui-stack--spacing-xl{gap:var(--ui-spacing-8)}.ui-stack--align-start{align-items:flex-start}.ui-stack--align-center{align-items:center}.ui-stack--align-end{align-items:flex-end}.ui-stack--align-stretch{align-items:stretch}.ui-stack--justify-start{justify-content:flex-start}.ui-stack--justify-center{justify-content:center}.ui-stack--justify-end{justify-content:flex-end}.ui-stack--justify-between{justify-content:space-between}.ui-stack--justify-around{justify-content:space-around}.ui-stack--justify-evenly{justify-content:space-evenly}.ui-stack--wrap{flex-wrap:wrap}.ui-card{background-color:var(--ui-color-surface);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);overflow:hidden}.ui-card--padding-sm .ui-card__header,.ui-card--padding-sm .ui-card__body,.ui-card--padding-sm .ui-card__footer{padding:var(--ui-spacing-3)}.ui-card--padding-md .ui-card__header,.ui-card--padding-md .ui-card__body,.ui-card--padding-md .ui-card__footer{padding:var(--ui-spacing-4)}.ui-card--padding-lg .ui-card__header,.ui-card--padding-lg .ui-card__body,.ui-card--padding-lg .ui-card__footer{padding:var(--ui-spacing-6)}.ui-card--shadow{box-shadow:var(--ui-shadow-md);border-color:transparent}.ui-card--hoverable{transition:box-shadow var(--ui-transition-normal),border-color var(--ui-transition-normal);cursor:pointer}.ui-card--hoverable:hover{box-shadow:var(--ui-shadow-lg);border-color:var(--ui-color-border-hover)}.ui-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ui-spacing-4);border-bottom:1px solid var(--ui-color-border)}.ui-card__header:last-child{border-bottom:none}.ui-card__header-content{flex:1;min-width:0}.ui-card__title{font-size:var(--ui-font-size-base);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);margin:0}.ui-card__subtitle{font-size:var(--ui-font-size-sm);color:var(--ui-color-text-secondary);margin:var(--ui-spacing-1) 0 0 0}.ui-card__header-actions{flex-shrink:0}.ui-card__body{color:var(--ui-color-text)}.ui-card__footer{border-top:1px solid var(--ui-color-border);background-color:var(--ui-color-gray-50)}.ui-card__footer:first-child{border-top:none}.ui-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--ui-spacing-2);border:none;border-radius:var(--ui-radius-md);font-family:var(--ui-font-family);font-weight:var(--ui-font-weight-medium);cursor:pointer;transition:background-color var(--ui-transition-normal),color var(--ui-transition-normal),border-color var(--ui-transition-normal),box-shadow var(--ui-transition-normal);position:relative}.ui-button:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}.ui-button:disabled{opacity:.5;cursor:not-allowed}.ui-button--sm{padding:var(--ui-spacing-1) var(--ui-spacing-3);font-size:var(--ui-font-size-xs);min-height:1.75rem}.ui-button--md{padding:var(--ui-spacing-2) var(--ui-spacing-4);font-size:var(--ui-font-size-sm);min-height:2.25rem}.ui-button--lg{padding:var(--ui-spacing-3) var(--ui-spacing-6);font-size:var(--ui-font-size-base);min-height:2.75rem}.ui-button--primary{background-color:var(--ui-color-primary);color:var(--ui-color-text-inverse)}.ui-button--primary:hover:not(:disabled){background-color:var(--ui-color-primary-hover)}.ui-button--secondary{background-color:var(--ui-color-surface);color:var(--ui-color-text);border:1px solid var(--ui-color-border)}.ui-button--secondary:hover:not(:disabled){background-color:var(--ui-color-gray-100);border-color:var(--ui-color-border-hover)}.ui-button--danger{background-color:var(--ui-color-error);color:var(--ui-color-text-inverse)}.ui-button--danger:hover:not(:disabled){background-color:var(--ui-color-error-hover)}.ui-button--ghost{background-color:transparent;color:var(--ui-color-text)}.ui-button--ghost:hover:not(:disabled){background-color:var(--ui-color-gray-100)}.ui-button--full-width{width:100%}.ui-button--loading{cursor:wait}.ui-button__spinner{position:absolute;width:1em;height:1em;border:2px solid currentColor;border-right-color:transparent;border-radius:var(--ui-radius-full);animation:ui-button-spin .6s linear infinite}.ui-button__content--hidden{visibility:hidden}@keyframes ui-button-spin{to{transform:rotate(360deg)}}.ui-table-container{background-color:var(--ui-color-surface);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);overflow:auto}.ui-table{width:100%;border-collapse:collapse;font-size:var(--ui-font-size-sm)}.ui-table--fixed{table-layout:fixed}.ui-table--sm .ui-table__head-cell,.ui-table--sm .ui-table__cell{padding:var(--ui-spacing-2) var(--ui-spacing-3)}.ui-table--md .ui-table__head-cell,.ui-table--md .ui-table__cell{padding:var(--ui-spacing-3) var(--ui-spacing-4)}.ui-table--lg .ui-table__head-cell,.ui-table--lg .ui-table__cell{padding:var(--ui-spacing-4) var(--ui-spacing-5)}.ui-table__header{background-color:var(--ui-color-gray-50)}.ui-table__head-cell{text-align:left;font-weight:var(--ui-font-weight-medium);font-size:var(--ui-font-size-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--ui-color-text-secondary);border-bottom:1px solid var(--ui-color-border);white-space:nowrap}.ui-table__head-cell--sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.ui-table__head-cell--sortable:hover{color:var(--ui-color-text);background-color:var(--ui-color-gray-100)}.ui-table__head-cell--sortable:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}.ui-table__head-cell-content{display:inline-flex;align-items:center;gap:var(--ui-spacing-1)}.ui-table__sort-icon{opacity:.5;font-size:var(--ui-font-size-xs)}.ui-table__head-cell--sortable:hover .ui-table__sort-icon{opacity:1}.ui-table__cell{color:var(--ui-color-text);border-bottom:1px solid var(--ui-color-border)}.ui-table__cell--truncate{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-table__row:last-child .ui-table__cell{border-bottom:none}.ui-table__row--selected{background-color:var(--ui-color-primary-light)}.ui-table--striped .ui-table__body .ui-table__row:nth-child(2n){background-color:var(--ui-color-gray-50)}.ui-table--hoverable .ui-table__body .ui-table__row:hover{background-color:var(--ui-color-gray-100)}.ui-table--hoverable.ui-table--striped .ui-table__body .ui-table__row:nth-child(2n):hover{background-color:var(--ui-color-gray-100)}.ui-table__footer{background-color:var(--ui-color-gray-50)}.ui-table__footer .ui-table__cell{border-bottom:none;border-top:1px solid var(--ui-color-border)}.ui-input{font-family:var(--ui-font-family);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md);background-color:var(--ui-color-surface);color:var(--ui-color-text);transition:border-color var(--ui-transition-normal),box-shadow var(--ui-transition-normal)}.ui-input:focus{outline:none;border-color:var(--ui-color-primary);box-shadow:0 0 0 3px var(--ui-color-primary-light)}.ui-input:disabled{background-color:var(--ui-color-gray-100);color:var(--ui-color-text-muted);cursor:not-allowed}.ui-input::placeholder{color:var(--ui-color-text-muted)}.ui-input--sm{padding:var(--ui-spacing-1) var(--ui-spacing-2);font-size:var(--ui-font-size-xs);min-height:1.75rem}.ui-input--md{padding:var(--ui-spacing-2) var(--ui-spacing-3);font-size:var(--ui-font-size-sm);min-height:2.25rem}.ui-input--lg{padding:var(--ui-spacing-3) var(--ui-spacing-4);font-size:var(--ui-font-size-base);min-height:2.75rem}.ui-input--error{border-color:var(--ui-color-error)}.ui-input--error:focus{border-color:var(--ui-color-error);box-shadow:0 0 0 3px var(--ui-color-error-light)}.ui-input--full-width{width:100%}.ui-select{font-family:var(--ui-font-family);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md);background-color:var(--ui-color-surface);color:var(--ui-color-text);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%2364748b' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.25rem;padding-right:2.5rem;transition:border-color var(--ui-transition-normal),box-shadow var(--ui-transition-normal)}.ui-select:focus{outline:none;border-color:var(--ui-color-primary);box-shadow:0 0 0 3px var(--ui-color-primary-light)}.ui-select:disabled{background-color:var(--ui-color-gray-100);color:var(--ui-color-text-muted);cursor:not-allowed}.ui-select--sm{padding:var(--ui-spacing-1) var(--ui-spacing-2);padding-right:2rem;font-size:var(--ui-font-size-xs);min-height:1.75rem}.ui-select--md{padding:var(--ui-spacing-2) var(--ui-spacing-3);padding-right:2.5rem;font-size:var(--ui-font-size-sm);min-height:2.25rem}.ui-select--lg{padding:var(--ui-spacing-3) var(--ui-spacing-4);padding-right:3rem;font-size:var(--ui-font-size-base);min-height:2.75rem}.ui-select--error{border-color:var(--ui-color-error)}.ui-select--error:focus{border-color:var(--ui-color-error);box-shadow:0 0 0 3px var(--ui-color-error-light)}.ui-select--full-width{width:100%}.ui-textarea{font-family:var(--ui-font-family);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md);background-color:var(--ui-color-surface);color:var(--ui-color-text);transition:border-color var(--ui-transition-normal),box-shadow var(--ui-transition-normal);min-height:80px}.ui-textarea:focus{outline:none;border-color:var(--ui-color-primary);box-shadow:0 0 0 3px var(--ui-color-primary-light)}.ui-textarea:disabled{background-color:var(--ui-color-gray-100);color:var(--ui-color-text-muted);cursor:not-allowed}.ui-textarea::placeholder{color:var(--ui-color-text-muted)}.ui-textarea--sm{padding:var(--ui-spacing-1) var(--ui-spacing-2);font-size:var(--ui-font-size-xs)}.ui-textarea--md{padding:var(--ui-spacing-2) var(--ui-spacing-3);font-size:var(--ui-font-size-sm)}.ui-textarea--lg{padding:var(--ui-spacing-3) var(--ui-spacing-4);font-size:var(--ui-font-size-base)}.ui-textarea--error{border-color:var(--ui-color-error)}.ui-textarea--error:focus{border-color:var(--ui-color-error);box-shadow:0 0 0 3px var(--ui-color-error-light)}.ui-textarea--full-width{width:100%}.ui-checkbox-container{display:inline-flex;align-items:center;gap:var(--ui-spacing-2);cursor:pointer;-webkit-user-select:none;user-select:none}.ui-checkbox{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.ui-checkbox__checkmark{position:relative;display:inline-block;width:1rem;height:1rem;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-sm);background-color:var(--ui-color-surface);flex-shrink:0;transition:background-color var(--ui-transition-normal),border-color var(--ui-transition-normal)}.ui-checkbox-container:hover .ui-checkbox__checkmark{border-color:var(--ui-color-border-hover)}.ui-checkbox:focus-visible+.ui-checkbox__checkmark{box-shadow:var(--ui-focus-ring)}.ui-checkbox:checked+.ui-checkbox__checkmark{background-color:var(--ui-color-primary);border-color:var(--ui-color-primary)}.ui-checkbox:checked+.ui-checkbox__checkmark:after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.ui-checkbox:disabled+.ui-checkbox__checkmark{background-color:var(--ui-color-gray-100);cursor:not-allowed}.ui-checkbox:disabled:checked+.ui-checkbox__checkmark{background-color:var(--ui-color-gray-400);border-color:var(--ui-color-gray-400)}.ui-checkbox__label{font-size:var(--ui-font-size-sm);color:var(--ui-color-text)}.ui-checkbox:disabled~.ui-checkbox__label{color:var(--ui-color-text-muted)}.ui-checkbox-container--error .ui-checkbox__checkmark{border-color:var(--ui-color-error)}.ui-label{display:block;font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-medium);color:var(--ui-color-text);margin-bottom:var(--ui-spacing-1)}.ui-label__required{color:var(--ui-color-error);margin-left:var(--ui-spacing-1)}.ui-form-field{margin-bottom:var(--ui-spacing-4)}.ui-form-field:last-child{margin-bottom:0}.ui-form-field__hint{margin:var(--ui-spacing-1) 0 0 0;font-size:var(--ui-font-size-xs);color:var(--ui-color-text-secondary)}.ui-form-field__error{margin:var(--ui-spacing-1) 0 0 0;font-size:var(--ui-font-size-xs);color:var(--ui-color-error)}.ui-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--ui-z-modal-backdrop);display:flex;align-items:center;justify-content:center;padding:var(--ui-spacing-4);background-color:#00000080;animation:ui-modal-fade-in var(--ui-transition-normal)}@keyframes ui-modal-fade-in{0%{opacity:0}to{opacity:1}}.ui-modal{position:relative;z-index:var(--ui-z-modal);display:flex;flex-direction:column;max-height:calc(100vh - var(--ui-spacing-8));background-color:var(--ui-color-surface);border-radius:var(--ui-radius-lg);box-shadow:var(--ui-shadow-xl);animation:ui-modal-slide-in var(--ui-transition-normal)}@keyframes ui-modal-slide-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.ui-modal--sm{width:100%;max-width:400px}.ui-modal--md{width:100%;max-width:500px}.ui-modal--lg{width:100%;max-width:700px}.ui-modal--xl{width:100%;max-width:900px}.ui-modal--full{width:calc(100vw - var(--ui-spacing-8));max-width:none;height:calc(100vh - var(--ui-spacing-8))}.ui-modal__header{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-spacing-4);padding:var(--ui-spacing-4) var(--ui-spacing-6);border-bottom:1px solid var(--ui-color-border);flex-shrink:0}.ui-modal__title{margin:0;font-size:var(--ui-font-size-lg);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text)}.ui-modal__close{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;margin:calc(-1 * var(--ui-spacing-1));border:none;border-radius:var(--ui-radius-md);background-color:transparent;color:var(--ui-color-text-secondary);cursor:pointer;transition:background-color var(--ui-transition-normal),color var(--ui-transition-normal)}.ui-modal__close:hover{background-color:var(--ui-color-gray-100);color:var(--ui-color-text)}.ui-modal__close:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}.ui-modal__body{flex:1;overflow-y:auto;padding:var(--ui-spacing-6);color:var(--ui-color-text)}.ui-modal__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-3);padding:var(--ui-spacing-4) var(--ui-spacing-6);border-top:1px solid var(--ui-color-border);background-color:var(--ui-color-gray-50);flex-shrink:0}.ui-badge{display:inline-flex;align-items:center;font-weight:var(--ui-font-weight-medium);border-radius:var(--ui-radius-full);white-space:nowrap}.ui-badge--sm{padding:var(--ui-spacing-0) var(--ui-spacing-2);font-size:var(--ui-font-size-xs);line-height:1.5}.ui-badge--md{padding:var(--ui-spacing-1) var(--ui-spacing-3);font-size:var(--ui-font-size-xs);line-height:1.5}.ui-badge--lg{padding:var(--ui-spacing-2) var(--ui-spacing-4);font-size:var(--ui-font-size-sm);line-height:1.5}.ui-badge--default{background-color:var(--ui-color-gray-100);color:var(--ui-color-gray-700)}.ui-badge--primary{background-color:var(--ui-color-primary-light);color:var(--ui-color-primary-hover)}.ui-badge--success{background-color:var(--ui-color-success-light);color:var(--ui-color-success-hover)}.ui-badge--warning{background-color:var(--ui-color-warning-light);color:var(--ui-color-warning-hover)}.ui-badge--error{background-color:var(--ui-color-error-light);color:var(--ui-color-error-hover)}.ui-alert{display:flex;align-items:flex-start;gap:var(--ui-spacing-3);padding:var(--ui-spacing-4);border-radius:var(--ui-radius-lg);border:1px solid}.ui-alert--info{background-color:var(--ui-color-primary-light);border-color:var(--ui-color-primary);color:var(--ui-color-primary-hover)}.ui-alert--success{background-color:var(--ui-color-success-light);border-color:var(--ui-color-success);color:var(--ui-color-success-hover)}.ui-alert--warning{background-color:var(--ui-color-warning-light);border-color:var(--ui-color-warning);color:var(--ui-color-warning-hover)}.ui-alert--error{background-color:var(--ui-color-error-light);border-color:var(--ui-color-error);color:var(--ui-color-error-hover)}.ui-alert__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.ui-alert__content{flex:1;min-width:0}.ui-alert__title{font-weight:var(--ui-font-weight-semibold);font-size:var(--ui-font-size-sm);margin-bottom:var(--ui-spacing-1)}.ui-alert__message{font-size:var(--ui-font-size-sm);opacity:.9}.ui-alert__title+.ui-alert__message{margin-top:var(--ui-spacing-1)}.ui-alert__dismiss{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;padding:0;border:none;border-radius:var(--ui-radius-sm);background-color:transparent;color:currentColor;opacity:.7;cursor:pointer;transition:opacity var(--ui-transition-normal),background-color var(--ui-transition-normal)}.ui-alert__dismiss:hover{opacity:1;background-color:#0000001a}.ui-alert__dismiss:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}.ui-spinner{display:inline-flex;flex-direction:column;align-items:center;gap:var(--ui-spacing-2);color:var(--ui-color-primary)}.ui-spinner__svg{animation:ui-spinner-rotate 1s linear infinite}.ui-spinner__track{opacity:.25}.ui-spinner__head{opacity:1}.ui-spinner__label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ui-spinner--sm .ui-spinner__svg{width:1rem;height:1rem}.ui-spinner--md .ui-spinner__svg{width:1.5rem;height:1.5rem}.ui-spinner--lg .ui-spinner__svg{width:2.5rem;height:2.5rem}@keyframes ui-spinner-rotate{to{transform:rotate(360deg)}}.ui-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--ui-spacing-8)}.ui-empty-state__icon{margin-bottom:var(--ui-spacing-4);color:var(--ui-color-text-muted)}.ui-empty-state__icon svg{width:3rem;height:3rem}.ui-empty-state__title{margin:0;font-size:var(--ui-font-size-lg);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text)}.ui-empty-state__description{margin:var(--ui-spacing-2) 0 0 0;font-size:var(--ui-font-size-sm);color:var(--ui-color-text-secondary);max-width:400px}.ui-empty-state__action{margin-top:var(--ui-spacing-6)}.layout{min-height:100vh;display:flex;flex-direction:column}.header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-8);background-color:var(--ui-color-surface);border-bottom:1px solid var(--ui-color-border)}.header-brand h1{font-size:var(--ui-font-size-xl);color:var(--ui-color-text)}.nav{display:flex;gap:var(--ui-spacing-2)}.nav-link{padding:var(--ui-spacing-2) var(--ui-spacing-4);color:var(--ui-color-text-secondary);font-weight:var(--ui-font-weight-medium);border-radius:var(--ui-radius-md);transition:background-color var(--ui-transition-normal),color var(--ui-transition-normal)}.nav-link:hover{background-color:var(--ui-color-background);color:var(--ui-color-text);text-decoration:none}.nav-link--active{background-color:var(--ui-color-primary);color:var(--ui-color-text-inverse)}.nav-link--active:hover{background-color:var(--ui-color-primary-hover);color:var(--ui-color-text-inverse)}.main{flex:1;padding:var(--ui-spacing-8)}.user-menu{display:flex;align-items:center;gap:var(--ui-spacing-4)}.user-email{color:var(--ui-color-text-secondary);font-size:var(--ui-font-size-sm)}.logout-button{padding:var(--ui-spacing-2) var(--ui-spacing-4);background-color:transparent;color:var(--ui-color-text-secondary);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md);font-size:var(--ui-font-size-sm);cursor:pointer;transition:background-color var(--ui-transition-normal),color var(--ui-transition-normal),border-color var(--ui-transition-normal)}.logout-button:hover{background-color:var(--ui-color-background);color:var(--ui-color-text);border-color:var(--ui-color-text-secondary)}.discovery-page{padding:2rem;max-width:1200px;margin:0 auto}.discovery-header{margin-bottom:2rem}.discovery-header h1{font-size:2rem;font-weight:600;color:var(--color-text-primary);margin-bottom:.5rem}.discovery-header .subtitle{color:var(--color-text-secondary);font-size:1rem}.discovery-form{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:8px;padding:1.5rem;margin-bottom:2rem}.discovery-form h2{font-size:1.25rem;font-weight:600;margin-bottom:1rem;color:var(--color-text-primary)}.form-row{display:flex;gap:1rem;margin-bottom:1rem}.form-row label{flex:1;display:flex;flex-direction:column;gap:.5rem;font-size:.875rem;color:var(--color-text-secondary)}.form-row input,.form-row select{padding:.75rem;border:1px solid var(--color-border);border-radius:6px;font-size:1rem;background:var(--color-bg-primary);color:var(--color-text-primary)}.form-row input:focus,.form-row select:focus{outline:none;border-color:var(--color-accent)}.form-actions{display:flex;gap:1rem;margin-top:1.5rem}.error-message{background:var(--color-error-bg);color:var(--color-error);padding:.75rem 1rem;border-radius:6px;margin-top:1rem}.strategy-cards h2{font-size:1.25rem;font-weight:600;margin-bottom:1rem;color:var(--color-text-primary)}.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.strategy-card{background:var(--color-bg-secondary);border:2px solid var(--color-border);border-radius:8px;padding:1.25rem;cursor:pointer;transition:all .2s ease}.strategy-card:hover{border-color:var(--color-accent)}.strategy-card.selected{border-color:var(--color-accent);background:var(--color-accent-bg)}.strategy-card h3{font-size:1rem;font-weight:600;margin-bottom:.5rem;color:var(--color-text-primary)}.strategy-card p{font-size:.875rem;color:var(--color-text-secondary);line-height:1.4}.active-tasks,.task-results{margin-top:2rem}.active-tasks h2,.task-results h2{font-size:1.25rem;font-weight:600;margin-bottom:1rem;color:var(--color-text-primary)}.tasks-list{display:flex;flex-direction:column;gap:.75rem}.task-item{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:8px;padding:1rem}.task-item.running{border-left:3px solid var(--color-accent)}.task-header{display:flex;justify-content:space-between;margin-bottom:.5rem}.task-type{font-weight:600;color:var(--color-text-primary)}.task-device{color:var(--color-text-secondary)}.task-status{display:flex;align-items:center;gap:.5rem;color:var(--color-text-secondary)}.spinner{width:16px;height:16px;border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.result-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:8px;padding:1.25rem;margin-bottom:1rem}.result-card.success{border-left:3px solid var(--color-success)}.result-card.failure{border-left:3px solid var(--color-error)}.result-header{display:flex;justify-content:space-between;margin-bottom:1rem}.result-status{font-weight:600;text-transform:uppercase;font-size:.75rem;padding:.25rem .5rem;border-radius:4px;background:var(--color-bg-tertiary)}.result-id{color:var(--color-text-tertiary);font-family:monospace}.bakeoff-result .winner{font-size:1.125rem;margin-bottom:1rem;padding:.75rem;background:var(--color-accent-bg);border-radius:6px}.comparison-table{width:100%;border-collapse:collapse}.comparison-table th,.comparison-table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--color-border)}.comparison-table th{font-weight:600;color:var(--color-text-secondary);font-size:.875rem}.comparison-table tr.target-found{background:var(--color-success-bg)}.comparison-table tr.winner{background:var(--ui-color-blue-50);font-weight:600}.quality-legend{margin-top:.5rem;font-size:.75rem;color:var(--color-text-tertiary);font-style:italic}.single-result{display:flex;flex-direction:column;gap:1rem}.result-summary{display:flex;gap:2rem;flex-wrap:wrap}.result-metrics{display:flex;gap:1.5rem;color:var(--color-text-secondary);font-size:.875rem}.documents-list h4{font-size:.875rem;font-weight:600;margin-bottom:.5rem;color:var(--color-text-primary)}.documents-list ul{list-style:none;padding:0}.documents-list li{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;border-bottom:1px solid var(--color-border)}.documents-list a{color:var(--color-accent);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.documents-list a:hover{text-decoration:underline}.doc-type{font-size:.75rem;padding:.125rem .5rem;background:var(--color-bg-tertiary);border-radius:4px;color:var(--color-text-secondary)}.result-error{color:var(--color-error);padding:.75rem;background:var(--color-error-bg);border-radius:6px}.settings-page{padding:2rem;max-width:900px;margin:0 auto}.settings-header{margin-bottom:2rem}.settings-header h1{font-size:2rem;font-weight:600;color:var(--color-text-primary);margin-bottom:.5rem}.settings-header .subtitle{color:var(--color-text-secondary);font-size:1rem}.settings-section{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}.settings-section h2{font-size:1.25rem;font-weight:600;margin-bottom:.5rem;color:var(--color-text-primary)}.section-desc{color:var(--color-text-secondary);font-size:.875rem;margin-bottom:1.5rem}.settings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.setting-group{display:flex;flex-direction:column;gap:.25rem}.setting-group.full-width{grid-column:1 / -1}.setting-group label{display:flex;flex-direction:column;gap:.5rem;font-size:.875rem;font-weight:500;color:var(--color-text-primary)}.setting-group input[type=text],.setting-group input[type=password],.setting-group select{padding:.75rem;border:1px solid var(--color-border);border-radius:6px;font-size:1rem;background:var(--color-bg-primary);color:var(--color-text-primary)}.setting-group input:focus,.setting-group select:focus{outline:none;border-color:var(--color-accent)}.setting-group input:disabled,.setting-group select:disabled{opacity:.6;cursor:not-allowed}.checkbox-label{flex-direction:row!important;align-items:center;gap:.75rem!important}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-accent)}.setting-hint{font-size:.75rem;color:var(--color-text-tertiary)}.settings-actions{display:flex;gap:1rem;margin-top:1.5rem}.btn{padding:.75rem 1.5rem;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover)}.btn-secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-secondary)}.btn:disabled{opacity:.5;cursor:not-allowed}.alert{padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem}.alert-error{background:var(--color-error-bg);color:var(--color-error)}.alert-success{background:var(--color-success-bg);color:var(--color-success)}.alert-info{background:var(--color-accent-bg);color:var(--color-accent)}.test-result{margin-top:1rem;padding:1rem;border-radius:6px;display:flex;flex-direction:column;gap:.5rem}.test-result.success{background:var(--color-success-bg);border:1px solid var(--color-success)}.test-result.error{background:var(--color-error-bg);border:1px solid var(--color-error)}.test-status{font-weight:600}.test-detail{font-size:.875rem;color:var(--color-text-secondary)}.test-response{font-family:monospace;font-size:.875rem}.test-error{color:var(--color-error)}.status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.status-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:8px;padding:1rem}.status-card h3{font-size:1rem;font-weight:600;margin-bottom:.75rem;color:var(--color-text-primary)}.status-indicator{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;font-weight:500}.status-dot{width:10px;height:10px;border-radius:50%}.status-dot.active{background:var(--color-success)}.status-dot.inactive{background:var(--color-text-tertiary)}.status-detail{font-size:.875rem;color:var(--color-text-secondary);line-height:1.6}.loading{text-align:center;padding:3rem;color:var(--color-text-secondary)}:root{--color-bg-primary: var(--ui-color-surface);--color-bg-secondary: var(--ui-color-gray-50);--color-bg-tertiary: var(--ui-color-gray-100);--color-text-primary: var(--ui-color-text);--color-text-secondary: var(--ui-color-text-secondary);--color-text-tertiary: var(--ui-color-text-muted);--color-border: var(--ui-color-border);--color-accent: var(--ui-color-primary);--color-accent-hover: var(--ui-color-primary-hover);--color-accent-bg: var(--ui-color-primary-light);--color-success: var(--ui-color-success);--color-success-bg: var(--ui-color-success-light);--color-error: var(--ui-color-error);--color-error-bg: var(--ui-color-error-light);--color-warning: var(--ui-color-warning);--color-warning-bg: var(--ui-color-warning-light)}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--ui-font-family);font-size:var(--ui-font-size-sm);line-height:var(--ui-line-height-normal);color:var(--ui-color-text);background-color:var(--ui-color-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{margin:0;font-weight:var(--ui-font-weight-semibold)}a{color:var(--ui-color-primary);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit}
