:root{--page-bg: #eef1f5;--paper: #ffffff;--ink-1: #0f172a;--ink-2: #334155;--ink-3: #64748b;--line: #dbe2ea;--accent: #1d4ed8;--shadow-sm: 0 6px 20px rgba(15, 23, 42, .06);--shadow-md: 0 14px 30px rgba(15, 23, 42, .08);--workspace-max-width: 1480px}*{box-sizing:border-box}body{margin:0;font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,sans-serif;color:var(--ink-1);background:var(--page-bg)}.boot-stage{min-height:100vh;display:grid;place-items:center}.studio-shell{min-height:100vh;background:var(--page-bg);overflow-x:hidden}.studio-sider{background:#f8fafc!important;border-right:1px solid #dbe2ea;position:fixed!important;top:0;left:0;bottom:0;height:100vh;z-index:30;overflow:hidden}.studio-nav{height:100%;display:flex;flex-direction:column;padding:20px 14px 14px;color:#334155;background:#f8fafc}.studio-brand{display:flex;align-items:center;gap:12px;padding:8px;border:1px solid #dbe2ea;border-radius:14px;background:#fff}.studio-brand-mark{width:40px;height:40px;border-radius:10px;background:#1d4ed8;color:#fff;display:grid;place-items:center;font-weight:700;letter-spacing:.5px}.studio-brand-title{color:#0f172a;font-weight:600;font-size:14px}.studio-brand-sub{color:#64748b;font-size:12px;margin-top:2px}.studio-nav-list{margin-top:16px;display:grid;gap:8px}.studio-nav-item{border:1px solid transparent;border-radius:12px;background:transparent;color:#334155;padding:10px 12px;text-align:left;display:flex;gap:10px;align-items:flex-start;cursor:pointer;transition:.16s ease}.studio-nav-item:hover{border-color:#dbe2ea;background:#fff}.studio-nav-item.is-active{border-color:#93c5fd;background:#eff6ff;color:#1e3a8a}.studio-nav-icon{width:26px;height:26px;display:grid;place-items:center;border-radius:8px;background:#e2e8f0;margin-top:1px}.studio-nav-item.is-active .studio-nav-icon{background:#dbeafe}.studio-nav-copy{display:grid;gap:2px}.studio-nav-label{font-weight:600;letter-spacing:.2px}.studio-nav-hint{font-size:12px;color:#64748b}.studio-nav-footer{margin-top:auto;border:1px solid #dbe2ea;border-radius:12px;padding:12px;display:grid;gap:4px;font-size:12px;color:#64748b;background:#fff}.studio-workspace{min-height:100vh;margin-left:292px}.studio-header{height:auto;line-height:initial;padding:16px 22px 10px;background:var(--page-bg)!important}.studio-header-inner{width:min(var(--workspace-max-width),100%);margin:0 auto;border:1px solid var(--line);background:var(--paper);border-radius:18px;box-shadow:var(--shadow-sm);padding:14px 16px;display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap}.studio-kicker{margin:0;color:var(--ink-3);letter-spacing:1.4px;font-size:11px;text-transform:uppercase}.studio-heading{margin:2px 0 0;font-size:24px;line-height:1.1;letter-spacing:.5px}.studio-user-badge{border:1px solid var(--line);background:#f8fafc;border-radius:999px;padding:8px 12px;color:var(--ink-2)}.studio-content{padding:6px 22px 22px}.studio-content-inner{width:min(var(--workspace-max-width),100%);margin:0 auto;min-width:0}.page-stack{display:grid;gap:16px}.page-stack>*{min-width:0}.surface-card{border:1px solid var(--line)!important;box-shadow:var(--shadow-sm);border-radius:18px!important;max-width:100%}.surface-card.alt{background:#fbfcfe}.section-heading{margin:0;font-size:20px;letter-spacing:.4px}.section-subtitle{margin-top:6px;color:var(--ink-3)}.stats-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.metric-tile{border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:inset 0 0 0 1px #fffc;padding:14px;min-height:102px;display:grid;align-content:space-between}.metric-label{font-size:12px;color:var(--ink-3);letter-spacing:.3px}.metric-value{font-size:30px;font-weight:700;line-height:1.05;color:var(--ink-1)}.failure-label-trigger{text-decoration:underline dotted;text-underline-offset:2px;cursor:help}.failure-breakdown-tooltip .ant-tooltip-inner{border:1px solid #cad5e2;background:linear-gradient(180deg,#f8fbff,#edf3fa)!important;color:#0f172a!important;box-shadow:0 10px 28px #0f172a26;box-sizing:border-box;overflow:hidden}.failure-tooltip{width:100%;min-width:0;max-width:100%}.failure-tooltip-header{display:flex;justify-content:space-between;gap:12px;align-items:baseline;border-bottom:1px dashed #c8d6e5;padding-bottom:7px;margin-bottom:8px}.failure-tooltip-title{font-size:12px;color:#334155;font-weight:600}.failure-tooltip-total{font-size:12px;color:#0f172a;font-weight:700}.failure-tooltip-list{display:grid;gap:6px}.failure-tooltip-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(88px,auto);gap:12px;align-items:center;background:#ffffffb8;border:1px solid #d6e0ec;border-radius:8px;padding:5px 8px;width:100%;box-sizing:border-box;overflow:hidden}.failure-tooltip-type{color:#1e293b;font-size:12px;line-height:1.35;min-width:0;white-space:normal;word-break:break-word}.failure-tooltip-value{color:#0f172a;font-size:12px;font-weight:700;text-align:right;justify-self:end;max-width:100%;white-space:normal;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.failure-tooltip-empty{color:#334155;font-size:12px;line-height:1.45}.info-list{display:grid;gap:10px}.server-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.info-item{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fafcff;color:var(--ink-2);line-height:1.45;word-break:break-word}.perf-pane{display:grid;gap:14px}.perf-meta{font-size:13px;color:var(--ink-3)}.perf-metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.perf-metric{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fbfdff}.perf-metric-label{font-size:12px;color:var(--ink-3)}.perf-metric-value{margin-top:4px;font-size:18px;font-weight:700;color:var(--ink-1)}.perf-block{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff}.perf-block-title{margin-bottom:10px;color:var(--ink-2);font-weight:600}.perf-list{display:grid;gap:10px}.perf-list-item{display:grid;gap:6px}.perf-list-top{display:flex;justify-content:space-between;gap:8px;align-items:center}.perf-list-name{font-size:13px;color:var(--ink-2)}.perf-list-value{font-size:12px;color:var(--ink-3)}.perf-bar-track{height:8px;border-radius:999px;background:#e2e8f0;overflow:hidden}.perf-bar-fill{display:block;height:100%;border-radius:999px;background:#1d4ed8}.perf-bar-fill.stage{background:#0f766e}.code-card{margin:0;border:1px solid var(--line);border-radius:12px;background:#f8fafc;padding:12px;max-height:300px;overflow:auto;color:var(--ink-2)}.login-stage{min-height:100vh;display:flex;justify-content:center;align-items:center;padding:28px}.login-panel,.login-card{border:1px solid var(--line)!important;border-radius:20px!important;box-shadow:var(--shadow-md)}.login-card{width:min(520px,100%)}.login-panel{background:#0f172a;color:#e2e8f0;padding:28px}.login-tag{display:inline-block;padding:6px 12px;border-radius:999px;border:1px solid #334155;color:#93c5fd;font-size:12px;letter-spacing:.4px}.login-panel h2{margin:16px 0 8px;font-size:34px;line-height:1.1;color:#f8fafc}.login-panel p{margin:0;color:#94a3b8;line-height:1.6}.login-points{margin-top:24px;display:grid;gap:10px}.login-point{border:1px solid #334155;border-radius:12px;padding:10px 12px;background:#111c30}.login-title{margin:0;letter-spacing:.5px}.login-subtitle{color:var(--ink-3)}.table-card .ant-table-wrapper{border:1px solid var(--line);border-radius:14px;overflow-x:auto;overflow-y:hidden;background:#fff;min-width:0}.table-card .ant-table-pagination{flex-wrap:wrap;row-gap:8px}.table-card .ant-pagination{flex-wrap:wrap}.table-card .ant-pagination-options{margin-inline-start:0}.toolbar-line{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.banned-list-toolbar{justify-content:space-between}.unban-action-btn.ant-btn{border-radius:999px;border-color:#fecaca;color:#b91c1c;background:linear-gradient(180deg,#fff5f5,#ffe7e7);font-weight:600;box-shadow:0 2px 8px #b91c1c1a}.unban-action-btn.ant-btn:hover,.unban-action-btn.ant-btn:focus{border-color:#fca5a5;color:#991b1b;background:linear-gradient(180deg,#ffeaea,#ffd7d7)}.bulk-unban-btn.ant-btn{border-radius:10px;border:1px solid #ef4444;background:linear-gradient(180deg,#ef4444,#dc2626);color:#fff;font-weight:600;box-shadow:0 6px 16px #dc262638}.bulk-unban-btn.ant-btn:hover,.bulk-unban-btn.ant-btn:focus{border-color:#dc2626;background:linear-gradient(180deg,#dc2626,#b91c1c);color:#fff}.bulk-unban-btn.ant-btn[disabled]{box-shadow:none}.users-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.user-summary-card{border:1px solid #d8e1ec;border-radius:14px;padding:11px 12px;background:linear-gradient(180deg,#fff,#f4f8fd)}.user-summary-label{display:flex;align-items:center;gap:6px;color:#5b6b82;font-size:12px}.user-summary-value{margin-top:8px;color:#0f172a;font-size:24px;font-weight:700;line-height:1}.users-create-form{margin-top:14px}.users-create-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}.users-form-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.user-create-primary-btn.ant-btn{border:0;border-radius:10px;background:linear-gradient(135deg,#0f766e,#0f9f8f);box-shadow:0 8px 20px #0f766e47}.user-create-primary-btn.ant-btn:hover,.user-create-primary-btn.ant-btn:focus{background:linear-gradient(135deg,#0f6e67,#0f8b7e)}.user-refresh-btn.ant-btn{border-radius:10px}.user-table-toolbar{justify-content:space-between}.user-name-chip{display:inline-flex;align-items:center;border:1px solid #d9e2ef;border-radius:999px;background:#f8fbff;color:#1e293b;padding:3px 10px;line-height:1.2;font-weight:600}.user-delete-btn.ant-btn{border-radius:999px;border-color:#fecaca;color:#b91c1c;background:#fff5f5;font-weight:600}.user-delete-btn.ant-btn:hover,.user-delete-btn.ant-btn:focus{border-color:#fca5a5;color:#991b1b;background:#ffe8e8}.users-table .ant-table-thead>tr>th{background:#f8fafd!important;color:#334155;font-weight:600}.users-table .ant-table-tbody>tr:nth-child(2n)>td{background:#fcfdff}.records-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.records-summary-card{border:1px solid #d8e2ef;border-radius:14px;padding:11px 12px;background:linear-gradient(180deg,#fff,#f3f7fc)}.records-summary-card.share-tone{background:linear-gradient(180deg,#fff,#f1f8f7);border-color:#d4e8e4}.records-summary-card.audit-tone{background:linear-gradient(180deg,#fff,#f6f4fb);border-color:#e0d9f2}.records-summary-label{display:flex;align-items:center;gap:6px;color:#5b6b82;font-size:12px}.records-summary-value{margin-top:8px;color:#0f172a;font-size:24px;font-weight:700;line-height:1}.records-summary-text{margin-top:8px;color:#1f2d40;font-size:16px;font-weight:600;line-height:1.2}.records-toolbar-shell{border:1px solid #d9e3f0;border-radius:14px;background:linear-gradient(180deg,#fafcff,#f1f6fd);padding:12px;margin-top:14px;margin-bottom:12px}.records-toolbar-line{justify-content:space-between}.records-toolbar-meta{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}.records-filter-select{width:190px}.records-filter-input{width:240px}.records-filter-date{width:152px}.records-clear-select{width:150px}.records-query-btn.ant-btn{border:0;border-radius:10px;background:linear-gradient(135deg,#1d4ed8,#2563eb);box-shadow:0 8px 18px #2563eb38}.records-query-btn.ant-btn:hover,.records-query-btn.ant-btn:focus{background:linear-gradient(135deg,#1d46c6,#1f56cf)}.records-refresh-btn.ant-btn{border-radius:10px}.records-clear-shell{border:1px solid #e2e8f0;border-radius:12px;background:#fff;padding:10px 12px}.records-clear-tip.ant-tag{border-radius:999px}.records-clear-btn.ant-btn{border-radius:10px;font-weight:600}.records-table .ant-table-thead>tr>th{background:#f8fafd!important;color:#334155;font-weight:600}.records-table .ant-table-tbody>tr:nth-child(2n)>td{background:#fcfdff}.audit-table .ant-table-tbody>tr:hover>td{background:#f6f4fb!important}.banned-inline-form .banned-form-ip{min-width:220px}.banned-inline-form .banned-form-reason{min-width:280px}.studio-nav.is-compact{padding-top:8px}@media(max-width:1400px){.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1080px){.studio-sider{position:static!important;top:auto;left:auto;bottom:auto;height:auto}.studio-workspace,.studio-workspace.is-mobile{margin-left:0}.studio-header{padding:12px 14px 8px}.studio-content{padding:6px 14px 14px}.stats-grid,.perf-metric-grid,.server-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.banned-list-toolbar{justify-content:flex-start}.users-summary-grid,.records-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.records-toolbar-line{justify-content:flex-start}.records-page .records-toolbar-line>*,.records-page .records-clear-shell>*{min-width:0;flex:1 1 100%}.records-page .records-toolbar-line .ant-select,.records-page .records-toolbar-line .ant-picker,.records-page .records-toolbar-line .ant-input,.records-page .records-toolbar-line .ant-input-affix-wrapper,.records-page .records-clear-shell .ant-select,.records-page .records-clear-shell .ant-picker{width:100%!important;max-width:100%}.records-page .records-toolbar-line .ant-space{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px}.records-page .records-toolbar-line .ant-space .ant-space-item,.records-page .records-toolbar-line .ant-space .ant-btn{width:100%}.records-page .records-toolbar-meta .ant-tag{max-width:100%;white-space:normal;word-break:break-word}.records-page .records-clear-shell .records-clear-tip.ant-tag{width:100%;margin-inline-end:0}.records-page .records-filter-select,.records-page .records-filter-input,.records-page .records-filter-date,.records-page .records-clear-select{width:100%}.users-page .user-table-toolbar,.banned-page .banned-list-toolbar{justify-content:flex-start}.users-page .ant-form-inline .ant-form-item,.banned-page .ant-form-inline .ant-form-item{min-width:0!important;width:100%;margin-inline-end:0}.users-page .ant-form-inline .ant-form-item .ant-input,.users-page .ant-form-inline .ant-form-item .ant-input-affix-wrapper,.users-page .ant-form-inline .ant-form-item .ant-select,.users-page .ant-form-inline .ant-form-item .ant-btn,.banned-page .ant-form-inline .ant-form-item .ant-input,.banned-page .ant-form-inline .ant-form-item .ant-input-affix-wrapper,.banned-page .ant-form-inline .ant-form-item .ant-select,.banned-page .ant-form-inline .ant-form-item .ant-btn{width:100%!important}.banned-page .banned-list-toolbar .ant-space{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px}.banned-page .banned-list-toolbar .ant-space .ant-space-item,.banned-page .banned-list-toolbar .ant-space .ant-btn{width:100%}}@media(max-width:900px){.login-stage{padding:20px}}@media(max-width:640px){.stats-grid,.perf-metric-grid{grid-template-columns:1fr}.studio-heading{font-size:20px}.studio-header-inner{padding:12px}.users-summary-grid,.users-create-form-grid{grid-template-columns:1fr}.user-table-toolbar{justify-content:flex-start}.records-summary-grid{grid-template-columns:1fr}.records-toolbar-shell{padding:10px}.table-card .ant-table-pagination{justify-content:flex-start}.table-card .ant-pagination-total-text{flex:1 1 100%;width:100%;margin-inline-end:0}.table-card .ant-pagination-options{flex:1 1 100%}.toolbar-line{align-items:stretch}.records-toolbar-line>*,.records-clear-shell>*{min-width:0;flex:1 1 100%}.records-toolbar-line .ant-select,.records-toolbar-line .ant-picker,.records-toolbar-line .ant-input,.records-toolbar-line .ant-input-affix-wrapper,.records-clear-shell .ant-select,.records-clear-shell .ant-picker{width:100%!important;max-width:100%}.records-toolbar-line .ant-space{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px}.records-toolbar-line .ant-space .ant-space-item,.records-toolbar-line .ant-space .ant-btn{width:100%}.records-toolbar-meta .ant-tag{max-width:100%;white-space:normal;word-break:break-word}.records-clear-shell .records-clear-tip.ant-tag{width:100%;margin-inline-end:0}.page-stack .ant-form-inline .ant-form-item{min-width:0!important;width:100%;margin-inline-end:0}.page-stack .ant-form-inline .ant-form-item .ant-input,.page-stack .ant-form-inline .ant-form-item .ant-input-affix-wrapper,.page-stack .ant-form-inline .ant-form-item .ant-select,.page-stack .ant-form-inline .ant-form-item .ant-btn{width:100%!important}.studio-user-badge{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.studio-header-inner .ant-space{width:100%;justify-content:space-between}.records-page .records-toolbar-line .ant-space,.banned-page .banned-list-toolbar .ant-space{grid-template-columns:1fr}}
