:root{--co:#e84b2a;--col:#fbede9;--cod:#c03a1e;--gr:#16a34a;--grl:#dcfce7;--grd:#14532d;--bl:#2563eb;--bll:#dbeafe;--bld:#1e3a8a;--am:#d97706;--aml:#fef3c7;--amd:#92400e;--pu:#7c3aed;--pul:#ede9fe;--pud:#4c1d95;--re:#dc2626;--rel:#fef2f2;--red:#7f1d1d;--rg:#059669;--rgl:#d1fae5;--rgd:#064e3b;--ce:#0284c7;--cel:#e0f2fe;--ced:#0c4a6e;--dk:#111827;--gy:#6b7280;--gyl:#f8f9fa;--bo:#e5e7eb;--wh:#fff;--bg:#f8f9fa;--sw:230px;--header-h:56px;--radius:14px;--radius-sm:8px;--radius-xs:6px;--sh-sm:0 1px 2px #0000000a;--sh-md:0 4px 12px #0000000f;--sh-lg:0 12px 40px #0000001a;--sh-xl:0 20px 60px #0000001f}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--bg);height:100%;color:var(--dk);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.55}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--bo);border-radius:10px}.spinner{border:2.5px solid var(--bo);border-top-color:var(--co);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.btn{border-radius:var(--radius-sm);border:1px solid var(--bo);background:var(--wh);cursor:pointer;color:var(--dk);white-space:nowrap;align-items:center;gap:4px;padding:7px 13px;font-size:12px;font-weight:600;transition:all .12s;display:inline-flex}.btn:hover{background:var(--col);border-color:var(--co);color:var(--co)}.btn-primary,.btn.p{background:var(--co);color:#fff;border-color:var(--co)}.btn-primary:hover,.btn.p:hover{background:var(--cod);border-color:var(--cod);color:#fff}.btn-secondary,.btn.s{background:var(--gr);color:#fff;border-color:var(--gr)}.btn-warning,.btn.w{background:var(--am);color:#fff;border-color:var(--am)}.btn-outline,.btn.ou{background:var(--wh);color:var(--co);border-color:var(--co)}.btn-outline:hover,.btn.ou:hover{background:var(--col)}.btn-ghost{color:var(--gy);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--gyl);color:var(--dk);border-color:var(--bo)}.btn-danger{background:var(--rel);color:var(--re);border-color:#fca5a5}.btn-danger:hover{background:#fee2e2}.btn-sm,.btn.sm{border-radius:var(--radius-xs);padding:5px 10px;font-size:11px}.btn-xs{border-radius:5px;padding:3px 8px;font-size:11px}.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.card{background:var(--wh);border-radius:var(--radius);border:1px solid var(--bo);box-shadow:var(--sh-sm);padding:18px;transition:box-shadow .2s}.card:hover{box-shadow:var(--sh-md)}.card-flat{background:var(--wh);border-radius:var(--radius);border:1px solid var(--bo);padding:18px}.field{flex-direction:column;gap:5px;display:flex}.field label,.fl{color:var(--gy);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:600}.input,.fi,.select,.textarea{background:var(--wh);border:1px solid var(--bo);border-radius:var(--radius-sm);color:var(--dk);outline:none;width:100%;padding:8px 12px;font-size:13px;transition:all .15s}.input:focus,.fi:focus,.select:focus,.textarea:focus{border-color:var(--co);box-shadow:0 0 0 3px var(--col)}.input::placeholder,.fi::placeholder{color:#9ca3af}.textarea{resize:vertical;min-height:80px}.select{appearance:none;cursor:pointer}.badge,.pill{white-space:nowrap;border-radius:20px;align-items:center;gap:3px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge-orange,.pc{background:var(--col);color:var(--cod)}.badge-green,.pg2{background:var(--grl);color:var(--grd)}.badge-red,.pr{background:var(--rel);color:var(--red)}.badge-yellow,.pa{background:var(--aml);color:var(--amd)}.badge-blue,.pb2{background:var(--bll);color:var(--bld)}.badge-purple,.pp{background:var(--pul);color:var(--pud)}.badge-gray,.pgr{background:var(--gyl);color:var(--gy);border:1px solid var(--bo)}.badge-teal,.prg{background:var(--rgl);color:var(--rgd)}.badge-cyan,.pce{background:var(--cel);color:var(--ced)}.table-wrap{border-radius:var(--radius);border:1px solid var(--bo);background:var(--wh);overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:400px;font-size:12px}thead tr{background:var(--gyl)}th{text-align:left;color:var(--gy);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;border-bottom:1px solid var(--bo);padding:10px 14px;font-size:11px;font-weight:700}td{border-top:1px solid var(--bo);color:var(--dk);vertical-align:middle;padding:10px 14px;font-size:12px}tbody tr{transition:background .1s}tbody tr:hover{background:var(--gyl)}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.kpi-card{background:var(--wh);border:1px solid var(--bo);border-radius:var(--radius);box-shadow:var(--sh-sm);padding:16px 18px}.kpi-label{color:var(--gy);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:600}.kpi-value{color:var(--dk);margin-top:4px;font-size:24px;font-weight:700}.kpi-sub{color:var(--gy);margin-top:2px;font-size:11px}.kpi-trend-up{color:var(--gr);font-size:11px;font-weight:600}.kpi-trend-dn{color:var(--re);font-size:11px;font-weight:600}.app-layout{background:var(--bg);height:100vh;display:flex;overflow:hidden}.sidebar{width:var(--sw);background:var(--wh);border-right:1px solid var(--bo);flex-direction:column;flex-shrink:0;display:flex;overflow-y:auto}.sidebar-logo{border-bottom:1px solid var(--bo);padding:14px 16px 12px}.sidebar-logo img{object-fit:contain;height:30px}.nav-section{color:var(--gy);text-transform:uppercase;letter-spacing:.8px;padding:12px 16px 5px;font-size:10px;font-weight:700}.nav-item{cursor:pointer;color:var(--gy);border-left:3px solid #0000;align-items:center;gap:9px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .12s;display:flex}.nav-item:hover{background:var(--col);color:var(--co)}.nav-item.active{background:var(--col);color:var(--co);border-left-color:var(--co);font-weight:600}.nav-badge{text-align:center;border-radius:10px;min-width:18px;margin-left:auto;padding:1px 6px;font-size:10px;font-weight:700}.nav-badge-co{background:var(--co);color:#fff}.nav-badge-bl{background:var(--bl);color:#fff}.nav-badge-am{background:var(--am);color:#fff}.nav-badge-re{background:var(--re);color:#fff}.main-area{flex-direction:column;flex:1;display:flex;overflow:hidden}.topbar{height:var(--header-h);background:var(--wh);border-bottom:1px solid var(--bo);flex-shrink:0;justify-content:space-between;align-items:center;padding:0 20px;display:flex}.page-content{background:var(--bg);flex:1;padding:20px;overflow-y:auto}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;display:flex}.page-title{color:var(--dk);font-size:15px;font-weight:700}.page-subtitle{color:var(--gy);margin-top:1px;font-size:11px}.tabs-bar{background:var(--gyl);border:1px solid var(--bo);border-radius:10px;flex-wrap:wrap;gap:3px;width:fit-content;margin-bottom:14px;padding:3px;display:flex}.tab-btn{cursor:pointer;color:var(--gy);background:0 0;border:none;border-radius:7px;padding:6px 12px;font-size:12px;font-weight:500;transition:all .12s}.tab-btn.active{background:var(--co);color:#fff;font-weight:600}.empty-state{color:var(--gy);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:48px;display:flex}.modal-overlay{z-index:100;background:#11182773;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--wh);border:1px solid var(--bo);width:100%;max-width:520px;max-height:90vh;box-shadow:var(--sh-xl);border-radius:18px;padding:24px;animation:.2s slideUp;overflow-y:auto}.modal-title{color:var(--dk);margin-bottom:18px;font-size:16px;font-weight:700}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.ctit{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;font-size:13px;font-weight:700;display:flex}.tbtn{border-radius:var(--radius-sm);border:1px solid var(--bo);background:var(--wh);cursor:pointer;color:var(--dk);align-items:center;gap:5px;padding:6px 12px;font-size:12px;font-weight:600;transition:all .12s;display:flex}.tbtn:hover{border-color:var(--co);color:var(--co)}.tbtn.p{background:var(--co);color:#fff;border-color:var(--co)}.tbtn.p:hover{background:var(--cod)}
