:root{--bg: #f8f5f0;--surface: #ffffff;--surface-2: #fdfbf7;--ink: #232331;--ink-2: #6b6b7b;--line: #ece8e3;--hair: rgba(201, 160, 99, .35);--jade: #2e8b72;--deep: #1e5c4b;--gold: #c9a063;--seal: #b34234;--brand: #2e8b72;--brand-2: #1e5c4b;--mint: #2e8b72;--grad: linear-gradient(135deg, #1e5c4b 0%, #2e8b72 100%);--grad-deep: linear-gradient(160deg, #14302a 0%, #1e5c4b 55%, #2e8b72 100%);--shadow: 0 1px 2px rgba(35, 35, 49, .04), 0 8px 24px rgba(35, 35, 49, .06);--shadow-lift: 0 16px 34px rgba(30, 92, 75, .14);--r: 16px;--serif: "Songti SC", "Noto Serif SC", "Source Han Serif SC", "STSong", serif}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit}.page{font-family:var(--serif);font-size:26px;letter-spacing:.5px;margin:0 0 4px}.page-sub{color:var(--ink-2);font-size:13.5px;margin:0 0 22px}.btn{display:inline-block;text-decoration:none;font-size:13px;padding:10px 20px;border-radius:10px;border:0;background:var(--grad);color:#fff;font-weight:700;box-shadow:0 8px 18px #1e5c4b3d;transition:all .18s cubic-bezier(.34,1.56,.64,1)}.btn:hover{filter:brightness(1.05);transform:translateY(-2px)}.btn:active{transform:translateY(0) scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;filter:none;box-shadow:none}.btn-line{background:var(--surface-2);color:var(--ink);border:1px solid var(--line);box-shadow:none}.btn-jade{background:var(--jade);box-shadow:none}.btn.sm{font-size:12px;padding:6px 14px;border-radius:8px}.btn.lg{font-size:15px;padding:14px 30px;border-radius:12px}.btn.block{display:block;width:100%}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px;box-shadow:var(--shadow);animation:cardIn .45s ease both}.card h3{font-size:17px;margin:0 0 14px}@keyframes cardIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.meter{margin:8px 0}.meter .lab{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-2);margin-bottom:4px}.meter .track{height:8px;background:var(--surface-2);border:1px solid var(--line);border-radius:99px;overflow:hidden}.meter .track i{display:block;height:100%;background:var(--grad);border-radius:99px;transition:width .4s}.pill{font-size:11px;font-weight:700;border-radius:99px;padding:3px 10px;display:inline-block;white-space:nowrap}.pill.ok{background:#e7f4ee;color:var(--jade)}.pill.warn{background:#fdf3e3;color:#a97a2c}.pill.no{background:#fbe9e7;color:var(--seal)}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{font-size:12.5px;background:var(--surface-2);border:1px solid var(--line);border-radius:99px;padding:6px 13px;color:var(--ink-2);font-weight:600;transition:all .15s ease}.chip:hover{transform:translateY(-1px);border-color:var(--hair);color:var(--jade)}.chip.on{background:var(--jade);color:#fff;border-color:var(--jade)}.tag{font-size:11px;font-weight:700;color:var(--jade);background:#e7f4ee;border:1px solid #cdeadf;border-radius:99px;padding:2px 10px}.tier-tag{font-size:11px;font-weight:700;color:#a97a2c;border:1px solid var(--gold);border-radius:99px;padding:2px 10px}.act{font-size:11.5px;border:1px solid var(--line);background:var(--surface-2);border-radius:8px;padding:4px 10px;margin:2px 6px 2px 0;color:var(--ink);white-space:nowrap;transition:all .15s ease}.act:hover{transform:translateY(-1px);border-color:var(--hair);color:var(--jade)}.act.danger:hover{color:var(--seal);border-color:#b3423466}.tabs{display:flex;align-items:center;gap:8px;margin:18px 0 6px;flex-wrap:wrap}.tab{font-size:13px;padding:7px 15px;border-radius:99px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink-2);font-weight:600;transition:.15s}.tab.on{background:var(--jade);border-color:var(--jade);color:#fff}.empty{color:var(--ink-2);padding:40px;text-align:center;font-size:13.5px}.hint{font-size:12.5px;color:var(--ink-2);line-height:1.7;margin:0}table.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl th{text-align:left;font-size:11.5px;color:var(--ink-2);padding:10px 12px;border-bottom:1px solid var(--line)}.tbl td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.tbl tr:last-child td{border-bottom:0}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:var(--shadow);transition:transform .2s ease}.kpi:hover{transform:translateY(-3px)}.kpi .k{color:var(--ink-2);font-size:12px;font-weight:600}.kpi .v{font-size:26px;font-weight:800;margin-top:6px}.kpi .up{color:var(--jade);font-size:11px}.toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%);background:#1c1722;color:#fff;padding:10px 18px;border-radius:10px;font-size:13px;opacity:0;pointer-events:none;transition:.2s;z-index:9999}.toast.show{opacity:1}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(16px) scale(.9)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.toast.show{animation:toastIn .3s cubic-bezier(.34,1.56,.64,1) both}:focus-visible{outline:3px solid rgba(46,139,114,.55);outline-offset:2px;border-radius:6px}a:focus-visible,button:focus-visible,.chip:focus-visible,.tab:focus-visible,.act:focus-visible{outline:3px solid rgba(46,139,114,.55);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.btn:hover,.card,.kpi:hover,.chip:hover,.act:hover{transform:none}}
