:root{--background-color: #ffffff;--color-primary: #007bff;--color-primary-dark: #0056b3;--color-secondary: #6c757d;--color-secondary-dark: #495057;--color-success: #28a745;--color-danger: #dc3545;--color-warning: #ffc107;--color-info: #17a2b8;--color-white: #ffffff;--color-black: #000000;--color-gray-100: #f8f9fa;--color-gray-200: #e9ecef;--color-gray-300: #dee2e6;--color-gray-400: #ced4da;--color-gray-500: #adb5bd;--color-gray-600: #6c757d;--color-gray-700: #495057;--color-gray-800: #343a40;--color-gray-900: #212529;--font-family-base: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-size-base: 1rem;--font-size-sm: .875rem;--font-size-lg: 1.25rem;--font-weight-normal: 400;--font-weight-bold: 700;--line-height-base: 1.5;--line-height-sm: 1.25;--line-height-lg: 1.75;--spacing-unit: 1rem;--spacing-0: 0;--spacing-1: calc(var(--spacing-unit) * .25);--spacing-2: calc(var(--spacing-unit) * .5);--spacing-3: var(--spacing-unit);--spacing-4: calc(var(--spacing-unit) * 1.5);--spacing-5: calc(var(--spacing-unit) * 3);--border-width: 1px;--border-color: var(--color-gray-300);--border-radius: .25rem;--border-radius-sm: .2rem;--border-radius-lg: .3rem;--box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);--container-max-width: 1200px;--container-padding: var(--spacing-3);--grid-columns: 12;--grid-gap: var(--spacing-3);--input-padding: var(--spacing-2);--input-border-color: var(--color-gray-400);--input-border-radius: var(--border-radius);--input-bg: var(--color-white);--input-color: var(--color-gray-900);--input-focus-border-color: var(--color-primary);--input-focus-box-shadow: 0 0 0 .2rem rgba(0, 123, 255, .25);--transition-base: all .2s ease-in-out}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:var(--font-size-base);line-height:var(--line-height-base);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{margin:0;font-family:var(--font-family-base);font-size:var(--font-size-base);line-height:var(--line-height-base);color:var(--color-gray-900);text-align:left;background-color:var(--background-color);transition:var(--transition-base)}ul,ol{padding-left:var(--spacing-3);margin-bottom:var(--spacing-3)}img{max-width:100%;height:auto;vertical-align:middle}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}button{cursor:pointer}:focus{outline:0;box-shadow:var(--input-focus-box-shadow)}::selection{background-color:var(--color-primary-dark);color:var(--color-white)}.btn{display:inline-block;padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-base);font-weight:var(--font-weight-bold);line-height:var(--line-height-base);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;border:var(--border-width) solid transparent;border-radius:var(--border-radius);transition:var(--transition-base)}.btn-primary{color:var(--color-white);background-color:var(--color-primary);border-color:var(--color-primary)}.btn-primary:hover{color:var(--color-white);background-color:var(--color-primary-dark);border-color:var(--color-primary-dark)}.btn-secondary{color:var(--color-white);background-color:var(--color-secondary);border-color:var(--color-secondary)}.btn-secondary:hover{color:var(--color-white);background-color:var(--color-secondary-dark);border-color:var(--color-secondary-dark)}.btn-outline-primary{color:var(--color-primary);background-color:transparent;border-color:var(--color-primary)}.btn-outline-primary:hover{color:var(--color-white);background-color:var(--color-primary);border-color:var(--color-primary)}.btn-link{color:var(--color-primary);background-color:transparent;border:none;text-decoration:none;padding:0}.btn-link:hover{color:var(--color-primary-dark);text-decoration:none}.btn-sm{padding:var(--spacing-1) var(--spacing-2);font-size:var(--font-size-sm)}.btn-lg{padding:var(--spacing-3) var(--spacing-4);font-size:var(--font-size-lg)}.btn:disabled,.btn[disabled]{opacity:.65;cursor:not-allowed;pointer-events:none}.btn-group{display:inline-flex;vertical-align:middle}.btn-group>.btn:not(:first-child){margin-left:calc(var(--border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card{position:relative;display:flex;flex-direction:column;min-width:0;background-color:var(--color-white);background-clip:border-box;border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius);box-shadow:var(--box-shadow);transition:var(--transition-base)}.card:hover{box-shadow:var(--box-shadow)}.card-header{padding:var(--spacing-3);margin-bottom:0;background-color:var(--color-gray-100);border-bottom:var(--border-width) solid var(--border-color)}.card-body{flex:1 1 auto;padding:var(--spacing-3)}.card-footer{padding:var(--spacing-3);background-color:var(--color-gray-100);border-top:var(--border-width) solid var(--border-color)}.card-title{margin-bottom:var(--spacing-2);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold)}.card-subtitle{margin-top:calc(var(--spacing-2) * -1);margin-bottom:0;font-size:var(--font-size-sm);color:var(--color-gray-600)}.card-primary{border-color:var(--color-primary)}.card-primary .card-header{background-color:var(--color-primary);color:var(--color-white)}.card-secondary{border-color:var(--color-secondary)}.card-secondary .card-header{background-color:var(--color-secondary);color:var(--color-white)}.tooltip{position:relative;display:inline-block}.tooltip .tooltip-text{visibility:hidden;position:absolute;z-index:1;width:max-content;max-width:200px;padding:var(--spacing-2);background-color:var(--color-gray-900);color:var(--color-white);text-align:center;border-radius:var(--border-radius);font-size:var(--font-size-sm);opacity:0;transition:opacity var(--transition-base)}.tooltip:hover .tooltip-text{visibility:visible;opacity:1}.tooltip .tooltip-text.top{bottom:125%;left:50%;transform:translate(-50%)}.tooltip .tooltip-text.right{left:125%;top:50%;transform:translateY(-50%)}.tooltip .tooltip-text.bottom{top:125%;left:50%;transform:translate(-50%)}.tooltip .tooltip-text.left{right:125%;top:50%;transform:translateY(-50%)}.tooltip .tooltip-text:after{content:"";position:absolute;border-width:5px;border-style:solid}.tooltip .tooltip-text.top:after{top:100%;left:50%;margin-left:-5px;border-color:var(--color-gray-900) transparent transparent transparent}.tooltip .tooltip-text.right:after{right:100%;top:50%;margin-top:-5px;border-color:transparent var(--color-gray-900) transparent transparent}.tooltip .tooltip-text.bottom:after{bottom:100%;left:50%;margin-left:-5px;border-color:transparent transparent var(--color-gray-900) transparent}.tooltip .tooltip-text.left:after{left:100%;top:50%;margin-top:-5px;border-color:transparent transparent transparent var(--color-gray-900)}.form-group{margin-bottom:var(--spacing-3)}.form-label{display:block;margin-bottom:var(--spacing-1);font-weight:var(--font-weight-bold)}input[type=text],input[type=email],input[type=password],input[type=number],input[type=tel],input[type=url],input[type=search],input[type=date],input[type=time],input[type=datetime-local],input[type=month],input[type=week],textarea{display:block;width:100%;padding:var(--input-padding);font-size:var(--font-size-base);line-height:var(--line-height-base);color:var(--input-color);background-color:var(--input-bg);border:var(--border-width) solid var(--input-border-color);border-radius:var(--input-border-radius);transition:var(--transition-base)}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=number]:focus,input[type=tel]:focus,input[type=url]:focus,input[type=search]:focus,input[type=date]:focus,input[type=time]:focus,input[type=datetime-local]:focus,input[type=month]:focus,input[type=week]:focus,textarea:focus{border-color:var(--input-focus-border-color);box-shadow:var(--input-focus-box-shadow)}input[type=radio],input[type=checkbox]{width:1rem;height:1rem;margin-right:var(--spacing-2);vertical-align:middle}select{display:block;width:100%;padding:var(--input-padding);font-size:var(--font-size-base);line-height:var(--line-height-base);color:var(--input-color);background-color:var(--input-bg);border:var(--border-width) solid var(--input-border-color);border-radius:var(--input-border-radius);transition:var(--transition-base);appearance:none;background-image:url("data:image/svg+xml,%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 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right var(--spacing-2) center;background-size:16px 12px}select:focus{border-color:var(--input-focus-border-color);box-shadow:var(--input-focus-box-shadow)}input[type=file]{display:block;width:100%;padding:var(--spacing-2);font-size:var(--font-size-base);line-height:var(--line-height-base);color:var(--input-color);background-color:var(--input-bg);border:var(--border-width) dashed var(--input-border-color);border-radius:var(--input-border-radius);transition:var(--transition-base)}input[type=file]:focus{border-color:var(--input-focus-border-color);box-shadow:var(--input-focus-box-shadow)}input:invalid,textarea:invalid{border-color:var(--color-danger)}input:invalid:focus,textarea:invalid:focus{box-shadow:0 0 0 .2rem #dc354540}.form-error{display:block;margin-top:var(--spacing-1);color:var(--color-danger);font-size:var(--font-size-sm)}.table{width:100%;margin-bottom:var(--spacing-4);background-color:var(--color-white);border-collapse:collapse}.table th,.table td{padding:var(--spacing-2);vertical-align:top;border-top:var(--border-width) solid var(--border-color)}.table thead th{vertical-align:bottom;border-bottom:calc(var(--border-width) * 2) solid var(--border-color);background-color:var(--color-gray-100);font-weight:var(--font-weight-bold)}.table tbody+tbody{border-top:calc(var(--border-width) * 2) solid var(--border-color)}.table-striped tbody tr:nth-of-type(odd){background-color:var(--color-gray-50)}.table-hover tbody tr:hover{background-color:var(--color-gray-100)}.table-bordered,.table-bordered th,.table-bordered td{border:var(--border-width) solid var(--border-color)}.table-borderless th,.table-borderless td,.table-borderless thead th,.table-borderless tbody+tbody{border:0}.table-sm th,.table-sm td{padding:var(--spacing-1)}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}input[type=range]{width:100%;height:var(--spacing-2);-webkit-appearance:none;background:var(--color-gray-200);border-radius:var(--border-radius);outline:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:var(--spacing-4);height:var(--spacing-4);background:var(--color-primary);border-radius:50%;cursor:pointer;transition:var(--transition-base)}input[type=range]::-webkit-slider-thumb:hover{background:var(--color-primary-dark)}input[type=range]::-moz-range-thumb{width:var(--spacing-4);height:var(--spacing-4);background:var(--color-primary);border-radius:50%;cursor:pointer;transition:var(--transition-base)}input[type=range]::-moz-range-thumb:hover{background:var(--color-primary-dark)}.range-label{display:flex;justify-content:space-between;margin-bottom:var(--spacing-1)}.range-value{font-size:var(--font-size-sm);color:var(--color-gray-600)}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:var(--spacing-2);font-weight:var(--font-weight-bold);line-height:var(--line-height-heading)}h1{font-size:var(--font-size-h1)}h2{font-size:var(--font-size-h2)}h3{font-size:var(--font-size-h3)}h4{font-size:var(--font-size-h4)}h5{font-size:var(--font-size-h5)}h6{font-size:var(--font-size-h6)}p{margin-top:0;margin-bottom:var(--spacing-3)}a{color:var(--color-primary);text-decoration:none;transition:var(--transition-base)}a:hover{color:var(--color-primary-dark);text-decoration:none}a:focus{outline:none;text-decoration:none}.link-primary{color:var(--color-primary)}.link-primary:hover{color:var(--color-primary-dark)}.link-secondary{color:var(--color-secondary)}.link-secondary:hover{color:var(--color-secondary-dark)}.link-success{color:var(--color-success)}.link-success:hover{color:var(--color-success-dark)}.link-danger{color:var(--color-danger)}.link-danger:hover{color:var(--color-danger-dark)}.link-warning{color:var(--color-warning)}.link-warning:hover{color:var(--color-warning-dark)}.link-info{color:var(--color-info)}.link-info:hover{color:var(--color-info-dark)}.container{width:100%;padding-right:var(--container-padding);padding-left:var(--container-padding);margin-right:auto;margin-left:auto}@media(min-width:576px){.container{max-width:540px}}@media(min-width:768px){.container{max-width:720px}}@media(min-width:992px){.container{max-width:960px}}@media(min-width:1200px){.container{max-width:var(--container-max-width)}}.row{display:flex;flex-wrap:wrap;margin-right:calc(var(--grid-gap) * -.5);margin-left:calc(var(--grid-gap) * -.5)}.col{flex:1 0 0%;padding-right:calc(var(--grid-gap) * .5);padding-left:calc(var(--grid-gap) * .5)}.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12{flex:0 0 auto;padding-right:calc(var(--grid-gap) * .5);padding-left:calc(var(--grid-gap) * .5)}.col-1{width:calc(100% * 1 / var(--grid-columns))}.col-2{width:calc(100% * 2 / var(--grid-columns))}.col-3{width:calc(100% * 3 / var(--grid-columns))}.col-4{width:calc(100% * 4 / var(--grid-columns))}.col-5{width:calc(100% * 5 / var(--grid-columns))}.col-6{width:calc(100% * 6 / var(--grid-columns))}.col-7{width:calc(100% * 7 / var(--grid-columns))}.col-8{width:calc(100% * 8 / var(--grid-columns))}.col-9{width:calc(100% * 9 / var(--grid-columns))}.col-10{width:calc(100% * 10 / var(--grid-columns))}.col-11{width:calc(100% * 11 / var(--grid-columns))}.col-12{width:calc(100% * 12 / var(--grid-columns))}.d-flex{display:flex}.flex-row{flex-direction:row}.flex-column{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.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}.m-0{margin:var(--spacing-0)!important}.m-1{margin:var(--spacing-1)!important}.m-2{margin:var(--spacing-2)!important}.m-3{margin:var(--spacing-3)!important}.m-4{margin:var(--spacing-4)!important}.m-5{margin:var(--spacing-5)!important}.mt-0{margin-top:var(--spacing-0)!important}.mt-1{margin-top:var(--spacing-1)!important}.mt-2{margin-top:var(--spacing-2)!important}.mt-3{margin-top:var(--spacing-3)!important}.mt-4{margin-top:var(--spacing-4)!important}.mt-5{margin-top:var(--spacing-5)!important}.mb-0{margin-bottom:var(--spacing-0)!important}.mb-1{margin-bottom:var(--spacing-1)!important}.mb-2{margin-bottom:var(--spacing-2)!important}.mb-3{margin-bottom:var(--spacing-3)!important}.mb-4{margin-bottom:var(--spacing-4)!important}.mb-5{margin-bottom:var(--spacing-5)!important}.ml-0{margin-left:var(--spacing-0)!important}.ml-1{margin-left:var(--spacing-1)!important}.ml-2{margin-left:var(--spacing-2)!important}.ml-3{margin-left:var(--spacing-3)!important}.ml-4{margin-left:var(--spacing-4)!important}.ml-5{margin-left:var(--spacing-5)!important}.mr-0{margin-right:var(--spacing-0)!important}.mr-1{margin-right:var(--spacing-1)!important}.mr-2{margin-right:var(--spacing-2)!important}.mr-3{margin-right:var(--spacing-3)!important}.mr-4{margin-right:var(--spacing-4)!important}.mr-5{margin-right:var(--spacing-5)!important}.mh-0{margin-left:var(--spacing-0)!important;margin-right:var(--spacing-0)!important}.mh-1{margin-left:var(--spacing-1)!important;margin-right:var(--spacing-1)!important}.mh-2{margin-left:var(--spacing-2)!important;margin-right:var(--spacing-2)!important}.mh-3{margin-left:var(--spacing-3)!important;margin-right:var(--spacing-3)!important}.mh-4{margin-left:var(--spacing-4)!important;margin-right:var(--spacing-4)!important}.mh-5{margin-left:var(--spacing-5)!important;margin-right:var(--spacing-5)!important}.mv-0{margin-top:var(--spacing-0)!important;margin-bottom:var(--spacing-0)!important}.mv-1{margin-top:var(--spacing-1)!important;margin-bottom:var(--spacing-1)!important}.mv-2{margin-top:var(--spacing-2)!important;margin-bottom:var(--spacing-2)!important}.mv-3{margin-top:var(--spacing-3)!important;margin-bottom:var(--spacing-3)!important}.mv-4{margin-top:var(--spacing-4)!important;margin-bottom:var(--spacing-4)!important}.mv-5{margin-top:var(--spacing-5)!important;margin-bottom:var(--spacing-5)!important}.p-0{padding:var(--spacing-0)!important}.p-1{padding:var(--spacing-1)!important}.p-2{padding:var(--spacing-2)!important}.p-3{padding:var(--spacing-3)!important}.p-4{padding:var(--spacing-4)!important}.p-5{padding:var(--spacing-5)!important}.pt-0{padding-top:var(--spacing-0)!important}.pt-1{padding-top:var(--spacing-1)!important}.pt-2{padding-top:var(--spacing-2)!important}.pt-3{padding-top:var(--spacing-3)!important}.pt-4{padding-top:var(--spacing-4)!important}.pt-5{padding-top:var(--spacing-5)!important}.pb-0{padding-bottom:var(--spacing-0)!important}.pb-1{padding-bottom:var(--spacing-1)!important}.pb-2{padding-bottom:var(--spacing-2)!important}.pb-3{padding-bottom:var(--spacing-3)!important}.pb-4{padding-bottom:var(--spacing-4)!important}.pb-5{padding-bottom:var(--spacing-5)!important}.pl-0{padding-left:var(--spacing-0)!important}.pl-1{padding-left:var(--spacing-1)!important}.pl-2{padding-left:var(--spacing-2)!important}.pl-3{padding-left:var(--spacing-3)!important}.pl-4{padding-left:var(--spacing-4)!important}.pl-5{padding-left:var(--spacing-5)!important}.pr-0{padding-right:var(--spacing-0)!important}.pr-1{padding-right:var(--spacing-1)!important}.pr-2{padding-right:var(--spacing-2)!important}.pr-3{padding-right:var(--spacing-3)!important}.pr-4{padding-right:var(--spacing-4)!important}.pr-5{padding-right:var(--spacing-5)!important}.ph-0{padding-left:var(--spacing-0)!important;padding-right:var(--spacing-0)!important}.ph-1{padding-left:var(--spacing-1)!important;padding-right:var(--spacing-1)!important}.ph-2{padding-left:var(--spacing-2)!important;padding-right:var(--spacing-2)!important}.ph-3{padding-left:var(--spacing-3)!important;padding-right:var(--spacing-3)!important}.ph-4{padding-left:var(--spacing-4)!important;padding-right:var(--spacing-4)!important}.ph-5{padding-left:var(--spacing-5)!important;padding-right:var(--spacing-5)!important}.pv-0{padding-top:var(--spacing-0)!important;padding-bottom:var(--spacing-0)!important}.pv-1{padding-top:var(--spacing-1)!important;padding-bottom:var(--spacing-1)!important}.pv-2{padding-top:var(--spacing-2)!important;padding-bottom:var(--spacing-2)!important}.pv-3{padding-top:var(--spacing-3)!important;padding-bottom:var(--spacing-3)!important}.pv-4{padding-top:var(--spacing-4)!important;padding-bottom:var(--spacing-4)!important}.pv-5{padding-top:var(--spacing-5)!important;padding-bottom:var(--spacing-5)!important}.bg-white{background-color:var(--color-white)}.bg-black{background-color:var(--color-black)}.bg-primary{background-color:var(--color-primary)}.bg-primary-dark{background-color:var(--color-primary-dark)}.bg-secondary{background-color:var(--color-secondary)}.bg-secondary-dark{background-color:var(--color-secondary-dark)}.bg-success{background-color:var(--color-success)}.bg-danger{background-color:var(--color-danger)}.bg-warning{background-color:var(--color-warning)}.bg-info{background-color:var(--color-info)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-600{background-color:var(--color-gray-600)}.bg-gray-700{background-color:var(--color-gray-700)}.bg-gray-800{background-color:var(--color-gray-800)}.bg-gray-900{background-color:var(--color-gray-900)}.shadow{box-shadow:var(--box-shadow)}.font-weight-light{font-weight:var(--font-weight-light)}.font-weight-normal{font-weight:var(--font-weight-normal)}.font-weight-bold{font-weight:var(--font-weight-bold)}.line-height-base{line-height:var(--line-height-base)}.line-height-sm{line-height:var(--line-height-sm)}.line-height-lg{line-height:var(--line-height-lg)}.line-height-heading{line-height:var(--line-height-heading)}.font-size-base{font-size:var(--font-size-base)}.font-size-sm{font-size:var(--font-size-sm)}.font-size-lg{font-size:var(--font-size-lg)}.font-size-h1{font-size:var(--font-size-h1)}.font-size-h2{font-size:var(--font-size-h2)}.font-size-h3{font-size:var(--font-size-h3)}.font-size-h4{font-size:var(--font-size-h4)}.font-size-h5{font-size:var(--font-size-h5)}.font-size-h6{font-size:var(--font-size-h6)}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.text-uppercase{text-transform:uppercase}.text-lowercase{text-transform:lowercase}.text-capitalize{text-transform:capitalize}.text-muted{color:var(--color-gray-600)}.font-italic{font-style:italic}.rounded{border-radius:var(--border-radius)}.rounded-sm{border-radius:var(--border-radius-sm)}.rounded-lg{border-radius:var(--border-radius-lg)}.rounded-circle{border-radius:50%}.rounded-pill{border-radius:50rem}.rounded-0{border-radius:0}.border{border:var(--border-width) solid var(--border-color)}.border-0{border:0}.border-top{border-top:var(--border-width) solid var(--border-color)}.border-right{border-right:var(--border-width) solid var(--border-color)}.border-bottom{border-bottom:var(--border-width) solid var(--border-color)}.border-left{border-left:var(--border-width) solid var(--border-color)}.text-white{color:var(--color-white)}.text-black{color:var(--color-black)}.text-primary{color:var(--color-primary)}.text-secondary{color:var(--color-secondary)}.text-success{color:var(--color-success)}.text-danger{color:var(--color-danger)}.text-warning{color:var(--color-warning)}.text-info{color:var(--color-info)}.text-gray-100{color:var(--color-gray-100)}.text-gray-200{color:var(--color-gray-200)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.toasty-dispatcher{position:fixed;top:40px;right:20px;z-index:1000}.toasty{min-width:400px;width:400px;max-width:400px;overflow:hidden;border-radius:.5rem;display:flex;align-items:center;justify-content:center;padding:.5rem;transform:translateY(-20px);transition:opacity .5s,transform .5s;margin-bottom:1rem;height:70px;max-height:70px;min-height:70px;white-space:nowrap;border:1px solid #e6eff8;background:#f4f6ff;box-shadow:var(--box-shadow);background:linear-gradient(135deg,#f0f4ff,#e0e7ff);background:var(--color-white);border:1px solid #e4eef7}.toasty:hover{cursor:pointer}.toasty-icon,.toasty-close{height:100%;display:flex;align-items:center;justify-content:center}.toasty-icon img,.toasty-close img{width:100%;height:100%}.toasty-icon{width:1.5rem;margin-right:.5rem}.toasty-close{width:1rem;margin-left:.25rem;margin-right:.25rem}.toasty-content{flex:1;overflow:hidden;display:flex;justify-content:center;flex-direction:column}.toasty.show{opacity:1;transform:translateY(0)}.toasty .toasty-header{font-size:1rem;color:var(--text)}.toasty .toasty-body{font-size:.75rem;overflow:hidden;width:100%;color:var(--text-light)}:root{--color-primary: #9b87f5;--color-primary-dark: #7a63e3;--color-secondary: #63a5e3;--color-secondary-dark: #e3f1ff;--color-success: #2ecc71;--color-danger: #e74c3c;--color-warning: #f1c40f;--color-info: #bdc3c7;--font-family-base: "Montserrat", sans-serif;--font-size-base: 16px;--box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);--font-size-h1: 4.8rem;--font-size-h2: 3rem;--font-size-h3: 2.5rem;--font-size-h4: 2rem;--font-size-h5: 1.75rem;--font-size-h6: 1.25rem;--spacing-unit: 2rem}body{min-height:100vh;display:flex;flex-direction:column}body main{flex:1}nav{display:flex;justify-content:space-between;align-items:center;padding:2rem 0}nav ul{display:flex;gap:1rem;list-style:none;margin-bottom:0}nav ul li a{text-decoration:none;padding:.5rem 1rem;border-radius:.25rem;transition:background-color .3s ease}nav ul li a.a-button{padding:.5rem 1rem;border-radius:.25rem;transition:background-color .3s ease}.logo{display:flex;align-items:center;gap:.5rem}.logo span{font-size:1.5rem;font-weight:600;text-decoration:none}.logo img{height:100%;object-fit:contain;width:28px;transition:var(--transition-base)}.logo:hover img{text-decoration:none;opacity:.6}.hero{background:linear-gradient(to bottom,var(--color-primary),var(--color-secondary))}.hero .container{display:flex;justify-content:center;align-items:flex-start;flex-direction:column;gap:1rem;padding:var(--spacing-5) 0}.hero .container h1{color:var(--color-white)}.hero .container p{color:var(--color-white);font-size:2.2rem}.hero .container .btn.btn-outline-primary{color:var(--color-white);border-color:var(--color-white);transition:var(--transition-base)}.hero .container .btn.btn-outline-primary:hover{background-color:#ffffff1a}.features-section{padding:var(--spacing-5) 0}.features-section h2{font-size:1.6rem;text-align:center;margin-bottom:2rem}.features-section h3{font-size:1rem;margin-bottom:1rem}.features-section .row{gap:2rem}.features-section .row .col{background-color:#63a5e33f;padding:var(--spacing-3)}.features-section .row .col .feature-icon{font-size:2rem;margin-bottom:1rem}.highlight{color:var(--color-warning);font-weight:600}.demo-section{background:var(--color-black);padding:var(--spacing-5) 0}.demo-section .container{display:flex;justify-content:center;align-items:center;gap:1rem;color:var(--color-white)}.testimonials-section{padding:var(--spacing-5) 0}.testimonials-section h2{font-size:1.6rem}.pricing-section .container{background:#63a5e33f;padding:var(--spacing-5)}.pricing-section .container .price-tag{font-size:2rem;font-weight:600;margin-bottom:var(--spacing-3)}.pricing-section .container .price-tag-small{font-size:1rem;font-weight:400;color:var(--color-gray-600)}.pricing-section .container .price-description{font-size:1rem;font-weight:400;margin-bottom:var(--spacing-1)}.pricing-section .container .price-description:last-of-type{margin-bottom:var(--spacing-3)}@media(max-width:576px){.pricing-section .container{padding:var(--spacing-2)}.demo-section .container,.demo-section .container .row,.demo-section .container .row .col,.demo-section .container .row .col iframe{width:100%}.demo-section .container .row{flex-direction:column}nav.container{flex-direction:column}nav.container ul{margin-left:0;padding-left:0}nav.container .logo{margin-bottom:var(--spacing-2)}}.feedback{position:fixed;right:0;top:calc(50% - 50px);transform:rotate(-90deg) translateY(30px);background:var(--color-secondary);color:var(--color-white);margin:0;padding:0;width:100px;height:40px;display:flex;box-sizing:border-box;justify-content:center;align-items:center;text-decoration:none;border-top-left-radius:4px;border-top-right-radius:4px}.feedback:hover{cursor:pointer;transition:var(--transition-base);box-shadow:0 0 10px 2px #ffffff1a;color:var(--color-primary);background:var(--color-secondary-dark)}.feedback-link{text-decoration:none}.metronome-container{border:1px solid var(--color-gray-300);background-color:var(--color-gray-100);border-radius:.25rem;padding:3rem}.beat-indicator-row{gap:.5rem}.beat-indicator{width:2rem;height:2rem;border-radius:.25rem;display:flex;justify-content:center;align-items:center;font-weight:600}.drum-analyzer-container{padding:2rem;border-radius:8px;margin-top:2rem}.waveform-canvas{width:100%;height:350px;background:#1a1a1a;border-radius:4px;margin:1rem 0}.analyzer-status{display:flex;align-items:center;gap:1rem;margin:1rem 0;padding:1rem;border-radius:4px}.status-indicator{width:12px;height:12px;border-radius:50%;background:#4a4a4a;transition:background-color .3s}.is-listening .status-indicator{background:#22c55e;animation:pulse 1s infinite}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.accuracy-display{margin:1rem 0}.accuracy-meter{height:8px;border-radius:4px;overflow:hidden;margin-bottom:.5rem}.accuracy-bar{height:100%;background:#22c55e;transition:width .3s ease}.accuracy-text{font-size:.9rem;color:#888}.hit-history{max-height:200px;overflow-y:auto;margin:1rem 0;padding:1rem;border-radius:4px}.hit-item{display:flex;justify-content:space-between;padding:.5rem;border-bottom:1px solid #3a3a3a}.hit-item:last-child{border-bottom:none}.hit-item.accurate{color:#22c55e}.hit-item.late{color:#f59e0b}.hit-item.early{color:#ef4444}.metronome-demo{padding:1rem;border:1px solid var(--color-gray-800);background:var(--color-gray-900);border-radius:.5rem}.metronome-demo img{border-radius:.25rem}.blog-title{font-size:var(--font-size-h1);margin-bottom:var(--spacing-4);color:var(--color-gray-900)}.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--grid-gap);margin-bottom:var(--spacing-5)}.blog-card{background:var(--color-white);border-radius:var(--border-radius);box-shadow:var(--box-shadow);transition:var(--transition-base);overflow:hidden;height:100%;display:flex;flex-direction:column}.blog-card:hover{transform:translateY(-5px);box-shadow:0 .75rem 1.5rem #0003}.blog-card-image{width:100%;height:200px;object-fit:cover}.blog-card-content{padding:var(--spacing-3);flex:1;display:flex;flex-direction:column}.blog-card-title{font-size:var(--font-size-h4)}.blog-card-category{font-size:var(--font-size-sm);color:var(--color-gray-600);margin-bottom:var(--spacing-2);text-transform:capitalize}.blog-card-link{color:var(--color-gray-900);text-decoration:none;transition:var(--transition-base)}.blog-card-link:hover{color:var(--color-primary)}.blog-card-date{color:var(--color-gray-600);font-size:var(--font-size-sm);margin-bottom:var(--spacing-2)}.blog-card-excerpt{color:var(--color-gray-700);margin-bottom:0;flex:1}.blog-card-readmore{color:var(--color-primary);text-decoration:none;font-weight:var(--font-weight-bold);transition:var(--transition-base)}.blog-card-readmore:hover{color:var(--color-primary-dark)}.blog-empty{text-align:center;padding:var(--spacing-5);color:var(--color-gray-600);font-size:var(--font-size-lg)}@media(max-width:768px){.blog-grid{grid-template-columns:1fr}.blog-title{font-size:var(--font-size-h2)}}.pagination{display:flex;justify-content:center;align-items:center;gap:var(--spacing-4);margin:var(--spacing-5) 0}.pagination-link{color:var(--color-primary);text-decoration:none;font-weight:var(--font-weight-bold);transition:var(--transition-base);padding:var(--spacing-2) var(--spacing-3);border-radius:var(--border-radius);background-color:var(--color-white);box-shadow:var(--box-shadow)}.pagination-link:hover{color:var(--color-primary-dark);transform:translateY(-2px);box-shadow:0 .5rem 1rem #00000026}.pagination-current{color:var(--color-gray-700);font-weight:var(--font-weight-medium)}.blog-post{max-width:var(--container-max-width);margin:0 auto;padding:0}.blog-post-header{text-align:center;margin-bottom:var(--spacing-4)}.blog-post-title{font-size:var(--font-size-h1);color:var(--color-gray-900);margin-bottom:var(--spacing-2);line-height:var(--line-height-heading)}.blog-post-date{color:var(--color-gray-600);font-size:var(--font-size-sm);margin-bottom:var(--spacing-3)}.blog-post-image{margin:0 0 var(--spacing-4) 0;border-radius:var(--border-radius);overflow:hidden;box-shadow:var(--box-shadow)}.blog-post-image img{width:100%;height:auto;display:block}.blog-post-content{font-size:var(--font-size-base);line-height:var(--line-height-lg);color:var(--color-gray-800)}.blog-post-content h2{font-size:var(--font-size-h2);margin:var(--spacing-4) 0 var(--spacing-3);color:var(--color-gray-900)}.blog-post-content h3{font-size:var(--font-size-h3);margin:var(--spacing-3) 0 var(--spacing-2);color:var(--color-gray-900)}.blog-post-content p{margin-bottom:var(--spacing-3)}.blog-post-content a{color:var(--color-primary);text-decoration:none;transition:var(--transition-base)}.blog-post-content a:hover{color:var(--color-primary-dark);text-decoration:underline}.blog-post-content ul,.blog-post-content ol{margin:var(--spacing-3) 0;padding-left:var(--spacing-4)}.blog-post-content li{margin-bottom:var(--spacing-2)}.blog-post-content blockquote{border-left:4px solid var(--color-primary);padding:var(--spacing-2) var(--spacing-3);margin:var(--spacing-3) 0;background-color:var(--color-gray-100);font-style:italic}.blog-post-content code{background-color:var(--color-gray-100);padding:.2em .4em;border-radius:var(--border-radius-sm);font-size:.9em}.blog-post-content pre{background-color:var(--color-gray-100);padding:var(--spacing-3);border-radius:var(--border-radius);overflow-x:auto;margin:var(--spacing-3) 0}.blog-post-content pre code{background-color:transparent;padding:0}.blog-post-content img{max-width:100%;height:auto;border-radius:var(--border-radius);margin:var(--spacing-3) 0}@media(max-width:768px){.blog-post-title{font-size:var(--font-size-h2)}.blog-post-content h2{font-size:var(--font-size-h3)}.blog-post-content h3{font-size:var(--font-size-h4)}}.spinner-border{display:inline-block;width:2rem;height:2rem;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;animation:spinner-border .75s linear infinite}@keyframes spinner-border{to{transform:rotate(360deg)}}[x-cloak]{display:none!important}.flex-1{flex:1}.blog-container{padding:var(--spacing-5) 0}.article-container,.blog-grid-container{display:flex;gap:var(--spacing-4);margin-bottom:var(--spacing-4)}.blog-grid-container-posts,.blog-post{flex:1}.blog-post-sidebar{width:300px}.sidebar-section{background-color:#63a5e33f;padding:var(--spacing-3);margin-bottom:var(--spacing-4)}.sidebar-section:last-child{margin-bottom:0}.sidebar-section h3{font-size:var(--font-size-h5);color:var(--color-gray-900);margin-bottom:var(--spacing-2);padding-bottom:var(--spacing-2);border-bottom:2px solid var(--color-secondary)}.sidebar-section-highlight{background-color:var(--color-black);color:var(--color-white)}.sidebar-section-highlight h3{color:var(--color-white)}.sidebar-list{list-style:none;padding:0;margin:0}.sidebar-list li{margin-bottom:var(--spacing-2)}.sidebar-list li:last-child{margin-bottom:0}.sidebar-list a{color:var(--color-gray-700);text-decoration:none;transition:var(--transition-base);display:block;padding:var(--spacing-1) 0;text-transform:capitalize}.sidebar-list a:hover{color:var(--color-primary);transform:translate(5px)}.sidebar-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-2)}.sidebar-tags .tag{display:inline-block;padding:.25rem .75rem;background-color:var(--color-gray-200);color:var(--color-gray-700);border-radius:var(--border-radius-sm);text-decoration:none;font-size:.875rem;transition:var(--transition-base)}.sidebar-tags .tag:hover{background-color:var(--color-primary);color:var(--color-white)}@media(max-width:992px){.blog-post-sidebar{width:100%;margin-left:0;margin-top:var(--spacing-4)}}dialog.dialog-modal{position:fixed;width:100vw;height:100vh;background:#0000004d;top:0;left:0;border:0;z-index:9999}.modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a,0 1px 3px #00000014;width:90%;max-width:500px;max-height:90vh;display:flex;flex-direction:column;z-index:1000;animation:modalFadeIn .3s ease-out}.modal-header{padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center}.modal-header h3{margin:0;font-size:1.25rem;font-weight:600;color:#1f2937}.modal-header button[data-type=modal-close]{background:none;border:none;padding:.5rem;cursor:pointer;color:#6b7280;transition:color .2s}.modal-header button[data-type=modal-close]:hover{color:#1f2937}.modal-body{padding:1.5rem;overflow-y:auto;flex:1}.modal-body p{margin:0;color:#4b5563;line-height:1.5}.modal-footer{padding:1rem 1.5rem;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:.75rem}dialog::backdrop{background:#00000080;animation:backdropFadeIn .3s ease-out}@keyframes modalFadeIn{0%{opacity:0;transform:translate(-50%,-48%)}to{opacity:1;transform:translate(-50%,-50%)}}@keyframes backdropFadeIn{0%{opacity:0}to{opacity:1}}@media(max-width:640px){.modal{width:95%;margin:.5rem}.modal-header,.modal-body,.modal-footer{padding:1rem}}.blog-category-title{font-size:var(--font-size-h5);margin-bottom:var(--spacing-5);color:var(--color-gray-500)}.blog-section{background-color:var(--color-gray-100);padding:var(--spacing-5) 0}.blog-section .blog-section-heading{text-align:center}.blog-section .blog-section-description{text-align:center;margin-bottom:var(--spacing-5)}.blog-section .blog-grid{margin-bottom:0}
