*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:100%;tab-size:4}body{line-height:1.5;-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}button{background:none;border:none;cursor:pointer}ul,ol{list-style:none}a{text-decoration:none;color:inherit}table{border-collapse:collapse;border-spacing:0}fieldset{border:none}legend{padding:0}textarea{resize:vertical}summary{display:list-item}dialog{padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration{-webkit-appearance:none}input[type=date],input[type=time],input[type=datetime-local]{-webkit-appearance:none}img,video{max-width:100%;height:auto}iframe{border:0}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.js-focus-visible :focus:not(.focus-visible){outline:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideInDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes slideOutUp{0%{transform:translateY(0)}to{transform:translateY(-100%)}}@keyframes slideOutDown{0%{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}@keyframes ring{0%{transform:rotate(0)}5%,15%{transform:rotate(14deg)}10%,20%{transform:rotate(-14deg)}25%{transform:rotate(0)}}@keyframes progress{0%{width:0%}to{width:100%}}.animate-fade-in{animation:fadeIn .2s ease forwards}.animate-fade-out{animation:fadeOut .2s ease forwards}.animate-fade-in-up{animation:fadeInUp .2s ease forwards}.animate-fade-in-down{animation:fadeInDown .2s ease forwards}.animate-fade-in-left{animation:fadeInLeft .2s ease forwards}.animate-fade-in-right{animation:fadeInRight .2s ease forwards}.animate-slide-in-up{animation:slideInUp .2s ease forwards}.animate-slide-in-down{animation:slideInDown .2s ease forwards}.animate-slide-in-left{animation:slideInLeft .2s ease forwards}.animate-slide-in-right{animation:slideInRight .2s ease forwards}.animate-scale-in{animation:scaleIn .2s ease forwards}.animate-scale-out{animation:scaleOut .2s ease forwards}.animate-pulse{animation:pulse 2s ease-in-out infinite}.animate-bounce{animation:bounce 1s ease-in-out infinite}.animate-spin{animation:spin 1s linear infinite}.animate-shake{animation:shake .5s ease-in-out}.skeleton,.skeleton-rect,.skeleton-circle,.skeleton-text{background:linear-gradient(90deg,#e5e7eb 25%,#f3f4f6,#e5e7eb 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:.25rem}.skeleton-text{height:1em;margin-bottom:.5rem}.skeleton-text:last-child{width:80%}.skeleton-circle{border-radius:50%}.skeleton-rect{border-radius:.5rem}.transition-none{transition:none}.transition-all{transition:all .2s ease}.transition-colors{transition:color .2s ease,background-color .2s ease,border-color .2s ease}.transition-opacity{transition:opacity .2s ease}.transition-shadow{transition:box-shadow .2s ease}.transition-transform{transition:transform .2s ease}.duration-fast{transition-duration:.15s}.duration-normal{transition-duration:.2s}.duration-slow{transition-duration:.3s}.hover-lift{transition:transform .15s ease,box-shadow .15s ease}.hover-lift:hover{transform:translateY(-2px);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.hover-scale{transition:transform .15s ease}.hover-scale:hover{transform:scale(1.02)}.hover-glow{transition:box-shadow .15s ease}.hover-glow:hover{box-shadow:0 0 20px #2563eb4d}.animate-delay-1{animation-delay:50ms}.stagger-1,.animate-delay-2{animation-delay:.1s}.stagger-2{animation-delay:.2s}.animate-delay-3{animation-delay:.15s}.stagger-3{animation-delay:.3s}.animate-delay-4{animation-delay:.2s}.stagger-4{animation-delay:.4s}.animate-delay-5{animation-delay:.25s}.stagger-5{animation-delay:.5s}.animate-delay-6{animation-delay:.3s}.stagger-6{animation-delay:.6s}.animate-delay-7{animation-delay:.35s}.stagger-7{animation-delay:.7s}.animate-delay-8{animation-delay:.4s}.stagger-8{animation-delay:.8s}.animate-delay-9{animation-delay:.45s}.stagger-9{animation-delay:.9s}.animate-delay-10{animation-delay:.5s}.stagger-10{animation-delay:1s}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:root{--color-primary: #2563eb;--color-primary-light: #60a5fa;--color-primary-dark: #1e40af;--color-primary-hover: #1d4ed8;--color-bg-primary: #f9fafb;--color-bg-secondary: #ffffff;--color-surface: #ffffff;--color-text-primary: #111827;--color-text-secondary: #4b5563;--color-text-disabled: #9ca3af;--color-border: #d1d5db;--color-border-light: #e5e7eb;--color-success: #059669;--color-warning: #d97706;--color-error: #dc2626;--color-info: #0284c7;--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--spacing-1: .25rem;--spacing-2: .5rem;--spacing-3: .75rem;--spacing-4: 1rem;--spacing-6: 1.5rem;--spacing-8: 2rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--transition-fast: .15s ease;--transition-normal: .2s ease}.d-none{display:none}.d-block{display:block}.d-inline{display:inline}.d-inline-block{display:inline-block}.d-flex{display:flex}.d-inline-flex{display:inline-flex}.d-grid{display:grid}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.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}.justify-evenly{justify-content:space-evenly}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.self-auto{align-self:auto}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-stretch{align-self:stretch}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-initial{flex:0 1 auto}.flex-none{flex:none}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.w-full{width:100%}.w-auto{width:auto}.w-screen{width:100vw}.w-min{width:min-content}.w-max{width:max-content}.w-fit{width:-moz-fit-content;width:fit-content}.h-full{height:100%}.h-auto{height:auto}.h-screen{height:100vh}.min-w-0{min-width:0}.min-w-full{min-width:100%}.min-h-0{min-height:0}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.max-w-none{max-width:none}.max-w-full{max-width:100%}.max-w-screen{max-width:100vw}.max-w-sm{max-width:640px}.max-w-md{max-width:768px}.max-w-lg{max-width:1024px}.max-w-xl{max-width:1280px}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.text-3xl{font-size:1.875rem}.text-4xl{font-size:2.25rem}.font-light{font-weight:300}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.italic{font-style:italic}.not-italic{font-style:normal}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.underline{text-decoration:underline}.line-through{text-decoration:line-through}.no-underline{text-decoration:none}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-ellipsis{text-overflow:ellipsis}.text-clip{text-overflow:clip}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.break-normal{word-break:normal;overflow-wrap:normal}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.text-primary{color:#111827}.text-secondary{color:#4b5563}.text-tertiary{color:#6b7280}.text-disabled{color:#9ca3af}.text-white{color:#fff}.text-inherit{color:inherit}.text-brand{color:#2563eb}.text-success{color:#059669}.text-warning{color:#d97706}.text-error{color:#dc2626}.text-info{color:#0284c7}.bg-transparent{background-color:transparent}.bg-white{background-color:#fff}.bg-primary{background-color:#f9fafb}.bg-secondary,.bg-surface{background-color:#fff}.bg-brand{background-color:#2563eb}.bg-brand-light{background-color:#dbeafe}.bg-success{background-color:#059669}.bg-success-light{background-color:#d1fae5}.bg-warning{background-color:#d97706}.bg-warning-light{background-color:#fef3c7}.bg-error{background-color:#dc2626}.bg-error-light{background-color:#fee2e2}.bg-info{background-color:#0284c7}.bg-info-light{background-color:#e0f2fe}.bg-gray-50{background-color:#f9fafb}.bg-gray-100{background-color:#f3f4f6}.bg-gray-200{background-color:#e5e7eb}.bg-gray-300{background-color:#d1d5db}.border{border:1px solid #d1d5db}.border-0{border:none}.border-t{border-top:1px solid #d1d5db}.border-r{border-right:1px solid #d1d5db}.border-b{border-bottom:1px solid #d1d5db}.border-l{border-left:1px solid #d1d5db}.border-light{border-color:#e5e7eb}.border-dark{border-color:#9ca3af}.border-brand{border-color:#2563eb}.border-success{border-color:#059669}.border-warning{border-color:#d97706}.border-error{border-color:#dc2626}.rounded-none{border-radius:0}.rounded-sm{border-radius:.25rem}.rounded{border-radius:.375rem}.rounded-md{border-radius:.5rem}.rounded-lg{border-radius:.75rem}.rounded-xl{border-radius:1rem}.rounded-2xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.shadow-none{box-shadow:none}.shadow-xs{box-shadow:0 1px 2px #0000000d}.shadow-sm{box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}.shadow,.shadow-md{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.shadow-lg{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.shadow-xl{box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a}.shadow-2xl{box-shadow:0 25px 50px -12px #00000040}.shadow-inner{box-shadow:inset 0 2px 4px #0000000d}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.cursor-auto{cursor:auto}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.cursor-text{cursor:text}.cursor-move{cursor:move}.cursor-not-allowed{cursor:not-allowed}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.select-all{-webkit-user-select:all;user-select:all}.select-auto{-webkit-user-select:auto;user-select:auto}.visible{visibility:visible}.invisible{visibility:hidden}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-auto{z-index:auto}.z-dropdown{z-index:1000}.z-sticky{z-index:1020}.z-modal{z-index:1050}.z-tooltip{z-index:1070}@media (max-width: 640px){.hide-sm{display:none!important}}@media (max-width: 768px){.hide-md{display:none!important}}@media (min-width: 768px){.show-md{display:block!important}.hide-desktop{display:none!important}}@media (min-width: 1024px){.show-lg{display:block!important}}@media (min-width: 640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width: 768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width: 1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}}html{height:100%;margin:0;padding:0;overflow-x:hidden;overflow-y:auto;width:100%;max-width:100vw;font-size:16px;-webkit-text-size-adjust:100%}app-root{display:block;isolation:isolate}body{height:100%;margin:0;padding:0;overflow-x:hidden;overflow-y:auto;width:100%;max-width:100vw;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:1rem;line-height:1.5;color:#111827;background-color:#f9fafb;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-weight:600;color:#111827;margin:0 0 1rem;line-height:1.25}h1{font-size:2.25rem;font-weight:700;letter-spacing:-.025em}h2{font-size:1.875rem;font-weight:700}h3{font-size:1.5rem}h4{font-size:1.25rem}h5{font-size:1.125rem}h6{font-size:1rem}p{margin:0 0 1rem;color:#4b5563;line-height:1.625}a{color:#2563eb;text-decoration:none;transition:color .2s ease,background-color .2s ease,border-color .2s ease}a:hover{color:#1e40af;text-decoration:underline}.container{padding:1.5rem;max-width:1280px;margin:0 auto;width:100%;box-sizing:border-box}@media (max-width: 768px){.container{padding:1rem}}.full-width{width:100%}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.mt-16{margin-top:1rem}.mb-16{margin-bottom:1rem}.mt-24{margin-top:1.5rem}.mb-24{margin-bottom:1.5rem}.mt-32{margin-top:2rem}.mb-32{margin-bottom:2rem}.payment-status-badge{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.payment-status-badge.unpaid{background-color:#fee2e2;color:#b91c1c}.payment-status-badge.partial{background-color:#fef3c7;color:#b45309}.payment-status-badge.paid{background-color:#d1fae5;color:#047857}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f3f4f6;border-radius:.25rem}::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:.25rem;-webkit-transition:background .15s ease;transition:background .15s ease}::-webkit-scrollbar-thumb:hover{background:#9ca3af}*{scrollbar-width:thin;scrollbar-color:#d1d5db #f3f4f6}*:focus-visible{outline:2px solid #2563eb;outline-offset:2px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.skip-link{position:absolute;top:-40px;left:0;background:#2563eb;color:#fff;padding:.5rem 1rem;text-decoration:none;z-index:1070;border-radius:0 0 .5rem;font-weight:500;transition:top .15s ease}.skip-link:focus{top:0}.fc{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.fc .fc-toolbar-title{font-size:1.25rem;font-weight:600;color:#111827}.fc .fc-button{background-color:#2563eb;border-color:#2563eb;font-weight:500;padding:.5rem 1rem;border-radius:.5rem;transition:all .2s ease}.fc .fc-button:hover{background-color:#1d4ed8;border-color:#1d4ed8}.fc .fc-button:focus{box-shadow:0 0 0 3px #3b82f64d}.fc .fc-button.fc-button-active{background-color:#1e40af;border-color:#1e40af}.fc .fc-daygrid-day:hover{background-color:#eff6ff}.fc .fc-daygrid-day-number{color:#111827;font-weight:500}.fc .fc-event{border-radius:.25rem;padding:.25rem;font-size:.875rem;cursor:pointer;transition:transform .2s ease}.fc .fc-event:hover{transform:scale(1.02)}.fc .fc-col-header-cell-cushion{color:#4b5563;font-weight:600;text-transform:uppercase;font-size:.75rem;letter-spacing:.025em}.fc .fc-scrollgrid,.fc .fc-scrollgrid td,.fc .fc-scrollgrid th{border-color:#e5e7eb}canvas{max-width:100%}.form-error{color:#dc2626;font-size:.875rem;margin-top:.25rem;display:flex;align-items:center;gap:.25rem}.form-hint{color:#6b7280;font-size:.875rem;margin-top:.25rem}.tooltip{position:absolute;z-index:1070;padding:.5rem .75rem;font-size:.75rem;font-weight:500;color:#fff;background:#1f2937;border-radius:.5rem;white-space:nowrap;pointer-events:none;opacity:0;transform:scale(.95);transition:opacity .15s ease,transform .15s ease;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;max-width:250px}.tooltip.visible{opacity:1;transform:scale(1)}.tooltip:after{content:"";position:absolute;border:5px solid transparent}.tooltip.tooltip-top:after{top:100%;left:50%;transform:translate(-50%);border-top-color:#1f2937}.tooltip.tooltip-bottom:after{bottom:100%;left:50%;transform:translate(-50%);border-bottom-color:#1f2937}.tooltip.tooltip-left:after{left:100%;top:50%;transform:translateY(-50%);border-left-color:#1f2937}.tooltip.tooltip-right:after{right:100%;top:50%;transform:translateY(-50%);border-right-color:#1f2937}@media print{body{background:#fff;color:#000}.no-print{display:none!important}}
