.ui-page{background:var(--color-background);min-height:calc(100vh - 120px);padding:1rem;width:100%}.ui-flash{align-items:center;border-radius:var(--radius-md);display:flex;font-size:var(--type-body-sm-size);gap:8px;margin-bottom:1rem;padding:.75rem 1rem}.ui-flash--success{background:var(--color-success-light);border:1px solid var(--color-success);color:var(--color-success)}.ui-flash--error{background:var(--color-danger-light);border:1px solid var(--color-danger);color:var(--color-danger)}.ui-flash-dismiss{background:none;border:none;color:inherit;cursor:pointer;margin-left:auto;opacity:.7;padding:2px 6px}.ui-flash-dismiss:hover{opacity:1}.ui-error-banner{align-items:center;background:var(--color-danger-light);border:1px solid var(--color-danger);border-radius:var(--radius-md);color:var(--color-danger);display:flex;font-size:var(--type-body-sm-size);gap:10px;margin-bottom:1rem;padding:.75rem 1rem}.ui-skeleton-card{animation:ui-pulse 1.5s ease-in-out infinite;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);height:120px;margin-bottom:1rem}@keyframes ui-pulse{0%,to{opacity:1}50%{opacity:.5}}.ui-stats{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.ui-stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);flex:1 1 140px;padding:1rem 1.25rem;text-align:center}.ui-stat-value{color:var(--color-text);font-size:1.75rem;font-weight:var(--font-weight-bold);line-height:1}.ui-stat-label{color:var(--color-text-muted);font-size:var(--type-caption-size);font-weight:var(--font-weight-medium);letter-spacing:.04em;margin-top:4px;text-transform:uppercase}.ui-stat-card--success .ui-stat-value{color:var(--color-success)}.ui-stat-card--primary .ui-stat-value{color:var(--color-primary)}.ui-stat-card--warning .ui-stat-value{color:var(--color-warning)}.ui-stat-card--danger .ui-stat-value{color:var(--color-danger)}.ui-filters{align-items:flex-end;display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.ui-filter-group{display:flex;flex-direction:column;gap:4px;min-width:160px}.ui-filter-label{color:var(--color-text-muted);font-size:var(--type-caption-size);font-weight:var(--font-weight-semibold);letter-spacing:.04em;text-transform:uppercase}.ui-filter-input,.ui-filter-select{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--type-body-sm-size);outline:none;padding:6px 10px}.ui-filter-input:focus,.ui-filter-select:focus{border-color:var(--color-primary)}.ui-card{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-xs);overflow:hidden}.ui-card-header{align-items:center;border-bottom:1px solid var(--color-border);display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;padding:8px 16px}.ui-card-title{color:var(--color-text);font-size:var(--type-body-sm-size);font-weight:var(--type-widget-title-weight)}.ui-card-title i{margin-right:6px}.ui-card-header-right{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.ui-badge{align-items:center;border-radius:20px;display:inline-flex;font-size:11px;font-weight:var(--font-weight-semibold);gap:4px;padding:2px 10px}.ui-badge--success{background:var(--color-success-light);color:var(--color-success)}.ui-badge--info{background:var(--color-primary-light);color:var(--color-primary-active)}.ui-badge--warning{background:var(--color-warning-light);color:var(--color-warning)}.ui-badge--danger{background:var(--color-danger-light);color:var(--color-danger)}.ui-badge--secondary{background:var(--color-surface-alt);color:var(--color-text-muted)}.ui-btn{align-items:center;border:none;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-size:var(--type-body-sm-size);font-weight:var(--font-weight-semibold);gap:6px;padding:8px 16px;text-decoration:none;transition:background .15s,color .15s}.ui-btn:disabled{cursor:not-allowed;opacity:.6}.ui-btn-sm{font-size:var(--type-caption-size);padding:4px 10px}.ui-btn-primary{background:var(--color-primary);color:var(--color-surface)}.ui-btn-primary:hover:not(:disabled){background:var(--color-primary-hover);color:var(--color-surface)}.ui-btn-secondary{background:var(--color-surface-alt);border:1px solid var(--color-border);color:var(--color-text)}.ui-btn-secondary:hover:not(:disabled){background:var(--color-surface-hover)}.ui-btn-danger{background:var(--color-danger);color:var(--color-surface)}.ui-btn-danger:hover:not(:disabled){background:var(--color-danger);filter:brightness(.9)}.ui-btn-warning{background:var(--color-warning);color:var(--color-surface)}.ui-btn-warning:hover:not(:disabled){filter:brightness(.92)}.ui-btn-success{background:var(--color-success);color:var(--color-surface)}.ui-btn-success:hover:not(:disabled){filter:brightness(.95)}.ui-btn-icon{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;display:inline-flex;font-size:11px;height:28px;justify-content:center;text-decoration:none;transition:background .15s,color .15s,border-color .15s;width:28px}.ui-btn-icon:hover{background:var(--color-surface-hover)}.ui-btn-icon:disabled{cursor:not-allowed;opacity:.5}.ui-btn-icon--edit:hover,.ui-btn-icon--view:hover{border-color:var(--color-primary);color:var(--color-primary)}.ui-btn-icon--delete:hover{border-color:var(--color-danger);color:var(--color-danger)}.ui-dropdown{display:inline-flex;position:relative}.ui-dropdown-menu{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);list-style:none;margin:0;min-width:10rem;padding:.35rem 0;position:absolute;right:0;top:calc(100% + 4px);z-index:1060}.ui-dropdown-item{align-items:center;background:none;border:none;color:var(--color-text);cursor:pointer;display:flex;font-size:var(--type-body-sm-size);font-weight:500;gap:.5rem;padding:.5rem .85rem;text-align:left;width:100%}.ui-dropdown-item:hover{background:var(--color-surface-hover)}.ui-dropdown-item .fas{color:var(--color-text-muted);text-align:center;width:1rem}.ui-toggle{align-items:center;cursor:pointer;display:inline-flex;gap:10px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ui-toggle-input{height:0;opacity:0;position:absolute;width:0}.ui-toggle-track{background:var(--color-border);border-radius:11px;flex-shrink:0;height:22px;position:relative;transition:background .2s;width:40px}.ui-toggle-track:after{background:var(--color-surface);border-radius:50%;box-shadow:0 1px 3px var(--color-overlay);content:"";height:16px;left:3px;position:absolute;top:3px;transition:left .2s;width:16px}.ui-toggle-input:checked~.ui-toggle-track{background:var(--color-success)}.ui-toggle-input:checked~.ui-toggle-track:after{left:21px}.ui-toggle-input:disabled~.ui-toggle-track{cursor:not-allowed;opacity:.5}.ui-toggle-label{color:var(--color-text);font-size:var(--type-body-sm-size);font-weight:var(--font-weight-semibold)}.ui-tabs{border-bottom:2px solid var(--color-border);display:flex;gap:0;margin-bottom:1.25rem}.ui-tab{align-items:center;background:none;border:none;border-bottom:2px solid transparent;color:var(--color-text-muted);cursor:pointer;display:inline-flex;font-size:var(--type-body-sm-size);font-weight:var(--font-weight-semibold);gap:7px;margin-bottom:-2px;padding:10px 20px;transition:color .15s,border-color .15s;white-space:nowrap}.ui-tab:hover{color:var(--color-text)}.ui-tab--active{border-bottom-color:var(--color-primary);color:var(--color-primary)}.ui-tab-count{align-items:center;background:var(--color-primary);border-radius:10px;color:var(--color-surface);display:inline-flex;font-size:11px;font-weight:var(--font-weight-bold);height:20px;justify-content:center;min-width:20px;padding:0 6px}@media (max-width:480px){.ui-tab{font-size:12px;padding:10px 12px}}.ui-overview{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem;padding:1rem 1.25rem}.ui-overview-item{display:flex;flex-direction:column;gap:4px}.ui-overview-item--wide{align-items:center;flex-direction:row;gap:8px}.ui-overview-label{color:var(--color-text-muted);font-size:var(--type-caption-size);font-weight:var(--font-weight-semibold);letter-spacing:.04em;text-transform:uppercase}.ui-overview-value{color:var(--color-text);font-size:var(--type-body-sm-size)}.ui-link,.ui-overview-value{font-weight:var(--font-weight-medium)}.ui-link{color:var(--color-primary);text-decoration:none}.ui-link:hover{text-decoration:underline}.ui-muted{color:var(--color-text-muted)}.ui-empty{color:var(--color-text-disabled);font-style:italic}.ui-modal-backdrop{align-items:center;background:var(--color-overlay);display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:1050}.ui-modal{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);max-height:90vh;max-width:480px;overflow-y:auto;width:100%}.ui-modal-header{align-items:center;border-bottom:1px solid var(--color-border);display:flex;gap:.75rem;justify-content:space-between;padding:1rem 1.25rem}.ui-modal-header h3,.ui-modal-header h5{align-items:center;color:var(--color-text);display:flex;font-size:var(--type-section-title-size);font-weight:var(--font-weight-bold);gap:8px;margin:0}.ui-modal-close{background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:1rem;padding:4px}.ui-modal-close:hover{color:var(--color-text)}.ui-modal-body{padding:1.25rem}.ui-modal-footer{border-top:1px solid var(--color-border);display:flex;gap:.5rem;justify-content:flex-end;padding:1rem 1.25rem}.ui-modal-subtitle{color:var(--color-text-muted)}.ui-modal-subtitle,.ui-modal-warning{font-size:var(--type-body-sm-size);margin-bottom:1rem}.ui-modal-warning{background:var(--color-warning-light);border:1px solid var(--color-warning);border-radius:var(--radius-md);padding:.75rem}.ui-modal-error{color:var(--color-danger);font-size:var(--type-body-sm-size);margin-top:.5rem}.ui-modal-checking{align-items:center;color:var(--color-text-muted);display:flex;font-size:var(--type-body-sm-size);gap:8px}
