:root{--mono: "SF Mono", ui-monospace, Menlo, Consolas, monospace}.app-shell{display:flex;min-height:100vh}.app-sider{width:232px;transition:width .16s ease;flex-shrink:0;background:var(--nav-bg);border-right:1px solid var(--nav-line);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.app-sider.mini{width:56px}.app-sider.mini .app-nav-body{padding:8px}.app-sider.mini .app-nav-group{margin-bottom:12px}.app-sider.mini .app-nav-item{justify-content:center;padding:9px 0}.app-sider.mini .app-brand{padding:16px 0 14px;justify-content:center}.app-brand{display:flex;align-items:center;gap:11px;padding:19px 18px 17px}.app-logo{width:32px;height:32px;border-radius:6px;flex-shrink:0;background:var(--accent);color:var(--accent-on);display:grid;place-items:center}.app-brand-txt b{font-size:15.5px;color:var(--ink);letter-spacing:-.015em;font-weight:700;line-height:1.1;display:block}.app-brand-txt span{font-family:var(--mono);font-size:12px;color:var(--faint);letter-spacing:.18em;display:block;margin-top:1px}.app-nav-body{padding:8px 12px;flex:1;overflow-y:auto}.app-nav-group{margin-bottom:20px}.app-nav-group h4{margin:0 0 6px}.app-nav-head{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600;width:100%;display:flex;align-items:center;gap:6px;padding:4px 11px;border:0;background:none;cursor:pointer;transition:color .15s}.app-nav-head:hover{color:var(--ink-2)}.app-nav-head:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:5px}.app-nav-head .txt{flex:1;min-width:0;text-align:left}.app-nav-head .caret{flex:0 0 auto;font-size:9px;opacity:.45;transform:rotate(90deg);transition:transform .18s ease,opacity .15s}.app-nav-head:hover .caret{opacity:1}.app-nav-group.folded .app-nav-head .caret{transform:rotate(0)}.app-nav-head .dot{width:5px;height:5px;border-radius:50%;flex:0 0 auto;background:var(--accent)}.app-nav-items{display:grid;grid-template-rows:1fr;transition:grid-template-rows .18s ease}.app-nav-items>div{min-height:0;overflow:hidden;margin-left:-2px;padding-left:2px}.app-nav-group.folded .app-nav-items{grid-template-rows:0fr}.app-nav-group.folded{margin-bottom:6px}.app-nav-item{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:6px;color:var(--ink-2);text-decoration:none;font-size:13px;position:relative;margin-bottom:2px;font-weight:500;transition:background .15s,color .15s}.app-nav-item:hover{background:color-mix(in srgb,var(--ink) 6%,transparent);color:var(--ink)}.app-nav-item.active{background:var(--nav-active);color:var(--ink);font-weight:650}.app-nav-item.active:before{content:"";position:absolute;left:-1px;top:8px;bottom:8px;width:3px;background:var(--accent);border-radius:0 3px 3px 0}.app-nav-item.pending{color:var(--faint);cursor:default}.app-nav-item .ico{display:grid;place-items:center;flex-shrink:0;font-size:15px}.app-nav-item .lbl{flex:1;white-space:nowrap}.app-wip{font-size:12px;font-weight:600;padding:1px 7px;border-radius:99px;color:var(--lo);background:var(--lo-soft);white-space:nowrap}.app-nav-foot{padding:13px 16px;margin:8px;border-radius:8px;background:color-mix(in srgb,var(--ink) 4%,transparent);display:flex;align-items:center;gap:10px;border:1px solid var(--nav-line)}.app-nav-foot .avatar{width:32px;height:32px;border-radius:6px;flex-shrink:0;background:var(--accent);color:var(--accent-on);display:grid;place-items:center;font-size:13px;font-weight:700}.app-nav-foot .who{font-size:12.5px;color:var(--ink);line-height:1.25;font-weight:600;min-width:0}.app-nav-foot .who small{color:var(--faint);font-size:12px;font-family:var(--mono);font-weight:400;display:block;overflow:hidden;text-overflow:ellipsis}.app-main{flex:1;min-width:0;display:flex;flex-direction:column}.app-header{height:61px;flex:0 0 61px;background:color-mix(in srgb,var(--surface) 86%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:12px 26px;position:sticky;top:0;z-index:5}.app-fold{width:34px;height:34px;flex-shrink:0}.app-crumb{font-size:13px;color:var(--muted);font-weight:500;white-space:nowrap}.app-crumb i{font-style:normal;color:var(--line-2);margin:0 3px}.app-crumb b{color:var(--ink);font-weight:700;font-size:14px;letter-spacing:-.01em}.app-spacer{flex:1 1 auto}.app-content{flex:1;min-height:0;padding:14px 22px 18px;display:flex;flex-direction:column;height:calc(100vh - 61px);overflow:hidden}.app-filters{display:flex;gap:10px;align-items:center;justify-content:space-between;flex:0 0 auto;margin-bottom:12px;flex-wrap:wrap}.app-filters-l{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.app-card{flex:1 1 auto;min-height:0;background:var(--surface);border:1px solid var(--line);border-radius:8px;display:flex;flex-direction:column;overflow:hidden}.app-card .ant-spin-nested-loading,.app-card .ant-spin-container,.app-card .ant-table-wrapper,.app-card .ant-table{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.app-card .ant-table-container{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.app-card .ant-table-body{flex:1 1 auto;overflow-y:auto!important;max-height:none!important}.app-card .ant-table-pagination{flex:0 0 auto;margin:12px 16px 10px}.app-login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:var(--surface)}.app-login-art{position:relative;overflow:hidden;background:var(--nav-bg);border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;padding:44px 48px;color:var(--ink)}.app-login-art:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle at 82% 22%,var(--accent-glow),transparent 52%),radial-gradient(circle at 8% 92%,var(--accent-glow),transparent 46%);pointer-events:none}.app-login-art>*{position:relative;z-index:1}.app-login-art .mark{display:flex;align-items:center;gap:11px;font-size:15.5px;font-weight:700;letter-spacing:-.015em}.app-login-art .mark span{width:32px;height:32px;border-radius:6px;display:grid;place-items:center;background:var(--accent);color:var(--accent-on)}.app-login-art h2{margin:0;font-size:30px;font-weight:750;letter-spacing:-.03em;line-height:1.35;max-width:13em;color:var(--ink)}.app-login-art .foot{font-family:var(--mono);font-size:12px;letter-spacing:.18em;color:var(--faint)}.app-login-panel{display:grid;place-items:center;padding:32px;position:relative}.app-login-top{position:absolute;top:22px;right:26px}.app-login-form{width:100%;max-width:340px}.app-login-form .hello{font-size:13px;color:var(--muted)}.app-login-form h1{margin:4px 0 28px;font-size:25px;font-weight:750;letter-spacing:-.025em;color:var(--ink)}.app-login-form .ver{margin-top:24px;text-align:center;font-family:var(--mono);font-size:12px;color:var(--faint)}@media(max-width:900px){.app-login{grid-template-columns:1fr}.app-login-art{display:none}}.app-activate{min-height:100vh;display:grid;place-items:center;background:var(--bg);padding:24px}.app-activate-card{width:100%;max-width:440px;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--sh-lg);padding:30px 28px}.app-activate-brand{display:flex;align-items:center;gap:13px;margin-bottom:24px}.app-activate-logo{width:42px;height:42px;border-radius:6px;background:var(--accent);color:var(--accent-on);display:grid;place-items:center;flex-shrink:0}.app-activate-brand h1{margin:0;font-size:18px;font-weight:750;letter-spacing:-.02em;color:var(--ink)}.app-activate-brand p{margin:3px 0 0;font-size:12.5px;color:var(--muted)}.app-perm{border:1px solid var(--line);border-radius:6px;overflow:hidden}.app-perm-group{padding:8px 14px 6px;font-size:12px;font-weight:600;color:var(--muted);background:var(--surface-2);border-bottom:1px solid var(--line)}.app-perm-row{display:flex;align-items:center;gap:16px;padding:9px 14px;border-bottom:1px solid var(--line)}.app-perm-row:last-child{border-bottom:none}.app-perm-row .mod{font-size:13px;color:var(--ink);width:116px;flex-shrink:0}.app-perm-row .acts{display:flex;flex-wrap:wrap;gap:6px 18px}.app-chips{display:flex;flex-wrap:wrap;gap:6px;max-width:460px}.app-chip{font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--surface-3);color:var(--ink-2);border:1px solid var(--line);white-space:nowrap}.app-count{font-family:var(--mono);font-weight:700;font-size:12.5px;color:var(--ink)}.app-count small{font-size:12px;font-weight:500;color:var(--muted);margin-left:3px}.app-person{display:inline-flex;align-items:center;gap:9px;font-weight:550;color:var(--ink);white-space:nowrap}.app-person .av{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;flex-shrink:0;background:var(--accent);color:var(--accent-on)}.app-email{font-family:var(--mono);font-size:12px;color:var(--muted)}.app-link-box{background:var(--surface-2);border:1px solid var(--line);border-radius:6px;padding:12px 14px;font-family:var(--mono);font-size:12px;word-break:break-all;line-height:1.6;color:var(--ink)}.app-i18n-input{display:grid;gap:8px}.app-i18n-row{display:flex;align-items:center;gap:8px}.app-i18n-row>*{flex:1 1 auto;min-width:0}.app-i18n-row.multiline{align-items:flex-start}.app-goods-dict .app-tier-bad>td{background:#fff1f0}.app-goods-dict .ant-table-tbody>tr>td{padding-top:10px;padding-bottom:10px}.app-goods-thumb{width:44px;height:44px;border-radius:6px;object-fit:cover;display:block;background:#0000000a}.app-goods-thumb.empty{border:1px dashed rgba(0,0,0,.12)}.app-goods-sub{color:#00000073;font-size:12px}.app-image-upload{display:flex;align-items:flex-start;gap:12px}.app-image-upload .box{width:104px;height:104px;display:grid;place-items:center;gap:6px;border:1px dashed rgba(0,0,0,.15);border-radius:8px;background:#00000005;color:#00000073;font-size:12px;cursor:pointer;transition:border-color .2s;overflow:hidden}.app-image-upload .box:hover{border-color:var(--accent)}.app-image-upload .box.has-image{border-style:solid;background:none}.app-image-upload .box img{width:100%;height:100%;object-fit:cover;display:block}.app-image-upload .side{display:grid;gap:6px;justify-items:start}.app-image-upload .hint{color:#00000073;font-size:12px;line-height:1.6}.app-pool-sum{font-weight:600;font-variant-numeric:tabular-nums}.app-pool-sum.ok{color:#178a57}.app-pool-sum.bad{color:#ff4d4f}.app-pool-problems{margin:0;padding-left:18px}.app-pool-publish{margin-top:16px;padding-top:14px;border-top:1px dashed rgba(0,0,0,.12)}.app-pool-publish .hint{margin-top:6px;color:#00000073;font-size:12px}.app-pool-from{color:#0006}.app-pool-pick-taken td{opacity:.45}.app-pool-picked{display:flex;gap:8px;align-items:flex-start;margin-top:12px;padding-top:12px;border-top:1px solid var(--ant-color-border-secondary, #f0f0f0)}.app-pool-picked .label{flex:none;color:var(--ant-color-text-secondary, #666);font-size:12px;line-height:24px}.app-box-thumb{height:44px;width:auto;max-width:64px;object-fit:contain;display:block;background:#0000000a}.app-box-thumb.empty{width:56px;border:1px dashed rgba(0,0,0,.12)}.app-box-sub{color:#00000073;font-size:12px}.app-box-was{color:#00000059;font-size:12px;text-decoration:line-through}.app-box-color{width:12px;height:12px;border-radius:3px;display:inline-block;box-shadow:inset 0 0 0 1px #00000026}.app-carousel-thumb{width:56px;height:42px;border-radius:6px;object-fit:cover;display:block;background:#0000000a}.app-carousel-thumb.empty{border:1px dashed rgba(0,0,0,.12)}.app-carousel-sub{color:#00000073;font-size:12px}.app-carousel .app-carousel-invalid td{background:#ff4d4f0a}.app-carousel-dirty{color:#d48806;font-size:12px}.app-user-addr{font-size:12px}.app-user-sub{color:#00000073;font-size:12px}.app-logs code{font-size:12px}.app-log-mono{font-size:12px;word-break:break-all}.app-log-sub{color:#00000073;font-size:12px}.app-log-payload{display:grid;gap:12px}.app-log-payload .label{margin-bottom:4px;color:#00000073;font-size:12px;font-weight:600}.app-log-payload pre{margin:0;max-height:220px;overflow:auto;padding:10px 12px;border-radius:6px;background:#0000000a;font-size:12px;line-height:1.6;white-space:pre-wrap;word-break:break-all}.app-log-payload .trace,.app-chain-sub{color:#00000073;font-size:12px}.app-chain code{font-size:12px;word-break:break-all}.app-chain-rpcs{display:grid;gap:2px}.app-contract code{font-size:12px;word-break:break-all}.app-contract-label{color:#00000073;font-size:12px}.app-contract-actions{display:grid;gap:14px}.app-contract-row .head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:6px}.app-contract-row .name{font-weight:500}.app-contract-row .hint{color:#00000073;font-size:12px}.app-contract-row .body{display:flex;gap:8px}.app-contract-row .body>:first-child{flex:1;min-width:0}.app-contract-row .operator{display:flex;align-items:center;gap:8px}.app-contract-row .operator .ant-input{flex:1;min-width:0}.app-contract-row .operator .ant-switch{flex:none}.app-contract-danger{padding-top:14px;border-top:1px dashed rgba(0,0,0,.12)}.app-tx-filters{margin-bottom:12px}.app-tx-hash{word-break:break-all}.app-tx-sub{color:#00000073;font-size:12px}.app-tx-section{margin:20px 0 8px}.app-tx-event{margin-bottom:12px}.app-tx-event-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.app-tx-hint{color:#00000073;margin-bottom:8px}.app-tx-raw pre{max-height:320px;overflow:auto;background:#fafafa;padding:8px;font-size:12px}:root{--mono: "SF Mono", ui-monospace, Menlo, Consolas, monospace;--sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased}.ant-layout{background:transparent!important}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:99px;border:3px solid transparent;background-clip:padding-box}.tnum{font-variant-numeric:tabular-nums}
