:root{--toastify-color-light: #fff;--toastify-color-dark: #121212;--toastify-color-info: #3498db;--toastify-color-success: #07bc0c;--toastify-color-warning: #f1c40f;--toastify-color-error: #e74c3c;--toastify-color-transparent: rgba(255, 255, 255, .7);--toastify-icon-color-info: var(--toastify-color-info);--toastify-icon-color-success: var(--toastify-color-success);--toastify-icon-color-warning: var(--toastify-color-warning);--toastify-icon-color-error: var(--toastify-color-error);--toastify-toast-width: 320px;--toastify-toast-offset: 16px;--toastify-toast-top: max(var(--toastify-toast-offset), env(safe-area-inset-top));--toastify-toast-right: max(var(--toastify-toast-offset), env(safe-area-inset-right));--toastify-toast-left: max(var(--toastify-toast-offset), env(safe-area-inset-left));--toastify-toast-bottom: max(var(--toastify-toast-offset), env(safe-area-inset-bottom));--toastify-toast-background: #fff;--toastify-toast-min-height: 64px;--toastify-toast-max-height: 800px;--toastify-toast-bd-radius: 6px;--toastify-font-family: sans-serif;--toastify-z-index: 9999;--toastify-text-color-light: #757575;--toastify-text-color-dark: #fff;--toastify-text-color-info: #fff;--toastify-text-color-success: #fff;--toastify-text-color-warning: #fff;--toastify-text-color-error: #fff;--toastify-spinner-color: #616161;--toastify-spinner-color-empty-area: #e0e0e0;--toastify-color-progress-light: linear-gradient( to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55 );--toastify-color-progress-dark: #bb86fc;--toastify-color-progress-info: var(--toastify-color-info);--toastify-color-progress-success: var(--toastify-color-success);--toastify-color-progress-warning: var(--toastify-color-warning);--toastify-color-progress-error: var(--toastify-color-error);--toastify-color-progress-bgo: .2}.Toastify__toast-container{z-index:var(--toastify-z-index);-webkit-transform:translate3d(0,0,var(--toastify-z-index));position:fixed;padding:4px;width:var(--toastify-toast-width);box-sizing:border-box;color:#fff}.Toastify__toast-container--top-left{top:var(--toastify-toast-top);left:var(--toastify-toast-left)}.Toastify__toast-container--top-center{top:var(--toastify-toast-top);left:50%;transform:translate(-50%)}.Toastify__toast-container--top-right{top:var(--toastify-toast-top);right:var(--toastify-toast-right)}.Toastify__toast-container--bottom-left{bottom:var(--toastify-toast-bottom);left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{bottom:var(--toastify-toast-bottom);left:50%;transform:translate(-50%)}.Toastify__toast-container--bottom-right{bottom:var(--toastify-toast-bottom);right:var(--toastify-toast-right)}@media only screen and (max-width:480px){.Toastify__toast-container{width:100vw;padding:0;left:env(safe-area-inset-left);margin:0}.Toastify__toast-container--top-left,.Toastify__toast-container--top-center,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translate(0)}.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translate(0)}.Toastify__toast-container--rtl{right:env(safe-area-inset-right);left:initial}}.Toastify__toast{--y: 0;position:relative;-ms-touch-action:none;touch-action:none;min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:8px;border-radius:var(--toastify-toast-bd-radius);box-shadow:0 4px 12px #0000001a;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;max-height:var(--toastify-toast-max-height);font-family:var(--toastify-font-family);cursor:default;direction:ltr;z-index:0;overflow:hidden}.Toastify__toast--stacked{position:absolute;width:100%;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s}.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body,.Toastify__toast--stacked[data-collapsed] .Toastify__close-button{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{content:"";position:absolute;left:0;right:0;height:calc(var(--g) * 1px);bottom:100%}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{content:"";position:absolute;left:0;right:0;bottom:0;height:100%;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-body{margin:auto 0;-ms-flex:1 1 auto;flex:1 1 auto;padding:6px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.Toastify__toast-body>div:last-child{word-break:break-word;-ms-flex:1;flex:1}.Toastify__toast-icon{-webkit-margin-end:10px;margin-inline-end:10px;width:20px;-ms-flex-negative:0;flex-shrink:0;display:-ms-flexbox;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.5s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}@media only screen and (max-width:480px){.Toastify__toast{margin-bottom:0;border-radius:0}}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--light,.Toastify__toast-theme--colored.Toastify__toast--default{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--toastify-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;-ms-flex-item-align:start;align-self:flex-start;z-index:1}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:hover,.Toastify__close-button:focus{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:100%;z-index:var(--toastify-z-index);opacity:.7;transform-origin:left;border-bottom-left-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:initial;transform-origin:right;border-bottom-left-radius:initial;border-bottom-right-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp{position:absolute;bottom:0;left:0;width:100%;height:5px;border-bottom-left-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{opacity:var(--toastify-color-progress-bgo);width:100%;height:100%}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border:2px solid;border-radius:100%;border-color:var(--toastify-spinner-color-empty-area);border-right-color:var(--toastify-spinner-color);animation:Toastify__spin .65s linear infinite}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--top-left,.Toastify__bounce-enter--bottom-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--top-right,.Toastify__bounce-enter--bottom-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--top-left,.Toastify__bounce-exit--bottom-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--top-right,.Toastify__bounce-exit--bottom-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg);opacity:1}to{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg);opacity:0}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(110%,var(--y),0)}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(-110%,var(--y),0)}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--top-left,.Toastify__slide-enter--bottom-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--top-right,.Toastify__slide-enter--bottom-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--top-left,.Toastify__slide-exit--bottom-left{animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-right,.Toastify__slide-exit--bottom-right{animation-name:Toastify__slideOutRight;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown;animation-timing-function:ease-in;animation-duration:.3s}@keyframes Toastify__spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:1rem}.loading-spinner{width:50px;height:50px;border:4px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite}.loading-message{color:var(--text-secondary);font-size:1rem}.company-selector-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#eff4ee;background-image:radial-gradient(ellipse 700px 500px at 50% 40%,rgba(90,138,60,.07) 0%,transparent 65%);padding:2rem}.company-selector-card{background:#fff;border-radius:14px;border:1px solid #dde5d8;box-shadow:0 6px 28px #1e3c1417,0 1px 4px #1e3c140d;max-width:600px;width:100%;overflow:hidden}.company-selector-header{background:linear-gradient(145deg,#3d6128,#5a8a3c);color:#fff;padding:2rem;text-align:center}.company-selector-header h1{margin:0 0 .5rem;font-size:1.75rem;font-weight:700;color:#fff}.company-selector-header p{margin:0;opacity:.75;font-size:.9rem;color:#fff}.company-selector-content{padding:2rem}.company-selector-instruction{margin:0 0 1.5rem;text-align:center;color:var(--color-text-secondary, #4a6040);font-size:1rem}.companies-list{display:flex;flex-direction:column;gap:1rem}.company-item{display:flex;align-items:center;gap:1rem;padding:1.25rem;border:2px solid var(--color-border, #dde5d8);border-radius:10px;background:#fff;cursor:pointer;transition:all .2s ease;text-align:left;width:100%}.company-item:hover{border-color:#5a8a3c;background:#eef5e8;transform:translateY(-2px);box-shadow:0 4px 12px #5a8a3c26}.company-item-icon{font-size:2.5rem;flex-shrink:0}.company-item-content{flex:1}.company-item-content h3{margin:0 0 .25rem;font-size:1.05rem;color:var(--color-text, #1a2e1a)}.company-cnpj{margin:0;font-size:.875rem;color:var(--color-text-muted, #7a9070)}@media(max-width:768px){.company-selector-container{padding:1rem}.company-selector-header h1{font-size:1.35rem}.company-item{padding:1rem}.company-item-icon{font-size:2rem}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#eff4ee;background-image:radial-gradient(ellipse 700px 500px at 50% 40%,rgba(90,138,60,.07) 0%,transparent 65%),linear-gradient(rgba(90,138,60,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(90,138,60,.04) 1px,transparent 1px);background-size:100% 100%,44px 44px,44px 44px;padding:1.5rem}.login-card{background:#fff;border-radius:14px;width:100%;max-width:360px;border:1px solid #dde5d8;box-shadow:0 6px 28px #1e3c1417,0 1px 4px #1e3c140d;overflow:hidden;padding:0;animation:cardIn .45s cubic-bezier(.16,1,.3,1) both}@keyframes cardIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.login-header{background:linear-gradient(145deg,#3d6128,#5a8a3c);padding:32px 24px 24px;text-align:center}.login-brand{display:flex;align-items:center;justify-content:center;margin-bottom:10px}.login-brand-olivo{font-size:30px;font-weight:700;color:#fff;letter-spacing:-.5px;line-height:1}.login-brand-sep{font-size:28px;font-weight:200;color:#ffffff73;margin:0 10px;line-height:1}.login-brand-recovery{font-size:22px;font-weight:300;color:#ffffffd9;letter-spacing:1px;line-height:1}.login-header h1{font-size:.75rem;font-weight:400;color:#ffffff8c;letter-spacing:.12em;text-transform:uppercase;margin:0}.login-header p,.login-logo{display:none}.login-form{padding:24px 24px 18px;display:flex;flex-direction:column;gap:0}.form-group{display:flex;flex-direction:column;gap:.35rem;margin-bottom:14px}.form-group label{font-size:.73rem;font-weight:600;color:#4a6040}.form-group input{height:42px;padding:0 .875rem;border:1.5px solid #dde5d8;border-radius:7px;font-size:.9375rem;color:#1a2e1a;background:#f8faf7;outline:none;transition:all .15s ease;font-family:inherit;width:100%}.form-group input::placeholder{color:#a8bea0}.form-group input:focus{border-color:#5a8a3c;background:#fff;box-shadow:0 0 0 3px #5a8a3c1f}.form-group input:disabled{opacity:.6;cursor:not-allowed}.password-input{position:relative}.password-input input{padding-right:3rem}.toggle-password{position:absolute;right:.625rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:1.1rem;color:#7a9070;display:flex;align-items:center;padding:.25rem;border-radius:5px;transition:color .15s ease}.toggle-password:hover{color:#3d6128}.btn-login{width:100%;height:44px;background:linear-gradient(135deg,#3d6128,#5a8a3c);color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:.5rem;font-family:inherit;letter-spacing:.02em;transition:all .15s ease;box-shadow:0 3px 12px #3d612840}.btn-login:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 5px 16px #3d612852;background:linear-gradient(135deg,#456e2e,#68a045)}.btn-login:active:not(:disabled){transform:translateY(0)}.btn-login:disabled{opacity:.6;cursor:not-allowed}.login-footer{background:#f8faf7;border-top:1px solid #edf2ea;padding:10px 24px;text-align:center;font-size:.72rem;color:#7a9070;line-height:1.6}@media(max-width:480px){.login-card{border-radius:10px}.login-header{padding:26px 20px 20px}.login-form{padding:20px 18px 14px}}.prefeitura-selector{position:relative}.prefeitura-selector-button{display:flex;align-items:center;gap:.625rem;padding:.4rem .875rem;background:var(--color-surface-2, #f5ede0);border:1px solid var(--color-border, #d8c8a8);border-radius:var(--radius-sm, 7px);cursor:pointer;transition:all var(--t-fast, .15s ease);font-family:var(--font-sans);min-width:180px}.prefeitura-selector-button:hover{border-color:var(--color-primary, #7a4a1e);box-shadow:0 2px 6px #3c1e0a14}.prefeitura-icon{color:var(--color-primary, #7a4a1e);font-size:1rem;flex-shrink:0}.prefeitura-label{font-size:.62rem;color:var(--color-text-muted, #a08060);font-weight:500;text-transform:uppercase;letter-spacing:.05em;line-height:1}.prefeitura-nome{font-size:.825rem;color:var(--color-text, #2c1a0a);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px;line-height:1.2}.dropdown-icon{color:var(--color-text-muted, #a08060);font-size:.875rem;transition:transform var(--t-fast, .15s ease);flex-shrink:0}.prefeitura-dropdown{position:absolute;top:calc(100% + .375rem);left:0;background:var(--color-surface, #faf5ed);border:1px solid var(--color-border, #d8c8a8);border-radius:var(--radius-md, 10px);box-shadow:var(--shadow-md, 0 4px 16px rgba(60,30,10,.1));z-index:1000;min-width:260px;max-height:360px;overflow-y:auto}.dropdown-loading,.dropdown-empty{padding:1rem;text-align:center;color:var(--color-text-muted, #a08060);font-size:.875rem}.prefeitura-list{padding:.375rem}.prefeitura-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.625rem .75rem;background:transparent;border:none;border-radius:var(--radius-sm, 7px);cursor:pointer;transition:background var(--t-fast, .15s ease);text-align:left;font-family:var(--font-sans)}.prefeitura-item:hover,.prefeitura-item.selected{background:var(--color-primary-bg, #f0e4d0)}.prefeitura-item-info{display:flex;flex-direction:column;gap:.2rem;flex:1;min-width:0}.prefeitura-item-nome{font-size:.875rem;font-weight:600;color:var(--color-text, #2c1a0a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prefeitura-item-cidade{font-size:.72rem;color:var(--color-text-muted, #a08060)}.selected-indicator{color:var(--color-primary, #7a4a1e);font-size:1rem;flex-shrink:0;margin-left:.5rem}.prefeitura-selector-button{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background-color:var(--white);border:1px solid var(--gray-300);border-radius:8px;cursor:pointer;transition:all .2s ease;font-family:inherit;min-width:200px}.prefeitura-selector-button:hover{border-color:var(--primary);box-shadow:0 2px 4px #0000000d}.prefeitura-icon{color:var(--primary);font-size:1.25rem;flex-shrink:0}.prefeitura-info{display:flex;flex-direction:column;align-items:flex-start;flex:1;min-width:0}.prefeitura-label{font-size:.7rem;color:var(--gray-500);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.prefeitura-nome{font-size:.9rem;color:var(--gray-900);font-weight:600;white-space:normal;overflow:visible;text-overflow:unset;max-width:none;display:block}.dropdown-icon{color:var(--gray-500);font-size:1rem;transition:transform .2s ease;flex-shrink:0}.dropdown-icon.open{transform:rotate(180deg)}.prefeitura-dropdown{position:absolute;top:calc(100% + .5rem);left:0;right:0;background-color:var(--white);border:1px solid var(--gray-300);border-radius:8px;box-shadow:0 4px 12px #0000001a;z-index:1000;min-width:280px;max-height:400px;overflow-y:auto}.dropdown-loading,.dropdown-empty{padding:1rem;text-align:center;color:var(--gray-500);font-size:.9rem}.prefeitura-list{padding:.5rem}.prefeitura-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.75rem;background-color:transparent;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease;text-align:left;font-family:inherit}.prefeitura-item:hover{background-color:var(--gray-50)}.prefeitura-item.selected{background-color:var(--primary-light)}.prefeitura-item-info{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:0}.prefeitura-item-nome{font-size:.95rem;font-weight:600;color:var(--gray-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prefeitura-item-cidade{font-size:.8rem;color:var(--gray-600)}.selected-indicator{color:var(--primary);font-size:1.2rem;font-weight:700;flex-shrink:0;margin-left:.5rem}.prefeitura-dropdown::-webkit-scrollbar{width:6px}.prefeitura-dropdown::-webkit-scrollbar-track{background:var(--gray-100);border-radius:8px}.prefeitura-dropdown::-webkit-scrollbar-thumb{background:var(--gray-400);border-radius:8px}.prefeitura-dropdown::-webkit-scrollbar-thumb:hover{background:var(--gray-500)}@media(max-width:768px){.prefeitura-selector{margin-right:.5rem}.prefeitura-selector-button{min-width:150px;padding:.4rem .75rem}.prefeitura-nome{font-size:.85rem;max-width:none}.prefeitura-dropdown{min-width:240px}}.header{position:fixed;top:0;left:0;right:0;height:var(--header-height, 56px);background:var(--header-bg, #ffffff);border-bottom:1px solid var(--header-border, #dde5d8);display:flex;align-items:center;justify-content:space-between;padding:0 1.25rem;z-index:var(--z-header, 200);box-shadow:var(--shadow-xs, 0 1px 3px rgba(30,60,20,.06))}.header-left{display:flex;align-items:center;gap:.75rem}.menu-button{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--color-border, #dde5d8);border-radius:7px;color:var(--color-text-secondary, #4a6040);cursor:pointer;transition:all var(--t-fast, .15s ease);flex-shrink:0}.menu-button:hover{background:var(--color-primary-bg, #eef5e8);color:var(--color-text, #1a2e1a)}.header-logo{display:flex;align-items:center;gap:0}.header-logo-olivo{font-size:.9375rem;font-weight:700;color:#3d6128;letter-spacing:-.3px;line-height:1}.header-logo-sep{font-size:.9375rem;font-weight:300;color:#b8d8a0;margin:0 6px;line-height:1}.header-logo-recovery{font-size:.8125rem;font-weight:300;color:#7a9070;letter-spacing:.5px;line-height:1}.header-right{display:flex;align-items:center;gap:.75rem}.user-info{display:flex;align-items:center;gap:.625rem}.user-avatar{width:30px;height:30px;background:linear-gradient(135deg,#5a8a3c,#3d6128);color:#fff;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;letter-spacing:.02em;flex-shrink:0}.user-details{display:flex;flex-direction:column;align-items:flex-end;gap:1px}.user-name{font-size:.8125rem;font-weight:600;color:var(--color-text, #1a2e1a);white-space:nowrap;line-height:1.1}.user-role{font-size:.6875rem;color:var(--color-text-muted, #7a9070);white-space:nowrap}.logout-button{display:flex;align-items:center;gap:.375rem;padding:.4rem .875rem;background:var(--color-danger-bg, #fdf0ee);color:var(--color-danger, #c0392b);border:1px solid var(--color-danger-border, #e8b0a8);border-radius:var(--radius-sm, 7px);font-size:.8rem;font-weight:600;cursor:pointer;transition:all var(--t-fast, .15s ease);font-family:var(--font-sans);white-space:nowrap}.logout-button:hover{background:#c0392b;color:#fff;border-color:#c0392b}.import-button{display:flex;align-items:center;gap:.5rem;padding:.35rem .7rem;background:var(--color-primary-bg);color:var(--color-primary);border:1px solid var(--color-primary-border);border-radius:7px;cursor:pointer;font-weight:600}@media(max-width:640px){.header{padding:0 1rem}.user-details,.logout-button span,.header-logo-recovery{display:none}}.sidebar{position:fixed;top:var(--header-height, 52px);left:0;bottom:0;width:var(--sidebar-width, 220px);background:var(--sidebar-bg, #fff);border-right:1px solid var(--sidebar-border, #e5e7eb);display:flex;flex-direction:column;z-index:var(--z-sidebar, 100);transform:translate(calc(-1 * var(--sidebar-width, 220px)));transition:transform var(--t-base, .15s ease);overflow:hidden}.sidebar.open{transform:translate(0)}.sidebar-nav{flex:1;padding:var(--sp-2, 8px) var(--sp-2, 8px);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:1px}.sidebar-nav::-webkit-scrollbar{width:3px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background:var(--color-gray-200, #e5e7eb);border-radius:10px}.sidebar-section{font-size:var(--sb-section-size, 9.5px);font-weight:var(--fw-bold, 700);color:var(--color-gray-300, #d1d5db);text-transform:uppercase;letter-spacing:.1em;padding:var(--sp-3, 12px) var(--sp-2, 8px) var(--sp-1, 4px);white-space:nowrap;overflow:hidden}.nav-link{display:flex;align-items:center;gap:var(--sp-2, 8px);padding:var(--sb-item-py, 7px) var(--sb-item-px, 8px);border-radius:var(--sb-item-radius, 6px);color:var(--sidebar-text, #6b7280);text-decoration:none;font-size:var(--sb-font-size, .75rem);font-weight:var(--fw-medium, 500);transition:all var(--t-fast, .1s ease);cursor:pointer;white-space:normal;overflow-wrap:anywhere;border:none;background:none;width:100%;font-family:var(--font-sans);text-align:left;box-sizing:border-box;line-height:1.35}.nav-link:hover{background:var(--color-gray-50, #f9fafb);color:var(--color-text, #1a2e1a);text-decoration:none}.nav-link.active{background:var(--sidebar-item-active, #eef5e8);color:var(--sidebar-text-active, #1a2e1a);font-weight:var(--fw-semibold, 600)}.nav-link.active .nav-icon{color:var(--sb-icon-active, #5a8a3c)}.nav-icon{flex-shrink:0;display:flex;align-items:center;color:var(--sb-icon-color, #9ca3af);width:var(--sb-icon-size, 15px);height:var(--sb-icon-size, 15px);transition:color var(--t-fast)}.nav-label{flex:1;overflow:visible;text-overflow:clip;white-space:normal;min-width:0}.menu-group{display:flex;flex-direction:column}.submenu-toggle{justify-content:flex-start}.chevron{display:flex;align-items:center;margin-left:auto;color:var(--color-gray-300, #d1d5db);transition:transform var(--t-base, .15s ease);flex-shrink:0}.chevron.rotated{transform:rotate(180deg)}.submenu{display:none;flex-direction:column;gap:1px;padding-left:var(--sp-3, 12px);margin-top:1px}.submenu.open{display:flex;animation:sbSlide .15s ease}@keyframes sbSlide{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.submenu .nav-link{font-size:.7rem;color:var(--color-gray-400, #9ca3af);padding:5px var(--sp-2, 8px);border-radius:var(--radius-md, 6px);border-left:none;display:flex;align-items:center;gap:var(--sp-2, 8px)}.submenu .nav-link:hover{background:var(--color-gray-50, #f9fafb);color:var(--color-gray-600, #4b5563)}.submenu .nav-link.active{background:var(--color-primary-bg, #eef5e8);color:var(--color-primary, #5a8a3c);font-weight:var(--fw-semibold, 600)}.submenu .nav-link.active .sub-dot{background:var(--color-primary, #5a8a3c)}.sub-dot{width:5px;height:5px;border-radius:50%;background:var(--color-gray-300, #d1d5db);flex-shrink:0;transition:background var(--t-fast)}.main-layout{background:var(--color-bg, #f2f5f1);min-height:100vh}.layout-content{margin-left:var(--sidebar-width, 220px);padding:calc(var(--header-height, 52px) + 1.5rem) 1.5rem 2rem;min-height:100vh;transition:margin-left var(--t-base, .15s ease)}.layout-content.sidebar-closed{margin-left:0}@media(max-width:768px){.layout-content{margin-left:0;padding:calc(var(--header-height, 52px) + 1rem) 1rem 1.5rem}}.dashboard{max-width:1300px;animation:dashIn .35s ease both}@keyframes dashIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.dashboard-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:1.5rem;flex-wrap:wrap;gap:.75rem}.dashboard-header h1{font-size:1.375rem;font-weight:700;color:var(--color-text, #1a2e1a);letter-spacing:-.025em;line-height:1.1;margin:0}.dashboard-header p{font-size:.8125rem;color:var(--color-text-muted, #6b7280);margin-top:2px}.dash-date{font-size:.7rem;color:var(--color-text-muted, #6b7280);background:var(--color-surface, #fff);border:1px solid var(--color-border, #e5e7eb);border-radius:999px;padding:.3rem .875rem;font-weight:500;text-transform:capitalize;white-space:nowrap;flex-shrink:0}.dash-alert{display:flex;align-items:center;gap:.5rem;background:var(--color-danger-bg, #fef2f2);color:var(--color-danger, #dc2626);border:1px solid var(--color-danger-border, #fecaca);border-radius:8px;padding:.75rem 1rem;font-size:.8125rem;font-weight:500;margin-bottom:1.25rem}.dash-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:4rem 2rem;color:var(--color-text-muted, #6b7280);font-size:.875rem}.dash-section{margin-bottom:1.375rem;animation:dashIn .35s ease both}.dash-section-title{font-size:.7rem;font-weight:700;color:var(--color-gray-400, #9ca3af);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.875rem;padding-bottom:.5rem;border-bottom:1px solid var(--color-border, #e5e7eb)}.contrib-grid{display:grid;grid-template-columns:1fr 1fr;gap:.875rem}.kpi-card{background:var(--color-surface, #fff);border:1px solid var(--color-border, #e5e7eb);border-radius:10px;padding:1.125rem;display:flex;align-items:center;gap:1rem;position:relative;overflow:hidden;transition:box-shadow .2s ease,transform .15s ease}.kpi-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--color-primary, #5a8a3c);border-radius:10px 10px 0 0}.kpi-card:hover{box-shadow:0 4px 14px #1e3c1414;transform:translateY(-1px)}.kpi-card__icon-wrap{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.kpi-card__body{display:flex;flex-direction:column;gap:.175rem;flex:1;min-width:0}.kpi-card__label{font-size:.6875rem;font-weight:600;color:var(--color-text-muted, #6b7280);text-transform:uppercase;letter-spacing:.04em}.kpi-card__value{font-size:1.75rem;font-weight:800;color:var(--color-text, #1a2e1a);letter-spacing:-.03em;line-height:1.05}.kpi-card__sub{font-size:.7rem;color:var(--color-text-muted, #6b7280);margin-bottom:.375rem}.dash-donut{flex-shrink:0}.dash-progress{width:100%;height:4px;background:var(--color-border, #e5e7eb);border-radius:99px;overflow:hidden;margin-top:.25rem}.dash-progress__fill{height:100%;border-radius:99px;transition:width .6s ease}.dividas-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.875rem;margin-bottom:.75rem}.kpi-sm{background:var(--color-surface, #fff);border:1px solid var(--color-border, #e5e7eb);border-radius:9px;padding:.875rem .875rem .75rem;display:flex;flex-direction:column;gap:.175rem;transition:box-shadow .2s ease,transform .15s ease}.kpi-sm:hover{box-shadow:0 3px 12px #1e3c1412;transform:translateY(-1px)}.kpi-sm__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:.35rem}.kpi-sm__icon{width:30px;height:30px;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.kpi-sm__badge{font-size:.625rem;font-weight:700;padding:.15rem .5rem;border-radius:999px}.kpi-sm__value{font-size:1.5rem;font-weight:800;color:var(--color-text, #1a2e1a);letter-spacing:-.025em;line-height:1.05}.kpi-sm__label{font-size:.7rem;color:var(--color-text-muted, #6b7280);font-weight:500;margin-bottom:.375rem}.dividas-chart-row{background:var(--color-surface, #fff);border:1px solid var(--color-border, #e5e7eb);border-radius:9px;padding:.875rem 1rem .625rem;display:flex;align-items:center;gap:1rem}.dividas-chart-label{font-size:.6875rem;color:var(--color-text-muted, #6b7280);font-weight:600;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;flex-shrink:0}.dividas-barchart-wrap{flex:1;min-width:0}.dash-barchart{width:100%;height:54px;display:block}.fin-grid{display:grid;grid-template-columns:1fr 1fr;gap:.875rem}.fin-card{background:var(--color-surface, #fff);border:1px solid var(--color-border, #e5e7eb);border-radius:9px;padding:.875rem 1rem;display:flex;align-items:center;gap:.75rem;transition:box-shadow .2s ease}.fin-card:hover{box-shadow:0 3px 10px #1e3c1412}.fin-card__icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.fin-card__body{display:flex;flex-direction:column;gap:.15rem;flex:1;min-width:0}.fin-card__value{font-size:.9375rem;font-weight:700;color:var(--color-text, #1a2e1a);letter-spacing:-.01em;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fin-card__label{font-size:.7rem;color:var(--color-text-muted, #6b7280);font-weight:500}@media(max-width:1024px){.dividas-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.contrib-grid,.fin-grid{grid-template-columns:1fr}.dividas-chart-row{flex-direction:column;align-items:flex-start}}@media(max-width:480px){.dividas-grid{grid-template-columns:1fr 1fr}.kpi-card__value{font-size:1.375rem}.kpi-sm__value{font-size:1.125rem}}.table-container{background:var(--table-bg, #fff);border:1px solid var(--table-border, #e5e7eb);border-radius:var(--table-radius, 8px);overflow-x:auto;overflow-y:visible}.table{table-layout:fixed;width:auto;min-width:100%;border-collapse:collapse}.table thead{background:var(--table-bg-head, #f9fafb)}.table thead th{position:sticky;top:0;z-index:2;background:var(--table-bg-head, #f9fafb);padding:var(--table-head-py, 8px) var(--table-cell-px, 12px);text-align:left;font-size:var(--table-font-head, .6875rem);font-weight:var(--fw-semibold, 600);color:var(--table-text-head, #6b7280);letter-spacing:.04em;white-space:nowrap;border-bottom:1px solid var(--table-border, #e5e7eb);border-right:1px solid var(--table-border-cell, #f3f4f6);-webkit-user-select:none;user-select:none}.table thead th:last-child{border-right:none}.table th.sortable{cursor:pointer;transition:color var(--t-fast, .1s ease)}.table th.sortable:hover{color:var(--color-primary-dark, #3d6128)}.th-content{display:inline-flex;align-items:center;gap:5px}.sort-indicator{display:inline-flex;flex-direction:column;font-size:.5rem;line-height:.5rem;opacity:.35;gap:1px}.sort-indicator .arrow{display:block}.sort-indicator.asc{opacity:1}.sort-indicator.asc .up{color:var(--color-primary, #5a8a3c)}.sort-indicator.desc{opacity:1}.sort-indicator.desc .down{color:var(--color-primary, #5a8a3c)}.table tbody tr{transition:background var(--t-fast, .1s ease);border-bottom:1px solid var(--table-border-cell, #f3f4f6)}.table tbody tr:last-child{border-bottom:none}.table tbody tr.clickable{cursor:pointer}.table tbody tr:hover{background:var(--table-hover, #f9fafb)}.table tbody tr.selected{background:var(--table-selected, #eef5e8)}.table tbody tr.selected td{color:var(--color-text, #1a2e1a)}.table td{padding:var(--table-cell-py, 9px) var(--table-cell-px, 12px);font-size:var(--table-font-body, .75rem);color:var(--table-text-body, #374151);border-right:1px solid var(--table-border-cell, #f3f4f6);vertical-align:middle}.table th:last-child,.table td:last-child{border-right:none}.table td.td-truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:0}.table td.td-primary{font-weight:var(--fw-medium, 500);color:var(--color-text, #1a2e1a)}.table td.td-value{font-weight:var(--fw-semibold, 600);color:var(--color-text, #1a2e1a);white-space:nowrap}.table td.td-value--overdue{color:var(--color-danger, #dc2626)}.table td.td-mono{font-family:SF Mono,Fira Code,monospace;font-size:var(--text-xs, .6875rem);color:var(--color-text-muted, #6b7280);letter-spacing:.02em}.table-action-btn{width:26px;height:26px;border-radius:var(--radius-md, 6px);border:1px solid var(--color-border, #e5e7eb);background:var(--color-surface, #fff);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-gray-500, #6b7280);transition:all var(--t-fast, .1s ease);flex-shrink:0}.table-action-btn:hover{border-color:var(--color-border-strong, #d1d5db);color:var(--color-text, #1a2e1a)}.table-action-btn--edit:hover{border-color:var(--color-primary, #5a8a3c);color:var(--color-primary-dark, #3d6128);background:var(--color-primary-bg, #eef5e8)}.table-action-btn--delete:hover{border-color:var(--color-danger-border, #fecaca);color:var(--color-danger, #dc2626);background:var(--color-danger-bg, #fef2f2)}.table-loading,.table-empty,.table-empty-cell{padding:3.5rem 2rem;text-align:center;color:var(--color-text-muted, #6b7280);font-size:var(--text-sm, .75rem)}.table-loading{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3, 12px)}@media(max-width:768px){.table-container{overflow-x:auto}.table{min-width:600px}}.usuarios-table-wrapper{overflow-x:auto;overflow-y:auto;max-height:70vh}.usuarios-table-wrapper .table-container{overflow:visible}.badge{display:inline-flex;align-items:center;font-size:.6875rem;font-weight:600;padding:2px 8px;border-radius:4px;white-space:nowrap}.badge-global-admin{background:#fef2f2;color:#991b1b}.badge-admin-municipal{background:#fffbeb;color:#92400e}.badge-usuario-municipal{background:#eff6ff;color:#1e40af}.badge-somente-leitura{background:#f9fafb;color:#4b5563}.status{display:inline-flex;align-items:center;font-size:.6875rem;font-weight:600;padding:2px 8px;border-radius:4px;white-space:nowrap}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:slideUp .3s ease-out}.modal-content{max-height:calc(90vh - 120px);overflow-y:auto;padding:1.5rem}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-small{width:100%;max-width:400px}.modal-medium{width:100%;max-width:600px}.modal-large{max-width:900px;width:90%}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--border-color)}.modal-header h2{margin:0;color:var(--text-primary);font-size:1.5rem}.modal-close{background:none;border:none;cursor:pointer;color:var(--text-secondary);padding:.5rem;border-radius:6px;transition:var(--transition);display:flex;align-items:center}.modal-close:hover{background:var(--bg-secondary);color:var(--text-primary)}.modal-body{padding:1.5rem;overflow-y:auto}@media(max-width:768px){.modal-content{max-height:95vh}.modal-small,.modal-medium,.modal-large{max-width:100%}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1, 4px);border:1px solid transparent;border-radius:var(--btn-radius, 6px);font-family:var(--font-sans);font-weight:var(--btn-font-weight, 600);font-size:var(--btn-font-size, .75rem);cursor:pointer;transition:all var(--t-base, .15s ease);white-space:nowrap;text-decoration:none;line-height:1}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--btn-primary-bg, #3d6128);color:var(--btn-primary-color, #fff);border-color:var(--btn-primary-bg, #3d6128)}.btn-primary:hover:not(:disabled){background:var(--btn-primary-bg-hover, #456e2e);border-color:var(--btn-primary-bg-hover, #456e2e);transform:translateY(-1px);box-shadow:0 3px 8px #3d612838}.btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:none}.btn-secondary{background:var(--btn-secondary-bg, #fff);color:var(--btn-secondary-color, #374151);border-color:var(--btn-secondary-border, #d1d5db)}.btn-secondary:hover:not(:disabled){background:var(--btn-secondary-bg-hover, #f9fafb);border-color:var(--color-gray-400, #9ca3af)}.btn-success{background:var(--color-primary-dark, #3d6128);color:#fff;border-color:var(--color-primary-dark, #3d6128)}.btn-success:hover:not(:disabled){background:#456e2e;border-color:#456e2e}.btn-outline{background:transparent;color:var(--color-primary-dark, #3d6128);border-color:var(--color-primary, #5a8a3c)}.btn-outline:hover:not(:disabled){background:var(--color-primary-bg, #eef5e8)}.btn-ghost{background:transparent;color:var(--color-text-muted, #6b7280);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--color-gray-100, #f3f4f6);color:var(--color-text, #1a2e1a)}.btn-danger{background:var(--btn-danger-bg, #fef2f2);color:var(--btn-danger-color, #dc2626);border-color:var(--btn-danger-border, #fecaca)}.btn-danger:hover:not(:disabled){background:var(--btn-danger-bg-hover, #dc2626);color:var(--btn-danger-color-hover, #fff);border-color:#dc2626}.btn-warning{background:var(--color-warning-bg, #fffbeb);color:var(--color-warning-text, #92400e);border-color:var(--color-warning-border, #fcd34d)}.btn-warning:hover:not(:disabled){background:var(--color-warning, #d97706);color:#fff;border-color:var(--color-warning, #d97706)}.btn-small{height:var(--btn-h-sm, 28px);padding:0 var(--btn-px-sm, 10px);font-size:var(--text-xs, .6875rem)}.btn-medium{height:var(--btn-h-md, 34px);padding:0 var(--btn-px-md, 14px);font-size:var(--btn-font-size, .75rem)}.btn-large{height:var(--btn-h-lg, 40px);padding:0 var(--btn-px-lg, 20px);font-size:var(--text-base, .8125rem)}.btn-full{width:100%}.btn-loading{position:relative}.btn-spinner{width:13px;height:13px;border:2px solid rgba(255,255,255,.35);border-top-color:currentColor;border-radius:50%;animation:spin .6s linear infinite}.btn-icon{display:flex;align-items:center}.usuario-form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group select.input{width:100%;padding:.75rem;border:2px solid var(--border-color);border-radius:8px;font-size:1rem;font-family:inherit;transition:var(--transition);background:#fff;cursor:pointer}.form-group select.input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a}.checkbox-label{display:flex;align-items:center;gap:.75rem;cursor:pointer;font-weight:500;flex-wrap:wrap}.checkbox-label input[type=checkbox]:disabled{cursor:not-allowed;opacity:.6}.checkbox-hint{font-size:.875rem;color:var(--text-secondary);font-weight:400;margin-left:.25rem}.form-actions{display:flex;gap:1rem;margin-top:1rem;justify-content:flex-end}.prefeituras-checklist{display:flex;flex-direction:column;gap:.5rem;max-height:250px;overflow-y:auto;padding:.75rem;border:2px solid var(--border-color);border-radius:8px;background:#fff}.prefeituras-checklist .checkbox-label{padding:.5rem;border-radius:6px;transition:var(--transition)}.prefeituras-checklist .checkbox-label:hover{background:#2563eb0d}.pagination{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--color-gray-50, #f9fafb);border-top:1px solid var(--color-border, #e5e7eb);border-radius:0 0 var(--radius-lg, 8px) var(--radius-lg, 8px);flex-wrap:wrap;gap:var(--sp-3, 12px)}.pagination-info{color:var(--color-text-muted, #6b7280);font-size:var(--text-xs, .6875rem)}.pagination-controls{display:flex;align-items:center;gap:3px}.pagination-btn{width:var(--pg-btn-size, 28px);height:var(--pg-btn-size, 28px);border:1px solid var(--pg-btn-border, #e5e7eb);background:var(--color-surface, #fff);color:var(--color-gray-700, #374151);border-radius:var(--pg-btn-radius, 6px);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:var(--pg-font-size, .6875rem);font-weight:var(--fw-medium, 500);transition:all var(--t-fast, .1s ease);font-family:var(--font-sans);line-height:1}.pagination-btn:hover:not(:disabled){background:var(--color-gray-50, #f9fafb);border-color:var(--color-gray-400, #9ca3af)}.pagination-btn.active{background:var(--pg-active-bg, #3d6128);color:var(--pg-active-color, #fff);border-color:var(--pg-active-bg, #3d6128);font-weight:var(--fw-semibold, 600)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-btn--nav{color:var(--color-gray-500, #6b7280);font-size:.75rem}.pagination-size{display:flex;align-items:center;gap:var(--sp-2, 8px);font-size:var(--text-xs, .6875rem)}.pagination-size label{color:var(--color-text-muted, #6b7280)}.pagination-size select{height:26px;padding:0 var(--sp-2, 8px);border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-md, 6px);background:var(--color-surface, #fff);font-size:var(--text-xs, .6875rem);color:var(--color-text-secondary, #374151);cursor:pointer;font-family:var(--font-sans);outline:none;appearance:none;padding-right:20px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath fill='%236b7280' d='M5 7L1 3h8z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 5px center}.pagination-size select:focus{border-color:var(--color-primary, #5a8a3c);box-shadow:0 0 0 2px var(--color-primary-bg, #eef5e8)}@media(max-width:768px){.pagination{flex-direction:column;align-items:center}}.prefeituras-table-wrapper{overflow-x:auto;overflow-y:auto;max-height:70vh}.prefeituras-table-wrapper .table-container{overflow:visible}.prefeitura-nome{font-weight:500;color:var(--color-text, #1a2e1a);font-size:.75rem}.prefeitura-cnpj{font-size:.6875rem;color:var(--color-text-muted, #6b7280);font-family:monospace}.prefeitura-form{display:flex;flex-direction:column;gap:1.5rem;max-height:70vh;overflow-y:auto;padding:.5rem}.checkbox-group{padding:1rem 0}.checkbox-label{display:flex;align-items:center;gap:.75rem;cursor:pointer;font-weight:500}.checkbox-label input[type=checkbox]{width:20px;height:20px;cursor:pointer}@media(max-width:768px){.prefeitura-form{max-height:60vh}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}.form-actions button{width:100%}}.prefeitura-form::-webkit-scrollbar{width:8px}.prefeitura-form::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.prefeitura-form::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.prefeitura-form::-webkit-scrollbar-thumb:hover{background:#555}.pre-contribuintes-table-wrapper{overflow-x:auto;overflow-y:auto;max-height:70vh}.pre-contribuintes-table-wrapper .table-container{overflow:visible}.status{display:inline-flex;align-items:center;font-size:.6875rem;font-weight:600;padding:2px 7px;border-radius:4px;white-space:nowrap}.status-active{background:#eef5e8;color:#1a3a0a}.status-inactive{background:#f9fafb;color:#6b7280}.status-pendente{background:#fffbeb;color:#92400e}.page-container .table{min-width:2400px}.page-container .table th{font-size:.6875rem;padding:8px 10px}.page-container .table td{font-size:.75rem;padding:9px 10px}.predividas-table-wrapper{overflow-x:auto;overflow-y:auto;max-height:70vh}.predividas-table-wrapper .table-container{overflow:visible}.pre-dividas-table-wrapper{overflow-x:auto;overflow-y:auto;max-height:70vh}.pre-dividas-table-wrapper .table-container{overflow:visible}.valor-destaque{font-weight:600;color:var(--color-text, #1a2e1a);white-space:nowrap}.badge-validado{background:#eef5e8;color:#1a3a0a}.badge-rejeitado{background:#fef2f2;color:#991b1b}.badge-processando{background:#eff6ff;color:#1e40af}.badge-neutro{background:#f9fafb;color:#4b5563}.parcela-badge{display:inline-flex;align-items:center;font-size:.6875rem;font-weight:600;padding:2px 7px;border-radius:4px;background:#eef5e8;color:#1a3a0a}.parcela-badge--zero{background:#f9fafb;color:#6b7280}.pre-contribuinte-form{display:flex;flex-direction:column;gap:1.5rem;max-height:70vh;overflow-y:auto;padding:.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem;flex:1}.input-label{font-weight:500;font-size:.875rem;color:var(--text-primary);display:flex;align-items:center}.required{color:var(--danger-color);margin-left:.25rem}.input{width:100%;padding:.75rem;border:2px solid var(--border-color);border-radius:8px;font-size:1rem;font-family:inherit;transition:var(--transition);background:#fff}.input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a}.input:disabled{background:#f3f4f6;cursor:not-allowed;opacity:.7}.input-error{border-color:var(--danger-color)}.input-error:focus{box-shadow:0 0 0 3px #ef44441a}.error-message{color:var(--danger-color);font-size:.75rem;margin-top:-.25rem}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;align-items:start}.form-section{border-top:1px solid var(--border-color);padding-top:1.5rem;margin-top:.5rem}.form-section:first-child{border-top:none;padding-top:0;margin-top:0}.form-section-title{font-size:1.125rem;color:var(--primary-color);margin-bottom:1rem;font-weight:600}.input-with-validation{position:relative;width:100%}.input-with-validation .input{width:100%;padding-right:7rem}.input-validation-spinner{position:absolute;right:1rem;top:50%;transform:translateY(-50%);font-size:.875rem;color:var(--primary-color);animation:pulse 1.5s ease-in-out infinite;pointer-events:none}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}textarea.input{resize:vertical;min-height:80px}.form-actions{display:flex;gap:1rem;margin-top:1rem;justify-content:flex-end;padding-top:1.5rem;border-top:1px solid var(--border-color);position:sticky;bottom:0;background:#fff}@media(max-width:768px){.pre-contribuinte-form{max-height:60vh}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}.form-actions button{width:100%}}.pre-contribuinte-form::-webkit-scrollbar{width:8px}.pre-contribuinte-form::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.pre-contribuinte-form::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.pre-contribuinte-form::-webkit-scrollbar-thumb:hover{background:#555}.importar-planilha-form{display:flex;flex-direction:column;gap:1.5rem}.form-info{background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;padding:1rem;display:flex;flex-direction:column;gap:1rem}.form-info p{color:#0c4a6e;margin:0;line-height:1.5}.btn-download-modelo{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#fff;border:1px solid #0ea5e9;border-radius:6px;color:#0284c7;font-weight:500;cursor:pointer;transition:var(--transition);align-self:flex-start}.btn-download-modelo:hover{background:#f0f9ff}.file-input-wrapper{position:relative}.file-input{position:absolute;width:.1px;height:.1px;opacity:0;overflow:hidden;z-index:-1}.file-input-label{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1rem;border:2px dashed var(--border-color);border-radius:8px;background:#fff;cursor:pointer;transition:var(--transition);color:var(--text-secondary);font-weight:500}.file-input-label:hover{border-color:var(--primary-color);background:#f0f9ff;color:var(--primary-color)}.input-helper{font-size:.75rem;color:var(--text-secondary);margin-top:.25rem}.file-info{background:#f9fafb;border:1px solid var(--border-color);border-radius:8px;padding:1rem}.file-info p{margin:.5rem 0;font-size:.875rem;color:var(--text-primary)}.file-info p:first-child{margin-top:0}.file-info p:last-child{margin-bottom:0}.form-actions{display:flex;gap:1rem;justify-content:flex-end;padding-top:1rem;border-top:1px solid var(--border-color)}.form-actions button{min-width:120px}.pendente-alteracao-page .page-header h1{display:flex;align-items:center;gap:8px}.pendente-list{overflow-x:auto;overflow-y:auto;max-height:70vh}.pendente-list .pendente-table{table-layout:fixed;width:auto;min-width:100%;border-collapse:collapse;background:var(--color-surface, #fff)}.pendente-list .pendente-table thead th{position:sticky;top:0;z-index:2;background:var(--color-gray-50, #f9fafb);padding:8px 12px;font-size:.6875rem;font-weight:600;color:var(--color-gray-500, #6b7280);letter-spacing:.04em;border-bottom:1px solid var(--color-border, #e5e7eb);border-right:1px solid var(--color-gray-100, #f3f4f6);white-space:nowrap}.pendente-list .pendente-table th:last-child,.pendente-list .pendente-table td:last-child{border-right:none}.pendente-list .pendente-table td{padding:9px 12px;font-size:.75rem;color:var(--color-gray-700, #374151);border-right:1px solid var(--color-gray-100, #f3f4f6);vertical-align:middle}.pendente-list .pendente-table tbody tr{border-bottom:1px solid var(--color-gray-100, #f3f4f6);transition:background .1s ease}.pendente-list .pendente-table tbody tr:hover{background:var(--color-gray-50, #f9fafb)}.pendente-list .pendente-table tbody tr:last-child{border-bottom:none}.import-result{margin-top:12px}.error-message{color:var(--color-danger, #dc2626);margin-top:12px;font-size:.8125rem}.dividas-table-wrapper{overflow-x:auto;overflow-y:auto;max-height:70vh}.dividas-table-wrapper .table-container{overflow:visible}.valor-atual{font-weight:600;color:var(--color-text, #1a2e1a);white-space:nowrap}.valor-atual--vencido{color:var(--color-danger, #dc2626)}.checkbox-cell{display:flex;align-items:center;justify-content:center}.divida-form .form-row{display:flex;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.divida-form .form-group{flex:1;min-width:200px;display:flex;flex-direction:column;gap:.5rem}.divida-form .input-label{font-weight:600}.divida-form .input{padding:.6rem;border-radius:8px;border:1px solid #e5e7eb}.divida-form .input-error{border-color:#ef4444}.divida-form .error-message{color:#ef4444;font-size:.875rem}.divida-form .form-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1rem}.header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.page-filters{margin-bottom:1rem}.liquidadas-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;background:var(--color-surface, #fff);border:1px solid var(--color-border, #e5e7eb);border-radius:7px}.search-input{height:34px;padding:0 .75rem;border:1.5px solid var(--color-border-strong, #d1d5db);border-radius:6px;font-size:.75rem;font-family:var(--font-sans);color:var(--color-text, #1a2e1a);background:var(--color-surface, #fff);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.contribuintes-table-wrapper{overflow-x:auto;overflow-y:auto;max-height:70vh}.contribuintes-table-wrapper .table-container{overflow:visible}.table-actions{display:flex;align-items:center;gap:4px}.action-btn{width:26px;height:26px;border:1px solid var(--color-border, #e5e7eb);border-radius:5px;cursor:pointer;display:flex;align-items:center;justify-content:center;background:var(--color-surface, #fff);color:var(--color-gray-500, #6b7280);transition:all .1s ease;padding:0}.action-edit:hover{border-color:#5a8a3c;color:#3d6128;background:#eef5e8}.action-delete:hover{border-color:#fecaca;color:#dc2626;background:#fef2f2}.no-actions{font-size:.6875rem;color:var(--color-text-muted, #9ca3af);font-style:italic}.contribuinte-nome{font-weight:500;color:var(--color-text, #1a2e1a);font-size:.75rem}.contribuinte-doc{font-size:.6875rem;color:var(--color-text-muted, #6b7280);font-family:monospace}.badge{display:inline-flex;align-items:center;font-size:.6875rem;font-weight:600;padding:2px 7px;border-radius:4px;white-space:nowrap}.badge-ativo{background:#eef5e8;color:#1a3a0a}.badge-inativo{background:#f9fafb;color:#6b7280}.badge-pendente{background:#fffbeb;color:#92400e}.divida-form{box-sizing:border-box;padding:20px 24px;max-width:920px;margin:0 auto}.divida-form .form-row{display:flex;gap:16px;margin-bottom:16px;flex-wrap:wrap}.divida-form .form-group{flex:1;min-width:220px;display:flex;flex-direction:column;gap:8px}.divida-form .input,.divida-form textarea{padding:12px 14px;border-radius:8px;border:1px solid #e5e7eb;width:100%;box-sizing:border-box}.divida-form .input-label{font-weight:600;margin-bottom:4px}.divida-form .form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:12px;padding:8px 0 0}@media(max-width:640px){.divida-form{padding:16px}.divida-form .form-row{gap:12px}.divida-form .form-group{min-width:100%}}.page-container{width:100%}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.25rem;flex-wrap:wrap;gap:.75rem}.page-header h1{font-size:1.375rem;font-weight:700;color:var(--color-text, #1a2e1a);letter-spacing:-.025em;line-height:1.2;margin:0;display:flex;align-items:center;gap:.5rem}.page-header p{font-size:.8125rem;color:var(--color-text-muted, #6b7280);margin:3px 0 0}.page-icon{color:var(--color-primary, #5a8a3c)}.header-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;flex-shrink:0}.page-filters{margin-bottom:1rem;display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.search-box{display:flex;align-items:center;gap:.5rem;flex:1;max-width:520px;position:relative}.search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--color-text-muted, #9ca3af);pointer-events:none;display:flex;align-items:center}.search-icon-inline{color:var(--color-text-muted, #9ca3af);display:inline-flex;align-items:center;flex-shrink:0}.search-input{width:100%;height:34px;padding:0 .75rem 0 34px;border:1.5px solid var(--color-border-strong, #d1d5db);border-radius:6px;font-size:.75rem;font-family:var(--font-sans);color:var(--color-text, #1a2e1a);background:var(--color-surface, #fff);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.search-input:focus{border-color:var(--color-primary, #5a8a3c);box-shadow:0 0 0 3px #5a8a3c1a}.search-input::placeholder{color:var(--color-text-placeholder, #9ca3af)}.bulk-actions{display:flex;align-items:center;gap:.75rem;padding:.625rem 1rem;background:var(--color-primary-bg, #eef5e8);border:1px solid var(--color-primary-border, #b8d8a0);border-radius:7px;font-size:.8125rem}.bulk-actions span{font-weight:500;color:var(--color-primary-dark, #3d6128)}@media(max-width:768px){.page-header{flex-direction:column;align-items:stretch}.header-actions{width:100%}.search-box{max-width:100%}.bulk-actions{flex-direction:column;align-items:stretch}}.nova-vida-page .page-header h1{display:flex;align-items:center;gap:8px}.nova-vida-list{margin-top:16px}.page-header .header-actions{display:flex;align-items:center;gap:8px}.import-button{display:flex;align-items:center;gap:.5rem;padding:.35rem .7rem;background:var(--color-primary-bg, #eef6ff);color:var(--color-primary, #155e9a);border:1px solid rgba(21,94,154,.12);border-radius:7px;cursor:pointer;font-weight:600}.import-button:disabled{opacity:.6;cursor:default}.nova-vida-list{overflow-x:auto;overflow-y:auto;max-height:65vh}.nova-vida-list .nova-vida-table{table-layout:fixed;width:auto;min-width:100%;border-collapse:collapse;background:#fff}.nova-vida-list .nova-vida-table thead th{position:sticky;top:0;z-index:2;background:var(--bg-secondary, #f5f5f5);padding:.35rem .5rem;font-size:.875rem;text-transform:uppercase;font-weight:600;color:var(--text-primary);border-right:1px solid #c8b89a}.nova-vida-list .nova-vida-table th:last-child,.nova-vida-list .nova-vida-table td:last-child{border-right:none}.nova-vida-list .nova-vida-table td{padding:.3rem .5rem;font-size:.825rem;color:var(--text-secondary);border-right:1px solid #c8b89a}.nova-vida-list .nova-vida-table tbody tr{border-bottom:1px solid #c8b89a}.error-message{color:#b00020;margin-top:12px}#root{min-height:100vh;display:flex;flex-direction:column}:root{--color-primary: #5a8a3c;--color-primary-dark: #3d6128;--color-primary-light: #7ab055;--color-primary-bg: #eef5e8;--color-primary-border: #b8d8a0;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #1a2e1a;--color-bg: #f2f5f1;--color-surface: #ffffff;--color-surface-2: #f9fafb;--color-border: #e5e7eb;--color-border-light: #f3f4f6;--color-border-strong:#d1d5db;--color-text: #1a2e1a;--color-text-secondary: #374151;--color-text-muted: #6b7280;--color-text-placeholder: #9ca3af;--color-success: #3d6128;--color-success-bg: #eef5e8;--color-success-border: #b8d8a0;--color-success-text: #1a3a0a;--color-warning: #d97706;--color-warning-bg: #fffbeb;--color-warning-border: #fcd34d;--color-warning-text: #92400e;--color-danger: #dc2626;--color-danger-bg: #fef2f2;--color-danger-border: #fecaca;--color-danger-text: #991b1b;--color-info: #2563eb;--color-info-bg: #eff6ff;--color-info-border: #bfdbfe;--color-info-text: #1e40af;--color-purple: #7c3aed;--color-purple-bg: #f5f3ff;--color-purple-border: #ddd6fe;--color-purple-text: #5b21b6;--sidebar-bg: #ffffff;--sidebar-border: #e5e7eb;--sidebar-text: #6b7280;--sidebar-text-active: #1a2e1a;--sidebar-item-active: #eef5e8;--sidebar-width: 220px;--header-bg: #ffffff;--header-border: #e5e7eb;--header-height: 52px;--font-sans: "Inter", system-ui, -apple-system, sans-serif;--text-xs: .6875rem;--text-sm: .75rem;--text-base: .8125rem;--text-md: .875rem;--text-lg: 1rem;--text-xl: 1.125rem;--text-2xl: 1.25rem;--fw-normal: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0,0,0,.05);--shadow-sm: 0 1px 3px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06);--shadow-md: 0 4px 6px rgba(0,0,0,.07), 0 2px 4px rgba(0,0,0,.06);--t-fast: .1s ease;--t-base: .15s ease;--z-sidebar: 100;--z-header: 200;--z-modal: 300;--primary-color: #5a8a3c;--secondary-color: #6b7280;--success-color: #3d6128;--danger-color: #dc2626;--warning-color: #d97706;--bg-secondary: #f9fafb;--bg-primary: #ffffff;--text-primary: #1a2e1a;--text-secondary: #374151;--border-color: #e5e7eb;--shadow-sm: 0 1px 3px rgba(0,0,0,.1);--transition: all .15s ease}:root{--table-bg: var(--color-surface);--table-bg-head: var(--color-gray-50);--table-border: var(--color-border);--table-border-cell: var(--color-gray-100);--table-hover: var(--color-gray-50);--table-selected: var(--color-primary-bg);--table-selected-border: var(--color-primary-border);--table-text-head: var(--color-gray-500);--table-text-body: var(--color-gray-700);--table-radius: var(--radius-lg);--table-font-head: var(--text-xs);--table-font-body: var(--text-sm);--table-cell-px: 12px;--table-cell-py: 9px;--table-head-py: 8px}:root{--btn-radius: var(--radius-md);--btn-font-size: var(--text-sm);--btn-font-weight: var(--fw-semibold);--btn-h-sm: 28px;--btn-h-md: 34px;--btn-h-lg: 40px;--btn-px-sm: 10px;--btn-px-md: 14px;--btn-px-lg: 20px;--btn-primary-bg: var(--color-primary-dark);--btn-primary-bg-hover: #456e2e;--btn-primary-color: #ffffff;--btn-secondary-bg: var(--color-surface);--btn-secondary-border: var(--color-border-strong);--btn-secondary-color: var(--color-gray-700);--btn-secondary-bg-hover: var(--color-gray-50);--btn-danger-bg: var(--color-danger-bg);--btn-danger-color: var(--color-danger);--btn-danger-border: var(--color-danger-border);--btn-danger-bg-hover: var(--color-danger);--btn-danger-color-hover: #ffffff}:root{--input-border: var(--color-border-strong);--input-bg: var(--color-surface);--input-bg-disabled: var(--color-gray-50);--input-radius: var(--radius-md);--input-h: 36px;--input-px: 10px;--input-font-size: var(--text-sm);--input-focus-border: var(--color-primary);--input-focus-ring: rgba(90,138,60,.12);--input-error-border: var(--color-danger);--input-error-ring: rgba(220,38,38,.1);--input-label-size: var(--text-xs);--input-label-weight: var(--fw-semibold);--input-label-color: var(--color-gray-600)}:root{--pg-btn-size: 28px;--pg-btn-radius: var(--radius-md);--pg-btn-border: var(--color-border);--pg-active-bg: var(--color-primary-dark);--pg-active-color:#ffffff;--pg-font-size: var(--text-xs)}:root{--sb-item-radius: var(--radius-md);--sb-item-px: 8px;--sb-item-py: 7px;--sb-font-size: var(--text-sm);--sb-section-size: 9.5px;--sb-icon-size: 15px;--sb-icon-color: var(--color-gray-400);--sb-icon-active: var(--color-primary)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg);line-height:1.5}a{color:inherit;text-decoration:none}button{font-family:var(--font-sans);cursor:pointer}input,select,textarea{font-family:var(--font-sans)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:var(--color-gray-100)}::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-400)}input[type=checkbox]{-webkit-appearance:none;appearance:none;width:15px;height:15px;border:1.5px solid var(--color-gray-300);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;transition:all var(--t-fast);position:relative;flex-shrink:0;vertical-align:middle}input[type=checkbox]:hover{border-color:var(--color-primary)}input[type=checkbox]:checked{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}input[type=checkbox]:checked:after{content:"";position:absolute;left:3px;top:1px;width:5px;height:8px;border:1.5px solid #fff;border-top:none;border-left:none;transform:rotate(45deg)}input[type=checkbox]:focus{outline:none;box-shadow:0 0 0 3px var(--color-primary-bg)}.text-page-title{font-size:var(--text-xl);font-weight:var(--fw-bold);color:var(--color-text);letter-spacing:-.025em;line-height:1.2}.text-section-title{font-size:var(--text-md);font-weight:var(--fw-semibold);color:var(--color-text);line-height:1.3}.text-body{font-size:var(--text-base);font-weight:var(--fw-normal);color:var(--color-text-secondary);line-height:1.5}.text-label{font-size:var(--text-xs);font-weight:var(--fw-semibold);color:var(--color-text-muted);letter-spacing:.04em}.text-muted{color:var(--color-text-muted);font-size:var(--text-sm)}.badge{display:inline-flex;align-items:center;font-size:var(--text-xs);font-weight:var(--fw-semibold);padding:2px 7px;border-radius:var(--radius-sm);white-space:nowrap}.badge-success{background:var(--color-success-bg);color:var(--color-success-text)}.badge-warning{background:var(--color-warning-bg);color:var(--color-warning-text)}.badge-danger{background:var(--color-danger-bg);color:var(--color-danger-text)}.badge-info{background:var(--color-info-bg);color:var(--color-info-text)}.badge-neutral{background:var(--color-gray-100);color:var(--color-gray-600)}.badge-purple{background:var(--color-purple-bg);color:var(--color-purple-text)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--sp-5);flex-wrap:wrap;gap:var(--sp-3)}.page-header__title{font-size:var(--text-xl);font-weight:var(--fw-bold);color:var(--color-text);letter-spacing:-.025em;margin:0}.page-header__sub{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:2px}.page-header__actions{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--sp-4)}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:28px;height:28px;border:2.5px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .7s linear infinite}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.truncate-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-1{gap:var(--sp-1)}.gap-2{gap:var(--sp-2)}.gap-3{gap:var(--sp-3)}.gap-4{gap:var(--sp-4)}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.mb-1{margin-bottom:var(--sp-1)}.mb-2{margin-bottom:var(--sp-2)}.mb-3{margin-bottom:var(--sp-3)}.mb-4{margin-bottom:var(--sp-4)}.mt-2{margin-top:var(--sp-2)}.mt-4{margin-top:var(--sp-4)}.font-medium{font-weight:var(--fw-medium)}.font-semibold{font-weight:var(--fw-semibold)}.font-bold{font-weight:var(--fw-bold)}.text-muted{color:var(--color-text-muted)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-sm{font-size:var(--text-sm)}.text-xs{font-size:var(--text-xs)}.uppercase{text-transform:uppercase;letter-spacing:.05em}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;display:inline-block}.status-dot--active{background:var(--color-success)}.status-dot--warning{background:var(--color-warning)}.status-dot--danger{background:var(--color-danger)}.status-dot--neutral{background:var(--color-gray-300)}.divider{height:1px;background:var(--color-border);border:none;margin:var(--sp-4) 0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);padding:4rem 2rem;text-align:center;color:var(--color-text-muted)}.empty-state__icon{font-size:2rem;opacity:.4}.empty-state__title{font-size:var(--text-base);font-weight:var(--fw-semibold);color:var(--color-text-secondary)}.empty-state__text{font-size:var(--text-sm)}
