:root{--color-primary: #333333;--color-secondary: #666666;--color-muted: #999999;--color-border: #e0e0e0;--color-bg-light: #f8f9fa;--color-white: #ffffff;--color-accent: #007bff;--color-accent-hover: #0056b3;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--border-radius-sm: 4px;--border-radius-md: 8px;--border-width: 1px;--shadow-sm: 0 1px 3px rgba(0,0,0,.12);--shadow-md: 0 2px 4px rgba(0,0,0,.1);--shadow-lg: 0 4px 8px rgba(0,0,0,.15);--transition-fast: .2s ease;--transition-normal: .3s ease;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;color:var(--color-primary);background:var(--color-white)}.d-flex{display:flex}.d-grid{display:grid}.d-none{display:none}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.align-center{align-items:center}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--spacing-xs)}.mb-2{margin-bottom:var(--spacing-sm)}.mb-3{margin-bottom:var(--spacing-md)}.mb-4{margin-bottom:var(--spacing-lg)}.card-base{background:var(--color-white);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-md);padding:var(--spacing-lg);box-shadow:var(--shadow-md)}.hover-lift{transition:all var(--transition-normal)}.hover-lift:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.button-base{border:none;border-radius:var(--border-radius-sm);padding:var(--spacing-sm) var(--spacing-lg);font-family:inherit;font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);text-decoration:none;display:inline-block;text-align:center}.button-base:focus{outline:none;box-shadow:0 0 0 2px #007bff40}.input-base{width:100%;padding:var(--spacing-sm);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-sm);font-family:inherit}.input-base:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px #007bff40}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flex-center{display:flex;justify-content:center;align-items:center}.flex-between{display:flex;justify-content:space-between;align-items:center}
