2026-07-11 02:26:23 +08:00

750 lines
14 KiB
CSS

.root {
display: flex;
height: calc(100vh - var(--header-height) - var(--space-8) - var(--space-4));
height: calc(100dvh - var(--header-height) - var(--space-8) - var(--space-4));
min-height: 0;
flex-direction: column;
}
.contentPanel {
display: flex;
flex: 1;
flex-direction: column;
min-height: 0;
overflow: hidden;
border: 1px solid var(--border);
border-radius: var(--radius-card);
background: var(--bg-card);
}
.contentPanel :global(.data-state),
.contentPanel :global(.table-frame) {
flex: 1;
min-height: 0;
border: 0;
border-radius: 0;
background: transparent;
}
.contentPanel :global(.table-scroll) {
overflow: auto;
}
.prettyContentPanel {
gap: 0;
}
.prettyTabsBar {
display: flex;
min-height: 48px;
align-items: center;
flex: 0 0 auto;
padding: 0 var(--space-4);
border-bottom: 1px solid var(--border);
background: var(--bg-card);
}
.prettyTabsBar :global(.MuiTabs-indicator) {
height: 3px;
border-radius: 999px 999px 0 0;
background: var(--primary);
}
.prettyTab.prettyTab {
min-height: 48px;
color: var(--text-tertiary);
font-size: var(--admin-font-size);
font-weight: 750;
letter-spacing: 0;
text-transform: none;
}
.prettyTab.prettyTab:hover {
color: var(--text-primary);
}
.prettyTab.prettyTab:global(.Mui-selected) {
color: var(--primary);
}
.prettyWorkspace {
display: grid;
flex: 1;
min-height: 0;
grid-template-columns: minmax(380px, 0.78fr) minmax(0, 1.22fr);
}
.prettyPane {
display: flex;
min-width: 0;
min-height: 0;
flex-direction: column;
}
.prettyPoolPane {
border-right: 1px solid var(--border);
}
.prettyPane :global(.data-state) {
flex: 1;
min-height: 0;
}
.prettyPaneHeader {
display: flex;
min-height: 58px;
align-items: center;
justify-content: space-between;
gap: var(--space-3);
flex: 0 0 auto;
padding: var(--space-3) var(--space-4);
border-bottom: 1px solid var(--border);
background: var(--bg-card);
}
.prettyPaneTitle {
display: grid;
min-width: 0;
gap: 2px;
}
.prettyPaneTitle h2 {
overflow: hidden;
margin: 0;
color: var(--text-primary);
font-size: 16px;
font-weight: 750;
line-height: 1.25;
text-overflow: ellipsis;
white-space: nowrap;
}
.prettyPaneTitle span {
color: var(--text-tertiary);
font-size: 12px;
font-weight: 650;
}
.prettyFilters {
display: flex;
min-width: 0;
align-items: center;
flex-wrap: wrap;
gap: var(--space-2);
flex: 0 0 auto;
padding: var(--space-3) var(--space-4);
border-bottom: 1px solid var(--border);
background: var(--bg-subtle);
}
.compactTableFrame :global(.admin-row) {
min-height: 48px;
}
.compactTableFrame :global(.admin-row--head),
.compactTableFrame :global(.admin-cell--head) {
min-height: 38px;
}
.compactTableFrame :global(.admin-cell) {
padding-right: var(--space-3);
padding-left: var(--space-3);
}
.compactTableFrame :global(.pagination-bar) {
min-height: 42px;
padding: var(--space-2) var(--space-4);
border-top: 1px solid var(--border);
}
.toolbar {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--space-4);
flex: 0 0 auto;
padding: var(--space-4) var(--space-5);
border-bottom: 1px solid var(--border);
}
.toolbarLeft {
display: flex;
min-width: 0;
flex: 1;
align-items: center;
flex-wrap: wrap;
gap: var(--space-3);
}
.toolbarActions {
display: inline-flex;
flex: 0 0 auto;
align-items: center;
gap: var(--space-2);
}
.selectedMeta {
color: var(--text-secondary);
font-size: var(--admin-font-size);
font-weight: 650;
}
.timeFilter {
flex: 0 1 280px;
min-width: 220px;
}
.selectColumn {
display: flex;
align-items: center;
justify-content: center;
overflow: visible;
padding-right: var(--space-2) !important;
padding-left: var(--space-2) !important;
}
.selectColumn :global(.admin-cell__head-content) {
justify-content: center;
}
.sortHeader {
display: inline-flex;
max-width: 100%;
min-width: 0;
align-items: center;
gap: var(--space-1);
padding: 0;
border: 0;
background: transparent;
color: inherit;
cursor: pointer;
font: inherit;
font-weight: inherit;
}
.sortHeader:hover,
.sortHeaderActive {
color: var(--text-primary);
}
.sortHeader span {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.sortIcon {
flex: 0 0 auto;
color: var(--text-tertiary);
font-size: 18px;
}
.sortHeaderActive .sortIcon {
color: var(--primary);
}
.coinButton {
display: inline-flex;
max-width: 100%;
min-height: 28px;
align-items: center;
padding: 0;
border: 0;
background: transparent;
color: var(--text-primary);
cursor: pointer;
font: inherit;
font-weight: 700;
text-align: left;
text-decoration: underline;
text-decoration-color: transparent;
text-underline-offset: 3px;
white-space: nowrap;
}
.coinButton:hover,
.coinButton:focus-visible {
color: var(--primary);
text-decoration-color: currentColor;
}
.coinButton:focus-visible {
border-radius: var(--radius-sm);
outline: 2px solid var(--primary-border-strong);
outline-offset: 2px;
}
.coinLedgerDrawer.coinLedgerDrawer {
width: min(960px, calc(100vw - 32px));
}
.coinLedgerDrawerBody.coinLedgerDrawerBody {
display: flex;
overflow: hidden;
}
.filters {
display: flex;
min-width: 0;
flex: 1;
align-items: center;
flex-wrap: wrap;
gap: var(--space-3);
}
.search {
flex: 1 1 240px;
}
.compactControl {
flex: 0 1 150px;
}
.userIDControl {
flex: 0 1 130px;
}
.statusSelect {
flex: 0 0 150px;
}
.listBlock {
display: flex;
flex: 1;
min-height: 0;
flex-direction: column;
background: var(--bg-card);
}
.listBlock :global(.pagination-bar) {
margin: var(--space-3) var(--space-5) var(--space-4);
}
.identity {
display: flex;
min-width: 0;
align-items: center;
gap: var(--space-3);
}
.avatar {
display: inline-flex;
width: 36px;
height: 36px;
flex: 0 0 auto;
align-items: center;
justify-content: center;
overflow: hidden;
border: 1px solid var(--border);
border-radius: 50%;
background: var(--bg-card-strong);
color: var(--text-secondary);
font-weight: 700;
}
.avatar img {
width: 100%;
height: 100%;
object-fit: cover;
}
.prettyIcon {
display: inline-flex;
width: 36px;
height: 36px;
flex: 0 0 auto;
align-items: center;
justify-content: center;
border: 1px solid var(--border);
border-radius: 50%;
background: var(--primary-surface);
color: var(--primary);
}
.identityText {
min-width: 0;
}
.nameLine {
display: flex;
min-width: 0;
align-items: center;
gap: var(--space-2);
color: var(--text-primary);
font-weight: 650;
}
.name {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.gender {
display: inline-flex;
width: 18px;
height: 18px;
align-items: center;
justify-content: center;
border-radius: 50%;
font-weight: 700;
line-height: 1;
}
.genderMale {
background: rgba(37, 99, 235, 0.1);
color: #2563eb;
}
.genderFemale {
background: rgba(219, 39, 119, 0.12);
color: #db2777;
}
.genderUnknown {
background: var(--neutral-surface);
color: var(--text-tertiary);
}
.meta {
color: var(--text-tertiary);
font-size: var(--admin-font-size);
line-height: 1.3;
}
.levelPrimary {
color: var(--text-primary);
font-weight: 800;
white-space: nowrap;
}
.rolesValue {
display: -webkit-box;
overflow: hidden;
color: var(--text-primary);
font-weight: 650;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
.banCountdown {
color: var(--danger);
font-size: 12px;
font-weight: 750;
line-height: 1.3;
}
.detailHero {
display: flex;
min-width: 0;
align-items: center;
justify-content: space-between;
gap: var(--space-4);
padding-bottom: var(--space-4);
border-bottom: 1px solid var(--border);
}
.detailLoading {
padding: var(--space-2) var(--space-3);
border: 1px solid var(--primary-border);
border-radius: var(--radius-sm);
background: var(--primary-surface);
color: var(--primary);
font-size: 12px;
font-weight: 700;
}
.detailSection {
display: grid;
gap: var(--space-3);
padding: var(--space-4);
border: 1px solid var(--border);
border-radius: var(--radius-card);
background: var(--bg-card-strong);
}
.detailSectionTitle {
margin: 0;
color: var(--text-primary);
font-size: var(--admin-font-size);
font-weight: 800;
}
.detailGrid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: var(--space-3);
}
.detailItem {
display: grid;
min-width: 0;
gap: 4px;
}
.detailLabel {
color: var(--text-tertiary);
font-size: 12px;
}
.detailValue {
min-width: 0;
overflow-wrap: anywhere;
color: var(--text-primary);
font-size: var(--admin-font-size);
font-weight: 650;
}
.vipBadge,
.vipBadgeMuted {
display: inline-flex;
width: fit-content;
align-items: center;
justify-content: center;
padding: 3px 8px;
border-radius: var(--radius-sm);
font-size: 12px;
font-weight: 800;
line-height: 1.2;
}
.vipBadge {
border: 1px solid color-mix(in srgb, #f2b84b 55%, var(--border));
background: #fff7df;
color: #8a5a00;
}
.vipBadgeMuted {
border: 1px solid var(--border);
background: var(--neutral-surface);
color: var(--text-tertiary);
}
.emptyInline {
display: flex;
min-height: 40px;
align-items: center;
color: var(--text-tertiary);
font-size: var(--admin-font-size);
font-weight: 650;
}
.assetList {
display: grid;
gap: var(--space-2);
}
.assetRow {
display: flex;
min-width: 0;
align-items: center;
justify-content: space-between;
gap: var(--space-3);
padding: var(--space-3);
border: 1px solid var(--border);
border-radius: var(--radius-sm);
background: var(--bg-card);
}
.assetName {
color: var(--text-primary);
font-size: var(--admin-font-size);
font-weight: 800;
}
.assetMeta,
.resourceMeta {
color: var(--text-tertiary);
font-size: 12px;
line-height: 1.35;
}
.assetAmount {
color: var(--text-primary);
font-size: var(--admin-font-size);
font-weight: 800;
text-align: right;
}
.resourceList {
display: grid;
gap: var(--space-2);
padding: 0;
margin: 0;
list-style: none;
}
.resourceItem {
display: grid;
grid-template-columns: 44px minmax(0, 1fr);
gap: var(--space-3);
align-items: center;
min-width: 0;
padding: var(--space-3);
border: 1px solid var(--border);
border-radius: var(--radius-sm);
background: var(--bg-card);
}
.resourceThumb,
.resourceThumbFallback {
width: 44px;
height: 44px;
border: 1px solid var(--border);
border-radius: var(--radius-sm);
background: var(--neutral-surface);
}
.resourceThumb {
display: block;
object-fit: cover;
}
.resourceThumbFallback {
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--text-tertiary);
font-size: 16px;
font-weight: 800;
}
.resourceBody {
display: grid;
min-width: 0;
gap: 3px;
}
.resourceTitle {
display: flex;
min-width: 0;
align-items: center;
gap: var(--space-2);
color: var(--text-primary);
font-size: var(--admin-font-size);
font-weight: 800;
}
.resourceTitle span:first-child {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.resourceTag {
flex: 0 0 auto;
padding: 2px 7px;
border: 1px solid var(--success-border);
border-radius: var(--radius-sm);
background: var(--success-surface);
color: var(--success);
font-size: 11px;
font-weight: 800;
line-height: 1.2;
}
.stack {
display: grid;
gap: 1px;
min-width: 0;
}
.primaryText {
color: var(--text-primary);
font-weight: 650;
}
.countryButton {
display: inline-flex;
width: fit-content;
max-width: 100%;
align-items: center;
justify-content: flex-start;
overflow: hidden;
border: 0;
background: transparent;
color: var(--primary);
cursor: pointer;
font: inherit;
font-weight: 650;
padding: 0;
text-align: left;
text-overflow: ellipsis;
white-space: nowrap;
}
.countryButton:hover {
color: var(--primary-strong);
}
.rowActions {
display: inline-flex;
align-items: center;
gap: var(--space-2);
}
.formGridTwo {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: var(--space-3);
}
.levelForm {
display: grid;
gap: var(--space-3);
}
.levelTrackForm {
display: grid;
gap: var(--space-2);
padding: var(--space-3);
border: 1px solid var(--border);
border-radius: var(--radius-sm);
background: var(--bg-subtle);
}
@media (max-width: 760px) {
.prettyTabsBar {
padding: 0 var(--space-3);
}
.prettyWorkspace {
grid-template-columns: 1fr;
}
.prettyPoolPane {
min-height: 42dvh;
border-right: 0;
border-bottom: 1px solid var(--border);
}
.prettyIDPane {
min-height: 50dvh;
}
.prettyPaneHeader,
.toolbar,
.toolbarLeft,
.toolbarActions,
.filters,
.prettyFilters {
align-items: stretch;
flex-direction: column;
}
.search,
.compactControl,
.userIDControl,
.statusSelect,
.timeFilter {
flex: 1 1 auto;
width: 100%;
}
.formGridTwo {
grid-template-columns: 1fr;
}
}