@font-face{font-family:IBM Plex Sans;src:url(/assets/fonts/ibm-plex-sans/IBMPlexSans-Light.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/assets/fonts/ibm-plex-sans/IBMPlexSans-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/assets/fonts/ibm-plex-sans/IBMPlexSans-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/assets/fonts/ibm-plex-sans/IBMPlexSans-SemiBold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/assets/fonts/ibm-plex-sans/IBMPlexSans-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Material Icons;src:url(/assets/fonts/material-icons/MaterialIcons-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:block}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"liga"}@font-face{font-family:Material Icons Round;src:url(/assets/fonts/material-icons/MaterialIconsRound-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:block}.material-icons-round{font-family:Material Icons Round;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"liga"}:root{--primary-color: #1976d2;--primary-dark: #1565c0;--primary-light: #42a5f5;--accent-color: #ff5722;--accent-dark: #e64a19;--accent-light: #ff7043;--background-color: #f5f5f5;--surface-color: #ffffff;--text-primary: #212121;--text-secondary: #757575;--divider-color: #e0e0e0;--success-color: #4caf50;--warning-color: #ff9800;--error-color: #f44336;--info-color: #2196f3;--sidebar-width: 250px;--sidebar-collapsed-width: 60px;--sidebar-bg: #263238;--sidebar-text: #ffffff;--sidebar-hover: #37474f;--navbar-height: 64px;--navbar-bg: #ffffff;--navbar-text: #212121;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--border-radius-sm: 4px;--border-radius-md: 8px;--border-radius-lg: 12px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24);--shadow-md: 0 3px 6px rgba(0, 0, 0, .16), 0 3px 6px rgba(0, 0, 0, .23);--shadow-lg: 0 10px 20px rgba(0, 0, 0, .19), 0 6px 6px rgba(0, 0, 0, .23);--transition-fast: .15s ease-in-out;--transition-medium: .3s ease-in-out;--transition-slow: .5s ease-in-out;--font-family: "IBM Plex Sans", -apple-system, sans-serif;--heading-font: "IBM Plex Sans", -apple-system, sans-serif;--font-size-xs: 11px;--font-size-sm: 13px;--font-size-md: 14px;--font-size-lg: 16px;--font-size-xl: 18px;--font-size-xxl: 24px;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--gradient-accent: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);--gradient-success: linear-gradient(135deg, #4caf50 0%, #81c784 100%);--gradient-info: linear-gradient(135deg, #2196f3 0%, #64b5f6 100%)}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;font-family:IBM Plex Sans,-apple-system,sans-serif;font-size:14px;line-height:1.5;color:var(--text-primary);background-color:var(--background-color)}h1,h2,h3,h4,h5,h6{margin-bottom:var(--spacing-md);font-weight:500;line-height:1.2}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-bottom:var(--spacing-md)}a{color:var(--primary-color);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--primary-dark)}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-md)}.card{background:var(--surface-color);border-radius:var(--border-radius-md);box-shadow:var(--shadow-sm);padding:var(--spacing-lg);margin-bottom:var(--spacing-md)}.btn{display:inline-block;padding:var(--spacing-sm) var(--spacing-lg);font-size:14px;font-weight:500;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;border:none;border-radius:var(--border-radius-sm);transition:all var(--transition-fast);text-decoration:none}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--primary-dark)}.btn-secondary{background-color:var(--text-secondary);color:#fff}.btn-secondary:hover:not(:disabled){background-color:var(--text-primary)}.btn-accent{background-color:var(--accent-color);color:#fff}.btn-accent:hover:not(:disabled){background-color:var(--accent-dark)}.btn-outline{background-color:transparent;color:var(--primary-color);border:1px solid var(--primary-color)}.btn-outline:hover:not(:disabled){background-color:var(--primary-color);color:#fff}.form-group{margin-bottom:var(--spacing-md)}.form-label{display:block;margin-bottom:var(--spacing-xs);font-weight:500;color:var(--text-primary)}.form-control{display:block;width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:14px;line-height:1.5;color:var(--text-primary);background-color:var(--surface-color);border:1px solid var(--divider-color);border-radius:var(--border-radius-sm);transition:border-color var(--transition-fast)}.form-control:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #1976d21a}.form-control::placeholder{color:var(--text-secondary)}.form-error{color:var(--error-color);font-size:12px;margin-top:var(--spacing-xs)}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--spacing-md) * -1)}.col{flex:1;padding:0 var(--spacing-md)}.col-auto{flex:0 0 auto;padding:0 var(--spacing-md)}.mt-1{margin-top:var(--spacing-xs)}.mt-2{margin-top:var(--spacing-sm)}.mt-3{margin-top:var(--spacing-md)}.mt-4{margin-top:var(--spacing-lg)}.mt-5{margin-top:var(--spacing-xl)}.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)}.mb-5{margin-bottom:var(--spacing-xl)}.p-1{padding:var(--spacing-xs)}.p-2{padding:var(--spacing-sm)}.p-3{padding:var(--spacing-md)}.p-4{padding:var(--spacing-lg)}.p-5{padding:var(--spacing-xl)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-primary{color:var(--primary-color)}.text-secondary{color:var(--text-secondary)}.text-success{color:var(--success-color)}.text-warning{color:var(--warning-color)}.text-error{color:var(--error-color)}.d-block{display:block}.d-inline{display:inline}.d-inline-block{display:inline-block}.d-flex{display:flex}.d-none{display:none}.justify-content-start{justify-content:flex-start}.justify-content-end{justify-content:flex-end}.justify-content-center{justify-content:center}.justify-content-between{justify-content:space-between}.justify-content-around{justify-content:space-around}.align-items-start{align-items:flex-start}.align-items-end{align-items:flex-end}.align-items-center{align-items:center}.align-items-baseline{align-items:baseline}.align-items-stretch{align-items:stretch}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--background-color)}::-webkit-scrollbar-thumb{background:var(--text-secondary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-primary)}.spinner{border:3px solid var(--divider-color);border-top:3px solid var(--primary-color);border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin:var(--spacing-lg) auto}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){html,body{font-size:13px}.container{padding:0 var(--spacing-sm)}.row{margin:0 calc(var(--spacing-sm) * -1)}.col{padding:0 var(--spacing-sm)}}
