:root{--font:ui-sans-serif, system-ui, -apple-system, "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei", sans-serif;--bg:#f4f2ee;--surface:#fff;--surface-2:#faf9f7;--surface-3:#f1efeb;--hairline:#17151114;--hairline-2:#17151124;--hover:#1715110b;--fg:#1c1a17;--fg-2:#4a4640;--fg-3:#8a847b;--fg-faint:#b0aa9f;--ink:#1c1a17;--ink-2:#33302b;--grad-ink:linear-gradient(135deg, #2b2823 0%, #14120f 100%);--ink-soft:#1715110f;--ring:#17151152;--ok:#1a7f4e;--ok-bg:#e6f4ec;--warn:#b07010;--warn-bg:#faf0dc;--err:#b3382c;--err-bg:#fbeae7;--info:#33628f;--info-bg:#e7eff8;--shadow-sm:0 1px 2px #1715110d;--shadow-md:0 2px 6px #1715110d, 0 8px 24px -8px #1715111a;--shadow-lg:0 24px 60px -12px #1715112e;--radius-sm:8px;--radius:12px;--radius-lg:16px;--ease:cubic-bezier(.25, .1, .25, 1)}html,body,#app{height:100%;margin:0}body{font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--fg);background:var(--bg);font-size:13.5px}::selection{background:#17151124}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:#1715112e padding-box padding-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#1715114d padding-box padding-box}::-webkit-scrollbar-track{background:0 0}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.mono{font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:12.5px}.dim{color:var(--fg-3)}.num{font-variant-numeric:tabular-nums}.ta-r{text-align:right}.req{color:var(--err);margin-left:2px;font-style:normal}.page{max-width:1480px;padding:4px 2px 28px}.page-head{justify-content:space-between;align-items:flex-end;gap:16px;margin:4px 0 18px;display:flex}.page-head h1{letter-spacing:-.02em;color:var(--fg);margin:0;font-size:22px;font-weight:700}.page-head p{color:var(--fg-3);margin:5px 0 0;font-size:12.5px}.head-actions{align-items:center;gap:10px;display:flex}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;display:flex}.tools{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.tools.right{margin-left:auto}.tabs{background:var(--surface-3);border-radius:10px;gap:4px;padding:3px;display:flex}.tab{color:var(--fg-3);cursor:pointer;transition:all .15s var(--ease);white-space:nowrap;background:0 0;border:0;border-radius:8px;padding:6px 14px;font-size:12.5px;font-weight:500}.tab:hover{color:var(--fg)}.tab.active{background:var(--surface);color:var(--fg);box-shadow:var(--shadow-sm);font-weight:600}.btn-ink,.btn-ghost,.btn-danger{cursor:pointer;font-size:13px;font-weight:600;font-family:var(--font);transition:all .15s var(--ease);white-space:nowrap;border:0;border-radius:10px;align-items:center;gap:6px;padding:8px 16px;display:inline-flex}.btn-ink{background:var(--grad-ink);color:#f5f3ef;box-shadow:0 1px 3px #17151140}.btn-ink:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 14px #1715114d}.btn-ink:active:not(:disabled){transform:translateY(0)scale(.98)}.btn-ink:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{background:var(--surface);color:var(--fg-2);border:1px solid var(--hairline)}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--fg);border-color:var(--hairline-2)}.btn-ghost:disabled{opacity:.45;cursor:not-allowed}.btn-danger{background:var(--err-bg);color:var(--err)}.btn-danger:hover:not(:disabled){background:#f6ddd8}.btn-danger:disabled{opacity:.45;cursor:not-allowed}.table-card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}thead th{text-align:left;letter-spacing:.05em;color:var(--fg-3);text-transform:none;border-bottom:1px solid var(--hairline);background:var(--surface-2);white-space:nowrap;padding:13px 16px;font-size:11.5px;font-weight:600}tbody td{border-bottom:1px solid var(--hairline);vertical-align:middle;color:var(--fg-2);padding:13px 16px}tbody tr{transition:background .12s var(--ease)}tbody tr:hover{background:var(--hover)}tbody tr:last-child td{border-bottom:0}td .sub{color:var(--fg-3);margin-top:2px;font-size:11.5px;display:block}.col-op{text-align:right;white-space:nowrap;width:1%}.empty{text-align:center;color:var(--fg-faint);font-size:13px;padding:44px 16px!important}.tag{background:var(--surface-3);color:var(--fg-2);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.tag.image{background:var(--info-bg);color:var(--info)}.tag.video{color:#7d3ca0;background:#f3e8f8}.tag.text,.tag.ok,.tag.normal,.tag.success{background:var(--ok-bg);color:var(--ok)}.tag.warn,.tag.limited,.tag.importing{background:var(--warn-bg);color:var(--warn)}.tag.err,.tag.failed{background:var(--err-bg);color:var(--err)}.tag.off{background:var(--surface-3);color:var(--fg-3)}.chips{flex-wrap:wrap;gap:6px;display:flex}.ro-chip{background:var(--surface-3);color:var(--fg-2);white-space:nowrap;border-radius:7px;padding:3px 9px;font-size:12px;font-weight:500}.cfg-tag{background:var(--ink-soft);color:var(--fg-2);white-space:nowrap;border-radius:6px;padding:2px 8px;font-size:11.5px}.switch{cursor:pointer;width:38px;height:22px;transition:background .2s var(--ease);background:#d5d1c9;border:0;border-radius:999px;flex-shrink:0;padding:0;position:relative}.switch i{width:18px;height:18px;transition:transform .2s var(--ease);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #00000040}.switch.on{background:var(--ink)}.switch.on i{transform:translate(16px)}.switch:disabled{opacity:.4;cursor:not-allowed}.op{width:30px;height:30px;color:var(--fg-3);cursor:pointer;transition:all .15s var(--ease);background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.op:hover{background:var(--hover);color:var(--fg);border-color:var(--hairline)}.op.danger:hover{background:var(--err-bg);color:var(--err);border-color:#0000}.op:disabled{opacity:.4;cursor:not-allowed}.field{flex-direction:column;gap:7px;margin-bottom:16px;display:flex}.field>span{color:var(--fg-2);font-size:12.5px;font-weight:600}.field input,.field textarea,.field select{border:1px solid var(--hairline-2);border-radius:var(--radius-sm);font-size:13px;font-family:var(--font);color:var(--fg);background:var(--surface);padding:9px 12px;transition:border-color .15s,box-shadow .15s}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--ink);box-shadow:0 0 0 3px var(--ink-soft);outline:none}.field textarea.no-resize{resize:none;line-height:1.6}.hint{color:var(--fg-3);font-size:11.5px;line-height:1.5}.hint.locked{color:var(--warn)}.field-row{gap:12px;display:flex}.field-row .field{flex:1}.field-control{align-items:center;gap:10px;display:flex}.fixed-value{border-radius:var(--radius-sm);background:var(--surface-3);color:var(--fg);padding:9px 12px;font-size:13px;font-weight:600}.fixed-value.mono{font-family:JetBrains Mono,Consolas,monospace}.re-recognize{color:var(--info);cursor:pointer;background:0 0;border:0;margin-left:8px;font-size:11.5px;text-decoration:underline}.param-card{border:1px solid var(--hairline);border-radius:var(--radius);background:var(--surface-2);margin-bottom:16px;padding:14px 16px}.param-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.param-channel{color:var(--fg-3);font-size:12px}.param-ro{color:var(--fg-faint);margin-left:auto;font-size:11px}.param-grid{grid-template-columns:64px 1fr;align-items:start;gap:10px 12px;display:grid}.param-grid .pl{color:var(--fg-3);padding-top:4px;font-size:12px}.pager{border-top:1px solid var(--hairline);justify-content:flex-end;align-items:center;gap:12px;padding:12px 16px;display:flex}.pager .pg-info{color:var(--fg-3);font-size:12px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-bottom:20px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:box-shadow .2s var(--ease), transform .2s var(--ease);padding:18px 20px}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.stat-top{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.stat-label{color:var(--fg-3);font-size:12.5px;font-weight:500}.stat-icon{background:var(--ink-soft);width:32px;height:32px;color:var(--ink);border-radius:9px;justify-content:center;align-items:center;display:flex}.stat-icon.ok{background:var(--ok-bg);color:var(--ok)}.stat-icon.warn{background:var(--warn-bg);color:var(--warn)}.stat-icon.err{background:var(--err-bg);color:var(--err)}.stat-icon.info{background:var(--info-bg);color:var(--info)}.stat-value{letter-spacing:-.02em;color:var(--fg);font-variant-numeric:tabular-nums;font-size:26px;font-weight:700}.stat-value small{color:var(--fg-3);margin-left:4px;font-size:13px;font-weight:500}.stat-sub{color:var(--fg-3);margin-top:5px;font-size:11.5px}.panel{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.panel-head{border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.panel-title{color:var(--fg);font-size:14px;font-weight:650}.panel-sub{color:var(--fg-3);margin-top:2px;font-size:12px}.quota-cell{align-items:baseline;gap:6px;display:flex}.quota-num{font-variant-numeric:tabular-nums;color:var(--fg);font-weight:650}.quota-reset{color:var(--warn);font-size:11px}.quota-unknown{color:var(--fg-faint)}.v-tip{z-index:1000;pointer-events:none;color:#f4f2ee;opacity:0;background:#1c1a17f0;border-radius:8px;max-width:240px;padding:6px 10px;font-size:12px;font-weight:500;line-height:1.5;transition:opacity .15s,transform .15s;position:fixed;transform:translateY(3px);box-shadow:0 8px 24px #1c1a1733}.v-tip.on{opacity:1;transform:none}.v-tip:after{content:"";left:var(--ax,50%);clip-path:polygon(0 0,100% 0,50% 100%);background:#1c1a17f0;width:10px;height:5px;position:absolute;bottom:-5px;transform:translate(-50%)}.v-tip.below:after{clip-path:polygon(0 100%,100% 100%,50% 0);top:-5px;bottom:auto}
