:root{--bg: #f4f6fa;--card: #ffffff;--line: #e6e9f0;--line-soft: #eef1f6;--ink: #101828;--muted: #667085;--faint: #98a2b3;--accent: #3b6ef6;--accent-soft: #eef3ff;--ok: #16a34a;--warn: #d97706;--danger: #dc2626;--mono: ui-monospace, SFMono-Regular, "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#d3d9e4;border:2px solid var(--bg);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#bfc7d6}.app-shell{min-height:100vh}.app-sider{position:sticky!important;top:0;height:100vh;overflow:auto;border-right:1px solid rgba(255,255,255,.06);background-image:linear-gradient(180deg,#0f1930,#0c1424)!important}.brand{height:60px;display:flex;align-items:center;gap:10px;padding:0 18px;border-bottom:1px solid rgba(255,255,255,.07)}.brand.is-collapsed{justify-content:center;padding:0}.brand-mark{width:32px;height:32px;flex:none;display:grid;place-items:center;border-radius:9px;font-size:17px;color:#fff;background:linear-gradient(135deg,#3b6ef6,#6f9bff);box-shadow:0 6px 14px #3b6ef659}.brand-text{display:flex;flex-direction:column;line-height:1.15;min-width:0}.brand-text strong{font-size:14.5px;color:#fff;letter-spacing:.01em}.brand-text small{font-size:11px;color:#ffffff80;letter-spacing:.08em}.app-nav{padding:12px 0;border-inline-end:none!important}.app-nav .ant-menu-item{margin-block:2px}.sider-foot{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 20px;font-size:11.5px;color:#ffffff6b;border-top:1px solid rgba(255,255,255,.06)}.sider-foot-muted{color:#ffffff47}.app-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding-inline:16px!important}.app-header-left,.app-header-right{display:flex;align-items:center;gap:10px;min-width:0}.app-header-title{font-size:15px;font-weight:600;letter-spacing:-.01em;white-space:nowrap}.collapse-btn{color:var(--muted)}.env-tag{max-width:340px;margin:0;padding:2px 10px;border-radius:999px;font-size:12px;line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)!important;background:#f2f4f7!important}.user-chip{display:flex;align-items:center;gap:9px;padding:4px 10px 4px 4px;border:1px solid transparent;border-radius:999px;background:transparent;cursor:pointer;transition:background .15s ease,border-color .15s ease}.user-chip:hover{background:#f4f6fa;border-color:var(--line)}.user-avatar{background:linear-gradient(135deg,#3b6ef6,#7aa2ff)!important;font-size:13px;font-weight:600}.user-chip-text{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2}.user-chip-text strong{font-size:13px;font-weight:550;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-chip-text small{font-size:11px;color:var(--faint)}.app-content{padding:24px 28px 56px}.page{max-width:1440px;margin:0 auto}.boot,.page-loading{min-height:60vh;display:grid;place-items:center;align-content:center;gap:12px;color:var(--muted);font-size:14px}.boot{min-height:100vh}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:18px}.page-head-text{min-width:0}.page-title{margin:0;font-size:22px;font-weight:650;letter-spacing:-.015em;display:flex;align-items:center;gap:8px}.page-desc{margin:6px 0 0;max-width:78ch;font-size:13px;line-height:1.65;color:var(--muted)}.page-head-extra{display:flex;align-items:center;gap:10px;flex:none;flex-wrap:wrap;justify-content:flex-end}.page-head-note{font-size:12px;color:var(--faint)}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:16px}.stat-card{position:relative;overflow:hidden;padding:16px 18px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 1px 2px #1018280a}.stat-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:transparent}.stat-card.is-accent:before{background:var(--accent)}.stat-card.is-warn:before{background:var(--warn)}.stat-card.is-danger:before{background:var(--danger)}.stat-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.stat-card-label{font-size:12.5px;color:var(--muted)}.stat-card-icon{color:var(--faint);font-size:15px}.stat-card-value{margin-top:6px;font-size:26px;font-weight:650;letter-spacing:-.015em;font-variant-numeric:tabular-nums;line-height:1.2}.stat-card-hint{margin-top:5px;font-size:12px;color:var(--faint);line-height:1.5}.panel{border:1px solid var(--line);border-radius:14px;box-shadow:0 1px 2px #1018280a}.ant-card.panel+.ant-card.panel{margin-top:16px}.panel .ant-card-head{border-bottom:1px solid var(--line-soft);padding-inline:18px}.panel .ant-card-head-title{font-weight:600;font-size:15px}.panel .ant-card-body{padding:18px}.panel-extra{font-size:12px;color:var(--faint);font-weight:400}.grid-2{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px}.block-gap{margin-bottom:16px}.section-gap{margin-top:16px}.alert-line{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.trend-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.trend-head-label{font-size:12px;color:var(--faint);letter-spacing:.02em}.trend-head-value{font-size:22px;font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:-.015em}.trend-plot{position:relative}.trend-grid{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.trend-grid span{position:absolute;left:0;right:0;height:1px;background:var(--line-soft)}.trend-bars{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;gap:2px}.trend-slot{flex:1;height:100%;min-width:0;display:flex;align-items:flex-end;justify-content:center;padding:0 1px;border:0;background:none;cursor:default}.trend-slot:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.trend-bar{width:100%;max-width:26px;border-radius:4px 4px 0 0;background:linear-gradient(180deg,#3b6ef66b,#3b6ef638);transition:height .18s ease,background .15s ease}.trend-slot.on .trend-bar{background:linear-gradient(180deg,#5b8cff,#3b6ef6)}.trend-axis{display:flex;gap:2px;margin-top:7px}.trend-axis span{flex:1;min-width:0;text-align:center;font-size:11px;color:var(--faint);white-space:nowrap}.trend-empty{padding:48px 0;text-align:center;color:var(--faint);font-size:13px}.panel-table .ant-table{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--card)}.panel-table .ant-table-thead>tr>th{font-size:12.5px;font-weight:600;color:#475467}.panel-table .ant-table-tbody>tr.row-clickable{cursor:pointer}.cell-main{display:flex;flex-direction:column;gap:2px;min-width:0}.cell-main.align-right{align-items:flex-end;text-align:right}.cell-title{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-weight:550}.cell-sub{font-size:12px;color:var(--faint);line-height:1.4}.inline-tag{margin-inline-start:2px}.mono{font-family:var(--mono);font-size:12.5px;font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.ellipsis{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}.ok-text{color:var(--ok);font-weight:550}.warn-text{color:var(--warn)}.danger-text{color:var(--danger)}.kv-desc .ant-descriptions-item-label{color:var(--muted);width:132px;flex:none}.drawer-body{display:flex;flex-direction:column;align-items:stretch}.drawer-body>.ant-btn{align-self:flex-start}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;margin-bottom:14px}.field-row{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.switch-row{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);grid-column:1 / -1}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.form-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.hint{margin:0;font-size:12.5px;line-height:1.7;color:var(--faint)}.drawer-body .hint{margin-top:8px}.switch-list{display:flex;flex-direction:column}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px 0;border-bottom:1px solid var(--line-soft)}.switch-row:last-child{border-bottom:none;padding-bottom:0}.switch-row:first-child{padding-top:0}.switch-row strong{font-size:14px;font-weight:550;color:var(--ink)}.switch-row .hint{margin-top:4px}.pricing-block{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.pricing-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.pricing-head h3{margin:0 0 4px;font-size:15px;font-weight:600}.empty-hint{padding:24px;text-align:center;color:var(--faint);font-size:13px;border:1px dashed var(--line);border-radius:10px}.model-preview{margin-top:4px;font-size:12px;line-height:1.7;color:var(--muted);word-break:break-word}.json-block{margin:0;padding:12px 14px;max-height:320px;overflow:auto;border-radius:10px;background:#0f172a;color:#d7e3ff;font-family:var(--mono);font-size:12px;line-height:1.65}.feedback-filters{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.feedback-filters .page-head-note{margin-left:auto}.feedback-excerpt{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap;word-break:break-word;font-weight:400;line-height:1.55;color:var(--ink)}.feedback-detail .ant-descriptions-item-content{word-break:break-word}.feedback-body{max-height:300px;overflow:auto;padding:14px 16px;border:1px solid var(--line-soft);border-radius:10px;background:#f8fafc;color:var(--ink);font-size:13.5px;line-height:1.75;white-space:pre-wrap;word-break:break-word}.feedback-shots{display:flex;flex-wrap:wrap;gap:10px}.feedback-shot{position:relative;display:block;width:136px;height:100px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#0f172a}.feedback-shot img{display:block;width:100%;height:100%;object-fit:cover}.feedback-shot-name{position:absolute;left:0;right:0;bottom:0;padding:3px 7px;overflow:hidden;color:#fff;background:#0f172ab8;font-size:11px;line-height:1.4;white-space:nowrap;text-overflow:ellipsis}.feedback-shot.is-loading{background:var(--line-soft);animation:feedback-shot-pulse 1.4s ease-in-out infinite}.feedback-shot.is-failed{display:flex;align-items:center;justify-content:center;color:var(--faint);background:var(--bg);font-size:12px}@keyframes feedback-shot-pulse{0%,to{opacity:.6}50%{opacity:1}}.feedback-handler{display:inline-flex;align-items:center;min-height:32px}.feedback-drawer-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(380px,46%) 1fr;background:var(--bg)}.login-aside{position:relative;overflow:hidden;padding:44px clamp(32px,4.5vw,72px) 36px;display:flex;flex-direction:column;justify-content:space-between;gap:40px;color:#fff;background:radial-gradient(900px 520px at 8% 6%,rgba(59,110,246,.38),transparent 62%),radial-gradient(700px 420px at 92% 88%,rgba(111,155,255,.18),transparent 60%),linear-gradient(165deg,#0c1424,#101c35 58%,#0a1220)}.login-aside:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(70% 60% at 30% 20%,#000 0%,transparent 100%);mask-image:radial-gradient(70% 60% at 30% 20%,#000 0%,transparent 100%);pointer-events:none}.login-brand{position:relative;display:flex;align-items:center;gap:11px;font-size:14px;font-weight:550;letter-spacing:.01em}.login-brand-mark{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;font-size:18px;background:#ffffff14;border:1px solid rgba(255,255,255,.14)}.login-hero{position:relative}.login-hero h1{margin:0 0 16px;font-size:clamp(28px,3vw,40px);font-weight:620;line-height:1.22;letter-spacing:-.02em}.login-hero p{margin:0 0 26px;max-width:46ch;font-size:14.5px;line-height:1.8;color:#ffffffad}.login-points{list-style:none;margin:0;padding:0;display:grid;gap:12px}.login-points li{display:flex;align-items:flex-start;gap:10px;font-size:13.5px;line-height:1.6;color:#ffffffd1}.login-points .anticon{margin-top:3px;color:#7ea5ff;font-size:13px}.login-foot{position:relative;font-size:12px;color:#ffffff73;letter-spacing:.01em}.login-main{display:grid;place-items:center;padding:48px 24px}.login-card{width:min(424px,100%);padding:34px 32px 26px;background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:0 24px 60px #10182817}.login-card h2{margin:0 0 6px;font-size:24px;font-weight:650;letter-spacing:-.015em}.login-sub{margin:0 0 22px;font-size:13px;color:var(--muted)}.login-alert,.login-card .ant-form-item{margin-bottom:16px}.login-advanced{margin-top:10px}.login-advanced .ant-collapse-header{padding-inline:0!important;color:var(--faint)!important;font-size:12.5px}.login-advanced .ant-collapse-content-box{padding:4px 0 0!important}.login-advanced-label{display:inline-flex;align-items:center;gap:6px}.login-advanced-body{display:grid;gap:8px}.login-advanced-now{font-size:12px;color:var(--muted);word-break:break-all}.login-advanced-hint{font-size:12px;line-height:1.65;color:var(--faint)}@media(max-width:1180px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2{grid-template-columns:minmax(0,1fr)}.form-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:992px){.app-content{padding:20px 18px 48px}.login-page{grid-template-columns:minmax(0,1fr)}.login-aside{display:none}}@media(max-width:720px){.stat-grid,.form-grid,.field-grid{grid-template-columns:minmax(0,1fr)}.page-head{flex-direction:column;gap:12px}.page-head-extra{justify-content:flex-start}.env-tag{display:none}.app-content{padding:16px 12px 40px}}.release-filters{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.release-filters .page-head-note{margin-left:auto}.release-file-name{display:block;max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
