:root{--primary-darkest: #1a237e;--primary-dark: #303f9f;--primary: #3f51b5;--primary-light: #7986cb;--primary-lighter: #c5cae9;--primary-lightest: #e8eaf6;--accent-dark: #00796b;--accent: #009688;--accent-light: #4db6ac;--accent-lighter: #b2dfdb;--success: #2e7d32;--success-light: #e8f5e9;--success-dark: #1b5e20;--warning: #f57c00;--warning-light: #fff3e0;--warning-dark: #e65100;--error: #c62828;--error-light: #ffebee;--error-dark: #b71c1c;--info: #0288d1;--info-light: #e1f5fe;--info-dark: #01579b;--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;--text-primary: var(--gray-900);--text-secondary: var(--gray-700);--text-hint: var(--gray-500);--text-disabled: var(--gray-400);--text-on-primary: #ffffff;--text-on-accent: #ffffff;--background: var(--gray-100);--surface: #ffffff;--surface-elevated: #ffffff;--border-color: var(--gray-300);--border-color-light: var(--gray-200);--divider-color: rgba(0, 0, 0, .08);--gradient-header: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 100%);--gradient-accent: linear-gradient(135deg, var(--accent-dark) 0%, var(--accent) 100%);--gradient-surface: linear-gradient(180deg, var(--surface) 0%, var(--gray-50) 100%);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1), 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07), 0 2px 4px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1), 0 4px 6px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .1), 0 10px 10px rgba(0, 0, 0, .04);--shadow-inner: inset 0 2px 4px rgba(0, 0, 0, .06);--shadow-focus: 0 0 0 3px rgba(63, 81, 181, .3);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-xxl: 48px;--spacing-xxxl: 64px;--radius-xs: 2px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--font-family-heading: "DM Sans", "Segoe UI", system-ui, sans-serif;--font-family-body: "DM Sans", "Segoe UI", system-ui, sans-serif;--font-family-mono: "JetBrains Mono", "Consolas", monospace;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--letter-spacing-tight: -.02em;--letter-spacing-normal: 0;--letter-spacing-wide: .02em;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--transition-bounce: .5s cubic-bezier(.68, -.55, .265, 1.55);--container-max-width: 1200px;--container-narrow: 800px;--container-wide: 1400px;--header-height: 64px;--footer-height: 120px;--z-dropdown: 100;--z-sticky: 200;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-tooltip: 600;--z-toast: 700}.btn,.btn-ghost,.btn-accent,.btn-secondary,.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-family:var(--font-family-body);font-size:.9375rem;font-weight:var(--font-weight-medium);line-height:1.5;text-decoration:none;border:2px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.btn:disabled,.btn-ghost:disabled,.btn-accent:disabled,.btn-secondary:disabled,.btn-primary:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn:focus-visible,.btn-ghost:focus-visible,.btn-accent:focus-visible,.btn-secondary:focus-visible,.btn-primary:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.btn svg,.btn-ghost svg,.btn-accent svg,.btn-secondary svg,.btn-primary svg{width:20px;height:20px}.btn-primary{background:var(--primary);color:var(--text-on-primary)}.btn-primary:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:var(--surface);color:var(--primary);border-color:var(--primary)}.btn-secondary:hover:not(:disabled){background:var(--primary-lightest)}.btn-accent{background:var(--accent);color:var(--text-on-accent)}.btn-accent:hover:not(:disabled){background:var(--accent-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-ghost{background:transparent;color:var(--text-primary)}.btn-ghost:hover:not(:disabled){background:var(--gray-100)}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:.875rem}.btn-sm svg{width:16px;height:16px}.btn-lg{padding:var(--spacing-md) var(--spacing-xl);font-size:1.0625rem}.btn-lg svg{width:24px;height:24px}.btn-icon{padding:var(--spacing-sm);border-radius:var(--radius-md)}.form-group{margin-bottom:var(--spacing-lg)}.form-label{display:block;margin-bottom:var(--spacing-xs);font-weight:var(--font-weight-medium);color:var(--text-primary)}.form-hint{margin-top:var(--spacing-xs);font-size:.875rem;color:var(--text-hint)}.form-input,.form-select,.form-textarea{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-family:var(--font-family-body);font-size:1rem;color:var(--text-primary);background:var(--surface);border:2px solid var(--border-color);border-radius:var(--radius-md);transition:all var(--transition-fast)}.form-input::placeholder,.form-select::placeholder,.form-textarea::placeholder{color:var(--text-hint)}.form-input:hover:not(:disabled),.form-select:hover:not(:disabled),.form-textarea:hover:not(:disabled){border-color:var(--gray-400)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--primary);box-shadow:var(--shadow-focus)}.form-input:disabled,.form-select:disabled,.form-textarea:disabled{background:var(--gray-100);cursor:not-allowed}.form-input.error,.form-select.error,.form-textarea.error{border-color:var(--error)}.form-input.error:focus,.form-select.error:focus,.form-textarea.error:focus{box-shadow:0 0 0 3px #c6282833}.form-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23757575'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--spacing-sm) center;background-size:24px;padding-right:var(--spacing-xl)}.form-textarea{min-height:120px;resize:vertical}.form-check{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer}.form-check input[type=checkbox],.form-check input[type=radio]{appearance:none;width:20px;height:20px;border:2px solid var(--border-color);background:var(--surface);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.form-check input[type=checkbox]:hover,.form-check input[type=radio]:hover{border-color:var(--primary)}.form-check input[type=checkbox]:checked,.form-check input[type=radio]:checked{background:var(--primary);border-color:var(--primary)}.form-check input[type=checkbox]:focus-visible,.form-check input[type=radio]:focus-visible{box-shadow:var(--shadow-focus)}.form-check input[type=checkbox]{border-radius:var(--radius-sm)}.form-check input[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:14px}.form-check input[type=radio]{border-radius:var(--radius-full)}.form-check input[type=radio]:checked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Ccircle cx='12' cy='12' r='5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center}.form-check .check-label{font-size:.9375rem;color:var(--text-primary);-webkit-user-select:none;user-select:none}.card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-normal)}.card:hover{box-shadow:var(--shadow-md)}.card{padding:var(--spacing-lg)}.card-flat{background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--spacing-lg)}.card-header{margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--divider-color)}.card-title{font-family:var(--font-family-heading);font-size:1.25rem;font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0;color:var(--text-primary)}.card-body{color:var(--text-secondary)}.card-footer{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--divider-color)}.table-container{overflow-x:auto}.table-container::-webkit-scrollbar{width:8px;height:8px}.table-container::-webkit-scrollbar-track{background:var(--gray-100);border-radius:4px}.table-container::-webkit-scrollbar-thumb{background:var(--gray-400);border-radius:4px}.table-container::-webkit-scrollbar-thumb:hover{background:var(--gray-500)}.table{width:100%;border-collapse:collapse;border-spacing:0;background:var(--surface);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm)}.table th,.table td{padding:var(--spacing-md);text-align:left;border-bottom:1px solid var(--border-color-light)}.table th{background:var(--primary-lightest);font-weight:var(--font-weight-semibold);color:var(--text-primary);white-space:nowrap}.table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.table th.sortable:hover{background:var(--primary-lighter)}.table td{color:var(--text-secondary)}.table tbody tr{transition:background var(--transition-fast)}.table tbody tr:hover{background:var(--gray-50)}.table tbody tr:last-child td{border-bottom:none}.alert{padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-md);display:flex;align-items:flex-start;gap:var(--spacing-md)}.alert svg{width:24px;height:24px;flex-shrink:0}.alert-error{background:var(--error-light);color:var(--error-dark);border:1px solid var(--error)}.alert-success{background:var(--success-light);color:var(--success-dark);border:1px solid var(--success)}.alert-warning{background:var(--warning-light);color:var(--warning-dark);border:1px solid var(--warning)}.alert-info{background:var(--info-light);color:var(--info-dark);border:1px solid var(--info)}.badge{display:inline-flex;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);font-size:.75rem;font-weight:var(--font-weight-semibold);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.05em}.badge-primary{background:var(--primary-lightest);color:var(--primary-dark)}.badge-success{background:var(--success-light);color:var(--success-dark)}.badge-warning{background:var(--warning-light);color:var(--warning-dark)}.badge-error{background:var(--error-light);color:var(--error-dark)}.tooltip{position:relative}.tooltip:after{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(-8px);padding:var(--spacing-xs) var(--spacing-sm);background:var(--gray-900);color:#fff;font-size:.75rem;border-radius:var(--radius-sm);white-space:nowrap;opacity:0;visibility:hidden;transition:all var(--transition-fast);z-index:var(--z-tooltip)}.tooltip:hover:after{opacity:1;visibility:visible;transform:translate(-50%) translateY(-4px)}.progress{height:8px;background:var(--gray-200);border-radius:var(--radius-full);overflow:hidden}.progress-bar{height:100%;background:var(--primary);border-radius:var(--radius-full);transition:width var(--transition-normal)}.spinner{width:40px;height:40px;border:3px solid var(--gray-200);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.spinner-sm{width:20px;height:20px;border-width:2px}.spinner-lg{width:60px;height:60px;border-width:4px}.divider{height:1px;background:var(--divider-color);margin:var(--spacing-lg) 0}.divider-vertical{width:1px;height:100%;background:var(--divider-color);margin:0 var(--spacing-md)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}html,body{height:100%;margin:0;padding:0}body{font-family:var(--font-family-body);font-size:16px;line-height:var(--line-height-normal);color:var(--text-primary);background:var(--background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-heading);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--text-primary);margin-top:0;margin-bottom:var(--spacing-md)}h1{font-family:var(--font-family-heading);font-size:2.5rem;font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight)}h2{font-family:var(--font-family-heading);font-size:2rem;font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight)}h3{font-family:var(--font-family-heading);font-size:1.5rem;font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}h4{font-family:var(--font-family-heading);font-size:1.25rem;font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}p{margin-top:0;margin-bottom:var(--spacing-md)}p:last-child{margin-bottom:0}a{color:var(--primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--primary-dark)}a:focus-visible{outline:2px solid var(--primary);outline-offset:2px}strong,b{font-weight:var(--font-weight-semibold)}code,pre{font-family:var(--font-family-mono)}code{padding:var(--spacing-xs) var(--spacing-sm);background:var(--gray-100);border-radius:var(--radius-sm);font-size:.875em}pre{padding:var(--spacing-md);background:var(--gray-900);color:var(--gray-100);border-radius:var(--radius-md);overflow-x:auto}pre::-webkit-scrollbar{width:8px;height:8px}pre::-webkit-scrollbar-track{background:var(--gray-100);border-radius:4px}pre::-webkit-scrollbar-thumb{background:var(--gray-400);border-radius:4px}pre::-webkit-scrollbar-thumb:hover{background:var(--gray-500)}pre code{padding:0;background:transparent}ul,ol{margin-top:0;margin-bottom:var(--spacing-md);padding-left:var(--spacing-lg)}ul li,ol li{margin-bottom:var(--spacing-xs)}.container{width:100%;max-width:var(--container-max-width);margin:0 auto;padding:0 var(--spacing-lg)}.container-narrow{max-width:var(--container-narrow)}.container-wide{max-width:var(--container-wide)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-justify{text-align:justify}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-hint{color:var(--text-hint)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-error{color:var(--error)}.bg-surface{background:var(--surface)}.bg-primary{background:var(--primary);color:var(--text-on-primary)}.bg-primary-light{background:var(--primary-lightest)}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.flex-1{flex:1}.flex-auto{flex:auto}.flex-none{flex:none}.w-full{width:100%}.h-full{height:100%}.m-0{margin:0}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.my-md{margin-top:var(--spacing-md);margin-bottom:var(--spacing-md)}.my-lg{margin-top:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.p-0{padding:0}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.rounded{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-full{border-radius:var(--radius-full)}.shadow{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.page-container{padding:var(--spacing-xl) var(--spacing-lg);min-height:calc(100vh - var(--header-height) - var(--footer-height))}.page-content{max-width:var(--container-narrow);margin:0 auto}.page-content-wide{max-width:var(--container-max-width);margin:0 auto}.page-header{margin-bottom:var(--spacing-xl);text-align:center}.page-header h1{margin-bottom:var(--spacing-sm)}.page-header p{color:var(--text-secondary);font-size:1.125rem}.definitions{display:flex;flex-direction:column;gap:var(--spacing-sm)}.definition-row{display:flex;padding:var(--spacing-sm) 0;border-bottom:1px solid var(--divider-color)}.definition-row:last-child{border-bottom:none}@media(max-width:767px){.definition-row{flex-direction:column;gap:var(--spacing-xs)}}.definition-label{font-weight:var(--font-weight-semibold);color:var(--text-primary);min-width:180px;flex-shrink:0}.definition-value{color:var(--text-secondary);flex:1}::selection{background:var(--primary-light);color:var(--text-on-primary)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--gray-100)}::-webkit-scrollbar-thumb{background:var(--gray-400);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--gray-500)}@media print{.app-header,.app-footer{display:none!important}.page-container{padding:0}}.swagger-ui{font-family:var(--font-family-body)!important}.swagger-ui .topbar{display:none!important}.swagger-ui .info{margin:var(--spacing-lg) 0}.swagger-ui .opblock-tag{font-family:var(--font-family-heading)!important;border-bottom-color:var(--border-color)!important}.swagger-ui .opblock{border-radius:var(--radius-md)!important;box-shadow:var(--shadow-sm)!important;border-color:var(--border-color)!important}.swagger-ui .opblock-summary{border-radius:var(--radius-md)!important}.swagger-ui .btn{border-radius:var(--radius-sm)!important}
