*{box-sizing:border-box;margin:0;padding:0}
:root{--blue:#2563eb;--blt:#dbeafe;--bdk:#1e40af;--bg:#f8fafc;--sf:#fff;--bd:#e2e8f0;--tx:#0f172a;--mu:#64748b;--fa:#94a3b8;--gr:#10b981;--sw:272px;--fn:'Segoe UI',system-ui,sans-serif}
body{font-family:var(--fn);background:var(--bg);color:var(--tx);height:100vh;overflow:hidden;display:flex;flex-direction:column}
.topbar{background:var(--bdk);color:#fff;padding:0 16px;height:50px;display:flex;align-items:center;gap:12px;flex-shrink:0;box-shadow:0 2px 8px rgba(0,0,0,.2)}
.topbar h1{font-size:14px;font-weight:600}.badge{background:rgba(255,255,255,.18);border-radius:20px;padding:2px 10px;font-size:11px;margin-left:auto}
.lbar{background:#1e3a8a;padding:0 14px;height:38px;display:flex;align-items:center;gap:5px;flex-shrink:0;border-bottom:1px solid rgba(255,255,255,.1)}
.lv{color:rgba(255,255,255,.6);border:none;background:transparent;padding:4px 12px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}
.lv:hover{background:rgba(255,255,255,.12);color:#fff}.lv.on{background:rgba(255,255,255,.22);color:#fff;font-weight:700}
.sep{height:18px;width:1px;background:rgba(255,255,255,.2);margin:0 4px}
.tb{color:rgba(255,255,255,.6);border:1px solid transparent;background:transparent;padding:4px 12px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s;margin-left:6px}
.tb:hover{background:rgba(255,255,255,.12);color:#fff}.tb.on{border-color:rgba(255,255,255,.45);color:#fff;font-weight:700}
.layout{display:flex;flex:1;overflow:hidden}
.sb{width:var(--sw);flex-shrink:0;border-right:1px solid var(--bd);display:flex;flex-direction:column;background:var(--sf);overflow:hidden}
.ss{padding:10px 11px;border-bottom:1px solid var(--bd)}
.lbl{font-size:10px;font-weight:600;color:var(--fa);letter-spacing:.1em;text-transform:uppercase;margin-bottom:5px}
.cats{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:8px}
.cb{font-size:10px;padding:2px 7px;border-radius:20px;border:1px solid var(--bd);background:transparent;color:var(--mu);cursor:pointer;transition:all .15s;white-space:nowrap}
.cb:hover{background:var(--blt);border-color:var(--blue);color:var(--blue)}.cb.on{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600}
select{width:100%;padding:6px 8px;border-radius:7px;border:1px solid var(--bd);background:var(--bg);color:var(--tx);font-size:12px;outline:none;cursor:pointer}
select:focus{border-color:var(--blue)}
.sw{position:relative}.sw input{width:100%;padding:6px 8px 6px 27px;border-radius:7px;border:1px solid var(--bd);background:var(--bg);color:var(--tx);font-size:12px;outline:none}
.sw input:focus{border-color:var(--blue)}.si{position:absolute;left:8px;top:50%;transform:translateY(-50%);color:var(--fa);font-size:11px;pointer-events:none}
.bx{font-size:11px;padding:3px 9px;border-radius:5px;border:1px solid var(--bd);background:transparent;color:var(--mu);cursor:pointer}
.bx:hover{background:var(--bg)}.bx.p{border-color:var(--blue);color:var(--blue)}.bx.p:hover{background:var(--blt)}
.list{overflow-y:auto;flex:1;padding:5px 6px}
.br{display:flex;align-items:center;gap:6px;padding:5px 7px;border-radius:7px;cursor:pointer;border:1px solid transparent;margin-bottom:2px;transition:all .12s}
.br:hover{background:var(--bg)}.br.on{background:#eff6ff;border-color:#bfdbfe}
.chk{width:14px;height:14px;border-radius:3px;border:1.5px solid var(--bd);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:9px;transition:all .12s}
.chk.on{background:var(--blue);border-color:var(--blue);color:#fff}
.bn{font-size:11px;color:var(--mu);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bn.on{color:var(--bdk);font-weight:500}.bv{font-size:11px;font-weight:500;color:var(--fa);flex-shrink:0}.bv.on{color:var(--blue)}
.mb{margin-top:2px;height:2px;background:#e2e8f0;border-radius:1px}.mbf{height:100%;background:var(--blue);border-radius:1px;transition:width .2s}
.main{flex:1;overflow-y:auto;background:var(--bg)}
.hero{background:var(--sf);border-bottom:1px solid var(--bd);padding:15px 20px}
.hlbl{font-size:10px;color:var(--mu);font-weight:500;margin-bottom:3px;text-transform:uppercase;letter-spacing:.06em}
.hnum{font-size:38px;font-weight:700;color:var(--blue);line-height:1;letter-spacing:-.02em}
.hsub{font-size:12px;color:var(--mu);margin-top:3px}.hsub span{color:var(--bdk);font-weight:600}
.pb{height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden;margin-top:10px}
.pf{height:100%;background:linear-gradient(90deg,var(--bdk),var(--blue));border-radius:3px;transition:width .4s}
.scards{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.sc{background:var(--bg);border:1px solid var(--bd);border-radius:9px;padding:8px 12px;flex:1;min-width:110px}
.scl{font-size:10px;color:var(--fa);font-weight:500;text-transform:uppercase;letter-spacing:.06em}.scv{font-size:17px;font-weight:700;margin-top:2px}
.dsg{padding:12px 20px;border-bottom:1px solid var(--bd);display:none}.dsg.on{display:block}
.dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:6px;margin-top:8px}
.dc{background:var(--sf);border:1px solid var(--bd);border-radius:9px;padding:8px 11px;cursor:pointer;transition:border-color .15s}.dc:hover{border-color:var(--blue)}
.did{width:22px;height:22px;border-radius:5px;background:var(--blt);display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:var(--blue);flex-shrink:0}
.dn{font-size:10px;color:var(--mu);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dv{font-size:13px;font-weight:700}.dp{font-size:10px;color:var(--fa)}
.csec{padding:12px 20px;border-bottom:1px solid var(--bd);background:var(--sf)}
.chdr{display:flex;align-items:center;gap:7px;margin-bottom:10px;flex-wrap:wrap}
.ctb{font-size:11px;padding:3px 9px;border-radius:5px;border:1px solid var(--bd);background:transparent;color:var(--mu);cursor:pointer}
.ctb.on{border-color:var(--blue);color:var(--blue);background:var(--blt)}
.cw{position:relative;height:220px}
.tw{padding:12px 20px}.thdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px;flex-wrap:wrap;gap:6px}
.dlb{font-size:11px;padding:4px 11px;border-radius:6px;border:1px solid var(--bd);background:var(--sf);color:var(--mu);cursor:pointer;display:flex;align-items:center;gap:5px}
.dlb:hover{background:#f0fdf4;border-color:var(--gr);color:var(--gr)}
table{width:100%;border-collapse:collapse;background:var(--sf);border-radius:10px;overflow:hidden;border:1px solid var(--bd)}
thead th{background:var(--bg);font-size:10px;font-weight:600;color:var(--fa);padding:8px 10px;text-align:left;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid var(--bd);white-space:nowrap}
tbody td{padding:7px 10px;font-size:12px;border-bottom:1px solid var(--bd)}
tbody tr:last-child td{border-bottom:none}tbody tr{cursor:pointer;transition:background .1s}tbody tr:hover td{background:#f0f9ff}
tbody tr.sr td{background:#eff6ff}tbody tr.fd{opacity:.3}
tfoot td{padding:8px 10px;font-size:13px;font-weight:700;color:var(--blue);border-top:2px solid var(--bd);background:var(--bg)}
.tbar{height:4px;background:#e2e8f0;border-radius:2px}.tbf{height:100%;background:var(--blue);border-radius:2px}
.rk{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:10px;font-weight:700}
.rk1{background:#fef3c7;color:#92400e}.rk2{background:#f1f5f9;color:#475569}.rk3{background:#fde8d8;color:#9a3412}
.crw{padding:14px 20px}.cbox{background:var(--sf);border:1px solid var(--bd);border-radius:10px;padding:13px;margin-bottom:12px}
.vtags{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;min-height:30px}
.vt{display:flex;align-items:center;gap:4px;background:var(--blt);border:1px solid #bfdbfe;color:var(--bdk);border-radius:20px;padding:3px 10px;font-size:11px;font-weight:500}
.vt button{border:none;background:none;color:var(--blue);cursor:pointer;font-size:13px;padding:0;line-height:1}
.cadd{display:flex;gap:6px;margin-top:9px;align-items:center;flex-wrap:wrap}.cadd select{width:auto;flex:1;min-width:150px}
.cchw{background:var(--sf);border:1px solid var(--bd);border-radius:10px;padding:13px;margin-bottom:12px}
.ccwi{position:relative;height:280px}.ctblw{background:var(--sf);border:1px solid var(--bd);border-radius:10px;overflow:hidden}
.ctblw table{border:none;border-radius:0}
.ft{background:var(--bdk);border-top:1px solid var(--bd);padding:6px 20px;font-size:11px;color:#ffffff;flex-shrink:0;display:flex;align-items:center;gap:10px}
::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}
.btn-menu{display:none;align-items:center;justify-content:center;background:rgba(255,255,255,.15);border:none;border-radius:6px;padding:5px 9px;color:#fff;cursor:pointer;font-size:20px;line-height:1;flex-shrink:0}
.sb-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:199;cursor:pointer}
@media(max-width:768px){
body{overflow:auto;height:auto;min-height:100vh}
.topbar{height:auto;padding:8px 12px;flex-wrap:wrap;gap:8px}
.topbar img{height:40px!important}
.btn-menu{display:flex}
.lbar{height:auto;min-height:38px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:4px 8px;gap:3px}
.lbar .sep{display:none}
.layout{flex-direction:column;overflow:visible;height:auto}
.sb{width:82%;max-width:300px;position:fixed;top:0;left:0;height:100vh;z-index:200;transform:translateX(-100%);transition:transform .25s ease;box-shadow:4px 0 18px rgba(0,0,0,.3)}
.sb.open{transform:translateX(0)}
.sb-overlay.on{display:block}
.main{width:100%;overflow:visible;height:auto}
.hnum{font-size:26px}
.scards{flex-direction:row;flex-wrap:wrap}
.sc{flex:1;min-width:120px}
.cw{height:200px}
.ccwi{height:220px}
.dgrid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
.hero{padding:10px 12px}
.csec{padding:10px 12px}
.tw{padding:8px 10px}
.crw{padding:8px 10px}
.dsg{padding:8px 12px}
.ft{padding:6px 10px;font-size:10px;flex-wrap:wrap}
.sb-close-btn{display:flex}
}
@media(min-width:769px){
.btn-menu{display:none!important}
.sb-overlay{display:none!important}
.sb-close-btn{display:none!important}
}
.sb-close-btn{display:none;position:absolute;top:8px;right:8px;background:rgba(0,0,0,.1);border:none;border-radius:50%;width:26px;height:26px;align-items:center;justify-content:center;cursor:pointer;font-size:14px;color:var(--mu);z-index:10}
