/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{@supports ((-webkit-hyphens:none) and ( not (margin-trim:inline))) or ((-moz-orient:inline) and ( not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}.isolate{isolation:isolate}.container{width:100%}.mx-auto{margin-inline-start:auto;margin-inline-end:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.inline{display:inline}.inline-block{display:inline-block}.min-h-screen{min-height:100vh}.items-center{align-items: center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.text-center{text-align:center}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}body{min-height:100vh;margin:0;padding:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}#root{min-height:100vh}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}*{box-sizing:border-box}body{color:#1e293b;background-color:#f8fafc;margin:0;padding:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}#root{min-height:100vh}.app-layout{display:flex;min-height:100vh}.sidebar{color:#fff;display:flex;background-color:#1e293b;flex-direction:column;width:256px;padding:1.5rem}.sidebar-logo{color:#38bdf8;margin-bottom:2rem;font-size:1.5rem;font-weight:700}.sidebar-nav{display:flex;flex-direction:column;gap:.5rem}.sidebar-link{display:flex;color:#94a3b8;text-decoration:none;border-radius:.5rem;align-items: center;gap:.75rem;padding:.75rem 1rem;transition:all .2s}.sidebar-link:hover{color:#fff;background-color:#334155}.sidebar-link.active{color:#fff;background-color:#0ea5e9}.main-content{display:flex;flex-direction:column;flex:1}.header{display:flex;background-color:#fff;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items: center;padding:1rem 2rem}.header-title{color:#1e293b;font-size:1.25rem;font-weight:600}.content{flex:1;padding:2rem}.card{background-color:#fff;border-radius:.75rem;padding:1.5rem;box-shadow:0 1px 3px #0000001a}.card-header{display:flex;justify-content:space-between;align-items: center;margin-bottom:1rem}.card-title{color:#475569;font-size:1rem;font-weight:600}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{background-color:#fff;border-radius:.75rem;padding:1.5rem;box-shadow:0 1px 3px #0000001a}.stat-label{color:#64748b;margin-bottom:.5rem;font-size:.875rem}.stat-value{color:#1e293b;font-size:2rem;font-weight:700}.stat-change{margin-top:.5rem;font-size:.875rem}.stat-change.positive{color:#10b981}.stat-change.negative{color:#ef4444}.table-container{overflow-x:auto}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid #e2e8f0;padding:.75rem 1rem}.table th{text-transform:uppercase;color:#64748b;background-color:#f8fafc;font-size:.75rem;font-weight:600}.table tbody tr:hover{background-color:#f8fafc}.btn{display:inline-flex;cursor:pointer;border:none;border-radius:.5rem;justify-content:center;align-items: center;gap:.5rem;padding:.5rem 1rem;transition:all .2s;font-size:.875rem;font-weight:500}.btn-primary{color:#fff;background-color:#0ea5e9}.btn-primary:hover{background-color:#0284c7}.btn-secondary{color:#475569;background-color:#f1f5f9}.btn-secondary:hover{background-color:#e2e8f0}.btn-danger{color:#fff;background-color:#ef4444}.btn-danger:hover{background-color:#dc2626}.badge{display:inline-flex;border-radius:9999px;align-items: center;padding:.25rem .75rem;font-size:.75rem;font-weight:500}.badge-success{color:#166534;background-color:#dcfce7}.badge-warning{color:#92400e;background-color:#fef3c7}.badge-danger{color:#991b1b;background-color:#fee2e2}.badge-info{color:#1e40af;background-color:#dbeafe}.badge-secondary{color:#475569;background-color:#e2e8f0}.form-group{margin-bottom:1rem}.form-label{display:block;color:#475569;margin-bottom:.5rem;font-size:.875rem;font-weight:500}.form-input{border:1px solid #e2e8f0;border-radius:.5rem;width:100%;padding:.5rem .75rem;transition:border-color .2s;font-size:.875rem}.form-input:focus{outline:none;border-color:#0ea5e9;box-shadow:0 0 0 3px #0ea5e91a}.alert-item{display:flex;border-bottom:1px solid #e2e8f0;align-items: flex-start;gap:1rem;padding:1rem}.alert-item:last-child{border-bottom:none}.alert-icon{display:flex;border-radius:.5rem;flex-shrink:0;justify-content:center;align-items: center;width:2.5rem;height:2.5rem}.alert-icon.warning{color:#f59e0b;background-color:#fef3c7}.alert-icon.danger{color:#ef4444;background-color:#fee2e2}.alert-content{flex:1}.alert-title{color:#1e293b;margin-bottom:.25rem;font-weight:500}.alert-description{color:#64748b;font-size:.875rem}.alert-time{color:#94a3b8;font-size:.75rem}.login-container{display:flex;background:linear-gradient(135deg,#1e293b 0%,#0f172a 100%);justify-content:center;align-items: center;min-height:100vh}.login-card{background-color:#fff;border-radius:1rem;width:100%;max-width:400px;padding:2.5rem;box-shadow:0 25px 50px -12px #00000040}.login-logo{text-align:center;margin-bottom:2rem}.login-logo h1{color:#0ea5e9;margin:0;font-size:1.75rem;font-weight:700}.login-logo p{color:#64748b;margin-top:.5rem}.empty-state{text-align:center;color:#64748b;padding:3rem}.empty-state-icon{opacity:.5;margin-bottom:1rem;font-size:3rem}.empty-state-title{color:#475569;margin-bottom:.5rem;font-size:1.125rem;font-weight:500}.loading{display:flex;justify-content:center;align-items: center;padding:2rem}.spinner{animation:spin .8s linear infinite;border:3px solid #e2e8f0;border-top-color:#0ea5e9;border-radius:50%;width:2rem;height:2rem}@keyframes spin{to{transform:rotate(360deg)}}.landing-container{display:flex;flex-direction:column;min-height:100vh}.landing-header{position:sticky;display:flex;z-index:100;background-color:#fff;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items: center;padding:1rem 2rem;top:0}.landing-logo{color:#0ea5e9;text-decoration:none;font-size:1.5rem;font-weight:700}.landing-nav{display:flex;gap:1rem}.landing-hero{color:#fff;text-align:center;background:linear-gradient(135deg,#1e293b 0%,#0f172a 100%);padding:6rem 2rem}.landing-hero-content{max-width:800px;margin:0 auto}.landing-hero h1{margin:0 0 1.5rem;font-size:3rem;font-weight:700;line-height:1.2}.landing-hero p{color:#94a3b8;margin:0 0 2rem;font-size:1.25rem;line-height:1.6}.landing-hero-buttons{display:flex;justify-content:center;gap:1rem}.landing-features{background-color:#f8fafc;padding:5rem 2rem}.landing-features-title{text-align:center;color:#1e293b;margin:0 0 3rem;font-size:2rem;font-weight:700}.landing-features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;max-width:1200px;margin:0 auto}.landing-feature-card{background-color:#fff;border-radius:1rem;padding:2rem;box-shadow:0 4px 6px -1px #0000001a}.landing-feature-icon{display:flex;color:#0ea5e9;background-color:#dbeafe;border-radius:.75rem;justify-content:center;align-items: center;width:3rem;height:3rem;margin-bottom:1rem}.landing-feature-card h3{color:#1e293b;margin:0 0 .5rem;font-size:1.25rem;font-weight:600}.landing-feature-card p{color:#64748b;margin:0;font-size:.9375rem;line-height:1.6}.landing-cta{color:#fff;text-align:center;background-color:#0ea5e9;padding:5rem 2rem}.landing-cta h2{margin:0 0 1.5rem;font-size:2rem;font-weight:700}.landing-cta p{opacity:.9;margin:0 0 2rem;font-size:1.125rem}.landing-footer{color:#94a3b8;text-align:center;background-color:#1e293b;padding:2rem}.landing-footer p{margin:0;font-size:.875rem}.btn-lg{padding:.875rem 2rem;font-size:1rem}.btn-white{color:#1e293b;background-color:#fff}.btn-white:hover{background-color:#f1f5f9}.btn-outline{color:#fff;background-color:#0000;border:2px solid #fff}.btn-outline:hover{background-color:#ffffff1a}.error-boundary-container{display:flex;background:linear-gradient(135deg,#1e293b 0%,#0f172a 100%);justify-content:center;align-items: center;min-height:100vh;padding:2rem}.error-boundary-card{text-align:center;background-color:#fff;border-radius:1rem;width:100%;max-width:480px;padding:3rem;box-shadow:0 25px 50px -12px #00000040}.error-boundary-icon{color:#ef4444;margin-bottom:1.5rem}.error-boundary-title{color:#1e293b;margin:0 0 1rem;font-size:1.5rem;font-weight:700}.error-boundary-message{color:#64748b;margin:0 0 2rem;font-size:1rem;line-height:1.6}.error-boundary-details{text-align:left;background-color:#f8fafc;border-radius:.5rem;margin-bottom:2rem;padding:1rem}.error-boundary-details summary{cursor:pointer;color:#475569;margin-bottom:.5rem;font-weight:500}.error-boundary-details pre{color:#ef4444;white-space:pre-wrap;word-break:break-word;overflow-x:auto;margin:.5rem 0 0;font-size:.75rem}@media (max-width:768px){.app-layout{flex-direction:column}.sidebar{width:100%;padding:1rem}.sidebar-nav{overflow-x:auto;flex-direction:row}.content{padding:1rem}.stats-grid{grid-template-columns:1fr}.landing-header{padding:1rem}.landing-hero{padding:3rem 1rem}.landing-hero h1{font-size:2rem}.landing-hero p{font-size:1rem}.landing-hero-buttons{flex-direction:column}.landing-features{padding:3rem 1rem}.landing-features-title{font-size:1.5rem}.landing-cta{padding:3rem 1rem}.landing-cta h2{font-size:1.5rem}.error-boundary-container{padding:1rem}.error-boundary-card{padding:2rem}.error-boundary-title{font-size:1.25rem}}
