Files
hfb_sys/frontend/src/features/admin/views/AdminListingReviewView.css
T

1473 lines
24 KiB
CSS

/* ========== Admin Listing Review Page Styling ========== */
.review-page {
min-height: calc(100vh - 120px);
padding-bottom: 80px;
}
.review-header {
margin-bottom: 20px;
align-items: center;
}
.refresh-stamp {
display: inline-flex;
align-items: center;
gap: 6px;
color: #64748b;
font-size: 13px;
font-weight: 500;
margin-right: 8px;
}
/* ========== Top Summary Metric Cards ========== */
.review-summary {
display: grid;
grid-template-columns: repeat(4, minmax(180px, 1fr));
gap: 16px;
margin-bottom: 20px;
}
.summary-card {
position: relative;
min-width: 0;
border: 1px solid #e2e8f0;
border-radius: 12px;
background: #ffffff;
padding: 16px 20px;
box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05);
text-align: left;
cursor: pointer;
transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
overflow: hidden;
}
.summary-card-inner {
display: flex;
align-items: center;
gap: 16px;
}
.summary-card-icon {
display: flex;
align-items: center;
justify-content: center;
width: 48px;
height: 48px;
border-radius: 12px;
font-size: 22px;
flex-shrink: 0;
transition: transform 0.25s ease;
}
.summary-card-text {
min-width: 0;
display: flex;
flex-direction: column;
}
.summary-card-text span {
color: #64748b;
font-size: 13px;
font-weight: 600;
line-height: 1.2;
}
.summary-card-text strong {
margin: 4px 0 2px;
color: #0f172a;
font-size: 26px;
font-weight: 800;
line-height: 1.1;
font-variant-numeric: tabular-nums;
}
.summary-card-text small {
color: #94a3b8;
font-size: 12px;
font-weight: 500;
}
/* Thematic colors for cards */
.summary-card--all .summary-card-icon {
background: #eff6ff;
color: #2563eb;
}
.summary-card--external .summary-card-icon {
background: #f5f3ff;
color: #7c3aed;
}
.summary-card--warning .summary-card-icon {
background: #fffbeb;
color: #d97706;
}
.summary-card--danger .summary-card-icon {
background: #fef2f2;
color: #dc2626;
}
.summary-card:hover {
transform: translateY(-2px);
box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
}
.summary-card:hover .summary-card-icon {
transform: scale(1.08);
}
/* Active Filter States */
.summary-card--all.active {
border-color: #2563eb;
background: #f0f7ff;
box-shadow:
0 0 0 1px #2563eb,
0 6px 20px rgba(37, 99, 235, 0.15);
}
.summary-card--external.active {
border-color: #7c3aed;
background: #faf5ff;
box-shadow:
0 0 0 1px #7c3aed,
0 6px 20px rgba(124, 58, 237, 0.15);
}
.summary-card--warning.active {
border-color: #d97706;
background: #fffdf5;
box-shadow:
0 0 0 1px #d97706,
0 6px 20px rgba(217, 119, 6, 0.15);
}
.summary-card--danger.active {
border-color: #dc2626;
background: #fff5f5;
box-shadow:
0 0 0 1px #dc2626,
0 6px 20px rgba(220, 38, 38, 0.15);
}
/* ========== Review Workbench Split Layout ========== */
.review-workbench {
display: grid;
grid-template-columns: 380px minmax(0, 1fr);
gap: 20px;
align-items: start;
}
.review-queue,
.review-detail,
.review-panel,
.review-hero-panel {
min-width: 0;
}
/* ========== Left: Queue Sidebar ========== */
.review-queue {
position: sticky;
top: 16px;
height: calc(100vh - 120px);
display: flex;
flex-direction: column;
border: 1px solid #e2e8f0;
border-radius: 12px;
background: #ffffff;
padding: 16px;
box-shadow: 0 1px 4px rgba(15, 23, 42, 0.05);
}
.queue-toolbar {
display: flex;
flex-direction: column;
gap: 10px;
margin-bottom: 12px;
padding-bottom: 12px;
border-bottom: 1px solid #f1f5f9;
}
.queue-filter-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 8px;
}
.queue-select {
width: 100%;
}
.queue-count-strip {
display: flex;
align-items: center;
justify-content: space-between;
color: #64748b;
font-size: 12px;
font-weight: 600;
}
.shortcut-tip {
color: #94a3b8;
font-size: 11px;
}
.queue-list {
flex: 1;
min-height: 0;
overflow-y: auto;
display: flex;
flex-direction: column;
gap: 10px;
padding-right: 4px;
}
/* Queue Card Item */
.queue-item {
position: relative;
width: 100%;
min-height: 104px;
flex-shrink: 0;
display: flex;
border: 1px solid #e2e8f0;
border-radius: 10px;
background: #ffffff;
padding: 0;
text-align: left;
cursor: pointer;
overflow: hidden;
transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}
.item-accent-bar {
width: 4px;
background: #94a3b8;
flex-shrink: 0;
transition:
width 0.2s ease,
background 0.2s ease;
}
.queue-item.has-default-shot .item-accent-bar {
background: #f59e0b;
}
.queue-item.has-deposit-risk .item-accent-bar {
background: #f97316;
}
.queue-item.has-ban .item-accent-bar {
background: #ef4444;
}
.queue-card-content {
flex: 1;
min-width: 0;
padding: 12px 14px;
display: flex;
flex-direction: column;
gap: 8px;
}
.queue-top-line {
display: flex;
align-items: center;
justify-content: space-between;
}
.queue-code {
color: #64748b;
font-size: 12px;
font-weight: 700;
font-family: monospace;
}
.queue-coin {
display: inline-flex;
align-items: center;
gap: 4px;
color: #b45309;
background: #fef3c7;
padding: 2px 7px;
border-radius: 6px;
font-size: 12px;
font-weight: 800;
}
.queue-main-row {
display: flex;
align-items: flex-start;
gap: 10px;
}
.queue-thumb {
position: relative;
width: 52px;
height: 52px;
border-radius: 8px;
overflow: hidden;
background: #f1f5f9;
flex-shrink: 0;
border: 1px solid #e2e8f0;
}
.queue-thumb img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
.thumb-warning-badge {
position: absolute;
bottom: 0;
left: 0;
right: 0;
background: rgba(217, 119, 6, 0.9);
color: #ffffff;
font-size: 9px;
font-weight: 700;
text-align: center;
line-height: 13px;
}
.queue-main-info {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
gap: 6px;
}
.queue-title {
color: #0f172a;
font-size: 13px;
font-weight: 700;
line-height: 1.35;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.queue-specs {
display: flex;
flex-wrap: wrap;
gap: 4px;
}
.spec-pill {
padding: 1px 5px;
border-radius: 4px;
background: #f1f5f9;
color: #475569;
font-size: 11px;
font-weight: 600;
line-height: 16px;
white-space: nowrap;
}
.queue-footer {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
padding-top: 6px;
border-top: 1px solid #f8fafc;
}
.queue-price-block {
display: flex;
align-items: baseline;
gap: 6px;
}
.queue-price {
color: #2563eb;
font-size: 14px;
font-weight: 800;
}
.queue-deposit {
color: #64748b;
font-size: 11px;
}
.queue-tags {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
gap: 4px;
}
/* Hover & Active Queue Item */
.queue-item:hover {
border-color: #93c5fd;
background: #f8fafc;
transform: translateX(2px);
}
.queue-item.active {
border-color: #2563eb;
background: #f0f7ff;
box-shadow:
0 0 0 1px #2563eb,
0 4px 16px rgba(37, 99, 235, 0.12);
}
.queue-item.active .item-accent-bar {
background: #2563eb;
width: 6px;
}
.queue-item.active .queue-title {
color: #1d4ed8;
}
/* ========== Right: Audit Workbench Main Area ========== */
.review-detail {
display: flex;
flex-direction: column;
gap: 18px;
}
.review-hero-panel,
.review-panel {
border: 1px solid #e2e8f0;
border-radius: 12px;
background: #ffffff;
padding: 20px 24px;
box-shadow: 0 1px 4px rgba(15, 23, 42, 0.04);
}
/* Hero Panel */
.hero-top-row {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 16px;
margin-bottom: 12px;
}
.hero-meta-strip {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 10px;
}
.hero-code-badge {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 4px 10px;
border-radius: 6px;
background: #f1f5f9;
color: #334155;
font-size: 13px;
font-weight: 700;
font-family: monospace;
cursor: pointer;
transition: all 0.2s;
}
.hero-code-badge:hover {
background: #e2e8f0;
color: #0f172a;
}
.copy-icon {
font-size: 13px;
}
.hero-submit-time {
display: inline-flex;
align-items: center;
gap: 5px;
color: #64748b;
font-size: 12px;
}
.hero-actions {
display: flex;
align-items: center;
gap: 8px;
flex-wrap: wrap;
}
.action-link {
text-decoration: none;
}
.btn-approve {
font-weight: 700;
box-shadow: 0 2px 8px rgba(37, 99, 235, 0.25);
}
.hero-title {
margin: 0 0 14px;
color: #0f172a;
font-size: 22px;
font-weight: 800;
line-height: 1.35;
}
.risk-tag-strip {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 4px;
}
/* Panel Heading Component */
.panel-heading {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
margin-bottom: 16px;
padding-bottom: 12px;
border-bottom: 1px solid #f1f5f9;
}
.heading-left {
display: flex;
align-items: center;
gap: 10px;
}
.heading-icon {
font-size: 20px;
color: #2563eb;
}
.heading-left h3 {
margin: 0;
color: #0f172a;
font-size: 16px;
font-weight: 800;
line-height: 1.2;
}
.heading-left p {
margin: 3px 0 0;
color: #64748b;
font-size: 12px;
}
/* ========== Interactive Pricing Pipeline ========== */
.pricing-pipeline {
display: grid;
grid-template-columns: 1fr auto 1fr auto 1.15fr 1fr;
align-items: center;
gap: 12px;
}
.pipeline-card {
display: flex;
flex-direction: column;
gap: 6px;
min-height: 130px;
border: 1px solid #e2e8f0;
border-radius: 10px;
background: #f8fafc;
padding: 14px 16px;
}
.pipeline-card .card-badge {
display: inline-block;
align-self: flex-start;
padding: 2px 8px;
border-radius: 4px;
background: #e2e8f0;
color: #475569;
font-size: 11px;
font-weight: 700;
}
.pipeline-card .card-value {
color: #0f172a;
font-size: 24px;
font-weight: 800;
line-height: 1.15;
}
.pipeline-card .card-meta {
color: #475569;
font-size: 12px;
font-weight: 600;
}
.pipeline-card .card-breakdown {
margin-top: auto;
display: flex;
align-items: center;
justify-content: space-between;
gap: 6px;
color: #64748b;
font-size: 11px;
font-weight: 500;
padding-top: 6px;
border-top: 1px solid rgba(0, 0, 0, 0.05);
}
.pipeline-card--rule {
border-color: #fed7aa;
background: #fff7ed;
}
.pipeline-card--rule .card-badge {
background: #ffedd5;
color: #c2410c;
}
.pipeline-card--rule .markup-value {
color: #ea580c;
}
.admin-reason {
color: #ea580c;
font-weight: 700;
}
.pipeline-card--buyer {
border: 2px solid #2563eb;
background: linear-gradient(135deg, #eff6ff 0%, #e0f2fe 100%);
box-shadow: 0 4px 16px rgba(37, 99, 235, 0.12);
}
.pipeline-card--buyer .card-badge--highlight {
background: #2563eb;
color: #ffffff;
}
.pipeline-card--buyer .card-value--highlight {
color: #1d4ed8;
font-size: 26px;
}
.pipeline-card--deposit {
border-color: #e0e7ff;
background: #f5f7ff;
}
.pipeline-card--deposit .card-badge {
background: #ede9fe;
color: #6d28d9;
}
.pipeline-arrow {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 4px;
color: #94a3b8;
font-size: 18px;
}
.arrow-label {
font-size: 10px;
font-weight: 700;
color: #94a3b8;
}
.warning-text {
color: #dc2626 !important;
font-weight: 700;
}
/* ========== Dual Columns: Core Specs Grid ========== */
.review-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 18px;
}
.spec-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
}
.spec-item {
display: flex;
flex-direction: column;
gap: 4px;
padding: 10px 12px;
border-radius: 8px;
background: #f8fafc;
border: 1px solid #f1f5f9;
}
.spec-item--full {
grid-column: 1 / -1;
}
.spec-label {
color: #64748b;
font-size: 11px;
font-weight: 700;
}
.spec-val {
color: #0f172a;
font-size: 13px;
font-weight: 700;
}
.rank-badge {
display: inline-block;
align-self: flex-start;
padding: 2px 8px;
border-radius: 4px;
background: #eff6ff;
color: #2563eb;
font-size: 12px;
font-weight: 800;
}
.ban-val {
display: flex;
align-items: center;
gap: 6px;
font-weight: 700;
}
.safe-icon {
color: #16a34a;
font-size: 16px;
}
.ban-icon {
color: #dc2626;
font-size: 16px;
}
.spec-item.ban-warning {
border-color: #fca5a5;
background: #fef2f2;
}
.spec-item.ban-warning .spec-val {
color: #b91c1c;
}
.copyable-val {
display: flex;
align-items: center;
justify-content: space-between;
}
/* ========== Inventory & Consumables ========== */
.consumable-total-badge {
display: flex;
align-items: center;
gap: 8px;
padding: 4px 10px;
border-radius: 6px;
background: #f1f5f9;
color: #475569;
font-size: 12px;
}
.consumable-total-badge strong {
color: #2563eb;
font-size: 14px;
font-weight: 800;
}
.heavy-gear-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
margin-bottom: 14px;
}
.gear-card {
display: flex;
align-items: center;
gap: 14px;
padding: 14px;
border-radius: 10px;
border: 1px solid #e2e8f0;
background: #f8fafc;
}
.gear-icon {
font-size: 28px;
}
.gear-info {
display: flex;
flex-direction: column;
}
.gear-info span {
color: #64748b;
font-size: 12px;
font-weight: 600;
}
.gear-info strong {
color: #0f172a;
font-size: 20px;
font-weight: 900;
}
.gear-info em {
color: #64748b;
font-size: 12px;
font-style: normal;
font-weight: normal;
}
.resource-pill-grid {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-bottom: 14px;
}
.resource-chip {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 4px 10px;
border-radius: 6px;
background: #f1f5f9;
font-size: 12px;
}
.res-name {
color: #334155;
font-weight: 600;
}
.res-qty {
color: #2563eb;
font-weight: 800;
}
.res-mode {
color: #64748b;
}
.skins-section {
padding-top: 12px;
border-top: 1px solid #f1f5f9;
}
.skins-header {
margin-bottom: 8px;
color: #475569;
font-size: 12px;
font-weight: 700;
}
.skin-chips-wrapper {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.skin-chip {
display: inline-flex;
padding: 4px 10px;
border-radius: 6px;
background: #ecfdf5;
border: 1px solid #a7f3d0;
color: #047857;
font-size: 12px;
font-weight: 600;
}
.empty-skins-tip {
margin: 0;
color: #94a3b8;
font-size: 12px;
}
/* ========== Verification Checklist & Screenshot Gallery ========== */
.verification-checklist {
display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr));
gap: 10px;
margin-bottom: 16px;
}
.check-item {
display: flex;
align-items: center;
gap: 8px;
padding: 8px 12px;
border-radius: 8px;
border: 1px solid #e2e8f0;
background: #f8fafc;
font-size: 12px;
}
.check-icon {
font-size: 16px;
flex-shrink: 0;
}
.check-label {
flex: 1;
min-width: 0;
font-weight: 700;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.check-status-tag {
font-size: 11px;
font-weight: 600;
}
.check-item--provided {
border-color: #bbf7d0;
background: #f0fdf4;
color: #15803d;
}
.check-item--provided .check-icon {
color: #16a34a;
}
.check-item--default {
border-color: #fde68a;
background: #fffbeb;
color: #b45309;
}
.check-item--default .check-icon {
color: #d97706;
}
.check-item--missing {
border-color: #e2e8f0;
background: #f8fafc;
color: #94a3b8;
}
.check-item--missing .check-icon {
color: #cbd5e1;
}
.screenshot-gallery-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
gap: 14px;
}
.screenshot-card {
position: relative;
display: block;
width: 100%;
aspect-ratio: 16 / 9;
border-radius: 10px;
overflow: hidden;
border: 1px solid #e2e8f0;
background: #f8fafc;
cursor: pointer;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
.screenshot-card:hover {
transform: translateY(-2px);
box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
border-color: #93c5fd;
}
.image-wrapper {
position: relative;
width: 100%;
height: 100%;
}
.image-wrapper img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
.default-badge {
position: absolute;
top: 8px;
left: 8px;
display: inline-flex;
align-items: center;
gap: 4px;
padding: 2px 7px;
border-radius: 4px;
background: rgba(217, 119, 6, 0.95);
backdrop-filter: blur(4px);
color: #ffffff;
font-size: 11px;
font-weight: 700;
z-index: 2;
}
.category-tag {
position: absolute;
bottom: 0;
left: 0;
right: 0;
background: linear-gradient(
to top,
rgba(15, 23, 42, 0.9) 0%,
rgba(15, 23, 42, 0.4) 70%,
transparent 100%
);
color: #ffffff;
font-size: 12px;
font-weight: 700;
text-align: center;
padding: 14px 6px 6px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
pointer-events: none;
z-index: 2;
}
.image-overlay {
position: absolute;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
flex-wrap: wrap;
padding: 8px;
background: rgba(15, 23, 42, 0.65);
backdrop-filter: blur(3px);
opacity: 0;
transition: opacity 0.2s ease;
z-index: 3;
}
.screenshot-card:hover .image-overlay {
opacity: 1;
}
.image-overlay .el-button {
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
transition: transform 0.15s ease;
}
.image-overlay .el-button:hover {
transform: scale(1.1);
}
.empty-warning {
display: flex;
align-items: center;
gap: 10px;
border-radius: 8px;
background: #fff7ed;
border: 1px solid #fed7aa;
padding: 16px;
color: #c2410c;
font-weight: 700;
font-size: 13px;
}
/* ========== Floating Sticky Action Dock ========== */
.floating-dock {
position: fixed;
bottom: 24px;
right: 32px;
z-index: 900;
display: flex;
align-items: center;
justify-content: space-between;
gap: 20px;
padding: 10px 18px;
border-radius: 14px;
background: rgba(255, 255, 255, 0.95);
backdrop-filter: blur(16px);
border: 1px solid rgba(226, 232, 240, 0.9);
box-shadow:
0 10px 30px rgba(15, 23, 42, 0.15),
0 2px 8px rgba(15, 23, 42, 0.08);
animation: slideUp 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes slideUp {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.dock-info {
display: flex;
align-items: center;
gap: 10px;
}
.dock-code {
padding: 2px 6px;
border-radius: 4px;
background: #f1f5f9;
color: #475569;
font-size: 12px;
font-weight: 700;
font-family: monospace;
}
.dock-title {
max-width: 220px;
color: #0f172a;
font-size: 13px;
font-weight: 700;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.dock-price {
color: #2563eb;
font-size: 14px;
font-weight: 800;
}
.dock-risk-tag {
color: #dc2626;
background: #fee2e2;
padding: 2px 6px;
border-radius: 4px;
font-size: 11px;
font-weight: 700;
}
.dock-actions {
display: flex;
align-items: center;
gap: 8px;
}
.btn-approve-dock {
font-weight: 700;
box-shadow: 0 2px 10px rgba(37, 99, 235, 0.3);
}
/* ========== Dialogs Styling ========== */
.dialog-item-header {
display: flex;
align-items: center;
gap: 8px;
margin-bottom: 14px;
padding-bottom: 10px;
border-bottom: 1px solid #f1f5f9;
}
.dialog-code {
padding: 2px 8px;
border-radius: 4px;
background: #f1f5f9;
color: #475569;
font-size: 12px;
font-weight: 700;
font-family: monospace;
}
.reject-quick-tags {
margin-bottom: 14px;
}
.quick-tags-title {
margin: 0 0 8px;
color: #64748b;
font-size: 12px;
font-weight: 600;
}
.quick-tags-list {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.quick-reason-pill {
display: inline-flex;
align-items: center;
gap: 4px;
border: 1px solid #cbd5e1;
border-radius: 6px;
background: #ffffff;
padding: 5px 10px;
color: #334155;
font-size: 12px;
font-weight: 600;
cursor: pointer;
transition: all 0.2s ease;
}
.quick-reason-pill:hover {
border-color: #2563eb;
color: #2563eb;
}
.quick-reason-pill.selected {
border-color: #2563eb;
background: #eff6ff;
color: #2563eb;
}
.reject-tip {
display: flex;
align-items: center;
gap: 6px;
margin-top: 10px;
color: #64748b;
font-size: 12px;
}
/* Price Adjust Modal */
.adjust-preview-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
margin-bottom: 16px;
}
.preview-box {
display: flex;
flex-direction: column;
gap: 4px;
padding: 12px;
border-radius: 8px;
background: #f8fafc;
border: 1px solid #e2e8f0;
}
.preview-box--highlight {
border-color: #93c5fd;
background: #eff6ff;
}
.box-label {
color: #64748b;
font-size: 11px;
font-weight: 700;
}
.box-val {
color: #0f172a;
font-size: 18px;
font-weight: 800;
}
.highlight-val {
color: #2563eb;
}
.preview-box small {
color: #64748b;
font-size: 11px;
}
.adjust-mode-section {
margin-bottom: 14px;
}
.adjust-mode {
width: 100%;
}
.adjust-mode :deep(.el-radio-button) {
width: 50%;
}
.adjust-mode :deep(.el-radio-button__inner) {
width: 100%;
font-weight: 700;
}
.adjust-fields-box {
display: flex;
flex-direction: column;
gap: 14px;
}
.adjust-field {
display: flex;
flex-direction: column;
gap: 6px;
}
.field-title {
color: #475569;
font-size: 12px;
font-weight: 700;
}
.adjust-field :deep(.el-input-number) {
width: 100%;
}
/* Evidence Dialog */
.evidence-header-bar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 14px;
margin-bottom: 16px;
padding-bottom: 12px;
border-bottom: 1px solid #f1f5f9;
}
.evidence-item-info {
display: flex;
align-items: center;
gap: 8px;
}
.evidence-code {
padding: 2px 8px;
border-radius: 4px;
background: #f1f5f9;
color: #475569;
font-size: 12px;
font-weight: 700;
font-family: monospace;
}
.dialog-gallery {
max-height: 560px;
overflow-y: auto;
padding-right: 4px;
}
/* Shortcuts Cheatsheet */
.shortcuts-guide-table {
display: flex;
flex-direction: column;
gap: 10px;
}
.shortcut-row {
display: flex;
align-items: center;
gap: 8px;
padding: 8px 12px;
border-radius: 8px;
background: #f8fafc;
font-size: 13px;
}
.key-badge {
display: inline-block;
padding: 2px 8px;
border: 1px solid #cbd5e1;
border-bottom-width: 2px;
border-radius: 4px;
background: #ffffff;
color: #0f172a;
font-family: monospace;
font-size: 12px;
font-weight: 700;
}
.key-desc {
margin-left: auto;
color: #475569;
font-weight: 600;
}
/* Empty Workbench */
.empty-detail {
min-height: 420px;
display: grid;
place-items: center;
border-radius: 12px;
background: #ffffff;
}
/* ========== Responsive Breakpoints ========== */
@media (max-width: 1360px) {
.review-workbench {
grid-template-columns: 340px minmax(0, 1fr);
}
.pricing-pipeline {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 14px;
}
.pipeline-arrow {
display: none;
}
}
@media (max-width: 1100px) {
.review-summary {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.review-workbench {
grid-template-columns: 1fr;
}
.review-queue {
position: static;
height: auto;
max-height: 480px;
}
.floating-dock {
right: 16px;
left: 16px;
justify-content: space-between;
}
.dock-title {
max-width: 140px;
}
}
@media (max-width: 768px) {
.review-summary {
grid-template-columns: 1fr;
}
.pricing-pipeline {
grid-template-columns: 1fr;
}
.review-grid {
grid-template-columns: 1fr;
}
.heavy-gear-grid {
grid-template-columns: 1fr;
}
.verification-checklist {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.hero-top-row {
flex-direction: column;
}
.hero-actions {
width: 100%;
justify-content: flex-start;
}
.floating-dock {
display: none;
}
}