*{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--background-default);font-size:var(--font-size-md);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal);overflow-x:hidden}body,h1,h2,h3,h4,h5,h6{color:var(--text-primary);font-family:var(--font-family)}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin-bottom:var(--spacing-4)}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-md)}p{color:var(--text-primary);margin-bottom:var(--spacing-4)}a{color:var(--primary-main);text-decoration:none;transition:color var(--transition-fast) var(--transition-ease)}a:hover{color:var(--primary-dark);text-decoration:underline}ol,ul{margin-bottom:var(--spacing-4);padding-left:var(--spacing-6)}li{color:var(--text-primary);margin-bottom:var(--spacing-2)}img{display:block;height:auto;max-width:100%}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}button:focus,input:focus,select:focus,textarea:focus{outline:none}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:var(--grey-100);border-radius:var(--border-radius-pill)}::-webkit-scrollbar-thumb{background:var(--grey-400);border-radius:var(--border-radius-pill);-webkit-transition:background var(--transition-fast) var(--transition-ease);transition:background var(--transition-fast) var(--transition-ease)}::-webkit-scrollbar-thumb:hover{background:var(--grey-500)}::selection{background-color:var(--primary-light);color:var(--text-primary)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@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 slideInLeft{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInRight{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fade-in{animation:fadeIn var(--transition-normal) var(--transition-ease)}.slide-in-up{animation:slideInUp var(--transition-normal) var(--transition-ease)}.slide-in-down{animation:slideInDown var(--transition-normal) var(--transition-ease)}.slide-in-left{animation:slideInLeft var(--transition-normal) var(--transition-ease)}.slide-in-right{animation:slideInRight var(--transition-normal) var(--transition-ease)}.pulse{animation:pulse 2s var(--transition-ease) infinite}.spin{animation:spin 1s linear infinite}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-justify{text-align:justify}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-break{overflow-wrap:break-word;word-break:break-word}.font-light{font-weight:var(--font-weight-light)}.font-regular{font-weight:var(--font-weight-regular)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-disabled{color:var(--text-disabled)}.text-hint{color:var(--text-hint)}.text-success{color:var(--success-main)}.text-error{color:var(--error-main)}.text-warning{color:var(--warning-main)}.text-info{color:var(--info-main)}.bg-primary{background-color:var(--primary-main)}.bg-success{background-color:var(--success-main)}.bg-error{background-color:var(--error-main)}.bg-warning{background-color:var(--warning-main)}.bg-info{background-color:var(--info-main)}.m-0{margin:var(--spacing-0)}.m-1{margin:var(--spacing-1)}.m-2{margin:var(--spacing-2)}.m-3{margin:var(--spacing-3)}.m-4{margin:var(--spacing-4)}.m-5{margin:var(--spacing-5)}.m-6{margin:var(--spacing-6)}.mt-1{margin-top:var(--spacing-1)}.mt-2{margin-top:var(--spacing-2)}.mt-3{margin-top:var(--spacing-3)}.mt-4{margin-top:var(--spacing-4)}.mt-5{margin-top:var(--spacing-5)}.mt-6{margin-top:var(--spacing-6)}.mb-1{margin-bottom:var(--spacing-1)}.mb-2{margin-bottom:var(--spacing-2)}.mb-3{margin-bottom:var(--spacing-3)}.mb-4{margin-bottom:var(--spacing-4)}.mb-5{margin-bottom:var(--spacing-5)}.mb-6{margin-bottom:var(--spacing-6)}.ml-1{margin-left:var(--spacing-1)}.ml-2{margin-left:var(--spacing-2)}.ml-3{margin-left:var(--spacing-3)}.ml-4{margin-left:var(--spacing-4)}.ml-5{margin-left:var(--spacing-5)}.ml-6{margin-left:var(--spacing-6)}.mr-1{margin-right:var(--spacing-1)}.mr-2{margin-right:var(--spacing-2)}.mr-3{margin-right:var(--spacing-3)}.mr-4{margin-right:var(--spacing-4)}.mr-5{margin-right:var(--spacing-5)}.mr-6{margin-right:var(--spacing-6)}.mx-auto{margin-left:auto;margin-right:auto}.p-0{padding:var(--spacing-0)}.p-1{padding:var(--spacing-1)}.p-2{padding:var(--spacing-2)}.p-3{padding:var(--spacing-3)}.p-4{padding:var(--spacing-4)}.p-5{padding:var(--spacing-5)}.p-6{padding:var(--spacing-6)}.d-none{display:none}.d-block{display:block}.d-inline{display:inline}.d-inline-block{display:inline-block}.d-flex{display:flex}.d-grid{display:grid}.flex-row{flex-direction:row}.flex-column{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.align-start{align-items:flex-start}.align-end{align-items:flex-end}.align-center{align-items:center}.align-stretch{align-items:stretch}.align-baseline{align-items:baseline}.flex-1{flex:1 1}.flex-auto{flex:1 1 auto}.flex-initial{flex:0 1 auto}.flex-none{flex:none}.grid-cols-1{grid-template-columns:repeat(1,1fr)}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}@media (max-width:600px){.hidden-xs{display:none}.grid-cols-1-xs{grid-template-columns:repeat(1,1fr)}.grid-cols-2-xs{grid-template-columns:repeat(2,1fr)}}@media (min-width:601px) and (max-width:960px){.hidden-sm{display:none}.grid-cols-1-sm{grid-template-columns:repeat(1,1fr)}.grid-cols-2-sm{grid-template-columns:repeat(2,1fr)}.grid-cols-3-sm{grid-template-columns:repeat(3,1fr)}}@media (min-width:961px) and (max-width:1280px){.hidden-md{display:none}}@media (min-width:1281px){.hidden-lg{display:none}}:root{--primary-main:#4caf50;--primary-light:#81c784;--primary-dark:#388e3c;--primary-contrast:#fff;--secondary-main:#607d8b;--secondary-light:#90a4ae;--secondary-dark:#455a64;--secondary-contrast:#fff;--success-main:#2e7d32;--success-light:#4caf50;--success-dark:#1b5e20;--success-contrast:#fff;--error-main:#d32f2f;--error-light:#ef5350;--error-dark:#c62828;--error-contrast:#fff;--warning-main:#ed6c02;--warning-light:#ff9800;--warning-dark:#e65100;--warning-contrast:#fff;--info-main:#0288d1;--info-light:#03a9f4;--info-dark:#01579b;--info-contrast:#fff;--grey-50:#212121;--grey-100:#2a2a2a;--grey-200:#333;--grey-300:#3d3d3d;--grey-400:#474747;--grey-500:#515151;--grey-600:#5c5c5c;--grey-700:#666;--grey-800:#717171;--grey-900:#7c7c7c;--background-default:#1a1a1a;--background-paper:#242424;--background-elevated:#2d2d2d;--text-primary:#fff;--text-secondary:#b0b0b0;--text-disabled:#666;--text-hint:grey;--border-light:1px solid #333;--border-main:1px solid #404040;--border-dark:1px solid #4d4d4d;--border-radius-xs:4px;--border-radius-sm:8px;--border-radius-md:12px;--border-radius-lg:16px;--border-radius-xl:24px;--border-radius-pill:9999px;--font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-family-mono:"Roboto Mono","SF Mono",Monaco,"Cascadia Code",monospace;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-weight-light:300;--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;--spacing-0:0px;--spacing-1:4px;--spacing-2:8px;--spacing-3:12px;--spacing-4:16px;--spacing-5:20px;--spacing-6:24px;--spacing-7:28px;--spacing-8:32px;--spacing-9:36px;--spacing-10:40px;--spacing-12:48px;--spacing-16:64px;--spacing-20:80px;--spacing-24:96px;--shadow-0:none;--shadow-1:0px 2px 1px -1px #0006,0px 1px 1px 0px #00000047,0px 1px 3px 0px #0000003d;--shadow-2:0px 3px 1px -2px #0006,0px 2px 2px 0px #00000047,0px 1px 5px 0px #0000003d;--shadow-3:0px 3px 3px -2px #0006,0px 3px 4px 0px #00000047,0px 1px 8px 0px #0000003d;--shadow-4:0px 2px 4px -1px #0006,0px 4px 5px 0px #00000047,0px 1px 10px 0px #0000003d;--shadow-5:0px 3px 5px -1px #0006,0px 5px 8px 0px #00000047,0px 1px 14px 0px #0000003d;--shadow-6:0px 3px 5px -1px #0006,0px 6px 10px 0px #00000047,0px 1px 18px 0px #0000003d;--transition-fast:150ms;--transition-normal:250ms;--transition-slow:350ms;--transition-ease:cubic-bezier(0.4,0,0.2,1);--transition-ease-in:cubic-bezier(0.4,0,1,1);--transition-ease-out:cubic-bezier(0,0,0.2,1);--z-index-drawer:1200;--z-index-modal:1300;--z-index-snackbar:1400;--z-index-tooltip:1500;--header-height:64px;--sidebar-width:260px;--sidebar-collapsed-width:72px;--content-max-width:1440px;--container-padding:24px;--breakpoint-xs:0px;--breakpoint-sm:600px;--breakpoint-md:960px;--breakpoint-lg:1280px;--breakpoint-xl:1920px}@media (max-width:600px){:root{--container-padding:16px;--header-height:56px}}@media (min-width:601px) and (max-width:960px){:root{--container-padding:20px}}.btn{align-items:center;border:1px solid #0000;border-radius:var(--border-radius-sm);cursor:pointer;display:inline-flex;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);justify-content:center;line-height:1.5;padding:var(--spacing-2) var(--spacing-4);text-align:center;text-decoration:none;transition:all var(--transition-fast) var(--transition-ease);-webkit-user-select:none;user-select:none;vertical-align:middle}.btn:disabled{cursor:not-allowed;opacity:.6;pointer-events:none}.btn-primary{background-color:var(--primary-main);border-color:var(--primary-main);color:var(--primary-contrast)}.btn-primary:hover{background-color:var(--primary-dark);border-color:var(--primary-dark)}.btn-secondary{background-color:var(--secondary-main);border-color:var(--secondary-main);color:var(--secondary-contrast)}.btn-secondary:hover{background-color:var(--secondary-dark);border-color:var(--secondary-dark)}.btn-outline{background-color:initial;border-color:var(--primary-main);color:var(--primary-main)}.btn-outline:hover{background-color:var(--primary-main);color:var(--primary-contrast)}.btn-success{background-color:var(--success-main);border-color:var(--success-main);color:var(--success-contrast)}.btn-error{background-color:var(--error-main);border-color:var(--error-main);color:var(--error-contrast)}.btn-warning{background-color:var(--warning-main);border-color:var(--warning-main);color:var(--warning-contrast)}.btn-info{background-color:var(--info-main);border-color:var(--info-main);color:var(--info-contrast)}.btn-sm{border-radius:var(--border-radius-xs);font-size:var(--font-size-xs);padding:var(--spacing-1) var(--spacing-2)}.btn-lg{border-radius:var(--border-radius-md);font-size:var(--font-size-md);padding:var(--spacing-3) var(--spacing-6)}.btn-block{display:block;width:100%}.card{word-wrap:break-word;background-clip:initial;background-color:var(--background-paper);border:var(--border-light);border-radius:var(--border-radius-md);display:flex;flex-direction:column;min-width:0;position:relative;transition:box-shadow var(--transition-normal) var(--transition-ease),transform var(--transition-normal) var(--transition-ease)}.card:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}.card-header{background-color:var(--background-elevated);border-bottom:var(--border-light);border-top-left-radius:var(--border-radius-md);border-top-right-radius:var(--border-radius-md);margin-bottom:0}.card-body,.card-header{padding:var(--spacing-4)}.card-body{flex:1 1 auto}.card-footer{background-color:var(--background-elevated);border-bottom-left-radius:var(--border-radius-md);border-bottom-right-radius:var(--border-radius-md);border-top:var(--border-light);padding:var(--spacing-4)}.card-title{color:var(--text-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-3)}.card-subtitle{color:var(--text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--spacing-2);margin-top:calc(var(--spacing-2)*-1)}.card-img-top{border-top-left-radius:calc(var(--border-radius-md) - 1px);border-top-right-radius:calc(var(--border-radius-md) - 1px);width:100%}.form-group{margin-bottom:var(--spacing-4)}.form-label{color:var(--text-primary);display:inline-block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin-bottom:var(--spacing-2)}.form-control{background-clip:padding-box;border:var(--border-main);border-radius:var(--border-radius-sm);display:block;font-size:var(--font-size-md);font-weight:var(--font-weight-regular);line-height:1.5;padding:var(--spacing-2) var(--spacing-3);transition:border-color var(--transition-fast) var(--transition-ease),box-shadow var(--transition-fast) var(--transition-ease);width:100%}.form-control,.form-control:focus{background-color:var(--background-paper);color:var(--text-primary)}.form-control:focus{border-color:var(--primary-main);box-shadow:0 0 0 3px #1976d21a;outline:0}.form-control:disabled{background-color:var(--grey-100);opacity:1}.form-control::placeholder{color:var(--text-hint);opacity:1}.form-text{color:var(--text-secondary)}.form-error,.form-text{font-size:var(--font-size-xs);margin-top:var(--spacing-1)}.form-error{color:var(--error-main)}.form-select{-webkit-appearance:none;appearance:none;background-color:var(--background-paper);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E");background-position:right var(--spacing-3) center;background-repeat:no-repeat;background-size:16px 12px;border:var(--border-main);border-radius:var(--border-radius-sm);color:var(--text-primary);display:block;font-size:var(--font-size-md);font-weight:var(--font-weight-regular);line-height:1.5;padding:var(--spacing-2) var(--spacing-6) var(--spacing-2) var(--spacing-3);width:100%}.form-select:focus{border-color:var(--primary-main);box-shadow:0 0 0 3px #1976d21a;outline:0}.form-check{display:block;margin-bottom:var(--spacing-2);min-height:1.5rem;padding-left:1.5rem}.form-check-input{-webkit-appearance:none;appearance:none;background-color:var(--background-paper);border:var(--border-main);border-radius:var(--border-radius-xs);float:left;height:1rem;margin-left:-1.5rem;margin-top:.2rem;width:1rem}.form-check-input[type=radio]{border-radius:50%}.form-check-input:checked{background-color:var(--primary-main);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:.75rem;border-color:var(--primary-main)}.form-check-input[type=radio]:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='2' fill='%23fff'/%3E%3C/svg%3E")}.form-check-label{color:var(--text-primary);display:inline-block;font-size:var(--font-size-sm)}.alert{border:1px solid #0000;border-radius:var(--border-radius-sm);margin-bottom:var(--spacing-4);padding:var(--spacing-3) var(--spacing-4);position:relative}.alert-success{background-color:var(--success-light);border-color:var(--success-main);color:var(--success-dark)}.alert-error{background-color:var(--error-light);border-color:var(--error-main);color:var(--error-dark)}.alert-warning{background-color:var(--warning-light);border-color:var(--warning-main);color:var(--warning-dark)}.alert-info{background-color:var(--info-light);border-color:var(--info-main);color:var(--info-dark)}.badge{border-radius:var(--border-radius-pill);display:inline-block;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:1;padding:var(--spacing-1) var(--spacing-2);text-align:center;vertical-align:initial;white-space:nowrap}.badge-primary{background-color:var(--primary-main);color:var(--primary-contrast)}.badge-success{background-color:var(--success-main);color:var(--success-contrast)}.badge-error{background-color:var(--error-main);color:var(--error-contrast)}.badge-warning{background-color:var(--warning-main);color:var(--warning-contrast)}.badge-info{background-color:var(--info-main);color:var(--info-contrast)}.progress{background-color:var(--grey-200);border-radius:var(--border-radius-pill);display:flex;font-size:var(--font-size-xs);height:.5rem;overflow:hidden}.progress-bar{background-color:var(--primary-main);display:flex;flex-direction:column;text-align:center;transition:width var(--transition-normal) var(--transition-ease);white-space:nowrap}.avatar,.progress-bar{color:var(--text-primary);justify-content:center;overflow:hidden}.avatar{align-items:center;background-color:var(--grey-300);border-radius:50%;display:inline-flex;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);height:2.5rem;width:2.5rem}.avatar-sm{font-size:var(--font-size-sm);height:2rem;width:2rem}.avatar-lg{font-size:var(--font-size-lg);height:3.5rem;width:3.5rem}.avatar-xl{font-size:var(--font-size-2xl);height:5rem;width:5rem}.avatar-img{object-fit:cover}.avatar-img,.modal{height:100%;width:100%}.modal{display:none;left:0;outline:0;overflow-x:hidden;overflow-y:auto;position:fixed;top:0;z-index:var(--z-index-modal)}.modal.show{display:block}.modal-dialog{margin:1.75rem auto;max-width:500px;pointer-events:none;position:relative;width:auto}.modal-content{background-clip:padding-box;background-color:var(--background-paper);border:var(--border-light);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-5);display:flex;flex-direction:column;outline:0;pointer-events:auto;position:relative;width:100%}.modal-header{align-items:center;border-bottom:var(--border-light);border-top-left-radius:var(--border-radius-lg);border-top-right-radius:var(--border-radius-lg);display:flex;flex-shrink:0;justify-content:space-between;padding:var(--spacing-4)}.modal-body{flex:1 1 auto;padding:var(--spacing-4);position:relative}.modal-footer{align-items:center;border-bottom-left-radius:var(--border-radius-lg);border-bottom-right-radius:var(--border-radius-lg);border-top:var(--border-light);display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;padding:var(--spacing-3) var(--spacing-4)}.tooltip{word-wrap:break-word;display:block;margin:var(--spacing-2);opacity:0;position:absolute;z-index:var(--z-index-tooltip)}.tooltip.show{opacity:.9}.tooltip-inner{background-color:var(--text-primary);border-radius:var(--border-radius-sm);color:var(--background-paper);max-width:200px;padding:var(--spacing-1) var(--spacing-2);text-align:center}.dropdown{display:inline-block;position:relative}.dropdown-menu{background-clip:padding-box;background-color:var(--background-paper);border:var(--border-light);border-radius:var(--border-radius-sm);box-shadow:var(--shadow-2);color:var(--text-primary);display:none;font-size:var(--font-size-sm);left:0;list-style:none;margin-top:var(--spacing-1);min-width:10rem;padding:var(--spacing-1) 0;position:absolute;text-align:left;top:100%;z-index:var(--z-index-drawer)}.dropdown-menu.show{display:block}.dropdown-item{background-color:initial;border:0;clear:both;color:var(--text-primary);cursor:pointer;display:block;font-weight:var(--font-weight-regular);padding:var(--spacing-2) var(--spacing-4);text-align:inherit;text-decoration:none;white-space:nowrap;width:100%}.dropdown-item:hover{background-color:var(--grey-100);color:var(--text-primary)}.dropdown-divider{border-top:var(--border-light);height:0;margin:var(--spacing-1) 0;overflow:hidden}.table{border-color:var(--border-light);color:var(--text-primary);margin-bottom:var(--spacing-4);vertical-align:top;width:100%}.table td,.table th{border-bottom:var(--border-light);padding:var(--spacing-3) var(--spacing-4);text-align:left}.table thead th{border-bottom-color:var(--border-dark);font-weight:var(--font-weight-semibold);vertical-align:bottom}.table tbody tr:hover,.table thead th,.table-striped tbody tr:nth-of-type(odd){background-color:var(--grey-50)}.table-bordered,.table-bordered td,.table-bordered th{border:var(--border-light)}.table-sm td,.table-sm th{padding:var(--spacing-2)}.nav{display:flex;flex-wrap:wrap;list-style:none;margin-bottom:0;padding-left:0}.nav-item{margin-right:var(--spacing-2)}.nav-link{border-radius:var(--border-radius-sm);color:var(--text-secondary);display:block;padding:var(--spacing-2) var(--spacing-4);text-decoration:none;transition:all var(--transition-fast) var(--transition-ease)}.nav-link:hover{background-color:var(--grey-100);color:var(--primary-main)}.nav-link.active{background-color:var(--primary-light);color:var(--primary-main);font-weight:var(--font-weight-semibold)}.pagination{display:flex;list-style:none;padding-left:0}.page-item{margin-right:var(--spacing-1)}.page-link{background-color:var(--background-paper);border:var(--border-light);border-radius:var(--border-radius-sm);color:var(--text-primary);display:block;padding:var(--spacing-2) var(--spacing-3);position:relative;text-decoration:none;transition:all var(--transition-fast) var(--transition-ease)}.page-link:hover{background-color:var(--grey-100);border-color:var(--border-main);color:var(--primary-main)}.page-item.active .page-link{background-color:var(--primary-main);border-color:var(--primary-main);color:var(--primary-contrast)}.page-item.disabled .page-link{background-color:var(--background-paper);border-color:var(--border-light);color:var(--text-disabled);pointer-events:none}.breadcrumb{background-color:var(--grey-100);border-radius:var(--border-radius-sm);display:flex;flex-wrap:wrap;list-style:none;margin-bottom:var(--spacing-4);padding:var(--spacing-2) var(--spacing-3)}.breadcrumb-item{align-items:center;display:flex}.breadcrumb-item+.breadcrumb-item{padding-left:var(--spacing-2)}.breadcrumb-item+.breadcrumb-item:before{color:var(--text-secondary);content:"/";display:inline-block;padding-right:var(--spacing-2)}.breadcrumb-item.active{color:var(--text-secondary)}.spinner{animation:spin .75s linear infinite;border:.25em solid;border-radius:50%;border-right:.25em solid #0000;display:inline-block;height:2rem;vertical-align:text-bottom;width:2rem}.spinner-sm{border-width:.15em;height:1rem;width:1rem}.spinner-lg{border-width:.3em;height:3rem;width:3rem}.skeleton{background-color:var(--grey-200);border-radius:var(--border-radius-sm);display:inline-block;overflow:hidden;position:relative}.skeleton:after{animation:shimmer 2s infinite;background-image:linear-gradient(90deg,#fff0,#fff3 20%,#ffffff80 60%,#fff0);bottom:0;content:"";left:0;position:absolute;right:0;top:0;transform:translateX(-100%)}.skeleton-text{height:1rem;margin-bottom:var(--spacing-2);width:100%}.skeleton-title{height:1.5rem;margin-bottom:var(--spacing-3)}.skeleton-avatar{border-radius:50%;height:2.5rem;width:2.5rem}.skeleton-button{border-radius:var(--border-radius-sm);height:2rem;width:6rem}.toast{animation:slideInRight var(--transition-normal) var(--transition-ease);background-color:var(--background-paper);border:var(--border-light);border-radius:var(--border-radius-md);bottom:var(--spacing-4);box-shadow:var(--shadow-3);max-width:350px;min-width:250px;position:fixed;right:var(--spacing-4);z-index:var(--z-index-snackbar)}.toast-header{align-items:center;border-bottom:var(--border-light);border-top-left-radius:var(--border-radius-md);border-top-right-radius:var(--border-radius-md);display:flex;justify-content:space-between;padding:var(--spacing-2) var(--spacing-3)}.toast-body{padding:var(--spacing-3)}.dashboard-card{height:100%;transition:transform var(--transition-normal) var(--transition-ease),box-shadow var(--transition-normal) var(--transition-ease)}.dashboard-card:hover{box-shadow:var(--shadow-3);transform:translateY(-4px)}.stat-card{background:linear-gradient(135deg,var(--primary-light) 0,var(--primary-main) 100%);border-radius:var(--border-radius-md);color:var(--primary-contrast);justify-content:space-between;padding:var(--spacing-4)}.stat-card,.stat-card-icon{align-items:center;display:flex}.stat-card-icon{background-color:#fff3;border-radius:50%;height:48px;justify-content:center;width:48px}.course-card{overflow:hidden;position:relative}.course-card-image{background-position:50%;background-size:cover;height:160px;transition:transform var(--transition-normal) var(--transition-ease)}.course-card:hover .course-card-image{transform:scale(1.05)}.course-card-overlay{background:linear-gradient(180deg,#0000 50%,#000000b3);pointer-events:none;top:0}.course-card-overlay,.course-progress{bottom:0;left:0;position:absolute;right:0}.course-progress{background-color:#ffffff4d;height:4px}.course-progress-bar{background-color:var(--success-main);height:100%;transition:width var(--transition-normal) var(--transition-ease)}.quiz-timer{align-items:center;background-color:var(--warning-light);border-bottom:2px solid var(--warning-main);color:var(--warning-dark);display:flex;font-weight:var(--font-weight-semibold);justify-content:center;padding:var(--spacing-2);position:-webkit-sticky;position:sticky;top:var(--header-height);z-index:100}.question-card{background-color:var(--background-paper);border:var(--border-light);border-radius:var(--border-radius-md);margin-bottom:var(--spacing-4);padding:var(--spacing-4)}.question-option{align-items:center;background-color:var(--grey-50);border:var(--border-light);border-radius:var(--border-radius-sm);cursor:pointer;display:flex;margin-bottom:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);transition:all var(--transition-fast) var(--transition-ease)}.question-option:hover{background-color:var(--grey-100);border-color:var(--primary-main)}.question-option.selected{background-color:var(--primary-light);border-color:var(--primary-main)}.question-option.correct{background-color:var(--success-light);border-color:var(--success-main)}.question-option.incorrect{background-color:var(--error-light);border-color:var(--error-main)}.discussion-thread{margin-bottom:var(--spacing-4)}.discussion-post{background-color:var(--background-paper);border:var(--border-light);border-radius:var(--border-radius-md);margin-bottom:var(--spacing-3);padding:var(--spacing-4);position:relative}.discussion-reply{border-left:3px solid var(--primary-light);margin-left:var(--spacing-6)}.discussion-vote{flex-direction:column;margin-right:var(--spacing-3)}.discussion-vote,.vote-button{align-items:center;display:flex}.vote-button{background-color:initial;border:none;border-radius:50%;color:var(--text-secondary);cursor:pointer;height:32px;justify-content:center;transition:all var(--transition-fast) var(--transition-ease);width:32px}.vote-button:hover{background-color:var(--grey-100)}.vote-button.active{color:var(--primary-main)}.vote-count{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);margin:var(--spacing-1) 0}.upload-area{align-items:center;background-color:var(--grey-50);border:2px dashed var(--border-main);border-radius:var(--border-radius-md);cursor:pointer;display:flex;flex-direction:column;justify-content:center;padding:var(--spacing-6);transition:all var(--transition-normal) var(--transition-ease)}.upload-area.dragover,.upload-area:hover{background-color:var(--primary-light);border-color:var(--primary-main)}.upload-icon{font-size:48px;margin-bottom:var(--spacing-2)}.upload-icon,.upload-text{color:var(--text-secondary)}.upload-text{text-align:center}.upload-progress{margin-top:var(--spacing-3);width:100%}.calendar-grid{grid-gap:var(--spacing-1);display:grid;gap:var(--spacing-1);grid-template-columns:repeat(7,1fr);margin-top:var(--spacing-3)}.calendar-day{align-items:center;aspect-ratio:1;background-color:var(--background-paper);border:var(--border-light);border-radius:var(--border-radius-sm);display:flex;flex-direction:column;justify-content:flex-start;padding:var(--spacing-2)}.calendar-day.today{background-color:var(--primary-light);border-color:var(--primary-main)}.calendar-day.other-month{background-color:var(--grey-50);color:var(--text-disabled)}.calendar-event{background-color:var(--info-light);border-left:3px solid var(--info-main);border-radius:var(--border-radius-xs);color:var(--text-primary);cursor:pointer;font-size:var(--font-size-xs);margin-top:var(--spacing-1);overflow:hidden;padding:var(--spacing-1);text-overflow:ellipsis;white-space:nowrap;width:100%}@media (max-width:768px){.discussion-reply{margin-left:var(--spacing-3)}.calendar-grid{gap:var(--spacing-0_5)}.calendar-day{font-size:var(--font-size-sm);padding:var(--spacing-1)}}@media (max-width:576px){.table-responsive{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto;width:100%}.modal-dialog{margin:var(--spacing-2)}.toast{left:var(--spacing-2);max-width:none;right:var(--spacing-2);width:auto}}.skeleton{animation:shimmer 1.4s ease infinite;background:linear-gradient(90deg,#2b2b2b 25%,#3a3a3a 37%,#2b2b2b 63%);background-size:400% 100%}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton-image{border-radius:12px;height:160px}.skeleton-title{height:18px;margin-top:10px;width:60%}.skeleton-text{height:14px;margin-top:8px;width:80%}#nprogress{pointer-events:none}#nprogress .bar{background:#29d;height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px #29d,0 0 5px #29d;display:block;height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}#nprogress .spinner{display:block;position:fixed;right:15px;top:15px;z-index:1031}#nprogress .spinner-icon{animation:nprogress-spinner .4s linear infinite;border-color:#29d #0000 #0000 #29d;border-radius:50%;border-style:solid;border-width:2px;box-sizing:border-box;height:18px;width:18px}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
/*# sourceMappingURL=main.8b7f362e.css.map*/