*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--teal:#0fb5ba;--teal-deep:#0a7c80;--teal-ink:#053234;--teal-glow:#0fb5ba29;--mint:#e9f7f7;--mint-2:#d0eeee;--mint-3:#bce6e6;--sand:#f6f4ef;--paper:#fff;--paper-2:#fcfbf8;--coral:#ff6f61;--coral-soft:#ffe3df;--amber:#f2a93b;--amber-soft:#fbedd4;--plum:#6c5ce7;--plum-soft:#ece9fc;--ok:#2da77a;--ok-soft:#dcf1e8;--ink:#16292a;--muted:#6b8484;--line:#e2eeed;--line-2:#d3e5e4;--shadow-sm:0 1px 2px #0532340d;--shadow:0 2px 4px #0532340a, 0 8px 28px #05323412;--shadow-lg:0 12px 48px #0532341f;--r:16px;--r-sm:10px;--r-xs:7px;--accent:#0a7c80;--accent-h:#053234;--al:#e9f7f7;--border:#e2eeed;--border-strong:#d3e5e4;--bg-app:#f6f4ef;--surface:#fff;--bg2:#f4fafa;--bg3:#e4f1f0;--tx1:#16292a;--tx2:#6b8484;--tx3:#9db3b3;--row-alt:#fafcfc;--row-hover:#f1f8f8;--green:#2da77a;--green-bg:#dcf1e8;--green-bd:#bfe6d6;--red:#e0503a;--red-bg:#ffe3df;--red-bd:#ffcfc8;--amber2:#9a6a12;--amber-bg:#fbedd4;--amber-bd:#f5dba8;--purple:#6c5ce7;--purple-bg:#ece9fc;--purple-bd:#d9d3f7;--blue:#0a7c80;--blue-bg:#e9f7f7;--blue-bd:#bce6e6}body{background:var(--sand);color:var(--ink);-webkit-font-smoothing:antialiased;height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13.5px;line-height:1.5;display:flex;overflow:hidden}#root{width:100%;height:100vh;display:flex;overflow:hidden}.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.loading-overlay{background:var(--sand);z-index:99999;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:fixed;inset:0}.lo-icon{background:linear-gradient(140deg, var(--teal), #11d0d6);width:54px;height:54px;color:var(--teal-ink);box-shadow:var(--shadow-lg);border-radius:16px;justify-content:center;align-items:center;font-size:26px;animation:1.6s ease-in-out infinite pulse;display:flex}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(.94)}}.sidebar{background:var(--teal-ink);flex-direction:column;width:240px;min-width:240px;display:flex;overflow-y:auto}.sidebar-logo{align-items:center;gap:10px;padding:20px 16px 16px;display:flex}.logo-icon{background:linear-gradient(140deg, var(--teal), #11d0d6);width:34px;height:34px;color:var(--teal-ink);border-radius:10px;justify-content:center;align-items:center;font-size:17px;font-weight:850;display:flex}.logo-text{letter-spacing:-.01em;color:#fff;font-size:16px;font-weight:750}.nav-section{padding:6px 12px}.nav-label{color:#cfeaea73;text-transform:uppercase;letter-spacing:.07em;padding:12px 8px 6px;font-size:10.5px;font-weight:700}.nav-item{cursor:pointer;color:#bce0e0;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:10px;width:100%;margin-bottom:2px;padding:9px 11px;font-size:12.8px;font-weight:600;transition:all .15s;display:flex}.nav-item:hover{color:#fff;background:#ffffff12}.nav-item.active{background:linear-gradient(100deg, var(--teal), var(--teal-deep));color:#fff;box-shadow:0 2px 10px #0fb5ba4d}.nav-item i{text-align:center;width:19px;font-size:17px}.main{flex-direction:column;flex:1;display:flex;overflow:hidden}.topbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);z-index:10;background:#ffffffd9;flex-shrink:0;justify-content:space-between;align-items:center;height:58px;padding:0 26px;display:flex}.page-title{letter-spacing:-.015em;color:var(--teal-ink);font-size:17px;font-weight:750}.btn{border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--paper);cursor:pointer;color:var(--teal-ink);white-space:nowrap;align-items:center;gap:6px;padding:8px 13px;font-family:inherit;font-size:12.5px;font-weight:650;text-decoration:none;transition:all .15s;display:inline-flex}.btn:hover{background:var(--mint);border-color:var(--teal)}.btn:active{transform:translateY(.5px)}.btn i{font-size:15px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--teal-ink);color:#fff;border-color:var(--teal-ink)}.btn-primary:hover{background:#073e40;border-color:#073e40}.btn-teal{background:var(--teal);color:#fff;border-color:var(--teal)}.btn-teal:hover{background:var(--teal-deep);border-color:var(--teal-deep)}.btn-danger{background:var(--coral-soft);color:#c0392b;border-color:#ffcfc8}.btn-danger:hover{background:#ffd5cf}.btn-success{background:var(--ok-soft);color:#1c7a55;border-color:var(--green-bd)}.btn-success:hover{background:#cdedde}.btn-purple{background:var(--plum-soft);color:#5a4bd0;border-color:var(--purple-bd)}.btn-purple:hover{background:#e2ddfa}.content{flex:1;padding:24px 26px;overflow-y:auto}.module{animation:.25s fade;display:none}.module.active{display:block}@keyframes fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:18px;padding:20px 22px}.card-title{letter-spacing:-.005em;color:var(--teal-ink);align-items:center;gap:8px;margin-bottom:15px;font-size:13.5px;font-weight:700;display:flex}.card-title i{color:var(--teal);font-size:17px}.dash-sec-title{color:var(--teal-deep);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:8px;margin:2px 0 15px;font-size:11px;font-weight:750;display:flex}.dash-sec-title i{color:var(--teal);font-size:15px}.metrics-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px;display:grid}.mg5{grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:16px;display:grid}.metric-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm);padding:16px 18px;transition:all .15s;position:relative;overflow:hidden}.metric-card:hover{box-shadow:var(--shadow)}.metric-label{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px;font-size:11px;font-weight:680}.metric-val{letter-spacing:-.025em;font-variant-numeric:tabular-nums;color:var(--teal-ink);white-space:nowrap;text-overflow:ellipsis;font-size:clamp(16px,1.6vw,25px);font-weight:780;overflow:hidden}.metric-card.accent{background:linear-gradient(135deg, var(--teal-ink), var(--teal-deep));border-color:#0000}.metric-card.accent .metric-label{color:#ffffffb8}.metric-card.accent .metric-val{color:#fff}.metric-card.accent:after{content:"";background:#ffffff0f;border-radius:50%;width:84px;height:84px;position:absolute;top:-22px;right:-22px}.metric-card.green .metric-val{color:var(--ok)}.metric-card.red .metric-val{color:var(--red)}.metric-card.purple .metric-val{color:var(--purple)}.filters-bar{flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:16px;display:flex}select,input[type=text],input[type=date],input[type=number]{border:1px solid var(--line-2);background:var(--paper-2);color:var(--ink);border-radius:9px;outline:none;padding:8px 11px;font-family:inherit;font-size:12.5px;transition:all .15s}select:focus,input:focus{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-glow);background:#fff}select{cursor:pointer}::placeholder{color:var(--tx3)}.tbl-wrap{border-radius:var(--r);border:1px solid var(--line);max-height:calc(100vh - 320px);overflow:auto}table{border-collapse:separate;border-spacing:0;width:100%;font-size:12.5px}th{background:var(--mint);text-align:left;border-bottom:1px solid var(--mint-3);color:var(--teal-deep);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;z-index:2;padding:11px 13px;font-size:10.5px;font-weight:700;position:sticky;top:0}td{border-bottom:1px solid var(--line);white-space:nowrap;color:var(--ink);padding:9px 13px}tbody tr:last-child td{border-bottom:none}tbody tr:nth-child(2n) td{background:var(--row-alt)}tbody tr:hover td{background:var(--row-hover)}.tbl-wrap th:first-child{z-index:3;background:var(--mint);position:sticky;left:0}.tbl-wrap td:first-child{z-index:1;background:var(--paper);position:sticky;left:0}.tbl-wrap tbody tr:nth-child(2n) td:first-child{background:var(--row-alt)}.tbl-wrap tbody tr:hover td:first-child{background:var(--row-hover)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.th-sep{border-left:2px solid var(--mint-3)!important}.badge{border-radius:20px;align-items:center;gap:4px;padding:2.5px 10px;font-size:11px;font-weight:700;line-height:1.5;display:inline-flex}.bg{background:var(--ok-soft);color:#1c7a55}.by{background:var(--amber-soft);color:#9a6a12}.br{background:var(--coral-soft);color:#c0392b}.bb{background:var(--mint-2);color:var(--teal-deep)}.bgr{color:var(--muted);background:#edf2f2}.bp{background:var(--plum-soft);color:#5a4bd0}.charts-grid{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.chart-full{grid-column:1/-1}.chart-box{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm);padding:18px 20px}.chart-title{color:var(--teal-deep);margin-bottom:14px;font-size:12px;font-weight:680}.alert{border-radius:var(--r-sm);align-items:flex-start;gap:10px;margin-bottom:14px;padding:12px 15px;font-size:12.5px;line-height:1.5;display:flex}.alert i{flex-shrink:0;margin-top:1px;font-size:17px}.a-info{background:var(--mint);color:var(--teal-deep)}.a-warn{background:var(--coral-soft);color:#9a2e1f}.a-ok{background:var(--ok-soft);color:#1c7a55}.tab-bar{border-bottom:2px solid var(--line);gap:4px;margin-bottom:18px;display:flex}.tab{cursor:pointer;color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:9px 15px;font-family:inherit;font-size:12.5px;font-weight:600;transition:all .15s}.tab:hover{color:var(--teal-ink)}.tab.active{color:var(--teal-deep);border-bottom-color:var(--teal);font-weight:700}.modal-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:9999;background:#05323473;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box{border-radius:var(--r);width:580px;max-width:95vw;max-height:88vh;box-shadow:var(--shadow-lg);background:#fff;padding:26px;overflow-y:auto}.modal-hdr{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.modal-title{letter-spacing:-.01em;color:var(--teal-ink);font-size:17px;font-weight:750}.upload-label{border:1.5px dashed var(--line-2);border-radius:var(--r);text-align:center;cursor:pointer;background:var(--paper-2);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:20px 16px;transition:all .15s;display:flex}.upload-label:hover{border-color:var(--teal);background:var(--mint)}.upload-label i{color:var(--tx3);font-size:28px}.upload-label:hover i{color:var(--teal)}.ul-title{color:var(--teal-ink);font-size:12.5px;font-weight:680}.ul-sub{color:var(--tx3);font-size:10px;line-height:1.5}.form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.form-group{flex-direction:column;gap:5px;display:flex}.form-label{color:var(--muted);font-size:11px;font-weight:680}textarea{border:1px solid var(--line-2);resize:vertical;background:var(--paper-2);border-radius:9px;outline:none;width:100%;padding:9px 11px;font-family:inherit;font-size:12.5px;transition:all .15s}textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-glow);background:#fff}code{background:var(--mint);color:var(--teal-deep);border-radius:5px;padding:1.5px 6px;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:11.5px}.sec-hdr{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.stats-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px;display:grid}.stat-box{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:14px 16px}.stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px;font-size:10px;font-weight:700}.stat-val{letter-spacing:-.025em;font-variant-numeric:tabular-nums;color:var(--teal-ink);font-size:21px;font-weight:780}.fiscal-row{grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:12px;display:grid}.fiscal-box{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 14px;font-size:12.5px}.fiscal-box-label{color:var(--tx3);text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px;font-size:10px;font-weight:750}.sub-label{color:var(--teal-deep);text-transform:uppercase;letter-spacing:.05em;margin:16px 0 7px;font-size:10px;font-weight:750}.alert-dot{border-radius:50%;width:8px;height:8px;margin-right:5px;display:inline-block}.step-num{background:var(--teal);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:25px;height:25px;margin-right:9px;font-size:12px;font-weight:780;display:inline-flex}.step-hdr{color:var(--teal-ink);align-items:center;margin-bottom:13px;font-size:13px;font-weight:680;display:flex}.progress-bar{background:var(--mint-2);border-radius:99px;height:8px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--teal), var(--teal-deep));border-radius:99px;height:100%;transition:width .4s}.avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:11px;font-weight:750;display:flex}.user-chip{background:var(--teal-ink);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:12px;font-weight:750;display:flex}.pagination{border-top:1px solid var(--line);color:var(--muted);align-items:center;gap:10px;padding:13px 20px;font-size:12px;font-weight:600;display:flex}.causa-row{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:8px 0;font-size:12.5px;display:flex}.causa-row:last-child{border-bottom:none}.causa-bar{background:var(--mint-2);border-radius:99px;flex:1;height:8px;overflow:hidden}.causa-fill{background:var(--coral);border-radius:99px;height:100%}.sync-row{border-radius:var(--r-sm);background:var(--paper-2);border:1px solid var(--line);align-items:center;gap:11px;margin-bottom:5px;padding:9px 13px;font-size:12.5px;display:flex}.sync-dot{background:var(--line-2);border-radius:50%;flex-shrink:0;width:8px;height:8px}.sync-dot.ok{background:var(--ok);box-shadow:0 0 0 3px #2da77a26}.sync-dot.err{background:var(--red);box-shadow:0 0 0 3px #e0503a26}.sync-label{flex:1}.sync-val{color:var(--muted);font-weight:700}.sync-hint{color:var(--tx3);margin-top:2px;font-size:10.5px}.sync-section{margin-bottom:10px}.sync-section-title{color:var(--teal-deep);text-transform:uppercase;letter-spacing:.05em;margin:12px 0 7px;font-size:10.5px;font-weight:750}.batch-box{background:var(--paper-2);border-radius:var(--r);border:1px solid var(--line);margin-top:12px;padding:18px}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border:3px solid var(--sand);background:#cfdedc;border-radius:99px}::-webkit-scrollbar-thumb:hover{background:#b9cccb}.auth-wrap{background:linear-gradient(160deg,#e8f4f5 0%,#f4f8fa 55%);flex:1;justify-content:center;align-items:center;width:100%;min-height:100vh;padding:20px;display:flex}.auth-card{border:1px solid var(--line,#e3ebee);background:#fff;border-radius:18px;flex-direction:column;width:100%;max-width:380px;padding:34px 30px;display:flex;box-shadow:0 10px 40px #27424d1a}.auth-logo{color:#fff;background:linear-gradient(135deg,#3aa7a1 0%,#0f6f86 100%);border-radius:14px;place-items:center;width:54px;height:54px;margin:0 auto 14px;font-size:28px;display:grid;box-shadow:0 8px 20px #0f6f864d}.auth-title{text-align:center;color:#27424d;font-size:23px;font-weight:800}.auth-sub{text-align:center;color:#5a6973;margin:4px 0 22px;font-size:13.5px}.auth-label{color:#5a6973;margin-bottom:6px;font-size:12.5px;font-weight:600}.auth-card input{color:#27424d;border:2px solid #e3ebee;border-radius:10px;outline:none;margin-bottom:15px;padding:11px 13px;font-family:inherit;font-size:15px;transition:border-color .15s}.auth-card input:focus{border-color:#3aa7a1}.auth-btn{cursor:pointer;color:#fff;background:#3aa7a1;border:none;border-radius:10px;margin-top:4px;padding:12px;font-family:inherit;font-size:15px;font-weight:700;transition:opacity .15s}.auth-btn:hover{opacity:.92}.auth-btn:disabled{opacity:.6;cursor:default}.auth-error{color:#c0392b;background:#fdecea;border-radius:9px;align-items:center;gap:6px;margin-bottom:14px;padding:9px 12px;font-size:12.5px;display:flex}.auth-spinner{border:3px solid #e3ebee;border-top-color:#3aa7a1;border-radius:50%;width:28px;height:28px;margin:20px auto;animation:.7s linear infinite authspin}@keyframes authspin{to{transform:rotate(360deg)}}
