*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary: #2C3E50;--color-secondary: #34495E;--color-accent: #3498DB;--color-background: #FFFFFF;--color-surface: #F8F9FA;--color-border: #E1E8ED;--color-text: #2C3E50;--color-text-secondary: #7F8C8D;--color-success: #27AE60;--color-warning: #F39C12;--color-error: #E74C3C;--color-white: #FFFFFF;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-xxl: 48px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 2px 4px rgba(0, 0, 0, .08);--shadow-lg: 0 4px 8px rgba(0, 0, 0, .1);--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif}body{font-family:var(--font-family);background-color:var(--color-surface);color:var(--color-text);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1{font-size:32px;font-weight:700;line-height:1.25;margin-bottom:var(--spacing-md)}h2{font-size:24px;font-weight:600;line-height:1.33;margin-bottom:var(--spacing-md)}h3{font-size:20px;font-weight:600;line-height:1.4;margin-bottom:var(--spacing-sm)}p{margin-bottom:var(--spacing-md)}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-md)}.card{background:var(--color-white);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-md)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-sm) var(--spacing-lg);border:none;border-radius:var(--radius-md);font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;min-height:44px}.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn:active{transform:translateY(0)}.btn-primary{background:var(--color-primary);color:var(--color-white)}.btn-primary:hover{background:var(--color-secondary)}.btn-secondary{background:var(--color-surface);color:var(--color-text)}.btn-outline{background:transparent;border:1px solid var(--color-border);color:var(--color-primary)}.input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:16px;background:var(--color-white);transition:border-color .2s ease;min-height:44px}.input:focus{outline:none;border-color:var(--color-accent)}.input-error{border-color:var(--color-error)}.form-group{margin-bottom:var(--spacing-md)}.form-label{display:block;margin-bottom:var(--spacing-xs);font-size:14px;font-weight:500;color:var(--color-text)}.form-error{color:var(--color-error);font-size:12px;margin-top:var(--spacing-xs)}.table{width:100%;border-collapse:collapse;background:var(--color-white);border-radius:var(--radius-lg);overflow:hidden}.table th,.table td{padding:var(--spacing-md);text-align:left;border-bottom:1px solid var(--color-border)}.table th{background:var(--color-surface);font-weight:600;color:var(--color-text-secondary);font-size:14px;text-transform:uppercase;letter-spacing:.5px}.table tbody tr:hover{background:var(--color-surface)}.table tbody tr[style*="cursor: pointer"]{cursor:pointer!important}.table tbody tr[style*="cursor: pointer"]:hover{background:var(--color-surface)!important}.table tbody tr:last-child td{border-bottom:none}.badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-md);font-size:12px;font-weight:600}.badge-success{background:var(--color-success);color:var(--color-white)}.badge-warning{background:var(--color-warning);color:var(--color-white)}.badge-error{background:var(--color-error);color:var(--color-white)}.badge-info{background:var(--color-accent);color:var(--color-white)}.text-center{text-align:center}.text-right{text-align:right}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.flex{display:flex}.flex-between{display:flex;justify-content:space-between;align-items:center}.flex-center{display:flex;justify-content:center;align-items:center}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.spinner{border:3px solid var(--color-surface);border-top:3px solid var(--color-primary);border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
