*{box-sizing:border-box;font-family:Segoe UI,system-ui,sans-serif;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;background-color:#f3f4f6;color:#1a1a2e}.app,.sidebar{display:flex;min-height:100vh}.sidebar{background:linear-gradient(180deg,#3a7a54,#2d5a3d 60%,#1e3d2a);flex:0 0 255px;flex-direction:column;height:100vh;overflow-x:hidden;overflow-y:auto;position:-webkit-sticky;position:sticky;scrollbar-width:none;top:0;width:255px}.sidebar::-webkit-scrollbar{display:none}.content{background-color:#f3f4f6;flex:1 1;min-height:100vh;overflow-y:auto}.menu-toggle{background:#3a7a54;border-radius:50%;box-shadow:0 2px 8px rgba(0,0,0,.25);cursor:pointer;display:none;height:44px;position:fixed;right:1rem;top:1rem;width:44px;z-index:200}.hamburger{left:50%;position:relative;top:calc(50% - 1px);-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:22px}.hamburger>span,.hamburger>span:after,.hamburger>span:before{background-color:#fff;border-radius:99px;display:block;height:2px;position:absolute;transition-duration:.25s;width:100%}.hamburger>span:before{content:"";top:-6px}.hamburger>span:after{content:"";top:6px}.menu-toggle.is-active .hamburger>span{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.menu-toggle.is-active .hamburger>span:before{top:0;-webkit-transform:rotate(0deg);transform:rotate(0deg)}.menu-toggle.is-active .hamburger>span:after{top:0;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.home-page{padding:48px 40px;text-align:center}.home-page h1{color:#1a1a2e;font-size:2rem;font-weight:700;margin-bottom:.5rem}.contentinprogress,.home-page p{color:#6b7280;font-size:1rem}.contentinprogress{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;min-height:60vh;padding:48px 40px}@media (max-width:1200px){.sidebar{flex:0 0 230px;width:230px}}@media (max-width:1024px){.sidebar{flex:0 0 210px;width:210px}}@media (max-width:768px){.menu-toggle{align-items:center;display:flex;justify-content:center}.content{padding-top:4rem}.sidebar{flex:none;height:100vh;left:-260px;position:fixed;top:0;transition:left .2s ease;width:255px;z-index:100}.sidebar.is-active{left:0}}.dash-page{background:#f3f4f6;font-family:Segoe UI,system-ui,sans-serif;max-width:1500px;min-height:100vh;padding:32px 40px}.dash-error,.dash-loading{align-items:center;color:#6b7280;display:flex;flex-direction:column;font-size:15px;gap:16px;justify-content:center;min-height:60vh}.dash-spinner{-webkit-animation:spin .8s linear infinite;animation:spin .8s linear infinite;border:3px solid #e5e7eb;border-radius:50%;border-top-color:#2d7a4f;height:40px;width:40px}.dash-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:28px}.dash-title{color:#1a1a2e;font-size:30px;font-weight:800;margin:0 0 4px}.dash-subtitle{color:#6b7280;font-size:14px;margin:0}.dash-year-select{background:#fff;border:1.5px solid #e5e7eb;border-radius:9px;color:#1a1a2e;cursor:pointer;font-size:14px;font-weight:600;padding:9px 14px}.dash-quick-btn{border:none;border-radius:9px;color:#fff;cursor:pointer;font-size:13px;font-weight:700;padding:9px 18px;transition:opacity .2s}.dash-quick-btn:hover{opacity:.85}.dash-quick-btn.green{background:#2d7a4f}.dash-quick-btn.blue{background:#1d4ed8}.dash-quick-btn.amber{background:#d97706}.dash-kpi-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));margin-bottom:28px}.dash-kpi-card{align-items:center;background:#fff;border:1.5px solid #e5e7eb;border-radius:14px;box-shadow:0 1px 4px rgba(0,0,0,.05);display:flex;gap:14px;padding:20px;transition:box-shadow .2s,-webkit-transform .15s;transition:box-shadow .2s,transform .15s;transition:box-shadow .2s,transform .15s,-webkit-transform .15s}.dash-kpi-card:hover{box-shadow:0 4px 14px rgba(0,0,0,.08);-webkit-transform:translateY(-1px);transform:translateY(-1px)}.dash-kpi-card.dash-kpi-alert{background:#fffbeb;border-color:#fcd34d}.dash-kpi-icon{align-items:center;border-radius:12px;display:flex;flex-shrink:0;font-size:22px;height:48px;justify-content:center;width:48px}.dash-kpi-value{font-size:22px;font-weight:800;line-height:1;margin:0 0 2px}.dash-kpi-label{color:#374151;font-size:13px;font-weight:600;margin:0 0 2px}.dash-kpi-sub{color:#9ca3af;font-size:11px;margin:0}.dash-main-grid{grid-gap:20px;align-items:start;display:grid;gap:20px;grid-template-columns:1fr 340px}.dash-left,.dash-right{display:flex;flex-direction:column;gap:20px}.dash-card{background:#fff;border:1.5px solid #e5e7eb;border-radius:14px;box-shadow:0 1px 4px rgba(0,0,0,.05);padding:22px 24px}.dash-card-header{margin-bottom:18px}.dash-card-header h2{color:#1a1a2e;font-size:16px;font-weight:700;margin:0 0 3px}.dash-card-header p{color:#9ca3af;font-size:12px;margin:0}.dash-cal-grid{grid-gap:3px;display:grid;gap:3px;grid-template-columns:repeat(7,1fr);margin-bottom:4px}.dash-cal-day-hdr{color:#9ca3af;font-size:11px;font-weight:700;letter-spacing:.04em;padding:4px 0;text-align:center;text-transform:uppercase}.dash-cal-cell{align-items:center;border-radius:8px;cursor:default;display:flex;flex-direction:column;gap:3px;min-height:44px;padding:4px;transition:background .15s}.dash-cal-cell--active{cursor:pointer}.dash-cal-cell--active:hover{background:#f3f4f6}.dash-cal-cell--today .dash-cal-date{align-items:center;background:#2d7a4f;border-radius:50%;color:#fff!important;display:flex;height:22px;justify-content:center;width:22px}.dash-cal-cell--selected{background:#f0fdf4!important;border:1.5px solid #86efac}.dash-cal-date{align-items:center;color:#374151;font-size:12px;font-weight:500;height:22px;width:22px}.dash-cal-date,.dash-cal-dots{display:flex;justify-content:center}.dash-cal-dots{gap:2px}.dash-dot{border-radius:50%;display:inline-block;height:5px;width:5px}.dash-cal-nav{align-items:center;background:#f3f4f6;border:none;border-radius:6px;color:#374151;cursor:pointer;display:flex;font-size:16px;height:28px;justify-content:center;transition:background .15s;width:28px}.dash-cal-nav:hover{background:#e5e7eb}.dash-cal-detail{background:#f8fafc;border:1.5px solid #e5e7eb;border-radius:10px;margin-top:12px;padding:12px 14px}.dash-cal-detail p{margin:0 0 4px}@media (max-width:1100px){.dash-main-grid{grid-template-columns:1fr}.dash-right{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}@media (max-width:768px){.dash-page{padding:20px 16px}.dash-kpi-grid{grid-template-columns:repeat(2,1fr)}.dash-right{grid-template-columns:1fr}}.customers-page{font-family:Segoe UI,system-ui,sans-serif;max-width:1400px;padding:40px 48px}.customers-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:32px}.customers-title{color:#1a1a2e;font-size:32px;font-weight:700;margin:0 0 6px}.customers-subtitle{color:#6b7280;font-size:16px;margin:0}.customers-toolbar{margin-bottom:24px}.search-wrapper{max-width:460px;position:relative}.search-icon{color:#9ca3af;font-size:20px;left:14px;pointer-events:none;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.search-input{background:#fff;border:1.5px solid #e5e7eb;border-radius:10px;box-sizing:border-box;color:#1a1a2e;font-size:15px;padding:12px 40px 12px 44px;transition:border-color .2s;width:100%}.search-input:focus{border-color:#2d7a4f;outline:none}.search-clear{background:none;border:none;color:#9ca3af;cursor:pointer;font-size:14px;padding:2px 4px;position:absolute;right:12px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.error-banner{background:#fef2f2;border:1px solid #fecaca;border-radius:10px;color:#b91c1c;font-size:15px;margin-bottom:20px;padding:14px 18px}.table-wrapper{background:#fff;border:1.5px solid #e5e7eb;border-radius:14px;box-shadow:0 2px 8px rgba(0,0,0,.07);overflow:hidden}.customers-table{border-collapse:collapse;font-size:15px;width:100%}.customers-table thead tr{background:#f8fafc;border-bottom:2px solid #e5e7eb}.customers-table th{color:#6b7280;font-size:12px;font-weight:700;letter-spacing:.07em;padding:16px 20px;text-align:left;text-transform:uppercase}.table-row{border-bottom:1px solid #f3f4f6;transition:background .15s}.table-row:last-child{border-bottom:none}.table-row:hover{background:#f8fafc}.customers-table td{color:#374151;font-size:15px;padding:16px 20px;vertical-align:middle}.td-id{color:#9ca3af;font-size:13px;font-weight:600;width:60px}.td-cif{color:#374151;font-family:Courier New,monospace;font-size:14px}.td-name{color:#1a1a2e;font-size:15px;font-weight:600}.td-address{color:#6b7280;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.td-actions{white-space:nowrap;width:150px}.table-state{color:#9ca3af;font-size:16px;padding:64px 16px;text-align:center}.btn-primary{background:#2d7a4f;border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:15px;font-weight:600;padding:12px 24px;transition:background .2s}.btn-primary:hover{background:#235f3d}.btn-primary:disabled{background:#9ca3af;cursor:not-allowed}.btn-secondary{background:#fff;border:1.5px solid #e5e7eb;border-radius:10px;color:#374151;cursor:pointer;font-size:15px;font-weight:600;padding:12px 24px;transition:background .2s}.btn-secondary:hover{background:#f9fafb}.btn-danger{background:#dc2626;border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:15px;font-weight:600;padding:12px 24px;transition:background .2s}.btn-danger:hover{background:#b91c1c}.btn-edit{background:#eff6ff;border:none;border-radius:7px;color:#1d4ed8;cursor:pointer;font-size:14px;font-weight:600;margin-right:8px;padding:8px 16px;transition:background .2s}.btn-edit:hover{background:#dbeafe}.btn-delete{background:#fef2f2;border:none;border-radius:7px;color:#dc2626;cursor:pointer;font-size:14px;font-weight:600;padding:8px 16px;transition:background .2s}.btn-delete:hover{background:#fee2e2}.modal-overlay{align-items:center;background:rgba(0,0,0,.5);display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:1000}.modal{background:#fff;border-radius:16px;box-shadow:0 24px 64px rgba(0,0,0,.2);max-width:600px;overflow:hidden;width:100%}.modal--confirm{max-width:460px;padding-bottom:8px}.modal-header{align-items:center;border-bottom:1px solid #f3f4f6;display:flex;justify-content:space-between;padding:24px 28px 20px}.modal-header h2{color:#1a1a2e;font-size:20px;font-weight:700;margin:0}.modal-close{background:none;border:none;border-radius:6px;color:#9ca3af;cursor:pointer;font-size:18px;padding:4px 8px;transition:background .15s}.modal-close:hover{background:#f3f4f6}.modal-form{display:flex;flex-direction:column;gap:18px;padding:24px 28px 28px}.form-row{display:flex;gap:16px}.form-group{display:flex;flex-direction:column;gap:7px;min-width:150px}.form-group--grow{flex:1 1}.form-group label{color:#374151;font-size:14px;font-weight:600}.required{color:#dc2626}.form-group input,.form-group select{background:#fff;border:1.5px solid #e5e7eb;border-radius:9px;color:#1a1a2e;font-size:15px;padding:11px 14px;transition:border-color .2s}.form-group input:focus,.form-group select:focus{border-color:#2d7a4f;outline:none}.form-error{background:#fef2f2;border-radius:8px;color:#b91c1c;font-size:14px;margin:0;padding:10px 14px}.modal-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:6px}.confirm-text{color:#374151;font-size:15px;line-height:1.7;margin:0;padding:20px 28px}.confirm-text strong{color:#1a1a2e}.modal--confirm .modal-actions{padding:8px 28px 24px}.reports-page{font-family:Segoe UI,system-ui,sans-serif;max-width:1400px;padding:40px 48px}.reports-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:28px}.reports-year-selector{align-items:center;display:flex;gap:10px}.reports-year-selector label{color:#6b7280;font-size:14px;font-weight:600}.reports-year-selector select{background:#fff;border:1.5px solid #e5e7eb;border-radius:9px;color:#1a1a2e;cursor:pointer;font-size:15px;font-weight:600;min-width:100px;padding:10px 16px}.reports-year-selector select:focus{border-color:#2d7a4f;outline:none}.reports-success-banner{align-items:center;background:#f0fdf4;border:1px solid #86efac;border-radius:10px;color:#15803d;display:flex;font-size:15px;font-weight:500;justify-content:space-between;margin-bottom:20px;padding:12px 16px}.reports-success-banner button{background:none;border:none;color:#15803d;cursor:pointer;font-size:14px;padding:2px 6px}.reports-layout{align-items:flex-start;display:flex;gap:28px}.reports-sidebar{background:#fff;border:1.5px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 4px rgba(0,0,0,.05);flex-shrink:0;padding:16px 12px;position:-webkit-sticky;position:sticky;top:24px;width:200px}.reports-sidebar-label{color:#9ca3af;font-size:11px;font-weight:700;letter-spacing:.08em;margin:0 0 10px 8px;text-transform:uppercase}.reports-sidebar-item{align-items:center;background:transparent;border:none;border-radius:8px;color:#374151;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:10px;margin-bottom:2px;padding:10px 12px;text-align:left;transition:background .15s,color .15s;width:100%}.reports-sidebar-item:hover{background:#f3f4f6}.reports-sidebar-item.active{background:#f0fdf4;color:#15803d;font-weight:700}.reports-sidebar-icon{flex-shrink:0;font-size:16px}.reports-sidebar-count{background:#e5e7eb;border-radius:999px;color:#6b7280;font-size:11px;font-weight:700;margin-left:auto;min-width:20px;padding:2px 7px;text-align:center}.reports-sidebar-item.active .reports-sidebar-count{background:#dcfce7;color:#15803d}.reports-content{flex:1 1;min-width:0}.reports-section-title{color:#1a1a2e;font-size:18px;font-weight:700;margin:0 0 20px}.reports-cards-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.report-card{border:1.5px solid;border-radius:14px;display:flex;flex-direction:column;gap:14px;padding:22px 24px;transition:box-shadow .2s,-webkit-transform .15s;transition:box-shadow .2s,transform .15s;transition:box-shadow .2s,transform .15s,-webkit-transform .15s}.report-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.1);-webkit-transform:translateY(-2px);transform:translateY(-2px)}.report-card-header{align-items:flex-start;display:flex;gap:14px}.report-card-icon{align-items:center;border-radius:10px;display:flex;flex-shrink:0;font-size:20px;height:44px;justify-content:center;width:44px}.report-card-title{font-size:16px;font-weight:700;margin:0 0 4px}.report-card-format{color:#9ca3af;font-size:12px;font-weight:500}.report-card-soon{background:#f3f4f6;border-radius:999px;color:#9ca3af;flex-shrink:0;font-size:11px;font-weight:700;padding:4px 10px;white-space:nowrap}.report-card-description{color:#6b7280;flex:1 1;font-size:14px;line-height:1.6;margin:0}.report-card-footer{align-items:center;border-top:1px solid rgba(0,0,0,.06);display:flex;justify-content:space-between;padding-top:12px}.report-card-period{color:#9ca3af;font-size:13px}.report-card-period strong{color:#374151}.report-card-btn{border:none;border-radius:8px;color:#fff;font-size:13px;font-weight:700;padding:9px 18px;transition:opacity .2s,-webkit-transform .15s;transition:opacity .2s,transform .15s;transition:opacity .2s,transform .15s,-webkit-transform .15s}.report-card-btn:not(:disabled):hover{opacity:.88;-webkit-transform:translateY(-1px);transform:translateY(-1px)}.report-card-btn:disabled{color:#9ca3af}.report-btn-loading{align-items:center;display:flex;gap:6px}.report-btn-loading:before{-webkit-animation:spin .7s linear infinite;animation:spin .7s linear infinite;border:2px solid hsla(0,0%,100%,.4);border-radius:50%;border-top-color:#fff;content:"";display:inline-block;height:12px;width:12px}@-webkit-keyframes spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@media (max-width:768px){.reports-page{padding:20px 16px}.reports-layout{flex-direction:column}.reports-sidebar{position:static;width:100%}.reports-header{flex-direction:column;gap:12px}}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{-webkit-animation:App-logo-spin 20s linear infinite;animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@-webkit-keyframes App-logo-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes App-logo-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}
/*# sourceMappingURL=main.dd2b58e2.css.map*/