:root{--gd:#1a3a2a;--gm:#2d6a4f;--ga:#40916c;--gl:#74c69d;--gp:#d8f3dc;--gg:#f0faf3;--tp:#111827;--ts:#6b7280;--tm:#9ca3af;--br:#e5e7eb;--bg:#f5f7f6;--wh:#fff;--r:12px;--rs:8px;--sh:0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);--shm:0 4px 16px rgba(0,0,0,.08)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Plus Jakarta Sans,sans-serif;background:var(--bg);color:var(--tp);font-size:13px;min-height:100vh;display:flex;flex-direction:column}.nav{background:var(--gd);display:flex;align-items:center;padding:0 24px;height:52px;position:sticky;top:0;z-index:30;gap:2px;flex-shrink:0}.brand{display:flex;flex-direction:column;padding-right:20px;margin-right:10px;border-right:1px solid rgba(255,255,255,.1);flex-shrink:0}.brand b{font-size:14px;font-weight:800;color:#fff;letter-spacing:.08em;line-height:1}.brand small{font-size:9px;color:#ffffff59;letter-spacing:.1em;text-transform:uppercase;margin-top:2px}.ni{display:flex;align-items:center;gap:6px;padding:6px 11px;border-radius:var(--rs);color:#ffffff80;font-size:12px;font-weight:500;cursor:pointer;transition:.15s;white-space:nowrap}.ni:hover{background:#ffffff12;color:#fff}.ni.on{background:var(--ga);color:#fff}.ni svg{width:13px;height:13px;flex-shrink:0}.nr{display:flex;align-items:center;gap:8px;margin-left:auto;padding-left:16px;border-left:1px solid rgba(255,255,255,.1)}.av{width:28px;height:28px;border-radius:50%;background:var(--ga);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;border:2px solid rgba(255,255,255,.15)}.ui{text-align:right}.ui b{display:block;font-size:11px;color:#fff;font-weight:600;line-height:1.2}.ui span{font-size:9.5px;color:#ffffff59}.ph{background:var(--wh);border-bottom:1px solid var(--br);padding:11px 24px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.ph h1{font-size:15px;font-weight:700}.ph p{font-size:11px;color:var(--ts);margin-top:2px}.ph-r{display:flex;align-items:center;gap:8px}.pbtn{display:flex;align-items:center;gap:6px;background:var(--gg);border:1px solid var(--gp);border-radius:var(--rs);padding:5px 11px;font-size:11px;font-weight:600;color:var(--ga);cursor:pointer}.ibtn{width:30px;height:30px;border-radius:var(--rs);border:1px solid var(--br);background:var(--wh);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ts)}.ibtn svg{width:13px;height:13px}.fbar{background:var(--wh);border-bottom:1px solid var(--br);padding:8px 24px;display:flex;align-items:center;gap:16px;flex-shrink:0;flex-wrap:wrap}.fb-label{display:flex;align-items:center;gap:5px;font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--tm);white-space:nowrap}.fb-label svg{width:11px;height:11px}.fb-left,.fb-right{display:flex;align-items:center;gap:8px}.fb-sep{width:1px;height:20px;background:var(--br)}.pills{display:flex;gap:4px}.pill{background:none;border:1px solid var(--br);border-radius:20px;padding:3px 11px;font-size:11px;font-weight:500;color:var(--ts);cursor:pointer;font-family:inherit;transition:.15s}.pill:hover{border-color:var(--ga);color:var(--gm)}.pill.on{background:var(--ga);border-color:var(--ga);color:#fff;font-weight:600}.doc-select{border:1px solid var(--br);border-radius:var(--rs);padding:4px 10px;font-size:11.5px;font-weight:500;color:var(--tp);font-family:inherit;background:var(--wh);cursor:pointer;min-width:170px;outline:none}.doc-select:focus{border-color:var(--ga)}.fb-badge{margin-left:auto;background:var(--gg);border:1px solid var(--gp);border-radius:20px;padding:3px 11px;font-size:10.5px;font-weight:600;color:var(--gm);white-space:nowrap}.ubanner{background:linear-gradient(135deg,var(--gd),var(--gm));margin:12px 24px 0;border-radius:var(--r);padding:10px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.ubanner-info p{color:#ffffffb3;font-size:10.5px}.ubanner-info b{color:#fff;font-size:11.5px}.uarea{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.uf{display:flex;align-items:center;gap:5px;background:#ffffff1a;border:1px dashed rgba(255,255,255,.25);border-radius:var(--rs);padding:4px 9px;cursor:pointer;color:#ffffffa6;font-size:10px;transition:.15s}.uf:hover{background:#ffffff2e;color:#fff}.uf.ok{background:#40916c59;border-color:var(--gl);color:#fff}.uf svg{width:11px;height:11px}.updbtn{background:var(--ga);color:#fff;border:none;border-radius:var(--rs);padding:5px 12px;font-size:11px;font-weight:700;cursor:pointer;font-family:inherit;transition:.15s}.updbtn:hover{background:#2d6a4f}.updbtn:disabled{opacity:.35;cursor:default}input[type=file]{display:none}.content{padding:12px 24px 24px}.kgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:11px;margin-bottom:12px}.kcard{background:var(--wh);border-radius:var(--r);padding:13px 15px;box-shadow:var(--sh);border:1px solid var(--br);position:relative;overflow:hidden;transition:.2s}.kcard:hover{box-shadow:var(--shm);transform:translateY(-1px)}.kcard:after{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:var(--r) var(--r) 0 0;background:var(--ga);transform:scaleX(0);transition:.25s;transform-origin:left}.kcard:hover:after{transform:scaleX(1)}.kl{font-size:9.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--tm);margin-bottom:6px;display:flex;align-items:center;gap:5px}.kl svg{width:12px;height:12px;color:var(--ga)}.kv{font-size:22px;font-weight:800;color:var(--tp);line-height:1;margin-bottom:4px}.bdg{display:inline-flex;align-items:center;font-size:9.5px;font-weight:600;padding:2px 7px;border-radius:20px;margin-bottom:3px}.bdg.g{background:var(--gp);color:var(--gm)}.bdg.a{background:#fef3c7;color:#d97706}.bdg.b{background:#dbeafe;color:#1d4ed8}.ks{font-size:10px;color:var(--ts)}.row2{display:grid;grid-template-columns:1.35fr 1fr;gap:12px;margin-bottom:12px}.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:12px}.card{background:var(--wh);border-radius:var(--r);border:1px solid var(--br);box-shadow:var(--sh);overflow:hidden}.ch{display:flex;align-items:center;justify-content:space-between;padding:13px 15px 10px;border-bottom:1px solid var(--br)}.ct{font-size:12.5px;font-weight:700}.cs{font-size:10px;color:var(--tm);margin-top:1px}.cb{padding:13px 15px}.tag{font-size:10px;font-weight:600;padding:3px 9px;border-radius:20px;background:var(--gg);color:var(--ga);border:1px solid var(--gp)}.prow{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.pname{font-size:11px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:65%}.pval{font-size:11.5px;font-weight:700;color:var(--gm)}.pbg{height:4px;background:var(--br);border-radius:4px;overflow:hidden;margin-bottom:9px}.pfill{height:100%;border-radius:4px;transition:width .6s ease}.ptbl{width:100%;border-collapse:collapse}.ptbl th{font-size:9.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--tm);padding:3px 0 7px;text-align:left;border-bottom:1px solid var(--br)}.ptbl th:last-child,.ptbl td:last-child{text-align:right}.ptbl td{padding:6px 0;border-bottom:1px solid var(--br);font-size:11.5px;vertical-align:middle}.ptbl tr:last-child td{border-bottom:none}.pico{width:20px;height:20px;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;font-size:8px;font-weight:700;color:#fff;margin-right:5px;vertical-align:middle}.dnut-wrap{display:flex;align-items:center;gap:14px;margin-bottom:10px}.dnut{position:relative;width:72px;height:72px;flex-shrink:0}.dnut-mid{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.dnut-mid b{font-size:12px;font-weight:800;display:block;line-height:1}.dnut-mid small{font-size:8px;color:var(--tm)}.dleg{flex:1}.drow{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.dlbl{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--ts)}.dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.dval{font-size:14px;font-weight:700}.arow{display:flex;align-items:center;gap:8px;margin-bottom:6px}.albl{width:30px;font-size:10px;color:var(--ts);font-weight:500}.abg{flex:1;height:5px;background:var(--br);border-radius:4px;overflow:hidden}.afill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--gm),var(--gl))}.apct{width:24px;text-align:right;font-size:10px;font-weight:600}.oitem{display:flex;align-items:center;gap:9px;margin-bottom:8px}.oico{width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;flex-shrink:0}.oinfo{flex:1;min-width:0}.onrow{display:flex;justify-content:space-between;margin-bottom:3px}.oname{font-size:11px;font-weight:600}.ocnt{font-size:11px;font-weight:700}.obg{height:3.5px;background:var(--br);border-radius:4px;overflow:hidden}.ofill{height:100%;border-radius:4px}.bchart{display:flex;align-items:flex-end;gap:3px;height:70px}.bcol{display:flex;flex-direction:column;align-items:center;flex:1;position:relative}.bfill{width:100%;border-radius:3px 3px 0 0;transition:.2s;min-height:2px}.bfill:hover{filter:brightness(1.1)}.btip{display:none;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);background:var(--gd);color:#fff;font-size:9px;padding:3px 6px;border-radius:5px;white-space:nowrap;pointer-events:none;z-index:10}.bcol:hover .btip{display:block}.bday{font-size:7px;color:var(--tm);margin-top:2px}.bstats{display:flex;gap:16px;margin-top:10px;padding-top:10px;border-top:1px solid var(--br);align-items:center}.bs-item div:first-child{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--tm)}.bs-item div:last-child{font-size:14px;font-weight:800}.trend-bars{display:flex;align-items:flex-end;gap:5px;height:48px;margin-bottom:5px}.tb{flex:1;border-radius:4px 4px 0 0;background:var(--gl);opacity:.5;min-height:4px}.tb.cur{background:var(--ga);opacity:1}.tlbls{display:flex;gap:5px;margin-bottom:10px}.tlbl{flex:1;font-size:9px;color:var(--tm);text-align:center}@keyframes fu{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}.kcard{animation:fu .35s ease both}.kcard:nth-child(1){animation-delay:.04s}.kcard:nth-child(2){animation-delay:.08s}.kcard:nth-child(3){animation-delay:.12s}.kcard:nth-child(4){animation-delay:.16s}.kcard:nth-child(5){animation-delay:.2s}.card{animation:fu .4s ease both;animation-delay:.22s}
