:root{--primary-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--primary-color: #667eea;--primary-dark: #764ba2;--primary-light: #818cf8;--secondary-color: #ff9800;--secondary-light: #ffb74d;--secondary-dark: #f57c00;--success-color: #4caf50;--success-light: #90ee90;--warning-color: #ffd700;--error-color: #f44336;--info-color: #2196f3;--gray-50: #fafafa;--gray-100: #f5f5f5;--gray-200: #eeeeee;--gray-300: #e0e0e0;--gray-400: #bdbdbd;--gray-500: #9e9e9e;--gray-600: #757575;--gray-700: #616161;--gray-800: #424242;--gray-900: #212121;--bg-primary: #ffffff;--bg-secondary: #f8f9fa;--bg-tertiary: #f5f7fa;--bg-overlay: rgba(0, 0, 0, .7);--text-primary: #333333;--text-secondary: #666666;--text-tertiary: #999999;--text-inverse: #ffffff;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .1);--shadow-md: 0 4px 8px rgba(0, 0, 0, .15);--shadow-lg: 0 10px 30px rgba(0, 0, 0, .2);--shadow-xl: 0 20px 60px rgba(0, 0, 0, .3);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--transition-fast: .2s ease-out;--transition-base: .3s ease-out;--transition-slow: .4s ease-out;--z-dropdown: 100;--z-sticky: 200;--z-overlay: 900;--z-modal: 1000;--z-popover: 1100;--z-tooltip: 1200;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--space-3xl: 64px}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:1rem;line-height:1.6;color:var(--text-primary);background-color:var(--bg-secondary);min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.3;color:var(--text-primary);letter-spacing:-.5px}h1{font-size:2.5rem;margin-bottom:1.5rem}h2{font-size:2rem;margin-bottom:1.25rem}h3{font-size:1.5rem;margin-bottom:1rem}h4{font-size:1.25rem;margin-bottom:.875rem}h5{font-size:1.125rem;margin-bottom:.75rem}h6{font-size:1rem;margin-bottom:.625rem}p{margin-bottom:1rem;color:var(--text-secondary)}a{color:var(--primary-color);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--primary-dark)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-flex{display:flex!important}.d-grid{display:grid!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-wrap{flex-wrap:wrap!important}.justify-start{justify-content:flex-start!important}.justify-center{justify-content:center!important}.justify-end{justify-content:flex-end!important}.justify-between{justify-content:space-between!important}.align-start{align-items:flex-start!important}.align-center{align-items:center!important}.align-end{align-items:flex-end!important}.flex-1{flex:1!important}.m-xs{margin:var(--space-xs)!important}.mt-xs{margin-top:var(--space-xs)!important}.mr-xs{margin-right:var(--space-xs)!important}.mb-xs{margin-bottom:var(--space-xs)!important}.ml-xs{margin-left:var(--space-xs)!important}.mx-xs{margin-left:var(--space-xs)!important;margin-right:var(--space-xs)!important}.my-xs{margin-top:var(--space-xs)!important;margin-bottom:var(--space-xs)!important}.p-xs{padding:var(--space-xs)!important}.pt-xs{padding-top:var(--space-xs)!important}.pr-xs{padding-right:var(--space-xs)!important}.pb-xs{padding-bottom:var(--space-xs)!important}.pl-xs{padding-left:var(--space-xs)!important}.px-xs{padding-left:var(--space-xs)!important;padding-right:var(--space-xs)!important}.py-xs{padding-top:var(--space-xs)!important;padding-bottom:var(--space-xs)!important}.m-sm{margin:var(--space-sm)!important}.mt-sm{margin-top:var(--space-sm)!important}.mr-sm{margin-right:var(--space-sm)!important}.mb-sm{margin-bottom:var(--space-sm)!important}.ml-sm{margin-left:var(--space-sm)!important}.mx-sm{margin-left:var(--space-sm)!important;margin-right:var(--space-sm)!important}.my-sm{margin-top:var(--space-sm)!important;margin-bottom:var(--space-sm)!important}.p-sm{padding:var(--space-sm)!important}.pt-sm{padding-top:var(--space-sm)!important}.pr-sm{padding-right:var(--space-sm)!important}.pb-sm{padding-bottom:var(--space-sm)!important}.pl-sm{padding-left:var(--space-sm)!important}.px-sm{padding-left:var(--space-sm)!important;padding-right:var(--space-sm)!important}.py-sm{padding-top:var(--space-sm)!important;padding-bottom:var(--space-sm)!important}.m-md{margin:var(--space-md)!important}.mt-md{margin-top:var(--space-md)!important}.mr-md{margin-right:var(--space-md)!important}.mb-md{margin-bottom:var(--space-md)!important}.ml-md{margin-left:var(--space-md)!important}.mx-md{margin-left:var(--space-md)!important;margin-right:var(--space-md)!important}.my-md{margin-top:var(--space-md)!important;margin-bottom:var(--space-md)!important}.p-md{padding:var(--space-md)!important}.pt-md{padding-top:var(--space-md)!important}.pr-md{padding-right:var(--space-md)!important}.pb-md{padding-bottom:var(--space-md)!important}.pl-md{padding-left:var(--space-md)!important}.px-md{padding-left:var(--space-md)!important;padding-right:var(--space-md)!important}.py-md{padding-top:var(--space-md)!important;padding-bottom:var(--space-md)!important}.m-lg{margin:var(--space-lg)!important}.mt-lg{margin-top:var(--space-lg)!important}.mr-lg{margin-right:var(--space-lg)!important}.mb-lg{margin-bottom:var(--space-lg)!important}.ml-lg{margin-left:var(--space-lg)!important}.mx-lg{margin-left:var(--space-lg)!important;margin-right:var(--space-lg)!important}.my-lg{margin-top:var(--space-lg)!important;margin-bottom:var(--space-lg)!important}.p-lg{padding:var(--space-lg)!important}.pt-lg{padding-top:var(--space-lg)!important}.pr-lg{padding-right:var(--space-lg)!important}.pb-lg{padding-bottom:var(--space-lg)!important}.pl-lg{padding-left:var(--space-lg)!important}.px-lg{padding-left:var(--space-lg)!important;padding-right:var(--space-lg)!important}.py-lg{padding-top:var(--space-lg)!important;padding-bottom:var(--space-lg)!important}.m-xl{margin:var(--space-xl)!important}.mt-xl{margin-top:var(--space-xl)!important}.mr-xl{margin-right:var(--space-xl)!important}.mb-xl{margin-bottom:var(--space-xl)!important}.ml-xl{margin-left:var(--space-xl)!important}.mx-xl{margin-left:var(--space-xl)!important;margin-right:var(--space-xl)!important}.my-xl{margin-top:var(--space-xl)!important;margin-bottom:var(--space-xl)!important}.p-xl{padding:var(--space-xl)!important}.pt-xl{padding-top:var(--space-xl)!important}.pr-xl{padding-right:var(--space-xl)!important}.pb-xl{padding-bottom:var(--space-xl)!important}.pl-xl{padding-left:var(--space-xl)!important}.px-xl{padding-left:var(--space-xl)!important;padding-right:var(--space-xl)!important}.py-xl{padding-top:var(--space-xl)!important;padding-bottom:var(--space-xl)!important}.m-2xl{margin:var(--space-2xl)!important}.mt-2xl{margin-top:var(--space-2xl)!important}.mr-2xl{margin-right:var(--space-2xl)!important}.mb-2xl{margin-bottom:var(--space-2xl)!important}.ml-2xl{margin-left:var(--space-2xl)!important}.mx-2xl{margin-left:var(--space-2xl)!important;margin-right:var(--space-2xl)!important}.my-2xl{margin-top:var(--space-2xl)!important;margin-bottom:var(--space-2xl)!important}.p-2xl{padding:var(--space-2xl)!important}.pt-2xl{padding-top:var(--space-2xl)!important}.pr-2xl{padding-right:var(--space-2xl)!important}.pb-2xl{padding-bottom:var(--space-2xl)!important}.pl-2xl{padding-left:var(--space-2xl)!important}.px-2xl{padding-left:var(--space-2xl)!important;padding-right:var(--space-2xl)!important}.py-2xl{padding-top:var(--space-2xl)!important;padding-bottom:var(--space-2xl)!important}.m-3xl{margin:var(--space-3xl)!important}.mt-3xl{margin-top:var(--space-3xl)!important}.mr-3xl{margin-right:var(--space-3xl)!important}.mb-3xl{margin-bottom:var(--space-3xl)!important}.ml-3xl{margin-left:var(--space-3xl)!important}.mx-3xl{margin-left:var(--space-3xl)!important;margin-right:var(--space-3xl)!important}.my-3xl{margin-top:var(--space-3xl)!important;margin-bottom:var(--space-3xl)!important}.p-3xl{padding:var(--space-3xl)!important}.pt-3xl{padding-top:var(--space-3xl)!important}.pr-3xl{padding-right:var(--space-3xl)!important}.pb-3xl{padding-bottom:var(--space-3xl)!important}.pl-3xl{padding-left:var(--space-3xl)!important}.px-3xl{padding-left:var(--space-3xl)!important;padding-right:var(--space-3xl)!important}.py-3xl{padding-top:var(--space-3xl)!important;padding-bottom:var(--space-3xl)!important}.text-left{text-align:left!important}.text-center{text-align:center!important}.text-right{text-align:right!important}.text-justify{text-align:justify!important}.font-light{font-weight:300!important}.font-normal{font-weight:400!important}.font-medium{font-weight:500!important}.font-semibold{font-weight:600!important}.font-bold{font-weight:700!important}.text-primary{color:var(--text-primary)!important}.text-secondary{color:var(--text-secondary)!important}.text-success{color:var(--success-color)!important}.text-warning{color:var(--warning-color)!important}.text-error{color:var(--error-color)!important}.text-info{color:var(--info-color)!important}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:12px 24px;font-size:16px;font-weight:600;line-height:1;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);text-decoration:none;white-space:nowrap}.btn:disabled{opacity:.6;cursor:not-allowed}.btn:not(:disabled):hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn:not(:disabled):active{transform:translateY(0);box-shadow:var(--shadow-sm)}.btn-primary{background:var(--primary-gradient);color:var(--text-inverse)}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#7c8aef,#8459a8)}.btn-secondary{background:var(--gray-600);color:var(--text-inverse)}.btn-secondary:hover:not(:disabled){background:var(--gray-700)}.btn-success{background:var(--success-color);color:var(--text-inverse)}.btn-success:hover:not(:disabled){background:#45a049}.btn-danger{background:var(--error-color);color:var(--text-inverse)}.btn-danger:hover:not(:disabled){background:#da190b}.btn-outline{background:transparent;color:var(--primary-color);border:2px solid var(--primary-color)}.btn-outline:hover:not(:disabled){background:var(--primary-color);color:var(--text-inverse)}.btn-ghost{background:transparent;color:var(--text-primary)}.btn-ghost:hover:not(:disabled){background:var(--gray-100)}.btn-sm{padding:8px 16px;font-size:14px}.btn-lg{padding:16px 32px;font-size:18px}.btn-icon{width:40px;height:40px;padding:0;border-radius:50%}.card{background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);overflow:hidden;transition:all var(--transition-base)}.card:hover{box-shadow:var(--shadow-xl);transform:translateY(-4px)}.card-header{padding:var(--space-lg);border-bottom:1px solid var(--gray-200);background:var(--primary-gradient);color:var(--text-inverse)}.card-header h1,.card-header h2,.card-header h3,.card-header h4,.card-header h5,.card-header h6{color:var(--text-inverse);margin-bottom:0}.card-body{padding:var(--space-lg)}.card-footer{padding:var(--space-md) var(--space-lg);border-top:1px solid var(--gray-200);background:var(--bg-secondary)}.form-group{margin-bottom:var(--space-lg)}.form-label{display:block;margin-bottom:var(--space-sm);font-size:14px;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px}.form-control{width:100%;padding:12px 16px;font-size:16px;line-height:1.5;color:var(--text-primary);background:var(--bg-primary);border:2px solid var(--gray-300);border-radius:var(--radius-md);transition:all var(--transition-fast)}.form-control:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #667eea1a}.form-control:disabled{background:var(--gray-100);cursor:not-allowed;opacity:.6}.form-control.is-invalid{border-color:var(--error-color)}.form-control.is-invalid:focus{box-shadow:0 0 0 3px #f443361a}.form-control.is-valid{border-color:var(--success-color)}.form-control.is-valid:focus{box-shadow:0 0 0 3px #4caf501a}textarea.form-control{min-height:120px;resize:vertical}select.form-control{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23333' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:40px}.form-check{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.form-check input[type=checkbox],.form-check input[type=radio]{width:20px;height:20px;flex-shrink:0;cursor:pointer}.form-check label{cursor:pointer;-webkit-user-select:none;user-select:none}.form-text{margin-top:var(--space-xs);font-size:14px;color:var(--text-tertiary)}.form-error{margin-top:var(--space-xs);font-size:14px;color:var(--error-color)}.overlay{position:fixed;inset:0;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;z-index:var(--z-overlay);animation:fadeIn var(--transition-fast);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.overlay.closing{animation:fadeOut var(--transition-fast)}.modal{background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:600px;max-height:90vh;overflow-y:auto;animation:scaleIn var(--transition-base)}.modal.closing{animation:scaleOut var(--transition-fast)}.modal-header{padding:var(--space-lg);border-bottom:1px solid var(--gray-200);display:flex;justify-content:space-between;align-items:center;background:var(--primary-gradient);color:var(--text-inverse);border-radius:var(--radius-xl) var(--radius-xl) 0 0}.modal-body{padding:var(--space-lg)}.modal-footer{padding:var(--space-md) var(--space-lg);border-top:1px solid var(--gray-200);display:flex;justify-content:flex-end;gap:var(--space-md);background:var(--bg-secondary);border-radius:0 0 var(--radius-xl) var(--radius-xl)}.alert{padding:var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-lg);display:flex;align-items:flex-start;gap:var(--space-md);animation:slideInDown var(--transition-base)}.alert .alert-icon{font-size:20px;flex-shrink:0}.alert .alert-content{flex:1}.alert .alert-title{font-weight:600;margin-bottom:var(--space-xs)}.alert .alert-message{font-size:14px;line-height:1.5}.alert-success{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border:1px solid var(--success-color);color:#1b5e20}.alert-warning{background:linear-gradient(135deg,#fff8e1,#ffecb3);border:1px solid var(--warning-color);color:#f57c00}.alert-error{background:linear-gradient(135deg,#ffebee,#ffcdd2);border:1px solid var(--error-color);color:#c62828}.alert-info{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border:1px solid var(--info-color);color:#0277bd}.badge{display:inline-flex;align-items:center;gap:var(--space-xs);padding:4px 8px;font-size:12px;font-weight:600;line-height:1;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.5px}.badge-primary{background:var(--primary-color);color:var(--text-inverse)}.badge-success{background:var(--success-color);color:var(--text-inverse)}.badge-warning{background:var(--warning-color);color:var(--text-primary)}.badge-error{background:var(--error-color);color:var(--text-inverse)}.badge-info{background:var(--info-color);color:var(--text-inverse)}.loading-spinner{width:40px;height:40px;border:3px solid var(--gray-300);border-top-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite}.loading-skeleton{background:linear-gradient(90deg,var(--gray-200) 25%,var(--gray-300) 50%,var(--gray-200) 75%);background-size:400% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}.progress{height:8px;background:var(--gray-200);border-radius:var(--radius-full);overflow:hidden}.progress .progress-bar{height:100%;background:var(--primary-gradient);transition:width var(--transition-base);position:relative}.progress .progress-bar:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 2s infinite}.table{width:100%;border-collapse:collapse;background:var(--bg-primary);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.table thead{background:var(--primary-gradient);color:var(--text-inverse)}.table thead th{padding:var(--space-md);text-align:left;font-weight:600;text-transform:uppercase;font-size:12px;letter-spacing:.5px}.table tbody tr{border-bottom:1px solid var(--gray-200);transition:background var(--transition-fast)}.table tbody tr:hover{background:var(--bg-secondary)}.table tbody tr:last-child{border-bottom:none}.table tbody td{padding:var(--space-md);color:var(--text-secondary)}.tooltip{position:relative}.tooltip:after{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(-8px);padding:8px 12px;background:var(--gray-900);color:var(--text-inverse);font-size:12px;white-space:nowrap;border-radius:var(--radius-sm);opacity:0;pointer-events:none;transition:opacity var(--transition-fast);z-index:var(--z-tooltip)}.tooltip:hover:after{opacity:1}.container{width:100%;max-width:1400px;margin:0 auto;padding:0 var(--space-lg)}.container-fluid{width:100%;padding:0 var(--space-lg)}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--space-md) * -1)}.row>*{padding:0 var(--space-md)}.col{flex:1}.col-1{flex:0 0 calc(100% * 1 / 12);max-width:calc(100% * 1 / 12)}.col-2{flex:0 0 calc(100% * 2 / 12);max-width:calc(100% * 2 / 12)}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 calc(100% * 4 / 12);max-width:calc(100% * 4 / 12)}.col-5{flex:0 0 calc(100% * 5 / 12);max-width:calc(100% * 5 / 12)}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 calc(100% * 7 / 12);max-width:calc(100% * 7 / 12)}.col-8{flex:0 0 calc(100% * 8 / 12);max-width:calc(100% * 8 / 12)}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 calc(100% * 10 / 12);max-width:calc(100% * 10 / 12)}.col-11{flex:0 0 calc(100% * 11 / 12);max-width:calc(100% * 11 / 12)}.col-12{flex:0 0 100%;max-width:100%}@media (max-width: 1400px){.container{max-width:1200px}}@media (max-width: 1200px){.container{max-width:992px}h1{font-size:2.25rem}h2{font-size:1.75rem}h3{font-size:1.375rem}}@media (max-width: 992px){.container{max-width:768px}.row{margin:0 calc(var(--space-sm) * -1)}.row>*{padding:0 var(--space-sm)}.col-md-12{flex:0 0 100%;max-width:100%}}@media (max-width: 768px){.container{max-width:576px;padding:0 var(--space-md)}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}.btn{padding:10px 20px;font-size:14px}.modal{width:95%;max-width:none;margin:var(--space-md)}.table{font-size:14px}.table thead th,.table tbody td{padding:var(--space-sm)}.hide-mobile{display:none!important}}@media (max-width: 576px){.container{max-width:100%;padding:0 var(--space-sm)}.card{border-radius:var(--radius-lg)}.card-header,.card-body,.card-footer{padding:var(--space-md)}.col-sm-12{flex:0 0 100%;max-width:100%}}@media print{body{background:#fff;color:#000}.no-print,.btn,.modal,.overlay{display:none!important}.card{box-shadow:none;border:1px solid #ddd}a{color:#000;text-decoration:underline}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;top:-40px;left:0}
