- 10 standard PT ranks: Peasant(0) \u2192 Nexus Master(9)
- Dropdown shows \u201c3. Elite User\u201d format with level and name
- Card header and template dialog also show level numbers
- Default preset: Elite User for perm, Power User for seal
- Opposite of kill rules: protects users instead of deleting them
- permRank: users at/above this rank permanently immune from all cleanups
- sealExemptRank: users at/above this rank won't be killed when sealed
- Green left border + green '\u4fdd\u53f7' label to visually distinguish from kill rules
- Template: Elite User for perm, Power User for seal exemption
- LOGIN type duplicated with KILL (both use days_since_last_login)
- KILL label: \u5c01\u53f7\u89c4\u5219 \u2192 \u6d3b\u8dc3\u5ea6 (action is always \u5c01\u53f7/\u5220\u9664\u8d26\u53f7, type now describes monitoring category)
- Replace editable name/metric/condition/unit with plain text in card header
- Card header shows: [type] [metric label] [condition label] [threshold][unit] \u2192 \u5c01\u53f7
- Type change auto-updates metric/condition/unit via typeDefaults mapping
- Card body only shows: threshold, applicable, description
- Fix edit title to show site name instead of raw siteType
- Remove unused styles and functions
- WARN is auto-detected by RiskCheckEngine (riskPct > 80), not configured in rules
- Each rule simply defines: type + metric + condition + threshold + unit -> 封号
- Card always shows red left border and red '封号' arrow, no action selector
- Presets reduced to 7 kill-only templates, no WARN presets
- Replace complex type system (DEMOTE/TASK) with simple KILL/WARN action model
- Each rule now has: type (monitoring category) + action (KILL=封号 / WARN=告警)
- Type options: KILL/TRAFFIC/LOGIN/HD/RATIO (no DEMOTE/TASK)
- Card left border color by action: red=KILL, orange=WARN
- 12 preset templates with alert-based rules (60-day no-traffic warn, 140-day login warn, HnR warn, ratio warn)
- Remove requirements sub-table and downloadThreshold fields
- Left pane: fixed 400px CodeEditor for JSON editing
- Right pane: card-based visual editor with natural language, drag-and-drop, presets
- Remove JSON toggle button, always show both panes
- SitePagesController: add PUT /admin/site-pages/{siteId}/upload for uploading normal site pages to cloud storage
- SitePages.vue: show upload button for both default templates and normal sites