:root{--bg: #070c18;--bg-soft: #0d1526;--card: #111c31;--card-hover: #16233d;--line: #1e2d49;--text: #e6edf7;--muted: #8fa2bf;--primary: #3b82f6;--primary-soft: #1d4ed8;--accent: #22d3ee;--good: #34d399;--warn: #fbbf24;--bad: #f87171;--radius: 14px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:radial-gradient(1200px 600px at 15% -10%,#12305c 0%,transparent 60%),radial-gradient(900px 500px at 90% 0%,#0d2f4a 0%,transparent 55%),var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Microsoft YaHei,sans-serif;font-size:15px;line-height:1.6}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}.shell{display:flex;flex-direction:column;min-height:100%}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 28px;background:#070c18d1;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:17px;letter-spacing:.3px}.brand .dot{width:26px;height:26px;border-radius:8px;background:linear-gradient(135deg,var(--accent),var(--primary));display:grid;place-items:center;font-size:14px;color:#04101f}.nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.nav a,.nav button.link{padding:7px 12px;border-radius:9px;color:var(--muted);background:none;border:0;cursor:pointer}.nav a:hover,.nav button.link:hover{color:var(--text);background:var(--bg-soft)}.nav a.active{color:var(--text);background:var(--card)}.container{width:min(1180px,100% - 40px);margin:0 auto;padding:28px 0 60px}.container.narrow{width:min(760px,100% - 40px)}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}.page-head h1{margin:0;font-size:26px}.page-head p{margin:4px 0 0;color:var(--muted);font-size:14px}.grid{display:grid;gap:16px}.grid.cols-3{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.card{background:linear-gradient(180deg,var(--card),#0e1829);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.card.hover{transition:transform .18s ease,border-color .18s ease,background .18s ease}.card.hover:hover{transform:translateY(-3px);border-color:#2b4570;background:var(--card-hover)}.product-card{display:flex;flex-direction:column;gap:10px;height:100%}.product-card .title-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.product-card h3{margin:0;font-size:17px}.product-card .summary{color:var(--muted);font-size:13.5px;flex:1}.product-card .foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:10px;border-top:1px dashed var(--line)}.price{font-weight:700;color:var(--accent)}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:12px;border:1px solid var(--line);background:var(--bg-soft);color:var(--muted)}.badge.skill{color:#93c5fd;border-color:#1e40af55;background:#1e3a8a22}.badge.mcp{color:#6ee7b7;border-color:#04785755;background:#064e3b22}.badge.pass{color:var(--good);border-color:#16653455;background:#052e1622}.badge.reject{color:var(--bad);border-color:#7f1d1d55;background:#450a0a22}.badge.pending{color:var(--warn);border-color:#78350f55;background:#451a0322}.badge.approved{color:var(--good);border-color:#16653455;background:#052e1622}.badge.offline,.badge.rejected,.badge.banned{color:var(--bad);border-color:#7f1d1d55;background:#450a0a22}.badge.required,.badge.role{color:#c4b5fd;border-color:#5b21b655;background:#2e106522}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 16px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--text);cursor:pointer;white-space:nowrap;transition:background .15s ease,border-color .15s ease,transform .1s ease}.btn:hover{background:var(--card-hover);border-color:#2b4570}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:linear-gradient(135deg,var(--primary),var(--primary-soft));border-color:transparent;color:#fff}.btn.primary:hover{filter:brightness(1.08)}.btn.ghost{background:transparent}.btn.danger{color:var(--bad);border-color:#7f1d1d66;background:#450a0a22}.btn.small{padding:5px 10px;font-size:13px;border-radius:8px}.btn.block{width:100%}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field>label{font-size:13px;color:var(--muted)}.field .hint{font-size:12px;color:#6b7d99}input[type=text],input[type=email],input[type=password],input[type=number],input[type=url],textarea,select{width:100%;padding:10px 12px;border-radius:10px;background:#0a1322;border:1px solid var(--line);outline:none;transition:border-color .15s ease}input:focus,textarea:focus,select:focus{border-color:var(--primary)}textarea{min-height:110px;resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:640px){.form-row{grid-template-columns:1fr}}.alert{padding:10px 14px;border-radius:10px;font-size:13.5px;margin-bottom:14px}.alert.error{color:#fecaca;background:#450a0a55;border:1px solid #7f1d1d66}.alert.ok{color:#bbf7d0;background:#052e1655;border:1px solid #16653466}.alert.info{color:#bfdbfe;background:#17255455;border:1px solid #1e40af66}.muted{color:var(--muted)}.small{font-size:13px}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.score{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--warn)}.score.big{font-size:30px}.score-bar{height:6px;border-radius:999px;background:#0a1322;overflow:hidden}.score-bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--warn),var(--good))}.dim-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.dim{background:#0a1322;border:1px solid var(--line);border-radius:10px;padding:10px 12px}.dim b{display:block;font-size:18px;color:var(--text)}.dim span{font-size:12px;color:var(--muted)}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius)}table{width:100%;border-collapse:collapse;font-size:13.5px}th,td{padding:11px 14px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}th{color:var(--muted);font-weight:600;background:#0b1424;font-size:12.5px}tr:last-child td{border-bottom:0}tbody tr:hover{background:#0e1829}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.toolbar .search{flex:1;min-width:220px}.tabs{display:flex;gap:6px;flex-wrap:wrap}.tabs button{padding:7px 13px;border-radius:9px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer}.tabs button.on{background:var(--card);color:var(--text);border-color:#2b4570}.empty{text-align:center;padding:48px 20px;color:var(--muted)}.empty .icon{font-size:34px;opacity:.5;display:block;margin-bottom:8px}.footer{margin-top:auto;padding:20px 28px;border-top:1px solid var(--line);color:#6b7d99;font-size:12.5px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.user-chip{display:flex;align-items:center;gap:10px}.avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--accent));display:grid;place-items:center;color:#04101f;font-weight:700;font-size:13px}.stack{display:flex;flex-direction:column;gap:14px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.row.between{justify-content:space-between}.row.end{justify-content:flex-end}.progress{height:8px;border-radius:999px;background:#0a1322;overflow:hidden}.progress>i{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--accent))}.list{display:flex;flex-direction:column}.list>.item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px dashed var(--line);flex-wrap:wrap}.list>.item:last-child{border-bottom:0}input[type=range]{width:100%;accent-color:var(--primary)}.pre{white-space:pre-wrap;word-break:break-word}.tag-list{display:flex;flex-wrap:wrap;gap:6px}.score-slider{display:flex;align-items:center;gap:12px}.score-slider input[type=range]{flex:1}.score-slider b{width:34px;text-align:right;color:var(--accent)}.token-box{padding:10px 12px;border-radius:10px;border:1px dashed #2b4570;background:#0a1322;font-size:12.5px;word-break:break-all;-webkit-user-select:all;user-select:all}.kv-line{display:flex;flex-direction:column;gap:6px;padding:8px 10px;margin-bottom:8px;border:1px solid var(--line);border-radius:10px;background:#0a1322}.kv-line .kv-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.kv-line code{display:block;min-width:0;line-height:1.5;white-space:pre;overflow-x:auto;-webkit-user-select:all;user-select:all}details>summary{cursor:pointer;color:var(--accent)}details p{margin:8px 0 0;line-height:1.6}.file-input{display:none}@media(max-width:720px){.topbar{padding:12px 16px}.container{width:calc(100% - 28px);padding-top:18px}.page-head h1{font-size:21px}.nav a,.nav button.link{padding:6px 9px;font-size:13.5px}}
