.gateway-exception-time { font-size: 1rem !important; line-height: 1.35; } .gateway-exception-command { margin-top: 1rem; } .gateway-exception-command pre { max-height: 22rem; margin: 0; padding: 1rem; overflow: auto; border: 1px solid var(--color-border); border-radius: 0.75rem; background: var(--color-surface-muted); color: var(--color-text); font-size: 0.78rem; line-height: 1.55; white-space: pre-wrap; word-break: break-all; } .gateway-requeue-confirm .callout { display: flex; gap: 0.75rem; padding: 0.9rem 1rem; border: 1px solid; border-radius: 0.75rem; } .gateway-requeue-confirm .callout p { margin: 0.25rem 0 0; } .gateway-requeue-confirm .callout--warning { border-color: #f5c66f; background: #fff8e8; color: #8a5700; } .gateway-requeue-confirm .callout--danger { border-color: #f2a4a4; background: #fff0f0; color: #a12222; } .gateway-requeue-checkbox { display: flex; align-items: flex-start; gap: 0.6rem; color: var(--color-text); line-height: 1.5; cursor: pointer; } .gateway-requeue-checkbox input { width: 1rem; height: 1rem; margin-top: 0.2rem; } .text-page-title { color: var(--color-text-strong); font-size: var(--font-size-2xl); font-weight: var(--font-weight-bold); line-height: var(--line-height-tight); } .text-section-title { color: var(--color-text-strong); font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); line-height: var(--line-height-tight); } .text-card-title { color: var(--color-text-strong); font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); line-height: 1.3; } .text-body { color: var(--color-text); font-size: var(--font-size-md); line-height: var(--line-height-base); } .text-secondary { color: var(--color-text-muted); font-size: var(--font-size-sm); line-height: var(--line-height-base); } .text-caption { color: var(--color-text-muted); font-size: var(--font-size-xs); line-height: 1.45; } .overview-hero { align-items: center; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); color: var(--color-text); display: flex; gap: var(--space-5); justify-content: space-between; padding: var(--space-7); } .overview-hero h1 { color: var(--color-text-strong); } .overview-hero .eyebrow { color: var(--color-selected); } .overview-hero .muted { color: var(--color-text-muted); margin-top: var(--space-2); } .dashboard-grid { display: grid; gap: var(--space-4); grid-template-columns: repeat(3, minmax(0, 1fr)); } .dashboard-grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); } @media (max-width: 1180px) { .dashboard-grid--four { grid-template-columns: repeat(2, minmax(0, 1fr)); } } .metric-card { display: grid; gap: var(--space-2); } .metric-card--featured { background: linear-gradient(180deg, var(--color-surface), var(--color-accent-soft)); border-color: rgba(217, 195, 160, 0.72); } .metric-card--featured span, .metric-card--featured small { color: var(--color-text-muted); } .metric-card--featured strong { color: var(--color-text-strong); } .metric-card span { color: var(--color-text-muted); font-size: var(--font-size-sm); } .metric-card strong { color: var(--color-text-strong); font-size: 30px; line-height: var(--line-height-tight); } .metric-card small { color: var(--color-text-muted); font-size: var(--font-size-xs); } .chart-grid { display: grid; gap: var(--space-5); grid-template-columns: minmax(0, 1.3fr) minmax(320px, 0.7fr); } .chart-card { min-width: 0; } .chart-card h2 { margin-bottom: var(--space-2); } .overview-grid { display: grid; gap: var(--space-5); grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr); } .overview-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); } .quick-grid { display: grid; gap: var(--space-3); grid-template-columns: repeat(4, minmax(0, 1fr)); } .quick-action { background: var(--color-bg-subtle); border: 1px solid var(--color-border); border-radius: var(--radius-lg); color: var(--color-text); display: grid; gap: var(--space-2); justify-items: start; min-width: 0; padding: var(--space-4); text-align: left; transition: border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast); } .quick-action:hover { border-color: rgba(37, 99, 235, 0.24); box-shadow: var(--shadow-sm); transform: translateY(-1px); } .quick-action svg { color: var(--color-selected); } .quick-action span { color: var(--color-text-strong); font-weight: var(--font-weight-semibold); } .quick-action small { color: var(--color-text-muted); } .progress-heading { align-items: center; color: var(--color-text-muted); display: flex; justify-content: space-between; margin: var(--space-4) 0 var(--space-2); } .progress-heading strong { color: var(--color-text-strong); } .progress-track { background: var(--color-surface-muted); border-radius: var(--radius-full); height: 10px; overflow: hidden; } .progress-track span { background: linear-gradient(90deg, var(--color-selected), var(--color-accent)); border-radius: inherit; display: block; height: 100%; } .mini-status-card { align-items: flex-start; display: flex; gap: var(--space-4); } .mini-status-card svg { color: var(--color-selected); flex: 0 0 auto; margin-top: 2px; } .mini-status-card div { display: grid; gap: var(--space-1); min-width: 0; } .mini-status-card span { color: var(--color-text-muted); font-size: var(--font-size-sm); } .mini-status-card strong { color: var(--color-text-strong); } .mini-status-card small { color: var(--color-text-muted); } .mini-status-card--action { appearance: none; cursor: pointer; font: inherit; text-align: left; transition: border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast); width: 100%; } .mini-status-card--action:hover, .mini-status-card--action:focus-visible { border-color: var(--color-selected); box-shadow: var(--shadow-sm); outline: none; transform: translateY(-1px); } .sms-send-page { display: grid; gap: var(--space-6); } .sms-send-title { align-items: center; display: flex; gap: var(--space-4); } .sms-send-title h1 { font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); } .sms-send-title__icon { align-items: center; background: var(--color-selected-soft); border-radius: var(--radius-sm); color: var(--color-selected); display: inline-flex; height: 40px; justify-content: center; width: 40px; } .sms-send-layout { align-items: start; display: grid; gap: var(--space-6); grid-template-columns: minmax(0, 1fr) 372px; } .sms-send-main { display: grid; gap: var(--space-6); } .send-card, .sms-preview-card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: var(--space-6); } .send-card__title { align-items: center; display: flex; gap: var(--space-2); margin-bottom: var(--space-5); } .send-card__title span { align-items: center; background: var(--color-selected); border-radius: var(--radius-full); color: var(--color-text-inverse); display: inline-flex; font-size: var(--font-size-sm); font-weight: var(--font-weight-bold); height: 24px; justify-content: center; width: 24px; } .send-card__title h2, .preview-title h2 { font-size: var(--font-size-lg); } .send-field { display: grid; gap: var(--space-3); } .send-field span { color: var(--color-text-strong); font-weight: var(--font-weight-semibold); } .send-field input, .receiver-table input { background: transparent; border: 0; border-bottom: 1px solid transparent; color: var(--color-text); height: var(--control-height-md); outline: 0; width: 100%; } .send-field input::placeholder, .receiver-table input::placeholder { color: var(--color-text-subtle); } .send-form-row { display: grid; gap: var(--space-6); grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: var(--space-6); } .template-trigger { align-items: center; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); color: var(--color-text); display: flex; gap: var(--space-2); height: var(--control-height-md); justify-content: space-between; padding: 0 var(--control-padding-x); text-align: left; transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast); width: 100%; } .template-trigger:hover, .template-trigger:focus-visible { border-color: var(--color-selected); box-shadow: var(--focus-ring); } .template-trigger span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .template-trigger svg { color: var(--color-selected); flex: 0 0 auto; } .template-trigger__placeholder { color: var(--color-text-subtle); } .receiver-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: var(--space-4); } .receiver-tabs button { background: var(--color-surface); border: 1px solid var(--color-border); color: var(--color-text-muted); height: 44px; } .receiver-tabs button.active { border-color: var(--color-selected); color: var(--color-selected); } .receiver-table { border: 1px solid var(--color-border); border-bottom: 0; } .receiver-table__head, .receiver-table__row { display: grid; grid-template-columns: 120px minmax(0, 1fr) 96px; } .receiver-table__head { background: var(--color-surface-muted); color: var(--color-text); font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); } .receiver-table__head span, .receiver-table__row span, .receiver-table__row input, .receiver-table__row button { align-items: center; border-bottom: 1px solid var(--color-border); display: flex; min-height: 50px; padding: 0 var(--space-4); } .receiver-table__row span { color: var(--color-selected); } .receiver-table__row button { background: transparent; border-left: 0; border-right: 0; border-top: 0; color: var(--color-danger); justify-content: center; } .receiver-table__row button:disabled { color: var(--color-text-subtle); } .add-recipient { align-items: center; background: var(--color-bg-subtle); border: 1px dashed var(--color-selected); color: var(--color-selected); display: flex; gap: var(--space-2); height: 40px; justify-content: center; margin-top: var(--space-3); width: 100%; } .import-panel { align-items: center; border: 1px dashed var(--color-border-strong); border-radius: var(--radius-md); color: var(--color-text-muted); display: grid; gap: var(--space-3); grid-auto-rows: max-content; align-content: center; justify-items: center; min-height: 190px; padding: var(--space-6); text-align: center; } .import-panel__icon { align-items: center; background: var(--color-selected-soft); border-radius: var(--radius-full); color: var(--color-selected); display: inline-flex; height: 48px; justify-content: center; width: 48px; } .import-panel__icon svg { color: var(--color-selected); } .import-panel strong { color: var(--color-text-strong); } .send-tip { color: var(--color-text-muted); font-size: var(--font-size-xs); margin-top: var(--space-3); } .send-submit-row { display: flex; justify-content: flex-end; } .mms-send-page .send-card { box-shadow: none; } .mms-send-tip { background: var(--color-selected-soft); border: 1px solid #bfdbfe; color: var(--color-text); font-weight: var(--font-weight-medium); line-height: 1.6; margin-bottom: var(--space-4); padding: var(--space-3) var(--space-4); } .mms-import-mode { display: grid; gap: var(--space-5); } .mms-import-rules { align-items: start; background: #e5e7eb; color: var(--color-text-muted); display: flex; gap: var(--space-5); justify-content: space-between; padding: var(--space-5); } .mms-import-rules strong { color: var(--color-text-strong); display: block; margin-bottom: var(--space-3); } .mms-import-rules p { margin: 0 0 var(--space-2); } .mms-import-panel { min-height: 240px; } .mms-import-panel .import-panel__icon { border-radius: var(--radius-md); height: 64px; width: 64px; } .sms-preview-card { position: sticky; top: calc(var(--topbar-height) + var(--space-6)); } .preview-title { align-items: center; color: var(--color-selected); display: flex; gap: var(--space-2); margin-bottom: var(--space-5); } .preview-title h2 { color: var(--color-text-strong); } .phone-preview { background: var(--color-surface-muted); border-radius: var(--radius-sm); padding: 22px; } .phone-preview div { background: #dbe6ff; border: 1px solid #90b0ff; border-radius: 10px; box-shadow: 0 2px 5px rgba(37, 99, 235, 0.18); color: var(--color-text); min-height: 54px; padding: var(--space-4); } .preview-stats { display: grid; margin-top: var(--space-5); } .preview-stats div { align-items: center; border-bottom: 1px solid var(--color-border); display: flex; justify-content: space-between; padding: var(--space-4) 0; } .preview-stats span { color: var(--color-text-muted); } .preview-stats strong { color: var(--color-selected); } .preview-note { background: var(--color-surface-muted); border-radius: var(--radius-sm); color: var(--color-text-muted); font-size: var(--font-size-xs); margin-top: var(--space-5); padding: var(--space-3) var(--space-4); } .mms-preview-card { min-height: 340px; } .mms-message-preview { background: #e5e7eb; border-radius: var(--radius-sm); padding: var(--space-6); } .mms-message-preview > div { background: var(--color-surface); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); color: var(--color-text); display: grid; gap: var(--space-2); min-height: 64px; padding: var(--space-4); } .mms-message-preview strong { color: var(--color-text-strong); font-size: var(--font-size-sm); } .mms-message-preview p { color: var(--color-text-muted); font-size: var(--font-size-xs); line-height: 1.6; margin: 0; } .template-picker { display: grid; gap: var(--space-4); } .template-picker__list { border: 1px solid var(--color-border); border-radius: var(--radius-md); display: grid; max-height: 360px; overflow-y: auto; } .template-picker__list button { align-items: center; background: var(--color-surface); border: 0; border-bottom: 1px solid var(--color-border); color: var(--color-text); display: flex; gap: var(--space-4); justify-content: space-between; padding: var(--space-4); text-align: left; } .template-picker__list button:last-child { border-bottom: 0; } .template-picker__list button:hover, .template-picker__list button.active { background: var(--color-selected-soft); } .template-picker__list button.active { color: var(--color-selected); } .template-picker__list span { display: grid; gap: var(--space-1); min-width: 0; } .template-picker__list strong { color: var(--color-text-strong); } .template-picker__list small { color: var(--color-text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .batch-filter-card { display: grid; gap: var(--space-5); } .batch-filter-card h2 { font-size: var(--font-size-lg); } .batch-filter-card p strong { color: var(--color-selected); } .batch-filter-grid { align-items: end; display: grid; gap: var(--space-8); grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr) minmax(220px, 1fr); } .batch-table-card { overflow: hidden; padding: 0; } .batch-table { min-width: 1080px; } .batch-table th { background: #e5e7eb; color: var(--color-text-strong); } .batch-table td { height: 70px; } .batch-table tbody tr:hover { background: transparent; } .batch-main-row td { border-top: 12px solid var(--color-bg); position: relative; transition: background var(--transition-fast); } .batch-main-row td, .batch-template-row td { background: #fbfcff; } .batch-task-id { display: grid; gap: var(--space-2); justify-items: start; } .batch-task-id strong { color: var(--color-text-strong); font-size: var(--font-size-sm); } .batch-template-row td { border-top: 0; height: auto; padding: 0 var(--space-4) var(--space-5); position: relative; transition: background var(--transition-fast); } .batch-main-row.batch-row--hovered td, .batch-template-row.batch-row--hovered td { background: #dbeafe; } .batch-template-content { align-items: flex-start; background: var(--color-surface); border: 1px solid #edf0f5; border-radius: var(--radius-md); box-shadow: inset 0 0 0 1px rgba(18, 18, 26, 0.01); color: var(--color-text); display: flex; gap: var(--space-3); line-height: 1.7; margin-left: 0; padding: var(--space-3) var(--space-4); transition: border-color var(--transition-fast), box-shadow var(--transition-fast); } .batch-template-row.batch-row--hovered .batch-template-content { border-color: rgba(37, 99, 235, 0.18); box-shadow: 0 1px 2px rgba(37, 99, 235, 0.08); } .batch-template-row.batch-row--hovered .ui-inline-text-preview { border-color: rgba(37, 99, 235, 0.18); box-shadow: 0 1px 2px rgba(37, 99, 235, 0.08); } .batch-template-content > span:first-child { color: var(--color-text-muted); flex: 0 0 auto; font-size: var(--font-size-xs); font-weight: var(--font-weight-semibold); } .batch-template-content p { color: var(--color-text-muted); margin: 0; } .batch-template-content p strong { color: var(--color-text-muted); font-weight: var(--font-weight-regular); margin-right: 2px; } .batch-send-time { display: grid; gap: var(--space-1); } .batch-send-time span { align-items: center; color: var(--color-selected); display: flex; gap: var(--space-1); font-weight: var(--font-weight-semibold); } .batch-send-time small { color: var(--color-text-muted); } .batch-progress { display: grid; gap: var(--space-2); } .batch-progress div:first-child { align-items: center; display: flex; justify-content: space-between; } .batch-progress span { color: var(--color-text-muted); font-size: var(--font-size-xs); } .batch-progress strong { color: var(--color-selected); font-size: var(--font-size-xs); } .batch-progress__track { background: var(--color-border-strong); border-radius: var(--radius-full); height: 8px; overflow: hidden; } .batch-progress__bar { display: block; height: 100%; } .batch-progress__bar--completed { background: var(--color-success); } .batch-progress__bar--sending { background: var(--color-selected); } .batch-progress__bar--terminated { background: var(--color-danger); } .batch-actions { display: flex; gap: var(--space-2); justify-content: flex-end; } .batch-actions .ui-button { min-width: 52px; } .batch-actions .ui-button:last-child { color: var(--color-danger); } .mms-task-table td { height: 96px; } .mms-task-content { align-items: center; display: grid; gap: var(--space-4); grid-template-columns: 74px minmax(0, 1fr); min-width: 0; } .mms-task-content img { aspect-ratio: 1 / 1; border-radius: var(--radius-sm); object-fit: cover; width: 74px; } .mms-task-content div { display: grid; gap: var(--space-2); min-width: 0; } .mms-task-content strong { color: var(--color-text-strong); font-size: var(--font-size-md); font-weight: var(--font-weight-semibold); } .mms-task-content p { -webkit-box-orient: vertical; -webkit-line-clamp: 2; color: var(--color-text-muted); display: -webkit-box; line-height: 1.5; margin: 0; overflow: hidden; } .mms-detail-row-content { align-items: center; display: grid; gap: 14px; grid-template-columns: 84px minmax(0, 1fr); min-width: 0; } .mms-detail-row-content img { aspect-ratio: 1 / 1; border-radius: var(--radius-sm); object-fit: cover; width: 84px; } .mms-detail-row-content div { display: grid; gap: 6px; min-width: 0; } .mms-detail-row-content strong { color: var(--color-text-strong); font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); } .mms-detail-row-content p { -webkit-box-orient: vertical; -webkit-line-clamp: 2; color: var(--color-text-muted); display: -webkit-box; line-height: 1.55; margin: 0; overflow: hidden; } .mms-task-actions { grid-template-columns: repeat(2, minmax(62px, 1fr)); } .mms-task-actions .ui-button:last-child { color: var(--color-selected); } .mms-detail-template { align-items: start; display: grid; gap: var(--space-5); grid-template-columns: 220px minmax(0, 1fr); } .mms-detail-template img { aspect-ratio: 4 / 3; border-radius: var(--radius-sm); object-fit: cover; width: 100%; } .mms-detail-template div { display: grid; gap: var(--space-3); } .mms-detail-template p { color: var(--color-text); line-height: 1.7; margin: 0; } .batch-pagination { align-items: center; display: flex; justify-content: space-between; padding: var(--space-4) var(--space-6); } .batch-pagination > span { color: var(--color-text-muted); } .batch-pagination > div { display: flex; gap: var(--space-2); } .task-detail-title { align-items: center; display: flex; gap: var(--space-4); } .task-detail-title .sms-send-title__icon { background: linear-gradient(135deg, #eff6ff 0%, #f6efe4 100%); border-color: rgba(37, 99, 235, 0.16); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.72); height: 46px; width: 46px; } .task-detail-title h2 { color: var(--color-text-strong); font-size: 30px; line-height: 1.15; margin: 0; } .task-detail-title p { color: var(--color-text-muted); font-size: var(--font-size-sm); margin: var(--space-2) 0 0; } .task-detail { display: grid; gap: var(--space-6); } .task-detail-section { background: var(--color-surface); border: 1px solid rgba(209, 213, 219, 0.72); border-radius: var(--radius-lg); box-shadow: var(--shadow-xs); display: grid; gap: var(--space-5); padding: var(--space-6); } .task-detail-section > h3, .task-section-title h3 { align-items: center; color: var(--color-text-strong); display: flex; font-size: var(--font-size-xl); gap: var(--space-2); margin: 0; } .task-section-title { align-items: center; display: flex; gap: var(--space-3); justify-content: space-between; } .task-info-grid { display: grid; gap: var(--space-4); grid-template-columns: repeat(2, minmax(0, 1fr)); } .task-info-grid > div { background: linear-gradient(180deg, #fbfcfe 0%, #f7f8fa 100%); border: 1px solid rgba(209, 213, 219, 0.74); border-radius: var(--radius-sm); display: grid; gap: var(--space-2); min-height: 78px; padding: var(--space-4); transition: border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast); } .task-info-grid > div:hover { border-color: rgba(37, 99, 235, 0.22); box-shadow: 0 8px 20px rgba(18, 18, 26, 0.05); transform: translateY(-1px); } .task-info-grid span, .task-stat-card span, .task-total-progress span, .overall-rate-card span { color: var(--color-text-muted); font-size: var(--font-size-xs); font-weight: var(--font-weight-semibold); } .task-info-grid strong { color: var(--color-text-strong); font-size: var(--font-size-md); } .task-info-full { grid-column: 1 / -1; } .task-info-full strong { line-height: 1.7; } .task-send-type { align-items: center; color: var(--color-selected) !important; display: flex; gap: var(--space-2); } .text-blue { color: var(--color-selected) !important; } .text-green { color: var(--color-success) !important; font-weight: var(--font-weight-semibold); } .task-stat-grid { display: grid; gap: var(--space-4); grid-template-columns: repeat(4, minmax(0, 1fr)); } .task-stat-card { background: var(--color-surface); border: 1px solid rgba(191, 219, 254, 0.9); border-radius: var(--radius-sm); display: grid; gap: var(--space-2); min-height: 96px; overflow: hidden; padding: var(--space-5); position: relative; } .task-stat-card::before { content: ""; height: 3px; inset: 0 0 auto; position: absolute; } .task-stat-card--blue::before { background: var(--color-selected); } .task-stat-card--green { border-color: #bbf7d0; } .task-stat-card--green::before { background: var(--color-success); } .task-stat-card strong { color: var(--color-selected); font-size: 32px; line-height: 1; } .task-stat-card--green strong { color: var(--color-success); } .task-total-progress { background: #f8fafc; border: 1px solid rgba(209, 213, 219, 0.72); border-radius: var(--radius-sm); display: grid; gap: var(--space-4); padding: var(--space-5); } .task-total-progress > div:first-child { align-items: center; display: flex; justify-content: space-between; } .task-total-progress strong { color: var(--color-selected); } .overall-rate-card { align-items: center; background: radial-gradient(circle at 50% 24%, rgba(217, 195, 160, 0.24), transparent 28%), linear-gradient(135deg, #f8fbff 0%, #eef4ff 100%); border: 1px solid rgba(191, 219, 254, 0.95); border-radius: var(--radius-sm); display: grid; gap: var(--space-3); justify-items: center; min-height: 178px; padding: var(--space-6); } .overall-rate-card strong { color: var(--color-success); font-size: 52px; line-height: 1; } .overall-rate-card small { color: var(--color-text-muted); } .task-detail-section h4 { color: var(--color-text-strong); font-size: var(--font-size-base); margin: 0; } .carrier-rate-grid { display: grid; gap: var(--space-4); grid-template-columns: repeat(3, minmax(0, 1fr)); } .carrier-rate-card { background: #ffffff; border: 1px solid rgba(209, 213, 219, 0.78); border-radius: var(--radius-sm); box-shadow: var(--shadow-xs); display: grid; gap: var(--space-4); padding: var(--space-5); } .carrier-rate-card > div:first-child, .carrier-rate-card p { align-items: center; display: flex; justify-content: space-between; } .carrier-rate-card > div:first-child strong { color: var(--color-text-strong); } .carrier-rate-card > div:first-child span { color: var(--color-success); font-size: var(--font-size-xl); font-weight: var(--font-weight-bold); } .carrier-rate-card p { color: var(--color-text-muted); font-size: var(--font-size-xs); margin: 0; } .city-rate-table th { background: #f3f4f6; color: var(--color-text-strong); } .city-rate-table td { height: 56px; } .city-rate-table tbody tr:hover { background: #f8fafc; } .task-detail-title .sms-send-title__icon { background: var(--color-brand); border-color: var(--color-brand); color: var(--color-accent); height: 48px; width: 48px; } .task-detail-title h2 { font-size: 28px; letter-spacing: 0; } .task-detail-title p { color: #8a93a3; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; margin-top: 6px; } .task-detail { gap: 18px; } .task-detail-section { background: #ffffff; border: 1px solid #e9edf3; border-radius: var(--radius-lg); box-shadow: 0 8px 24px rgba(18, 18, 26, 0.04); gap: 18px; padding: 22px; } .task-detail-section > h3, .task-section-title h3 { font-size: 18px; gap: 8px; } .task-section-title { border-bottom: 1px solid #eef1f5; padding-bottom: 14px; } .task-info-grid { gap: 0; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: hidden; border: 1px solid #edf0f5; border-radius: var(--radius-md); } .task-info-grid > div { background: #ffffff; border: 0; border-bottom: 1px solid #edf0f5; border-right: 1px solid #edf0f5; border-radius: 0; box-shadow: none; min-height: 82px; padding: 16px 18px; transform: none; } .task-info-grid > div:nth-child(4n) { border-right: 0; } .task-info-grid > div:hover { background: #fbfcff; border-color: #edf0f5; box-shadow: none; transform: none; } .task-info-grid span, .task-stat-card span, .task-total-progress span, .overall-rate-card span { color: #7b8494; font-weight: var(--font-weight-medium); } .task-info-grid strong { color: #18202f; font-size: 14px; line-height: 1.55; } .task-info-full { background: #fbfcff !important; border-bottom: 0 !important; border-right: 0 !important; grid-column: 1 / -1; min-height: 92px !important; } .task-info-full strong { color: #263244; font-size: 14px; font-weight: var(--font-weight-medium); } .task-stat-grid { gap: 12px; } .task-stat-card { background: #ffffff; border: 1px solid #e7ebf2; border-radius: var(--radius-md); box-shadow: 0 1px 2px rgba(18, 18, 26, 0.04); min-height: 106px; padding: 18px; } .task-stat-card::before { height: 100%; inset: 0 auto 0 0; width: 3px; } .task-stat-card strong { font-size: 30px; letter-spacing: 0; } .task-total-progress { background: #fbfcff; border-color: #e7ebf2; border-radius: var(--radius-md); padding: 18px; } .task-total-progress .batch-progress__track { height: 10px; } .overall-rate-card { background: linear-gradient(180deg, rgba(37, 99, 235, 0.08), transparent 58%), #ffffff; border-color: #d9e6ff; border-radius: var(--radius-md); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9); min-height: 150px; } .overall-rate-card strong { font-size: 48px; } .carrier-rate-grid { gap: 12px; } .carrier-rate-card { border-color: #e7ebf2; border-radius: var(--radius-md); box-shadow: 0 1px 2px rgba(18, 18, 26, 0.04); padding: 18px; } .city-rate-table { min-width: 760px; } .city-rate-table th { background: #f7f8fa; border-bottom: 1px solid #e7ebf2; color: #5f6878; font-size: 12px; } .city-rate-table td { height: 58px; } .send-detail-table-card { overflow: hidden; padding: 0; } .send-detail-table { min-width: 1420px; } .mms-send-detail-table { min-width: 1560px; } .send-detail-table th { background: #e5e7eb; color: var(--color-text-strong); height: 58px; } .send-detail-main-row td { background: #ffffff; height: 72px; } .send-detail-content-row td { background: #ffffff; border-top: 0; height: auto; padding: 0 var(--space-4) var(--space-5); } .send-detail-message { color: var(--color-text-muted); display: block; line-height: 1.65; max-width: 380px; } .send-detail-content-block { align-items: flex-start; background: #fbfcff; border: 1px solid #edf0f5; border-radius: var(--radius-md); display: flex; gap: var(--space-3); line-height: 1.7; padding: var(--space-3) var(--space-4); } .send-detail-content-block span { color: var(--color-text-muted); flex: 0 0 auto; font-size: var(--font-size-xs); font-weight: var(--font-weight-semibold); } .send-detail-content-block p { color: var(--color-text-muted); margin: 0; } .send-detail-app-name, .send-detail-count, .send-detail-time, .send-detail-region { display: grid; gap: 2px; } .send-detail-time, .send-detail-region { color: var(--color-text-muted); } .send-detail-time small, .send-detail-region small, .send-detail-count small { color: var(--color-text-muted); font-size: var(--font-size-xs); } .send-detail-count strong { color: var(--color-text-strong); } .send-detail-receipt-code { color: var(--color-success); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: var(--font-size-xs); } .send-detail-carrier { color: #374151; font-weight: var(--font-weight-semibold); } .uplink-table-card { overflow: hidden; padding: 0; } .uplink-table-card .ui-table th { background: #e5e7eb; color: var(--color-text-strong); height: 54px; } .uplink-table-card .ui-table td { height: 78px; } .uplink-content { color: var(--color-text-strong); display: -webkit-box; line-height: 1.6; min-width: 320px; overflow: hidden; overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 3; } .uplink-detail { display: grid; gap: var(--space-5); } .uplink-detail-hint { color: var(--color-text-muted); margin: 0; } .uplink-match-list { display: grid; gap: var(--space-5); } .uplink-match-card { background: #f1f3f5; border: 1px solid #e5e7eb; border-radius: var(--radius-md); display: grid; gap: var(--space-4); padding: var(--space-5); } .uplink-match-grid { display: grid; gap: var(--space-5); grid-template-columns: repeat(2, minmax(0, 1fr)); } .uplink-match-grid div, .uplink-match-content { display: grid; gap: var(--space-2); } .uplink-match-grid span, .uplink-match-content span { color: var(--color-text-muted); font-size: var(--font-size-xs); font-weight: var(--font-weight-semibold); } .uplink-match-grid strong, .uplink-match-content p { color: var(--color-text-strong); } .uplink-match-content p { line-height: 1.75; margin: 0; } .uplink-match-actions { display: flex; justify-content: flex-end; } .mms-uplink-pagination { align-items: center; border-top: 1px solid #edf0f5; color: var(--color-text-muted); display: flex; justify-content: space-between; padding: 16px 22px; } .mms-uplink-pagination > div { display: flex; gap: 10px; } .mms-uplink-detail .task-detail-section:first-child { background: #ffffff; } .mms-uplink-match-card { background: #f4f6f8; } .mms-uplink-image { display: grid; gap: var(--space-2); } .mms-uplink-image span { color: var(--color-text-muted); font-size: var(--font-size-xs); font-weight: var(--font-weight-semibold); } .mms-uplink-image img { aspect-ratio: 16 / 7; border-radius: var(--radius-sm); object-fit: cover; width: 100%; } .sms-app-grid { display: grid; gap: var(--space-5); grid-template-columns: repeat(3, minmax(260px, 1fr)); } .sms-app-card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); display: grid; gap: var(--space-5); padding: var(--space-6); } .sms-app-card h2 { font-size: var(--font-size-xl); } .sms-app-card dl { display: grid; gap: var(--space-4); margin: 0; } .sms-app-card dl div { align-items: center; display: flex; justify-content: space-between; } .sms-app-card dt { color: var(--color-text-muted); font-weight: var(--font-weight-semibold); } .sms-app-card dd { color: var(--color-text-strong); margin: 0; text-align: right; } .sms-app-card dd span { color: var(--color-selected); } .sms-app-param-table { border: 1px solid var(--color-border); display: grid; } .sms-app-param-table div { display: grid; grid-template-columns: minmax(220px, 0.7fr) minmax(0, 1fr); min-height: 58px; } .sms-app-param-table div + div { border-top: 1px solid var(--color-border); } .sms-app-param-table span, .sms-app-param-table strong { align-items: center; display: flex; padding: 0 var(--space-5); } .sms-app-param-table span { background: #f1f3f5; color: var(--color-text-muted); font-weight: var(--font-weight-semibold); } .sms-app-param-table strong { background: #ffffff; color: var(--color-text-strong); font-weight: var(--font-weight-medium); } .signature-page-header { align-items: center; display: flex; justify-content: space-between; } .signature-search-row { max-width: 360px; } .signature-list { display: grid; gap: var(--space-5); } .signature-card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); overflow: hidden; position: relative; } .signature-card::before { content: ""; inset: 0 auto 0 0; position: absolute; width: 5px; } .signature-card--green::before { background: var(--color-success); } .signature-card--blue::before { background: var(--color-selected); } .signature-card--amber::before { background: var(--color-warning); } .signature-card--red::before { background: var(--color-danger); } .signature-card--gray::before { background: var(--color-text-subtle); } .signature-summary { align-items: center; display: grid; gap: var(--space-5); grid-template-columns: 28px 1fr 1fr 1fr 1fr 1fr 1fr 110px; min-height: 112px; padding: var(--space-5) var(--space-6); } .signature-summary > button { background: transparent; border: 0; color: var(--color-text-muted); display: inline-flex; padding: 0; } .signature-summary div:not(.signature-actions) { display: grid; gap: var(--space-2); } .signature-summary span { color: var(--color-text-muted); font-size: var(--font-size-xs); font-weight: var(--font-weight-medium); } .signature-summary strong { color: var(--color-text-strong); } .signature-actions { display: grid; gap: var(--space-3); } .drainage-panel { background: #f1f3f5; border-top: 1px solid var(--color-border); display: grid; gap: var(--space-5); padding: var(--space-5) var(--space-6); } .drainage-panel h2 { font-size: var(--font-size-lg); } .drainage-table { display: grid; } .drainage-table__head, .drainage-table__row { align-items: center; display: grid; gap: var(--space-4); grid-template-columns: minmax(180px, 1.5fr) minmax(80px, 0.7fr) repeat(3, minmax(64px, 0.65fr)) minmax(196px, auto); min-height: 58px; } .drainage-table__head { color: var(--color-text-muted); font-size: var(--font-size-xs); font-weight: var(--font-weight-semibold); border-bottom: 1px solid var(--color-border); } .drainage-table__row { border-bottom: 1px solid var(--color-border); } .drainage-table__url { color: var(--color-text-strong); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .drainage-row-actions { display: flex; gap: var(--space-2); } .drainage-panel__footer { display: flex; justify-content: flex-end; } .admin-enterprise-signature-list .signature-summary { gap: var(--space-2); grid-template-columns: 22px minmax(104px, 0.85fr) minmax(132px, 1fr) minmax(104px, 0.8fr) repeat(5, minmax(76px, 0.55fr)) 184px; min-width: 0; padding-inline: var(--space-3); } .admin-enterprise-signature-list .signature-actions { display: grid; gap: 6px; grid-template-columns: repeat(2, minmax(0, 1fr)); justify-self: end; min-width: 184px; width: 184px; } .admin-enterprise-signature-list .signature-actions .ui-button { justify-content: center; min-width: 0; padding-left: 8px; padding-right: 8px; } .signature-summary .signature-summary__regular-value { color: var(--color-text-strong); font-weight: 400; } .signature-report-status { display: grid; gap: var(--space-4); } .signature-report-status__context { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-3); } .signature-report-status__context span { color: var(--color-text-muted); font-size: var(--font-size-sm); } .signature-report-status__carriers { display: grid; gap: var(--space-4); grid-template-columns: repeat(3, minmax(0, 1fr)); } .signature-report-status__carrier { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); min-width: 0; overflow: hidden; } .signature-report-status__carrier > header { align-items: center; background: var(--color-surface-subtle); display: flex; justify-content: space-between; min-height: 54px; padding: var(--space-3) var(--space-4); } .signature-report-status__carrier > header > span:last-child { color: var(--color-text-muted); font-size: var(--font-size-xs); } .signature-report-status__list { max-height: 280px; min-height: 190px; overflow: auto; padding: 0 var(--space-4); } .signature-report-status__row { align-items: center; border-bottom: 1px solid var(--color-border); display: grid; gap: var(--space-3); grid-template-columns: minmax(0, 1fr) 168px; min-height: 64px; } .signature-report-status__row:last-child { border-bottom: 0; } .signature-report-status__row strong { font-size: var(--font-size-sm); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .signature-report-status__empty { color: var(--color-text-muted); font-size: var(--font-size-sm); padding: var(--space-7) 0; text-align: center; } @media (max-width: 920px) { .signature-report-status__carriers { grid-template-columns: 1fr; } .signature-report-status__list { min-height: 0; } } .signature-retirement-heatmap__total { color: var(--color-text-strong); font-weight: 700; background: var(--color-surface-muted); } .carrier-report-summary { align-items: flex-start; display: inline-flex; flex-wrap: wrap; gap: 4px; } .carrier-report-summary small { color: var(--color-text-muted); font-size: var(--font-size-xs); line-height: 24px; white-space: nowrap; } .admin-enterprise-template-list { display: grid; gap: var(--space-3); } .admin-enterprise-template-row { align-items: center; border: 1px solid var(--color-border); border-radius: var(--radius-md); display: grid; gap: var(--space-5); grid-template-columns: minmax(220px, 1.15fr) minmax(280px, 1.6fr) minmax(136px, 0.65fr) 188px; min-width: 0; padding: var(--space-5); transition: border-color var(--transition-fast), box-shadow var(--transition-fast); } .admin-enterprise-template-row:hover { border-color: var(--color-border-strong); box-shadow: var(--shadow-sm); } .admin-enterprise-template-row__identity, .admin-enterprise-template-row__content, .admin-enterprise-template-row__meta { min-width: 0; } .admin-enterprise-template-row__title { align-items: center; display: flex; flex-wrap: wrap; gap: var(--space-2); } .admin-enterprise-template-row__title > strong { color: var(--color-text-strong); font-size: var(--font-size-lg); } .admin-enterprise-template-row dl { display: grid; gap: 5px; margin: var(--space-3) 0 0; } .admin-enterprise-template-row dl div { display: grid; gap: var(--space-2); grid-template-columns: 42px minmax(0, 1fr); } .admin-enterprise-template-row dt, .admin-enterprise-template-row__content > span, .admin-enterprise-template-row__meta > span { color: var(--color-text-muted); font-size: var(--font-size-xs); } .admin-enterprise-template-row dd { color: var(--color-text-strong); margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .admin-enterprise-template-row__content p { color: var(--color-text-strong); display: -webkit-box; line-height: 1.65; margin: var(--space-2) 0; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; } .admin-enterprise-template-row__content small { color: var(--color-text-muted); } .admin-enterprise-template-row__meta { display: grid; gap: var(--space-2); } .admin-enterprise-template-row__meta strong { font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); } .admin-enterprise-template-row__actions { display: grid; gap: var(--space-2); grid-template-columns: repeat(2, minmax(0, 1fr)); } .admin-enterprise-template-row__actions .ui-button { justify-content: center; min-width: 0; } @media (max-width: 1180px) { .admin-enterprise-template-row { grid-template-columns: minmax(210px, 1fr) minmax(260px, 1.35fr) 168px; } .admin-enterprise-template-row__meta { grid-column: 1; } .admin-enterprise-template-row__actions { grid-column: 3; grid-row: 1 / span 2; } .admin-enterprise-signature-list .signature-summary { grid-template-columns: 22px repeat(7, minmax(76px, 1fr)) 184px; } .admin-enterprise-signature-list .signature-summary > div:nth-of-type(3) { display: none; } } @media (max-width: 860px) { .admin-enterprise-template-row { align-items: stretch; grid-template-columns: 1fr; } .admin-enterprise-template-row__meta, .admin-enterprise-template-row__actions { grid-column: auto; grid-row: auto; } .admin-enterprise-signature-list .signature-summary { grid-template-columns: 22px repeat(2, minmax(0, 1fr)); } .admin-enterprise-signature-list .signature-summary > div, .admin-enterprise-signature-list .signature-summary > div:nth-of-type(3) { display: grid; } .admin-enterprise-signature-list .signature-actions { grid-column: 2 / -1; justify-self: stretch; width: 100%; } } .system-log-filters__actions { align-items: center; display: flex; gap: var(--space-3); } .detail-grid { display: grid; gap: var(--space-5); grid-template-columns: repeat(2, minmax(0, 1fr)); } .detail-grid div { background: var(--color-bg-subtle); border-radius: var(--radius-md); display: grid; gap: var(--space-2); padding: var(--space-4); } .detail-grid span { color: var(--color-text-muted); font-size: var(--font-size-xs); font-weight: var(--font-weight-semibold); } .detail-grid strong { color: var(--color-text-strong); line-height: 1.7; } .detail-grid__wide { grid-column: 1 / -1; } .signature-modal-title h2 { font-size: var(--font-size-2xl); } .signature-modal-title p { color: var(--color-text-muted); margin-top: var(--space-1); } .signature-form { display: grid; gap: var(--space-8); } .signature-form section { display: grid; gap: var(--space-5); } .signature-form h3 { border-left: 5px solid var(--color-selected); padding-left: var(--space-3); } .signature-form-grid { display: grid; gap: var(--space-5); grid-template-columns: repeat(2, minmax(0, 1fr)); } .signature-form-grid__wide { grid-column: 1 / -1; } .report-requirement-heading { align-items: center; display: flex; justify-content: space-between; } .report-requirement-heading h3 { margin: 0; } .report-field-source { color: var(--color-text-muted); display: block; line-height: 1.6; margin-top: var(--space-2); } .report-requirement-explanation > p { background: var(--color-selected-soft); border: 1px solid #bfdbfe; line-height: 1.7; padding: var(--space-4); } .report-source-group { border-left: 3px solid var(--color-selected); margin-top: var(--space-5); padding-left: var(--space-4); } .report-source-channel { background: var(--color-bg-subtle); margin-top: var(--space-3); padding: var(--space-3) var(--space-4); } .report-source-channel ul { color: var(--color-text-muted); line-height: 1.8; margin-bottom: 0; } .signature-upload { align-items: center; border: 2px dashed var(--color-border); color: var(--color-text-muted); display: grid; gap: var(--space-2); justify-items: center; min-height: 170px; padding: var(--space-5); text-align: center; } .signature-upload > span:first-child { justify-self: start; color: var(--color-text-strong); font-weight: var(--font-weight-semibold); } .signature-upload svg { color: var(--color-text-muted); } .signature-upload strong { color: var(--color-selected); } .signature-upload small { color: var(--color-text-muted); } .signature-upload--compact { min-height: 118px; } .signature-file-line { align-items: center; display: flex; gap: var(--space-3); } .signature-file-line > span { color: var(--color-text-muted); font-weight: var(--font-weight-semibold); } .signature-file-line small { color: var(--color-text-muted); } .drainage-edit-form .signature-upload { min-height: 112px; } .drainage-form-note { align-items: flex-start; } .drainage-form-note ol { margin: 0; padding-left: var(--space-5); } .drainage-file-picker { display: grid; gap: var(--space-2); } .drainage-file-picker > span { color: var(--color-text-strong); font-weight: var(--font-weight-semibold); } .drainage-file-picker > div { align-items: center; display: grid; gap: var(--space-3); grid-template-columns: auto 1fr; } .drainage-file-picker em { background: var(--color-surface-subtle); color: var(--color-text-muted); font-style: normal; padding: var(--space-3) var(--space-4); } .mms-signature-table-card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); overflow: hidden; padding: 0; } .mms-signature-table-card .ui-table th { background: #e1e5ea; color: #7b8494; font-size: var(--font-size-sm); height: 58px; } .mms-signature-table-card .ui-table td { color: var(--color-text); height: 86px; } .mms-signature-table-card .ui-table th:first-child, .mms-signature-table-card .ui-table td:first-child { padding-left: var(--space-6); } .mms-signature-name { color: var(--color-text-strong); font-size: var(--font-size-lg); } .mms-signature-actions { align-items: center; display: flex; gap: var(--space-3); } .mms-signature-actions .ui-button:disabled { background: #f5f6f8; border-color: #e5e7eb; color: var(--color-text-subtle); opacity: 1; } .mms-signature-delete { border-color: rgba(239, 68, 68, 0.22); color: var(--color-danger); } .mms-signature-delete:hover { background: rgba(239, 68, 68, 0.06); border-color: rgba(239, 68, 68, 0.36); color: var(--color-danger); } .mms-pagination { align-items: center; display: flex; gap: var(--space-2); justify-content: center; padding: var(--space-3) 0; } .mms-pagination button { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-sm); color: var(--color-text); height: 36px; min-width: 36px; padding: 0 var(--space-3); transition: background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast); } .mms-pagination button:hover:not(:disabled), .mms-pagination button.active { background: var(--color-selected); border-color: var(--color-selected); color: var(--color-text-inverse); } .mms-pagination button:disabled { color: var(--color-text-subtle); } .mms-template-header { align-items: center; display: flex; justify-content: space-between; } .mms-template-header .sms-send-title { align-items: flex-start; } .mms-template-header p { color: var(--color-text-muted); margin-top: var(--space-2); } .mms-template-toolbar { align-items: center; display: grid; gap: var(--space-4); grid-template-columns: minmax(0, 1fr) auto; } .mms-template-grid { display: grid; gap: var(--space-4); grid-template-columns: repeat(3, minmax(320px, 1fr)); } .mms-template-card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); display: grid; grid-template-rows: auto auto; min-height: 0; overflow: hidden; position: relative; transition: border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast); } .mms-template-card:hover { border-color: rgba(37, 99, 235, 0.2); box-shadow: var(--shadow-sm); transform: translateY(-1px); } .mms-template-card::before { content: ""; inset: 0 auto 0 0; position: absolute; width: 5px; } .mms-template-card--green::before { background: var(--color-success); } .mms-template-card--blue::before { background: var(--color-selected); } .mms-template-card--gray::before { background: var(--color-text-subtle); } .mms-template-card__body { display: grid; gap: 10px; padding: var(--space-5) var(--space-5) var(--space-4); } .mms-template-meta { display: grid; gap: 7px; padding-right: 128px; } .mms-template-card h2 { color: var(--color-text-strong); font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); line-height: 1.3; } .mms-template-card h3 { color: var(--color-text-strong); font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); line-height: 1.28; margin-top: 1px; } .mms-template-code { color: var(--color-text-muted); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: var(--font-size-sm); line-height: 1.28; margin-bottom: 0; } .mms-template-card img { aspect-ratio: 16 / 7.2; border-radius: var(--radius-sm); display: block; object-fit: cover; width: 100%; } .mms-template-content { -webkit-box-orient: vertical; -webkit-line-clamp: 3; color: var(--color-text-muted); display: -webkit-box; line-height: 1.45; margin: 0; overflow: hidden; } .mms-template-app-tag { background: var(--color-selected-soft); border: 1px solid rgba(37, 99, 235, 0.16); border-radius: var(--radius-full); color: var(--color-selected); font-size: var(--font-size-xs); font-weight: var(--font-weight-semibold); padding: 5px 10px; position: absolute; right: var(--space-5); top: var(--space-5); z-index: 1; } .mms-template-status { display: grid; gap: 6px; margin-top: 2px; } .mms-template-status > span { color: var(--color-text-muted); font-size: var(--font-size-xs); font-weight: var(--font-weight-semibold); } .mms-template-status > div { align-items: center; display: flex; flex-wrap: wrap; gap: var(--space-4); grid-template-columns: repeat(3, minmax(0, 1fr)); } .mms-template-status section { align-items: center; display: inline-flex; gap: 5px; min-width: 0; } .mms-template-status small { color: var(--color-text-muted); font-size: var(--font-size-xs); } .mms-template-card__footer { align-items: center; background: #f4f6f8; border-top: 1px solid var(--color-border); display: flex; gap: var(--space-2); justify-content: space-between; min-height: 48px; padding: 0 var(--space-5); } .mms-template-card__footer > span { color: var(--color-text-muted); font-size: var(--font-size-sm); } .mms-template-card__footer div { align-items: center; display: flex; gap: var(--space-5); } .mms-template-card__footer button { align-items: center; background: transparent; border: 0; color: var(--color-selected); display: inline-flex; gap: 4px; font-weight: var(--font-weight-semibold); padding: 0; } .mms-template-card__footer button:nth-child(2) { color: var(--color-text-strong); } .mms-template-card__footer button:last-child { color: var(--color-danger); } .mms-template-modal-title h2 { font-size: var(--font-size-2xl); } .mms-template-modal-title p { color: var(--color-text-muted); line-height: 1.55; margin-top: var(--space-2); max-width: 980px; } .mms-template-form { display: grid; gap: var(--space-5); } .mms-template-form-grid { display: grid; gap: var(--space-5); grid-template-columns: repeat(2, minmax(0, 1fr)); } .mms-frame-header { align-items: center; display: flex; justify-content: space-between; } .mms-frame-header div { align-items: baseline; display: flex; gap: var(--space-2); } .mms-frame-header strong { color: var(--color-text-strong); } .mms-frame-header span { color: var(--color-text-muted); } .mms-frame-list { display: grid; gap: var(--space-5); } .mms-frame { background: #eef0f2; border: 1px solid var(--color-border); border-radius: var(--radius-md); display: grid; gap: var(--space-3); padding: var(--space-4); } .mms-frame__top { align-items: center; display: grid; gap: var(--space-3); grid-template-columns: auto 124px 1fr; } .mms-frame__top > strong { color: var(--color-text-strong); } .mms-frame__top > button { background: transparent; border: 0; color: var(--color-danger); justify-self: end; padding: 0; } .mms-frame-type .ui-field__label { display: none; } .mms-frame-type .ui-select button { background: var(--color-surface); } .mms-frame .ui-textarea { background: var(--color-surface); border-color: transparent; min-height: 106px; } .mms-file-drop { align-items: center; background: var(--color-surface); border: 2px dashed var(--color-border); color: var(--color-text-muted); display: grid; gap: var(--space-3); justify-items: center; min-height: 132px; padding: var(--space-5); text-align: center; } .mms-file-drop div { align-items: center; display: flex; gap: var(--space-3); } .mms-file-drop strong { color: var(--color-text-strong); } .mms-file-drop small { color: var(--color-text-muted); } .mms-save-button { background: #7c3aed; border-color: #7c3aed; } .mms-save-button:hover { background: #6d28d9; border-color: #6d28d9; } .mms-preview { display: grid; gap: var(--space-4); } .mms-preview img { aspect-ratio: 16 / 9; border-radius: var(--radius-md); object-fit: cover; width: 100%; } .mms-preview p { color: var(--color-text-muted); line-height: 1.75; } .mms-preview-frames { display: flex; flex-wrap: wrap; gap: var(--space-2); } .mms-preview-frames span { align-items: center; background: var(--color-bg-subtle); border: 1px solid var(--color-border); border-radius: var(--radius-full); color: var(--color-text-muted); display: inline-flex; gap: var(--space-1); min-height: 30px; padding: 0 var(--space-3); } .template-toolbar { align-items: center; display: grid; gap: var(--space-4); grid-template-columns: minmax(0, 1fr) auto; } .template-card-grid { display: grid; gap: var(--space-5); grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); min-width: 0; } .template-card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); display: grid; gap: var(--space-4); min-height: 300px; min-width: 0; overflow: hidden; padding: var(--space-6); position: relative; } .template-card::before { content: ""; inset: 0 auto 0 0; position: absolute; width: 5px; } .template-card--green::before { background: var(--color-success); } .template-card--blue::before { background: var(--color-selected); } .template-card--red::before { background: var(--color-danger); } .template-card h2 { color: var(--color-text-strong); font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); line-height: 1.3; } .template-hash { color: var(--color-text-muted); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; margin: 0; } .template-content { color: var(--color-text-strong); font-size: var(--font-size-lg); line-height: 1.65; margin: 0; } .template-vars { align-items: center; display: flex; flex-wrap: wrap; gap: var(--space-2); } .template-vars span { color: var(--color-text-muted); } .template-vars strong, .template-current-vars strong { background: #e8f0ff; border-radius: var(--radius-sm); color: var(--color-selected); font-weight: var(--font-weight-medium); padding: 5px 10px; } .template-card-footer { align-items: center; border-top: 1px solid var(--color-border); display: flex; flex-wrap: wrap; gap: var(--space-3); justify-content: space-between; margin-top: auto; padding-top: var(--space-4); } .template-card-footer span { color: var(--color-text-muted); } .template-card-footer div { display: flex; flex-wrap: wrap; gap: var(--space-3); } .template-card-footer button { background: transparent; border: 0; color: var(--color-selected); padding: 0; } .template-card-footer button:last-child { color: var(--color-danger); } .template-form { display: grid; gap: var(--space-5); } .template-form .ui-textarea { min-height: 220px; } .template-form-meta { align-items: center; display: flex; justify-content: space-between; } .template-form-meta button { background: transparent; border: 0; color: var(--color-selected); font-weight: var(--font-weight-semibold); padding: 0; } .template-form-meta span { color: var(--color-text-muted); } .template-variable-panel { border: 1px solid var(--color-border); display: grid; gap: var(--space-4); padding: var(--space-5); } .template-variable-panel h3 { font-size: var(--font-size-lg); } .template-variable-buttons { display: flex; flex-wrap: wrap; gap: var(--space-3); } .template-variable-buttons button { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-sm); color: var(--color-text); min-height: 36px; padding: 0 var(--space-4); } .template-variable-buttons button:hover { border-color: var(--color-selected); color: var(--color-selected); } .template-custom-variable { display: grid; gap: var(--space-3); grid-template-columns: minmax(0, 1fr) 96px; } .template-info-tip { align-items: center; background: var(--color-selected-soft); border-left: 4px solid var(--color-selected); color: var(--color-text); display: flex; gap: var(--space-3); line-height: 1.7; padding: var(--space-4); } .template-info-tip svg { color: var(--color-selected); flex: 0 0 auto; } .template-current-vars { align-items: center; display: flex; flex-wrap: wrap; gap: var(--space-2); } .task-detail-title h2 { font-size: 22px; } .task-stat-layout { display: grid; gap: 14px; grid-template-columns: minmax(280px, 0.9fr) minmax(0, 1.4fr); } .task-progress-card { background: linear-gradient(180deg, rgba(37, 99, 235, 0.08), transparent 64%), #ffffff; border: 1px solid #dbe7ff; border-radius: var(--radius-md); display: grid; gap: 14px; padding: 20px; } .task-progress-card span, .task-stat-list span { color: #7b8494; font-size: var(--font-size-xs); font-weight: var(--font-weight-medium); } .task-progress-card strong { color: var(--color-selected); font-size: 42px; line-height: 1; } .task-progress-card small { color: #7b8494; } .task-stat-list { background: #ffffff; border: 1px solid #e7ebf2; border-radius: var(--radius-md); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: hidden; } .task-stat-list > div { align-content: center; border-right: 1px solid #edf0f5; display: grid; gap: 10px; min-height: 138px; padding: 20px; } .task-stat-list > div:last-child { border-right: 0; } .task-stat-list strong { color: #18202f; font-size: 28px; line-height: 1; } .overall-rate-card { min-height: 188px; } .overall-rate-split { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(120px, 1fr)); width: min(420px, 100%); } .overall-rate-split div { background: rgba(255, 255, 255, 0.78); border: 1px solid rgba(209, 213, 219, 0.72); border-radius: var(--radius-md); display: grid; gap: 4px; justify-items: center; padding: 12px; } .overall-rate-split b { color: #18202f; font-size: 18px; } .rate-tone-low, .rate-tone-low .batch-progress__bar { --rate-color: var(--color-danger); } .rate-tone-medium, .rate-tone-medium .batch-progress__bar { --rate-color: var(--color-warning); } .rate-tone-high, .rate-tone-high .batch-progress__bar { --rate-color: var(--color-success); } .overall-rate-card.rate-tone-low { background: linear-gradient(180deg, rgba(220, 38, 38, 0.09), transparent 58%), #ffffff; border-color: rgba(220, 38, 38, 0.28); } .overall-rate-card.rate-tone-medium { background: linear-gradient(180deg, rgba(217, 119, 6, 0.1), transparent 58%), #ffffff; border-color: rgba(217, 119, 6, 0.28); } .overall-rate-card.rate-tone-high { background: linear-gradient(180deg, rgba(22, 163, 74, 0.09), transparent 58%), #ffffff; border-color: rgba(22, 163, 74, 0.26); } .overall-rate-card.rate-tone-low strong, .carrier-rate-card.rate-tone-low > div:first-child span, .rate-text.rate-tone-low { color: var(--color-danger) !important; } .overall-rate-card.rate-tone-medium strong, .carrier-rate-card.rate-tone-medium > div:first-child span, .rate-text.rate-tone-medium { color: var(--color-warning) !important; } .overall-rate-card.rate-tone-high strong, .carrier-rate-card.rate-tone-high > div:first-child span, .rate-text.rate-tone-high { color: var(--color-success) !important; } .rate-text { font-weight: var(--font-weight-semibold); } .carrier-rate-card .batch-progress__bar, .city-rate-table .batch-progress__bar { background: var(--rate-color, var(--color-success)); } .detail-message { color: var(--color-text-muted); display: block; max-width: 330px; } .receipt { color: var(--color-success); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: var(--font-size-xs); font-weight: var(--font-weight-semibold); } .receipt--failed { color: var(--color-danger); } .content-grid { display: grid; gap: var(--space-5); grid-template-columns: minmax(0, 1.4fr) minmax(300px, 0.6fr); } .soft-panel { background: var(--color-bg-subtle); border: 1px solid var(--color-border); border-radius: var(--radius-lg); min-width: 0; padding: var(--space-5); } .soft-panel h3 { margin-bottom: var(--space-3); } .summary-list { display: grid; gap: var(--space-3); } .summary-list div { align-items: center; display: flex; justify-content: space-between; } .summary-list span { color: var(--color-text-muted); } .summary-list strong { color: var(--color-text-strong); } .plan-grid { display: grid; gap: var(--space-4); grid-template-columns: repeat(3, minmax(0, 1fr)); } .plan-card { border: 1px solid var(--color-border); border-radius: var(--radius-lg); display: grid; gap: var(--space-4); padding: var(--space-5); } .plan-card--highlight { border-color: rgba(217, 195, 160, 0.78); box-shadow: 0 0 0 3px rgba(217, 195, 160, 0.18); } .plan-card strong { color: var(--color-text-strong); font-size: 26px; line-height: var(--line-height-tight); } .muted { color: var(--color-text-muted); } .text-strong { color: var(--color-text-strong); } .status-success { color: var(--color-success); } .status-warning { color: var(--color-warning); } .status-danger { color: var(--color-danger); } .status-info { color: var(--color-info); } .empty-state { align-items: center; display: grid; justify-items: center; min-height: 240px; text-align: center; } .empty-state strong { color: var(--color-text-strong); font-size: var(--font-size-lg); } .empty-state span { color: var(--color-text-muted); margin-top: var(--space-2); } .login-page { position: relative; isolation: isolate; min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1fr); place-items: center; padding: 36px 20px; background: radial-gradient(circle at 18% 16%, rgba(37, 99, 235, 0.12), transparent 32%), radial-gradient(circle at 82% 14%, rgba(16, 185, 129, 0.1), transparent 30%), linear-gradient(135deg, rgba(37, 99, 235, 0.08), rgba(15, 23, 42, 0.04)), var(--color-bg); } .client-login-canvas { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; pointer-events: none; } .login-panel { position: relative; z-index: 1; box-sizing: border-box; max-width: 428px; min-width: 0; width: 100%; padding: 34px 34px 30px; border: 1px solid rgba(148, 163, 184, 0.24); border-radius: 8px; background: var(--color-surface); box-shadow: 0 26px 70px rgba(15, 23, 42, 0.14); } .login-brand { display: grid; justify-items: center; gap: 14px; margin-bottom: 30px; text-align: center; } .login-brand img { display: block; width: 178px; height: 64px; object-fit: contain; } .login-brand h1 { margin: 0; color: var(--color-text-strong); font-size: 24px; font-weight: 800; letter-spacing: 0; line-height: 1.15; } .login-brand p { margin: 8px 0 0; color: var(--color-text-muted); font-size: 15px; font-weight: 500; } .login-form { display: grid; gap: 17px; } .login-captcha-row { display: grid; grid-template-columns: 1fr 136px; gap: 12px; align-items: end; } .login-captcha { height: 40px; border: 1px solid var(--color-border); border-radius: 8px; background: linear-gradient(180deg, #fff, var(--color-surface-muted)); color: var(--color-text-strong); font-weight: 700; cursor: pointer; } .login-error { margin: 0; padding: 10px 12px; border-radius: 8px; color: var(--color-danger); background: rgba(239, 68, 68, 0.1); } .login-session-notice { margin: 0; padding: 10px 12px; border: 1px solid rgba(37, 99, 235, 0.2); border-radius: 8px; color: var(--color-text-strong); background: rgba(37, 99, 235, 0.08); line-height: 1.6; } .page-loading-state { min-height: 100vh; display: grid; place-items: center; color: var(--color-text-muted); background: var(--color-surface-muted); } .login-alert-message { margin: 0; color: var(--color-text-strong); line-height: 1.7; } .system-page { gap: 28px; } .system-page-toolbar { align-items: center; display: flex; justify-content: space-between; } .system-log-export { align-items: flex-end; display: flex; flex-direction: column; gap: 8px; max-width: min(100%, 680px); } .system-log-export__result, .system-log-export__error { align-items: center; border-radius: var(--radius-md); display: flex; font-size: 13px; gap: 8px; justify-content: space-between; padding: 8px 10px; } .system-log-export__result { background: var(--color-success-soft); color: var(--color-success-strong); } .system-log-export__error { background: var(--color-danger-soft); color: var(--color-danger-strong); } .risk-action-content { display: grid; gap: 18px; } .risk-action-content section { display: grid; gap: 8px; } .risk-action-content h3 { font-size: 14px; margin: 0; } .risk-action-content ul { margin: 0; padding-left: 20px; } .risk-action-identity { background: var(--color-surface-muted); border-radius: var(--radius-lg); display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 14px; } .risk-action-identity div { display: grid; gap: 3px; min-width: 0; } .risk-action-identity span { color: var(--color-text-muted); font-size: 12px; } .risk-action-identity strong { overflow-wrap: anywhere; } .risk-action-blockers { color: var(--color-danger-strong); list-style: none; padding: 0 !important; } .risk-action-blockers li, .risk-action-passed { align-items: center; display: flex; gap: 7px; } .risk-action-passed { color: var(--color-success-strong); margin: 0; } .risk-action-result { align-items: center; background: var(--color-success-soft); border-radius: var(--radius-lg); color: var(--color-success-strong); display: flex; gap: 10px; padding: 14px; } .risk-action-result div { display: grid; gap: 4px; } .risk-action-result span { font-size: 12px; overflow-wrap: anywhere; } @media (max-width: 640px) { .risk-action-identity { grid-template-columns: 1fr; } } .delete-risk-dependencies { display: grid; gap: 8px; list-style: none; padding: 0 !important; } .delete-risk-dependencies li { align-items: center; background: var(--color-surface-muted); border-radius: var(--radius-md); display: grid; gap: 3px; grid-template-columns: 1fr auto; padding: 10px 12px; } .delete-risk-dependencies small { color: var(--color-text-muted); grid-column: 1 / -1; overflow-wrap: anywhere; } .delete-risk-selections { display: grid; gap: 10px; } .delete-risk-selections > h3, .delete-risk-selections > p { margin: 0; } .delete-risk-selections label { align-items: flex-start; background: var(--color-surface-muted); border: 1px solid var(--color-border); border-radius: var(--radius-md); cursor: pointer; display: flex; gap: 10px; padding: 11px 12px; } .delete-risk-selections input { flex: 0 0 auto; margin-top: 3px; } .delete-risk-selections label > span { display: grid; gap: 4px; } .delete-risk-selections small { color: var(--color-text-muted); line-height: 1.55; } .delete-risk-action .ui-textarea { min-height: 88px; } @media (max-width: 640px) { .system-page-toolbar { align-items: stretch; flex-direction: column; } .system-log-export { align-items: stretch; max-width: none; } .system-log-export > .ui-button { min-height: 44px; width: 100%; } .system-log-export__result, .system-log-export__error { align-items: stretch; flex-direction: column; } } .system-filter-row { max-width: 520px; } .system-log-filters { align-items: end; display: grid; gap: 22px; grid-template-columns: minmax(320px, 1fr) minmax(220px, 0.32fr) minmax(220px, 0.32fr); } .system-log-range { align-items: center; display: flex; flex-wrap: wrap; gap: 12px; } .system-log-range > span { align-items: center; color: var(--color-text-muted); display: inline-flex; gap: 8px; } .system-table-card { overflow: hidden; padding: 0; } .system-table-card .ui-table-wrap { border: 0; border-radius: 0; } .system-table-card .ui-table { min-width: 1080px; } .system-table-card .ui-table th { background: #e5e7eb; color: #7b8494; height: 58px; } .system-table-card .ui-table td { height: 72px; } .system-table-card .ui-table tbody tr:nth-child(odd) td { background: #ffffff; } .system-table-card .ui-table tbody tr:nth-child(even) td { background: #fbfcfe; } .system-table-card .ui-table tbody tr:hover td { background: #f2f5fa; } .inline-actions { align-items: center; display: flex; gap: 12px; } .system-user-form { display: grid; gap: 24px; padding-bottom: 96px; } .system-user-form .ui-field__label { color: var(--color-text-strong); font-weight: var(--font-weight-semibold); } .system-log-detail { color: var(--color-text-muted); line-height: 1.6; } .system-log-detail-card { background: var(--color-bg-subtle); border: 1px solid var(--color-border); border-radius: var(--radius-md); display: grid; gap: var(--space-1); line-height: 1.55; max-width: 360px; padding: var(--space-3); } .system-log-detail-card strong { color: var(--color-text-strong); font-size: var(--font-size-sm); } .system-log-detail-card span { color: var(--color-text-muted); } .system-log-detail-card small { color: var(--color-selected); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: var(--font-size-xs); } .protocol-log-hint { background: var(--color-info-soft); border: 1px solid color-mix(in srgb, var(--color-info) 24%, transparent); border-radius: var(--radius-md); color: var(--color-text); font-size: var(--font-size-sm); padding: var(--space-3) var(--space-4); } .protocol-log-filters { grid-template-columns: minmax(260px, 1.4fr) repeat(4, minmax(135px, .55fr)); } .protocol-log-table .ui-table { min-width: 1320px; } .protocol-log-table .ui-table th:last-child, .protocol-log-table .ui-table td:last-child { background: var(--color-surface); box-shadow: -10px 0 18px -18px rgba(15, 23, 42, .6); position: sticky; right: 0; z-index: 1; } .protocol-log-identifiers, .protocol-log-result { display: grid; gap: 4px; } .protocol-log-identifiers small, .protocol-log-result small { color: var(--color-text-muted); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; overflow-wrap: anywhere; } .protocol-log-detail { display: grid; gap: var(--space-3); margin: 0; } .protocol-log-detail > div { display: grid; gap: var(--space-1); grid-template-columns: minmax(130px, .35fr) minmax(0, 1fr); } .protocol-log-detail dt { color: var(--color-text-muted); } .protocol-log-detail dd { margin: 0; overflow-wrap: anywhere; } @media (max-width: 1024px) { .protocol-log-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (max-width: 640px) { .protocol-log-filters { grid-template-columns: 1fr; } .protocol-log-detail > div { grid-template-columns: 1fr; } } .enterprise-page { gap: 28px; } .enterprise-page-title { color: var(--color-text-strong); font-size: var(--font-size-2xl); font-weight: var(--font-weight-semibold); margin: 0; } .enterprise-status-card { align-items: center; display: flex; gap: 14px; min-height: 96px; padding: 0 34px; } .enterprise-status-card strong { color: var(--color-text-strong); font-size: var(--font-size-md); } .enterprise-status-card--pending { border-color: rgba(37, 99, 235, 0.26); } .enterprise-status-card--approved { border-color: rgba(22, 163, 74, 0.28); } .enterprise-status-card--rejected { border-color: rgba(220, 38, 38, 0.28); } .enterprise-review-status { align-items: center; border-radius: var(--radius-full); display: inline-flex; font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); min-height: 30px; padding: 0 var(--space-3); } .enterprise-review-status--uncertified { background: var(--color-surface-muted); color: var(--color-text-muted); } .enterprise-review-status--pending { background: var(--color-info-soft); color: var(--color-info); } .enterprise-review-status--approved { background: var(--color-success-soft); color: var(--color-success); } .enterprise-review-status--rejected { background: var(--color-danger-soft); color: var(--color-danger); } .enterprise-status-card button, .enterprise-result button { align-items: center; background: transparent; border: 0; color: var(--color-selected); display: inline-flex; font-weight: var(--font-weight-semibold); gap: 4px; } .enterprise-info-card { padding: 44px 54px; } .enterprise-info-card dl { display: grid; gap: 34px 120px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; max-width: 1120px; } .enterprise-info-card div, .enterprise-result dl div { display: grid; gap: 14px; grid-template-columns: 170px minmax(0, 1fr); } .enterprise-info-card dt, .enterprise-result dt { color: var(--color-text-muted); font-weight: var(--font-weight-semibold); } .enterprise-info-card dd, .enterprise-result dd { color: var(--color-text-strong); font-weight: var(--font-weight-semibold); margin: 0; } .enterprise-flow-card { min-height: 700px; padding: 46px 54px; } .enterprise-stepper { align-items: center; display: flex; justify-content: center; margin-bottom: 82px; } .enterprise-stepper__item { align-items: center; display: flex; gap: 14px; } .enterprise-stepper__dot { align-items: center; background: #d1d5db; border-radius: var(--radius-full); color: #8b95a5; display: inline-flex; font-weight: var(--font-weight-bold); height: 44px; justify-content: center; width: 44px; } .enterprise-stepper__dot.is-active, .enterprise-stepper__dot.is-complete { background: var(--color-selected); color: #ffffff; } .enterprise-stepper__item strong { color: #8b95a5; font-size: var(--font-size-md); } .enterprise-stepper__item strong.is-active { color: var(--color-text-strong); } .enterprise-stepper__arrow { color: #8b95a5; margin: 0 28px; } .enterprise-form-panel, .enterprise-verify-panel, .enterprise-face-panel { display: grid; gap: 26px; margin-left: 0; max-width: 920px; } .enterprise-form-panel { margin-left: 0; } .enterprise-required, .enterprise-address-selects > span { color: var(--color-text-strong); font-size: var(--font-size-md); font-weight: var(--font-weight-semibold); } .enterprise-required::first-letter, .enterprise-address-selects > span::first-letter { color: var(--color-danger); } .enterprise-upload { align-items: center; border: 2px dashed #dfe4ec; color: var(--color-selected); display: grid; gap: 12px; height: 176px; justify-items: center; max-width: 920px; } .enterprise-upload strong { color: var(--color-selected); font-size: var(--font-size-md); } .enterprise-help, .enterprise-form-note, .enterprise-verify-panel small { color: var(--color-text-muted); line-height: 1.7; margin: -12px 0 0; } .enterprise-address-selects { display: grid; gap: 12px; } .enterprise-address-selects > div { display: flex; gap: 16px; } .enterprise-address-selects .ui-field { min-width: 140px; width: 236px; } .enterprise-actions { align-items: center; display: flex; gap: 16px; justify-content: flex-end; margin-top: 16px; } .enterprise-actions--center { justify-content: center; } .enterprise-method-panel { display: grid; gap: 24px; margin: 0 auto; max-width: 1060px; width: 100%; } .enterprise-method-card { align-items: center; background: #ffffff; border: 1px solid #e1e6ef; border-radius: var(--radius-sm); display: grid; gap: 22px; grid-template-columns: 88px minmax(0, 1fr); min-height: 168px; padding: 34px; text-align: left; } .enterprise-method-card.is-selected { border-color: var(--color-selected); box-shadow: inset 0 0 0 1px rgba(37, 99, 235, 0.35); } .enterprise-method-card svg { color: #c8d0dc; } .enterprise-method-card strong { color: var(--color-text-strong); font-size: 20px; } .enterprise-method-card strong span, .enterprise-verify-copy em, .enterprise-info-alert em, .enterprise-qr-section em { color: #ff7a00; font-style: normal; } .enterprise-method-card p { color: var(--color-text-muted); font-size: var(--font-size-md); line-height: 1.75; margin: 4px 0 0; } .enterprise-verify-panel, .enterprise-face-panel { margin-left: 0; } .enterprise-verify-panel > p, .enterprise-face-panel > p { align-items: center; display: flex; gap: 28px; margin: 0; } .enterprise-verify-panel > p span, .enterprise-face-panel > p span { color: var(--color-text-muted); font-weight: var(--font-weight-semibold); } .enterprise-verify-copy { color: var(--color-text-muted); line-height: 1.8; margin-top: 18px !important; } .enterprise-verify-copy em:first-of-type { color: var(--color-danger); } .enterprise-verify-panel h2, .enterprise-face-panel h2 { color: var(--color-text-strong); font-size: 22px; margin: 24px 0 0; } .enterprise-info-alert { align-items: flex-start; background: #eff6ff; border: 1px solid #bfdbfe; color: #344054; display: flex; gap: 14px; line-height: 1.8; margin-top: 24px; max-width: 920px; padding: 22px; } .enterprise-info-alert svg { color: var(--color-selected); flex: 0 0 auto; margin-top: 3px; } .enterprise-face-panel { max-width: 920px; } .enterprise-qr-section { display: grid; gap: 22px; justify-items: center; margin-top: 36px; text-align: center; } .enterprise-legal-summary { display: grid; gap: 22px; margin: 0; } .enterprise-legal-summary div { display: flex; gap: 28px; } .enterprise-legal-summary dt { color: var(--color-text-muted); min-width: 150px; } .enterprise-legal-summary dd { color: var(--color-text-strong); margin: 0; } .enterprise-qr-section h2, .enterprise-qr-section p { justify-self: start; margin: 0; text-align: left; } .enterprise-qr-section p { color: var(--color-text-muted); line-height: 1.8; } .enterprise-qr { align-items: center; border: 2px solid #e1e5ec; color: #ff4040; display: flex; font-size: 34px; height: 280px; justify-content: center; width: 280px; } .enterprise-qr-section > span { color: var(--color-text-muted); } .enterprise-success-test { background: var(--color-success); border-color: var(--color-success); } .enterprise-result { align-items: center; display: grid; justify-items: center; min-height: 610px; text-align: center; } .enterprise-result > span { align-items: center; border-radius: var(--radius-full); display: inline-flex; justify-content: center; } .enterprise-result--success > span, .enterprise-result--pending > span { background: #00bb38; color: #ffffff; height: 132px; width: 132px; } .enterprise-result--pending > span { background: var(--color-selected); } .enterprise-result--failed > span { border: 5px solid #ff4040; color: #ff4040; font-size: 62px; height: 132px; width: 132px; } .enterprise-result h2 { color: var(--color-text-strong); font-size: 28px; margin: 28px 0 22px; } .enterprise-result dl { display: grid; gap: 22px; margin: 0 0 50px; text-align: left; } .enterprise-result--failed p { color: var(--color-text-muted); margin: 0; } .enterprise-result--failed > strong { color: #ff7a00; font-size: 26px; margin: 14px 0 26px; } .admin-dashboard-hero { background: #ffffff; border: 1px solid var(--color-border); color: var(--color-text); } .admin-dashboard-hero h1 { color: var(--color-text-strong); } .admin-dashboard-main-grid { grid-template-columns: minmax(0, 1fr) minmax(360px, 0.72fr); } .admin-metric-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } .admin-workload-grid { display: grid; gap: var(--space-3); grid-template-columns: repeat(4, minmax(0, 1fr)); } .admin-workload-card { background: #fbfcff; border: 1px solid #edf0f5; border-radius: var(--radius-md); display: grid; gap: var(--space-2); justify-items: start; min-height: 112px; padding: var(--space-4); text-align: left; transition: background var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast); } .admin-workload-card:hover { background: #f3f7ff; border-color: rgba(37, 99, 235, 0.24); transform: translateY(-1px); } .admin-workload-card strong { color: var(--color-text-strong); font-size: 28px; line-height: 1; } .admin-workload-card span:not(.ui-tag) { color: var(--color-text-muted); font-size: var(--font-size-xs); } .admin-alert-list { display: grid; gap: var(--space-3); } .admin-alert { border: 1px solid #edf0f5; border-left-width: 4px; border-radius: var(--radius-md); display: grid; gap: var(--space-2); padding: var(--space-4); } .admin-alert--danger { border-left-color: var(--color-danger); } .admin-alert--warning { border-left-color: var(--color-warning); } .admin-alert--info { border-left-color: var(--color-selected); } .admin-alert > div { align-items: center; display: flex; gap: var(--space-3); justify-content: space-between; } .admin-alert strong { color: var(--color-text-strong); } .admin-alert span, .admin-alert p { color: var(--color-text-muted); } .admin-alert p { line-height: 1.6; margin: 0; } .enterprise-summary-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } .enterprise-query-grid { grid-template-columns: minmax(180px, 1fr) minmax(220px, 1fr) minmax(180px, 1fr) auto; } .enterprise-query-actions { align-items: end; display: flex; gap: var(--space-3); } .enterprise-inline-tag { margin-left: var(--space-2); } .enterprise-form { display: grid; gap: var(--space-5); } .enterprise-form-page { max-width: 1120px; } .enterprise-form-card { display: grid; gap: var(--space-6); } .enterprise-upload-panel { align-items: center; display: grid; gap: var(--space-4); grid-template-columns: 120px 176px minmax(0, 1fr); } .enterprise-upload-panel > span { color: var(--color-text-strong); font-weight: var(--font-weight-semibold); } .enterprise-upload-panel button, .enterprise-upload-button { align-items: center; background: #ffffff; border: 1px dashed var(--color-border-strong); border-radius: var(--radius-md); color: var(--color-selected); display: grid; gap: var(--space-2); height: 142px; justify-items: center; text-align: center; } .enterprise-upload-button { min-width: 0; overflow-wrap: anywhere; padding: var(--space-3); width: 176px; } .enterprise-upload-panel p { color: var(--color-text-muted); line-height: var(--line-height-base); margin: 0; } .enterprise-info-tip { background: var(--color-selected-soft); border: 1px solid #bfdbfe; border-radius: var(--radius-md); color: var(--color-text); padding: var(--space-4); } .admin-enterprise-detail { max-width: 1320px; } .admin-detail-backbar { align-items: center; display: flex; gap: var(--space-4); } .admin-detail-backbar > span { color: var(--color-text-muted); font-weight: var(--font-weight-semibold); } .admin-enterprise-profile { display: grid; gap: var(--space-6); } .admin-enterprise-profile__main { align-items: center; display: flex; gap: var(--space-4); } .admin-enterprise-profile__icon { align-items: center; background: var(--color-selected-soft); border-radius: var(--radius-md); color: var(--color-selected); display: inline-flex; height: 52px; justify-content: center; width: 52px; } .admin-enterprise-profile h1 { font-size: 28px; margin: 0 0 var(--space-1); } .admin-enterprise-profile p { color: var(--color-text-muted); margin: 0; } .admin-enterprise-profile > .ui-button { justify-self: end; margin-top: -72px; } .admin-enterprise-profile dl { display: grid; gap: var(--space-5); grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; } .admin-enterprise-profile dt { color: var(--color-text-muted); font-size: 13px; margin-bottom: var(--space-2); } .admin-enterprise-profile dd { color: var(--color-text-strong); font-size: 18px; font-weight: var(--font-weight-semibold); margin: 0; } .admin-business-tabs { background: var(--color-surface-muted); border: 1px solid var(--color-border); border-radius: var(--radius-lg); display: grid; gap: var(--space-2); grid-template-columns: repeat(2, minmax(0, 1fr)); margin-inline: auto; max-width: 560px; padding: var(--space-2); } .admin-business-tabs button { align-items: center; background: transparent; border: 0; border-radius: var(--radius-md); color: var(--color-text-muted); display: flex; font-weight: var(--font-weight-semibold); justify-content: center; min-height: 44px; } .admin-business-tabs button.active { background: var(--color-surface); box-shadow: var(--shadow-sm); color: var(--color-selected); } .admin-app-grid { display: grid; gap: var(--space-4); grid-template-columns: repeat(3, minmax(0, 1fr)); } .admin-app-card { border: 1px solid var(--color-border); border-radius: var(--radius-lg); display: grid; gap: var(--space-4); padding: var(--space-5); } .admin-app-card header { align-items: center; display: flex; gap: var(--space-3); justify-content: space-between; } .admin-app-card h3 { font-size: 20px; margin: 0; } .admin-app-card header button { align-items: center; background: var(--color-border-strong); border: 0; border-radius: 999px; color: var(--color-text-muted); display: inline-flex; font-size: 13px; font-weight: var(--font-weight-semibold); gap: var(--space-2); padding: 5px 10px; } .admin-app-card header button.is-on { background: var(--color-selected-soft); color: var(--color-selected); } .admin-app-card dl { display: grid; gap: var(--space-3); margin: 0; } .admin-app-card dl div { align-items: center; display: flex; justify-content: space-between; } .admin-app-card dt { color: var(--color-text-muted); font-weight: var(--font-weight-semibold); } .admin-app-card dd { color: var(--color-text-strong); font-weight: var(--font-weight-semibold); margin: 0; } .admin-app-card footer { border-top: 1px solid var(--color-border); display: grid; gap: var(--space-3); grid-template-columns: repeat(2, minmax(0, 1fr)); padding-top: var(--space-4); } .admin-section-footer { align-items: center; display: flex; justify-content: flex-end; } .admin-mms-signature-summary { grid-template-columns: 28px 1.4fr 1fr 1fr 1fr 1fr 130px; } .admin-signature-spacer { width: 28px; } .admin-report-detail { display: grid; gap: var(--space-5); } .admin-report-tabs { background: var(--color-bg-subtle); border: 1px solid var(--color-border); border-radius: var(--radius-md); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: hidden; } .admin-report-tabs button { align-items: center; background: transparent; border: 0; color: var(--color-text-muted); display: grid; gap: var(--space-2); justify-items: center; min-height: 86px; padding: var(--space-4); } .admin-report-tabs button.active { background: var(--color-surface); box-shadow: var(--shadow-sm); } .admin-report-tabs strong { font-size: 18px; } .admin-report-carrier--mobile strong { color: var(--color-selected); } .admin-report-carrier--unicom strong { color: var(--color-warning); } .admin-report-carrier--telecom strong { color: var(--color-success); } .admin-report-tabs span { align-items: center; display: inline-flex; gap: 6px; margin-inline: 4px; } .admin-report-tabs i { border-radius: 999px; display: inline-block; height: 8px; width: 8px; } .admin-report-tabs i.is-success { background: var(--color-success); } .admin-report-tabs i.is-info { background: var(--color-selected); } .admin-report-tabs i.is-danger { background: var(--color-danger); } .admin-report-carrier-detail { display: grid; gap: var(--space-4); } .admin-report-carrier-title { align-items: center; border: 1px solid var(--color-border); border-radius: var(--radius-md); display: flex; justify-content: space-between; padding: var(--space-4); } .admin-report-carrier-title div { align-items: center; display: flex; gap: var(--space-3); } .admin-report-carrier-title strong { color: var(--color-selected); font-size: 18px; } .admin-report-carrier-title span, .admin-report-carrier-title p { color: var(--color-text-muted); } .admin-report-carrier-title p { display: flex; gap: var(--space-4); margin: 0; } .admin-report-carrier-title p span { color: var(--color-success); font-weight: var(--font-weight-semibold); } .admin-report-carrier-title p em { color: var(--color-selected); font-style: normal; font-weight: var(--font-weight-semibold); } .admin-report-record-list { display: grid; gap: var(--space-4); } .admin-report-record-list article { border: 1px solid var(--color-border); border-radius: var(--radius-md); display: grid; gap: var(--space-3); padding: var(--space-5); } .admin-report-record-list h4 { align-items: center; color: var(--color-text-strong); display: flex; gap: var(--space-3); margin: 0; } .admin-report-record-list p { color: var(--color-text-muted); margin: 0; } .admin-report-record-list p span { color: var(--color-text); margin-left: var(--space-2); } .admin-drainage-report-meta { display: grid; gap: var(--space-2); } .admin-drainage-report-meta p { color: var(--color-text); margin: 0; } .admin-drainage-report-meta a { color: var(--color-selected); font-weight: var(--font-weight-semibold); } .admin-app-form-page { max-width: 1120px; } .admin-app-form-card { display: grid; gap: var(--space-6); } .admin-app-form-grid { display: grid; gap: var(--space-5); grid-template-columns: repeat(2, minmax(0, 1fr)); } .admin-app-form-tip { align-items: flex-start; background: var(--color-selected-soft); border: 1px solid #bfdbfe; border-radius: var(--radius-md); color: var(--color-text); display: flex; gap: var(--space-3); line-height: var(--line-height-base); padding: var(--space-4); } .admin-app-form-tip svg { color: var(--color-selected); flex: 0 0 auto; margin-top: 2px; } .admin-app-protocol-section { border-top: 3px solid #4f6fae; overflow: hidden; } .admin-app-protocol-section--http { border-top-color: #178367; } .admin-app-protocol-header { align-items: flex-start; } .admin-app-protocol-heading { align-items: flex-start; display: flex; gap: var(--space-3); min-width: 0; } .admin-app-protocol-heading > div { min-width: 0; } .admin-app-protocol-heading p { color: var(--color-text-muted); line-height: var(--line-height-base); margin: 5px 0 0; } .admin-app-protocol-icon { align-items: center; background: #edf3ff; border: 1px solid #d7e2f8; border-radius: var(--radius-md); color: #3d5f9d; display: inline-flex; flex: 0 0 auto; height: 38px; justify-content: center; width: 38px; } .admin-app-protocol-section--http .admin-app-protocol-icon { background: #eaf7f2; border-color: #cce9dd; color: #17745d; } .admin-app-protocol-section--http .admin-switch.is-on { color: #17745d; } .admin-app-protocol-section--http .admin-switch.is-on span { background: #178367; } .admin-app-protocol-body { padding-top: var(--space-1); } .admin-app-protocol-empty { background: var(--color-bg-subtle); border: 1px dashed var(--color-border-strong); border-radius: var(--radius-md); color: var(--color-text-muted); line-height: var(--line-height-base); padding: var(--space-5); text-align: center; } .admin-app-form-price-note { color: var(--color-selected); font-weight: var(--font-weight-semibold); } .admin-app-route-grid { display: grid; gap: var(--space-4); grid-template-columns: repeat(3, minmax(0, 1fr)); } .admin-app-route-card { border: 1px solid var(--color-border); border-radius: var(--radius-md); display: grid; gap: var(--space-4); min-width: 0; padding: var(--space-4); } .admin-app-route-card.is-selected { background: var(--color-selected-soft); border-color: #bfdbfe; } .admin-app-route-card header { align-items: flex-start; display: grid; gap: var(--space-3); grid-template-columns: auto minmax(0, 1fr) auto; } .admin-app-route-card header > span:first-child { align-items: center; background: #ffffff; border: 1px solid var(--color-border); border-radius: var(--radius-md); color: var(--color-selected); display: inline-flex; height: 34px; justify-content: center; width: 34px; } .admin-app-route-card header strong, .admin-app-route-card header small { display: block; } .admin-app-route-card header small, .admin-app-route-card p { color: var(--color-text-muted); line-height: var(--line-height-base); margin: 0; } .admin-switch { align-items: center; background: transparent; border: 0; color: var(--color-text-muted); display: inline-flex; gap: var(--space-3); justify-self: start; } .admin-switch span { background: var(--color-border-strong); border-radius: 999px; display: inline-flex; height: 24px; position: relative; width: 44px; } .admin-switch span::after { background: var(--color-surface); border-radius: 999px; box-shadow: var(--shadow-sm); content: ""; height: 18px; left: 3px; position: absolute; top: 3px; transition: transform var(--transition-fast); width: 18px; } .admin-switch.is-on { color: var(--color-selected); } .admin-switch.is-on span { background: var(--color-selected); } .admin-switch.is-on span::after { transform: translateX(20px); } .breadcrumb-line { align-items: center; align-self: flex-start; display: flex; gap: var(--space-4); max-width: 100%; min-height: 40px; } .breadcrumb-line__icon { align-items: center; background: var(--color-selected-soft); border-radius: var(--radius-sm); color: var(--color-selected); display: inline-flex; flex: 0 0 auto; height: 40px; justify-content: center; width: 40px; } .breadcrumb-line h1 { align-items: center; color: var(--color-text-strong); display: flex; font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); gap: var(--space-4); letter-spacing: 0; line-height: 1.25; margin: 0; min-width: 0; } .page-heading > div:has(.breadcrumb-line) > h1 { display: none; } .channel-report-heading h1 { display: none; } .channel-route-modal__title { align-items: center; display: flex; gap: var(--space-3); } .channel-route-modal__title > span { align-items: center; background: var(--color-surface-subtle); border: 1px solid var(--color-border); border-radius: var(--radius-md); color: var(--color-selected); display: inline-flex; height: 40px; justify-content: center; width: 40px; } .channel-route-modal__title h2, .channel-route-modal__title p { margin: 0; } .channel-route-modal__title p { color: var(--color-text-muted); font-size: var(--font-size-sm); margin-top: var(--space-1); } .channel-route-modal__empty { background: var(--color-surface-subtle); border: 1px dashed var(--color-border-strong); border-radius: var(--radius-md); color: var(--color-text-muted); margin: 0; padding: var(--space-4); } .channel-route-modal__selected { align-items: center; background: color-mix(in srgb, var(--color-success) 8%, var(--color-surface)); border: 1px solid color-mix(in srgb, var(--color-success) 35%, var(--color-border)); border-radius: var(--radius-md); color: var(--color-success); display: flex; gap: var(--space-3); padding: var(--space-4); } .channel-route-modal__selected strong, .channel-route-modal__selected span { display: block; } .channel-route-modal__selected span { color: var(--color-text-muted); font-size: var(--font-size-sm); margin-top: var(--space-1); } .admin-enterprise-profile__main { align-items: center; } .admin-enterprise-profile__icon { height: 40px; width: 40px; } .admin-enterprise-profile__main h1 { font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); letter-spacing: 0; } .audit-table-card { padding: 0; } .enterprise-audit-detail { display: grid; gap: var(--space-5); grid-template-columns: repeat(3, minmax(0, 1fr)); } .enterprise-audit-detail section { background: var(--color-surface-subtle); border: 1px solid var(--color-border); border-radius: var(--radius-md); display: grid; gap: var(--space-3); padding: var(--space-5); } .enterprise-audit-detail h3 { color: var(--color-text-strong); font-size: var(--font-size-lg); margin: 0 0 var(--space-2); } .enterprise-audit-detail div { display: grid; gap: 4px; } .enterprise-audit-detail span { color: var(--color-text-muted); font-size: var(--font-size-sm); } .enterprise-audit-detail strong { color: var(--color-text-strong); overflow-wrap: anywhere; } .enterprise-audit-detail__remark { border-top: 1px solid var(--color-border); padding-top: var(--space-3); } .audit-link { align-items: center; background: transparent; border: 0; color: var(--color-selected); cursor: pointer; display: inline-flex; font-weight: var(--font-weight-semibold); gap: var(--space-1); padding: 0; } .audit-link--success { color: var(--color-success); } .audit-link--danger { color: var(--color-danger); } .audit-pagination { align-items: center; border-top: 1px solid var(--color-border); display: flex; justify-content: flex-end; gap: var(--space-3); padding: var(--space-4); } .sms-bulk-actions { align-items: center; border-top: 1px solid var(--color-border); display: flex; gap: var(--space-4); margin-top: var(--space-6); padding-top: var(--space-5); } .sms-bulk-actions .ui-button--secondary { background: var(--color-success); border-color: var(--color-success); color: white; } .sms-audit-toolbar { align-items: center; display: flex; justify-content: flex-end; gap: var(--space-5); padding: var(--space-3) 0; } .sms-audit-toolbar > div { display: flex; gap: var(--space-2); } .sms-audit-list { padding: 0; } .sms-audit-cell-stack { align-items: flex-start; display: grid; gap: var(--space-2); min-width: 0; } .sms-audit-cell-stack small { color: var(--color-text-muted); line-height: var(--line-height-base); } .sms-audit-cell-stack .table-link { justify-self: start; text-align: left; } .sms-audit-head, .sms-audit-row { display: grid; grid-template-columns: 42px minmax(190px, 1.1fr) minmax(320px, 1.8fr) minmax(120px, 0.7fr) minmax(130px, 0.7fr) minmax(130px, 0.7fr) 112px; } .sms-audit-head { background: var(--color-surface-subtle); border-bottom: 1px solid var(--color-border); color: var(--color-text-strong); font-weight: var(--font-weight-semibold); padding: var(--space-4); } .sms-audit-row { align-items: center; border-bottom: 1px solid var(--color-border); padding: var(--space-5) var(--space-4); } .sms-audit-row:last-child { border-bottom: 0; } .sms-audit-customer, .sms-audit-count, .sms-audit-result, .sms-audit-actions { display: grid; gap: var(--space-2); } .sms-audit-customer span, .sms-audit-customer small, .sms-audit-count { color: var(--color-text-muted); } .sms-audit-content { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); line-height: 1.7; margin: 0; max-height: 92px; overflow: hidden; padding: var(--space-4); } .sms-audit-count a, .sms-audit-count button { color: var(--color-selected); } .sms-audit-count button { background: transparent; border: 0; cursor: pointer; justify-self: start; padding: 0; } .sms-audit-reasons { align-items: flex-start; display: flex; flex-wrap: wrap; gap: var(--space-2); } .audit-dot { align-items: center; display: inline-flex; gap: var(--space-2); font-weight: var(--font-weight-semibold); } .audit-dot::before { border-radius: 999px; content: ''; height: 9px; width: 9px; } .audit-dot--warning { color: #b7791f; } .audit-dot--warning::before { background: #d97706; } .audit-dot--success { color: var(--color-success); } .audit-dot--success::before { background: var(--color-success); } .audit-dot--danger { color: var(--color-danger); } .audit-dot--danger::before { background: var(--color-danger); } .sms-audit-result small { color: var(--color-text-muted); } .sms-audit-actions .ui-button { justify-content: center; } .sms-audit-actions .ui-button--secondary { background: transparent; border-color: #86efac; color: var(--color-success); } .sms-audit-actions .ui-button--danger { background: transparent; color: var(--color-danger); } .sms-audit-edit { display: grid; gap: var(--space-5); } .sms-audit-edit__meta { background: var(--color-surface-subtle); border-radius: var(--radius-md); display: grid; gap: var(--space-4); grid-template-columns: repeat(3, minmax(0, 1fr)); padding: var(--space-5); } .sms-audit-edit__meta span { color: var(--color-text-muted); } .sms-audit-edit__meta strong { color: var(--color-text); } .sms-audit-edit__count { align-items: center; color: var(--color-text-muted); display: flex; justify-content: space-between; } .sms-audit-edit__count strong { color: var(--color-text-strong); } .sms-reject-modal { display: grid; gap: var(--space-5); } .reject-reason-tags { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-3); } .reject-reason-tags button { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 999px; color: var(--color-text); cursor: pointer; font-weight: var(--font-weight-semibold); padding: var(--space-2) var(--space-4); } .reject-reason-tags button:hover { border-color: var(--color-selected); color: var(--color-selected); } .audit-collapse-link { background: transparent; border: 0; color: var(--color-text-muted); cursor: pointer; justify-self: start; padding: 0; } .phone-list-modal { display: grid; gap: var(--space-5); } .phone-list-toolbar { align-items: center; display: flex; justify-content: flex-end; gap: var(--space-3); } .phone-list-toolbar > label { width: 150px; } .phone-list-toolbar > div { align-items: center; display: flex; gap: var(--space-2); } .phone-list-table { border: 1px solid var(--color-border); border-radius: var(--radius-md); overflow: hidden; } .phone-list-table .ui-table-wrap { border: 0; box-shadow: none; } .phone-list-table .ui-table tbody tr:nth-child(even) { background: var(--color-surface-subtle); } .channel-report-page { min-width: 1100px; } .channel-report-hero { display: grid; gap: var(--space-5); padding: var(--space-6); } .channel-report-heading { align-items: center; display: flex; gap: var(--space-4); } .channel-report-heading h1 { border-left: 5px solid var(--color-selected); font-size: 26px; letter-spacing: 0; margin: 0; padding-left: var(--space-4); } .channel-report-config-actions { display: flex; gap: var(--space-3); margin-left: auto; } .channel-report-filter { padding: var(--space-6); } .channel-report-filter-grid { align-items: end; display: grid; gap: var(--space-5); grid-template-columns: minmax(240px, 1fr) minmax(200px, 0.8fr) minmax(360px, 1.4fr); } .channel-report-filter-footer { align-items: center; border-top: 1px solid var(--color-border); display: flex; justify-content: space-between; margin-top: var(--space-5); padding-top: var(--space-5); } .channel-report-filter-footer > div { display: flex; gap: var(--space-3); } .channel-report-table { overflow: hidden; padding: 0; } .channel-report-table__head, .channel-report-row { display: grid; grid-template-columns: 34px minmax(220px, 1.2fr) 112px 120px 120px 130px minmax(280px, 1.35fr) 132px; } .channel-report-table__head { align-items: center; background: var(--color-surface-subtle); border-bottom: 1px solid var(--color-border); color: var(--color-text-strong); font-weight: var(--font-weight-semibold); min-height: 56px; padding: 0 var(--space-5); } .channel-report-row { align-items: center; border-bottom: 1px solid var(--color-border); min-height: 132px; padding: var(--space-5); } .channel-report-row--signature { background: var(--color-surface); } .channel-report-row--drainage { background: #fff9f5; border-left: 4px solid var(--color-danger); padding-left: calc(var(--space-5) - 4px); } .channel-report-name { align-items: center; display: flex; gap: var(--space-3); min-width: 0; } .channel-report-name > button { align-items: center; background: transparent; border: 0; color: var(--color-text-muted); cursor: pointer; display: inline-flex; justify-content: center; padding: var(--space-1); } .channel-report-name > button:disabled { cursor: default; opacity: 0.25; } .channel-report-name > span { display: grid; gap: var(--space-2); min-width: 0; } .channel-report-name strong { overflow-wrap: anywhere; } .channel-report-name small { color: var(--color-text-muted); } .channel-report-name small b { background: var(--color-accent-soft); border-radius: 999px; color: var(--color-selected); display: inline-flex; justify-content: center; margin-left: var(--space-2); min-width: 24px; padding: 2px var(--space-2); } .channel-report-name--flow { padding-left: 36px; } .channel-report-name--flow i { background: var(--color-danger); border-radius: 50%; height: 9px; width: 9px; } .channel-report-date { color: var(--color-text-muted); display: grid; gap: var(--space-1); line-height: 1.35; } .channel-report-stats { background: var(--color-surface-subtle); border: 1px solid var(--color-border); border-radius: var(--radius-md); display: grid; grid-template-columns: repeat(4, 1fr); min-width: 260px; padding: var(--space-4); } .channel-report-stats span { color: var(--color-text-muted); display: grid; gap: var(--space-3); } .channel-report-stats strong { margin-left: var(--space-1); } .channel-report-stats b { color: var(--color-text-strong); } .success-rate-text--red { color: #dc2626 !important; } .success-rate-text--orange { color: #ea580c !important; } .success-rate-text--yellow { color: #ca8a04 !important; } .success-rate-text--blue { color: #2563eb !important; } .success-rate-text--green { color: #16a34a !important; } .success-rate-text--deep-green { color: #047857 !important; } .channel-report-stats .is-success { color: var(--color-success); } .channel-report-stats .is-warning { color: #ea580c; } .channel-report-stats .is-danger { color: var(--color-danger); } .channel-report-actions { display: grid; gap: var(--space-3); justify-items: start; } .channel-report-actions button { align-items: center; background: transparent; border: 0; color: var(--color-selected); cursor: pointer; display: inline-flex; font-weight: var(--font-weight-semibold); gap: var(--space-2); padding: 0; } .channel-report-actions button.is-warning { color: #ea580c; } .channel-report-actions button.is-danger { color: var(--color-danger); } .channel-report-detail { display: grid; gap: var(--space-4); } .channel-report-detail > strong { font-size: var(--font-size-xl); } .channel-report-detail p { align-items: center; border-bottom: 1px solid var(--color-border); display: grid; grid-template-columns: 150px 1fr; margin: 0; padding-bottom: var(--space-3); } .channel-report-detail p > span:first-child { color: var(--color-text-muted); } .channel-signature-title h2, .channel-signature-title p { margin: 0; } .channel-signature-title p { color: var(--color-text-muted); font-size: var(--font-size-sm); font-weight: var(--font-weight-regular); margin-top: var(--space-2); } .channel-signature-detail { display: grid; gap: var(--space-8); } .channel-signature-detail section { display: grid; gap: var(--space-5); } .channel-signature-detail h3 { border-left: 5px solid var(--color-selected); font-size: var(--font-size-lg); letter-spacing: 0; margin: 0; padding-left: var(--space-3); } .channel-signature-grid { display: grid; gap: var(--space-5); grid-template-columns: repeat(2, minmax(0, 1fr)); } .channel-signature-grid__wide, .channel-signature-grid > .channel-signature-upload:first-of-type:last-child { grid-column: 1 / -1; } .channel-signature-detail input[readonly] { background: var(--color-surface-subtle); color: var(--color-text-strong); cursor: default; font-weight: var(--font-weight-medium); } .channel-signature-upload { display: grid; gap: var(--space-2); } .channel-signature-upload > span { color: var(--color-text-strong); font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); } .channel-signature-upload > div { align-items: center; background: var(--color-surface-subtle); border: 1px solid var(--color-border); border-radius: var(--radius-md); color: var(--color-text-muted); display: flex; justify-content: center; min-height: 68px; } .channel-status-title h2, .channel-status-title p { margin: 0; } .channel-status-title p { color: var(--color-text-muted); font-size: var(--font-size-sm); font-weight: var(--font-weight-regular); margin-top: var(--space-2); } .channel-status-form { display: grid; gap: var(--space-6); } .channel-status-options { display: grid; gap: var(--space-4); grid-template-columns: repeat(3, minmax(0, 1fr)); } .channel-status-options button { background: var(--color-surface); border: 2px solid var(--color-border); border-radius: var(--radius-md); color: var(--color-text-strong); cursor: pointer; font: inherit; font-weight: var(--font-weight-semibold); min-height: 58px; position: relative; } .channel-status-options button.is-info { color: var(--color-selected); } .channel-status-options button.is-success { color: var(--color-success); } .channel-status-options button.is-danger { color: var(--color-danger); } .channel-status-options button.is-warning { color: #a16207; } .channel-status-options button.is-selected { border-color: var(--color-selected); box-shadow: 0 0 0 2px var(--color-accent-soft); } .channel-status-options button > span { align-items: center; background: var(--color-selected); border-radius: 0 var(--radius-sm) 0 var(--radius-sm); color: white; display: flex; height: 30px; justify-content: center; position: absolute; right: -2px; top: -2px; width: 34px; } .channel-export-preview { display: flex; gap: 8px; overflow-x: auto; padding: 10px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-muted); } .channel-export-preview span { flex: 0 0 auto; padding: 5px 9px; border-radius: 6px; background: var(--surface); font-size: 12px; } .channel-field-mapping-grid, .report-import-basic-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; } .report-import-basic-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .report-import-file { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 16px 0; padding: 14px 16px; border: 1px dashed var(--primary); border-radius: 10px; background: color-mix(in srgb, var(--primary) 5%, var(--surface)); } .report-import-file span { display: flex; align-items: center; gap: 9px; } .report-import-file input { max-width: 310px; } .report-import-mapping { display: grid; gap: 12px; } .report-import-mapping-table { overflow-x: auto; border: 1px solid var(--border); border-radius: 10px; } .report-import-mapping-head, .report-import-mapping-row { display: grid; grid-template-columns: minmax(180px, 1.2fr) minmax(220px, 1.5fr) 110px 100px 130px; gap: 10px; align-items: center; min-width: 820px; padding: 10px 12px; } .report-import-mapping-head { background: var(--surface-muted); color: var(--text-muted); font-size: 12px; font-weight: 700; } .report-import-mapping-row { border-top: 1px solid var(--border); } .report-import-mapping-row > span { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; } .report-import-mapping-row small { width: 100%; color: var(--text-muted); } .report-import-profile { display: flex; align-items: end; gap: 12px; } .report-import-profile button { border: 1px solid var(--border); border-radius: 8px; background: var(--surface); padding: 9px 12px; display: inline-flex; gap: 6px; align-items: center; cursor: pointer; } .report-import-profile button.is-active { border-color: var(--primary); color: var(--primary); } .report-import-profile .field { min-width: 320px; } .report-import-preview pre { max-height: 240px; overflow: auto; padding: 12px; background: #111827; color: #d1fae5; border-radius: 8px; font-size: 11px; } .report-material-filter { align-items: end; display: grid; gap: 12px; } .report-material-filter--pending { grid-template-columns: 160px minmax(200px, 260px) minmax(320px, 1fr) auto; } .report-material-filter--batches { grid-template-columns: minmax(220px, 260px) 300px auto; justify-content: start; } .report-material-pool { overflow: hidden; padding: 0; } .report-material-table-head, .report-material-row { display: grid; grid-template-columns: 28px minmax(260px, 1.5fr) minmax(180px, 1fr) 90px 160px; gap: 12px; align-items: center; padding: 12px 16px; } .report-material-table-head { background: var(--surface-muted); color: var(--text-muted); font-size: 12px; font-weight: 700; } .report-material-row { border-top: 1px solid var(--border); cursor: pointer; } .report-material-row:hover { background: color-mix(in srgb, var(--primary) 3%, var(--surface)); } .report-material-row.is-disabled { cursor: not-allowed; opacity: 0.72; } .report-material-row.is-disabled:hover { background: var(--surface); } .report-material-row > span { display: grid; gap: 3px; } .report-material-row small, .report-material-row em { color: var(--text-muted); font-size: 12px; font-style: normal; } .report-material-batches { display: grid; gap: 0; } .report-material-batches article { display: flex; justify-content: space-between; gap: 24px; padding: 14px 0; border-top: 1px solid var(--border); } .report-material-batches article > div { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; } .report-material-batches article small { width: 100%; color: var(--text-muted); } .report-material-batches article a { display: inline-flex; align-items: center; gap: 5px; color: var(--primary); } .report-batch-preflight { display: grid; gap: 16px; } .report-batch-summary { display: flex; flex-wrap: wrap; gap: 12px; } .report-batch-summary span { display: inline-flex; align-items: center; gap: 7px; padding: 9px 12px; border-radius: 8px; background: var(--surface-muted); font-weight: 700; } .report-batch-preflight article { display: grid; gap: 10px; padding: 14px; border: 1px solid var(--border); border-radius: 10px; } .report-batch-preflight article > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; } .report-batch-preflight article small { color: var(--text-muted); } .report-batch-preflight ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; } .report-batch-preflight li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; padding: 9px 10px; border-radius: 8px; background: var(--surface-muted); } .report-batch-preflight li.is-eligible { border-left: 3px solid var(--success); } .report-batch-preflight li.is-blocked { border-left: 3px solid var(--warning); } @media (max-width: 980px) { .channel-field-mapping-grid, .report-import-basic-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .report-material-filter--pending, .report-material-filter--batches { grid-template-columns: repeat(2, minmax(0, 1fr)); } .report-material-filter .ui-query-actions { grid-column: 1 / -1; } .report-material-table-head, .report-material-row { grid-template-columns: 28px minmax(220px, 1.5fr) minmax(160px, 1fr); } .report-material-table-head > :nth-child(n+4), .report-material-row > :nth-child(n+4) { display: none; } } .channel-field-pool { border-right: 1px solid var(--color-border); } .channel-field-pool-list, .channel-selected-field-list { display: grid; gap: var(--space-3); margin-top: var(--space-4); max-height: 520px; overflow-y: auto; padding-right: var(--space-2); } .channel-field-pool-list > button { align-items: center; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); color: var(--color-text-strong); cursor: pointer; display: flex; justify-content: space-between; min-height: 58px; padding: var(--space-3) var(--space-4); text-align: left; } .channel-field-pool-list > button:hover { background: var(--color-accent-soft); border-color: var(--color-selected); } .channel-field-pool-list > button > span { align-items: center; display: inline-flex; gap: var(--space-2); } .channel-field-pool-list > button > span:last-child { color: var(--color-selected); font-size: var(--font-size-sm); } .channel-selected-fields { background: var(--color-surface-subtle); grid-template-rows: auto minmax(0, 1fr) !important; } .channel-selected-field-list article { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); display: grid; gap: var(--space-4); padding: var(--space-4); } .channel-selected-field-head { align-items: center; display: flex; gap: var(--space-2); } .channel-selected-field-index { align-items: center; background: var(--color-selected); border-radius: var(--radius-sm); color: white; display: inline-flex; height: 30px; justify-content: center; width: 30px; } .channel-selected-field-order { display: flex; margin-left: auto; } .channel-selected-field-order button, .channel-selected-field-controls > button { align-items: center; background: transparent; border: 0; color: var(--color-text-muted); cursor: pointer; display: inline-flex; justify-content: center; padding: var(--space-1); } .channel-selected-field-order button:disabled { cursor: default; opacity: 0.3; } .channel-selected-field-controls { align-items: center; display: flex; gap: var(--space-4); } .channel-selected-field-controls label { align-items: center; cursor: pointer; display: inline-flex; gap: var(--space-2); } .channel-selected-field-controls > button { color: var(--color-danger); margin-left: auto; } .mms-channel-page .page-heading { align-items: center; } .mms-channel-filter { align-items: center; display: grid; gap: var(--space-4); grid-template-columns: minmax(260px, 1fr) 180px 180px auto; padding: var(--space-5); } .mms-channel-list { overflow: hidden; padding: 0; } .mms-channel-list .ui-table-wrap { border: 0; border-radius: 0; box-shadow: none; } .mms-channel-list .ui-table { min-width: 900px; } .mms-channel-list .ui-table th, .mms-channel-list .ui-table td { padding: var(--space-4); vertical-align: middle; } .mms-channel-list .ui-table tbody tr:nth-child(even) { background: var(--color-surface-subtle); } .mms-channel-identity { display: grid; gap: var(--space-1); min-width: 0; } .mms-channel-identity span, .mms-channel-identity small { color: var(--color-text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .mms-channel-identity small { font-size: var(--font-size-xs); } .mms-channel-carrier { align-items: flex-start; display: grid; gap: var(--space-2); justify-items: start; } .mms-channel-quality { background: var(--color-surface-subtle); border: 1px solid var(--color-border); border-radius: var(--radius-md); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: var(--space-3); } .mms-channel-metric { display: grid; gap: 3px; } .mms-channel-metric small { color: var(--color-text-muted); } .mms-channel-metric strong { color: var(--color-text-strong); } .mms-channel-metric--success strong { color: var(--color-success); } .mms-channel-metric--warning strong { color: #ea580c; } .mms-channel-metric--danger strong { color: var(--color-danger); } .mms-channel-actions { display: flex; gap: var(--space-2); justify-content: flex-end; } .mms-channel-modal-title h2, .mms-channel-modal-title p { margin: 0; } .mms-channel-modal-title p { color: var(--color-text-muted); font-size: var(--font-size-sm); font-weight: var(--font-weight-regular); margin-top: var(--space-2); } .mms-channel-form { display: grid; gap: var(--space-5); grid-template-columns: repeat(2, minmax(0, 1fr)); } .mms-channel-form__wide { grid-column: 1 / -1; } .sms-channel-group-page .page-heading { align-items: center; } .channel-group-filter { align-items: end; display: grid; gap: var(--space-5); grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr) auto; } .channel-group-filter__actions { display: flex; gap: var(--space-3); } .channel-group-list { display: grid; gap: var(--space-5); } .channel-group-config-list { display: grid; gap: var(--space-3); } .channel-group-config-item { align-items: center; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-sm); display: grid; gap: var(--space-4); grid-template-columns: minmax(180px, 1.15fr) minmax(210px, 0.9fr) minmax(200px, 0.95fr) minmax(220px, 1.2fr) minmax(82px, auto); min-width: 0; padding: var(--space-4); } .channel-group-config-item__identity { align-items: center; display: flex; gap: var(--space-3); min-width: 0; } .channel-group-config-item__icon { align-items: center; background: #eef5ff; border: 1px solid #cfe2ff; border-radius: var(--radius-sm); color: var(--color-selected); display: inline-flex; flex: 0 0 auto; height: 38px; justify-content: center; width: 38px; } .channel-group-config-item__identity div { display: grid; gap: var(--space-1); min-width: 0; } .channel-group-config-item__identity strong { color: var(--color-text-strong); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .channel-group-config-item__identity span:last-child, .channel-group-config-item__metrics span, .channel-group-config-item__policy span, .channel-group-config-item__channels span { color: var(--color-text-muted); } .channel-group-config-item__metrics { display: grid; gap: var(--space-3); grid-template-columns: repeat(3, minmax(0, 1fr)); min-width: 0; } .channel-group-config-item__metrics div { border-left: 1px solid var(--color-border); display: grid; gap: var(--space-1); padding-left: var(--space-3); } .channel-group-config-item__metrics strong { color: var(--color-text-strong); font-size: var(--font-size-lg); } .channel-group-config-item__policy { align-items: center; display: flex; flex-wrap: wrap; gap: var(--space-3); min-width: 0; } .channel-group-config-item__policy span { align-items: center; display: inline-flex; gap: var(--space-1); white-space: nowrap; } .channel-group-config-item__channels { display: flex; flex-wrap: wrap; gap: var(--space-2); min-width: 0; } .channel-group-config-item__channels span { background: var(--color-surface-subtle); border: 1px solid var(--color-border); border-radius: var(--radius-sm); max-width: 160px; overflow: hidden; padding: var(--space-1) var(--space-2); text-overflow: ellipsis; white-space: nowrap; } .channel-group-config-item__actions { align-items: center; display: flex; flex-wrap: wrap; gap: var(--space-3); justify-content: flex-end; justify-self: end; min-width: 82px; } .channel-group-config-item__actions button { align-items: center; background: transparent; border: 0; color: var(--color-selected); cursor: pointer; display: inline-flex; font-weight: var(--font-weight-semibold); gap: var(--space-1); padding: 0; } .channel-group-config-item__actions button.is-danger { color: var(--color-danger); } .channel-group-form-page { min-width: 1040px; } .channel-group-form-section { display: grid; gap: var(--space-5); } .channel-group-form-section h2 { border-bottom: 1px solid var(--color-border); border-left: 5px solid var(--color-selected); margin: 0; padding: 0 0 var(--space-4) var(--space-3); } .channel-group-base-form { display: grid; gap: var(--space-6); grid-template-columns: 190px minmax(0, 1fr); } .channel-group-base-form > .ui-field, .channel-group-retry-limit, .channel-group-radio-row, .channel-group-switch-row { grid-column: 2; } .channel-group-radio-row, .channel-group-switch-row { align-items: center; display: flex; gap: var(--space-7); min-height: 42px; } .channel-group-radio-row > span, .channel-group-switch-row > span { color: var(--color-text-strong); font-weight: var(--font-weight-semibold); } .channel-group-radio-row label { align-items: center; display: inline-flex; gap: var(--space-2); } .channel-group-switch-row button { background: #d1d5db; border: 0; border-radius: 999px; cursor: pointer; height: 30px; padding: 3px; transition: background 0.18s ease; width: 54px; } .channel-group-switch-row button i { background: #fff; border-radius: 50%; box-shadow: var(--shadow-sm); display: block; height: 24px; transition: transform 0.18s ease; width: 24px; } .channel-group-switch-row button.is-on { background: var(--color-selected); } .channel-group-switch-row button.is-on i { transform: translateX(24px); } .channel-group-row-actions { display: flex; gap: var(--space-4); } .channel-group-row-actions button { align-items: center; background: transparent; border: 0; color: var(--color-selected); cursor: pointer; display: inline-flex; font-weight: var(--font-weight-semibold); gap: var(--space-1); padding: 0; } .channel-group-row-actions button.is-danger { color: var(--color-danger); } .channel-group-retry-limit { display: grid; gap: var(--space-3); grid-template-columns: 150px 150px minmax(220px, 1fr); } .channel-group-retry-limit > span { color: var(--color-text-strong); font-weight: var(--font-weight-semibold); grid-column: 1 / -1; } .channel-group-retry-limit small { align-self: center; color: var(--color-text-muted); } .channel-route-card-grid { display: grid; gap: var(--space-4); grid-template-columns: repeat(3, minmax(220px, 1fr)); } .channel-route-card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); display: grid; gap: var(--space-3); min-height: 188px; padding: var(--space-4); } .channel-route-card > div { align-items: flex-start; display: flex; gap: var(--space-3); justify-content: space-between; } .channel-route-card strong { color: var(--color-text-strong); font-size: var(--font-size-lg); } .channel-route-card span, .channel-route-card small { color: var(--color-text-muted); } .channel-route-card p { color: var(--color-text); font-weight: var(--font-weight-semibold); line-height: 1.5; margin: 0; overflow-wrap: anywhere; } .channel-route-card footer { align-items: center; border-top: 1px solid var(--color-border); display: flex; gap: var(--space-3); justify-content: flex-end; margin-top: var(--space-1); padding-top: var(--space-3); } .channel-route-card footer button { align-items: center; background: transparent; border: 0; color: var(--color-selected); cursor: pointer; display: inline-flex; font-weight: var(--font-weight-semibold); gap: var(--space-1); padding: 0; } .channel-route-card footer button.is-danger { color: var(--color-danger); } .channel-route-empty { align-items: center; background: var(--color-surface-subtle); border: 1px dashed var(--color-border-strong); border-radius: var(--radius-md); color: var(--color-text-muted); display: flex; justify-content: center; min-height: 120px; padding: var(--space-5); } .channel-route-modal { display: grid; gap: var(--space-5); grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: 0; } .channel-route-modal__channel-select { grid-column: 1 / -1; } .channel-route-modal .ui-select__dropdown { max-height: min(360px, calc(100vh - 360px)); } .channel-route-modal .ui-select__dropdown button { align-items: flex-start; height: auto; line-height: 1.45; min-height: 42px; padding: var(--space-2) var(--space-3); white-space: normal; } .channel-route-modal__note { align-items: center; background: #eff6ff; border: 1px solid #bfdbfe; border-radius: var(--radius-md); color: var(--color-text); display: flex; gap: var(--space-3); padding: var(--space-4); } .channel-route-modal__note svg { color: var(--color-selected); flex: 0 0 auto; } .channel-group-form-footer { align-items: center; display: flex; gap: var(--space-4); justify-content: center; padding: var(--space-4) 0; } .channel-group-form-footer .ui-button { min-width: 160px; } .recovery-status-explainer { align-items: flex-start; display: flex; gap: var(--space-3); } .recovery-status-explainer > svg { color: var(--color-primary); flex: 0 0 auto; margin-top: 2px; } .recovery-status-explainer strong { color: var(--color-text-strong); } .recovery-status-explainer p { color: var(--color-text-muted); line-height: 1.7; margin: var(--space-1) 0 0; } .signature-quality-card { overflow: hidden; } .signature-retirement-heatmap { padding: var(--space-5); } .signature-retirement-heatmap__heading, .signature-retirement-heatmap__actions { align-items: center; } .signature-retirement-heatmap__actions { display: flex; gap: var(--space-3); } .signature-retirement-heatmap__actions .ui-field { min-width: 280px; } .signature-retirement-heatmap__scroll { border: 1px solid var(--color-border); border-radius: var(--radius-md); overflow: auto; } .signature-retirement-heatmap table { border-collapse: collapse; min-width: 100%; white-space: nowrap; } .signature-retirement-heatmap th, .signature-retirement-heatmap td { border-bottom: 1px solid var(--color-border); border-right: 1px solid var(--color-border); font-size: 12px; min-width: 48px; padding: 8px; text-align: center; } .signature-retirement-heatmap th:first-child { background: var(--color-surface); left: 0; min-width: 280px; position: sticky; text-align: left; z-index: 1; } .signature-retirement-heatmap tbody th { align-items: center; display: flex; gap: var(--space-2); justify-content: space-between; } .signature-retirement-heatmap__identity { display: grid; gap: 2px; min-width: 0; text-align: left; } .signature-retirement-heatmap__identity strong { color: var(--color-text-strong); cursor: help; overflow: hidden; text-overflow: ellipsis; } .signature-retirement-heatmap__identity small { color: var(--color-text-muted); font-weight: 400; overflow: hidden; text-overflow: ellipsis; } .signature-retirement-heatmap td.is-zero { background: #f3f4f6; color: var(--color-text-muted); font-weight: 700; } .signature-retirement-heatmap td.is-inapplicable { background: repeating-linear-gradient(135deg, #f8fafc, #f8fafc 4px, #eef2f7 4px, #eef2f7 8px); color: var(--color-text-muted); } .signature-retirement-heatmap td.is-rate-red { background: #fee2e2; color: #dc2626; font-weight: 700; } .signature-retirement-heatmap td.is-rate-orange { background: #ffedd5; color: #ea580c; font-weight: 700; } .signature-retirement-heatmap td.is-rate-yellow { background: #fef9c3; color: #ca8a04; font-weight: 700; } .signature-retirement-heatmap td.is-rate-blue { background: #dbeafe; color: #2563eb; font-weight: 700; } .signature-retirement-heatmap td.is-rate-green { background: #dcfce7; color: #16a34a; font-weight: 700; } .signature-retirement-heatmap td.is-rate-deep-green { background: #d1fae5; color: #047857; font-weight: 700; } .ui-table__long-text { display: block; line-height: 1.55; overflow-wrap: anywhere; white-space: normal; word-break: normal; } .signature-retirement-message-card { overflow: hidden; } .signature-retirement-message-filter { align-items: end; display: grid; gap: var(--space-3); grid-template-columns: repeat(4, minmax(180px, 1fr)); margin-bottom: var(--space-4); } .signature-retirement-message-filter__actions { display: flex; gap: var(--space-2); } .signature-retirement-suppression-modes { display: grid; gap: var(--space-3); grid-template-columns: repeat(2, minmax(0, 1fr)); } .signature-retirement-suppression-modes label { align-items: flex-start; border: 1px solid var(--color-border); border-radius: var(--radius-md); cursor: pointer; display: flex; gap: var(--space-3); padding: var(--space-4); } .signature-retirement-suppression-modes label.is-selected { background: var(--color-selected-soft); border-color: var(--color-selected); } .signature-retirement-suppression-modes input { margin-top: 3px; } .signature-retirement-suppression-modes span { display: grid; gap: 4px; } .signature-retirement-suppression-modes small { color: var(--color-text-muted); } .signature-quality-card__heading { align-items: flex-start; display: flex; gap: var(--space-5); justify-content: space-between; padding: var(--space-5); } .signature-quality-card__heading h2, .signature-quality-section h3 { margin: 0; } .signature-quality-card__heading p, .signature-quality-section__heading p { margin: var(--space-1) 0 0; } .section-heading__title { align-items: center; display: flex; flex-wrap: wrap; gap: var(--space-2); } .signature-quality-card__query { align-items: flex-end; display: flex; flex: 0 1 390px; gap: var(--space-2); } .signature-quality-card__query .ui-field { flex: 1; } .signature-quality-card__note { background: color-mix(in srgb, var(--color-primary) 6%, white); border-bottom: 1px solid var(--color-border); border-top: 1px solid var(--color-border); color: var(--color-text-muted); font-size: 13px; line-height: 1.6; padding: 10px var(--space-5); } .signature-quality-card .ui-table-wrap { border: 0; border-radius: 0; } .signature-quality-card > .ui-pagination { border-top: 1px solid var(--color-border); padding: var(--space-4) var(--space-5); } .signature-quality-name { display: grid; gap: 3px; } .signature-quality-name strong { color: var(--color-text-strong); } .signature-quality-name span, .signature-quality-name small { color: var(--color-text-muted); } .quality-number--success { color: var(--color-success); } .quality-number--warning { color: var(--color-warning); } .quality-number--danger { color: var(--color-danger); } .signature-quality-rate { align-items: center; display: flex; gap: var(--space-2); } .signature-quality-rate > div { background: var(--color-surface-muted); border-radius: 99px; flex: 1; height: 6px; overflow: hidden; } .signature-quality-rate > div span { background: var(--color-success); border-radius: inherit; display: block; height: 100%; } .signature-quality-rate strong { min-width: 50px; text-align: right; } .signature-quality-drawer__backdrop { background: rgb(15 23 42 / 42%); inset: 0; position: fixed; z-index: 1200; } .signature-quality-drawer { animation: signature-quality-drawer-in 180ms ease-out; background: var(--color-bg); box-shadow: -18px 0 48px rgb(15 23 42 / 18%); display: flex; flex-direction: column; height: 100%; margin-left: auto; max-width: min(1120px, calc(100vw - 72px)); width: 88vw; } @keyframes signature-quality-drawer-in { from { opacity: 0; transform: translateX(28px); } to { opacity: 1; transform: translateX(0); } } .signature-quality-drawer__header { align-items: flex-start; background: var(--color-surface); border-bottom: 1px solid var(--color-border); display: flex; gap: var(--space-5); justify-content: space-between; padding: var(--space-5) var(--space-6); } .signature-quality-drawer__header p { color: var(--color-primary); font-size: 13px; margin: 0 0 var(--space-2); } .signature-quality-drawer__header h2 { margin: 0; } .signature-quality-drawer__header span { color: var(--color-text-muted); display: block; margin-top: var(--space-2); } .signature-quality-drawer__header > button { align-items: center; background: transparent; border: 0; border-radius: var(--radius-md); color: var(--color-text-muted); cursor: pointer; display: inline-flex; justify-content: center; padding: var(--space-2); } .signature-quality-drawer__header > button:hover { background: var(--color-surface-muted); color: var(--color-text-strong); } .signature-quality-drawer__body { display: grid; gap: var(--space-5); overflow: auto; padding: var(--space-5) var(--space-6) var(--space-7); } .signature-quality-overview { display: grid; gap: var(--space-3); grid-template-columns: repeat(4, minmax(0, 1fr)); min-width: 0; } .signature-quality-metric { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-lg); display: grid; gap: var(--space-2); padding: var(--space-4); } .signature-quality-metric span { color: var(--color-text-muted); font-size: 13px; } .signature-quality-metric strong { color: var(--color-text-strong); font-size: 24px; } .signature-quality-metric--success strong { color: var(--color-success); } .signature-quality-metric--warning strong { color: var(--color-warning); } .signature-quality-metric--danger strong { color: var(--color-danger); } .signature-quality-section { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-lg); min-width: 0; padding: var(--space-5); } .signature-quality-section__heading { margin-bottom: var(--space-4); } .signature-quality-section__heading p { color: var(--color-text-muted); font-size: 13px; } .signature-carrier-grid { display: grid; gap: var(--space-3); grid-template-columns: repeat(3, minmax(0, 1fr)); } .signature-carrier-card { border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: var(--space-4); } .signature-carrier-card > div { align-items: center; display: flex; justify-content: space-between; } .signature-carrier-card > div strong { color: var(--color-text-strong); } .signature-carrier-card dl { display: grid; gap: var(--space-2); margin: var(--space-4) 0 0; } .signature-carrier-card dl div { align-items: center; display: flex; justify-content: space-between; } .signature-carrier-card dt { color: var(--color-text-muted); } .signature-carrier-card dd { color: var(--color-text-strong); font-weight: 600; margin: 0; } .signature-quality-matrix { border: 1px solid var(--color-border); border-radius: var(--radius-md); max-width: 100%; overflow: auto; width: 100%; } .signature-quality-matrix table { border-collapse: collapse; min-width: 760px; width: 100%; } .signature-quality-matrix th, .signature-quality-matrix td { border-bottom: 1px solid var(--color-border); border-right: 1px solid var(--color-border); padding: var(--space-3); text-align: left; vertical-align: top; } .signature-quality-matrix th:last-child, .signature-quality-matrix td:last-child { border-right: 0; } .signature-quality-matrix tr:last-child th, .signature-quality-matrix tr:last-child td { border-bottom: 0; } .signature-quality-matrix thead th { background: var(--color-surface-muted); color: var(--color-text-muted); font-size: 13px; } .signature-quality-matrix tbody th { color: var(--color-text-strong); min-width: 210px; } .signature-quality-matrix__metric { display: grid; gap: 4px; } .signature-quality-matrix__metric strong { color: var(--color-text-strong); } .signature-quality-matrix__metric small { color: var(--color-text-muted); } .signature-quality-matrix__metric em { color: var(--color-warning); font-size: 12px; font-style: normal; } .signature-quality-matrix__drainage-label { color: var(--color-text-muted); font-size: 13px; min-width: 88px; } .signature-quality-matrix__rate { font-weight: 600; } .signature-quality-matrix__empty { color: var(--color-text-subtle); } .signature-quality-matrix__zero { color: var(--color-text-strong); font-weight: 600; } .signature-quality-drawer__footnote { color: var(--color-text-muted); font-size: 13px; line-height: 1.7; margin: 0; } @media (max-width: 900px) { .signature-retirement-message-filter, .signature-retirement-suppression-modes { grid-template-columns: 1fr; } .signature-retirement-heatmap__heading, .signature-retirement-heatmap__actions { align-items: stretch; flex-direction: column; } .signature-retirement-heatmap__actions .ui-field { min-width: 0; width: 100%; } .signature-quality-card__heading, .signature-quality-card__query { align-items: stretch; flex-direction: column; } .signature-quality-card__query { flex-basis: auto; width: 100%; } .signature-quality-drawer { max-width: none; width: 100%; } .signature-quality-overview, .signature-carrier-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (max-width: 600px) { .signature-quality-drawer__header, .signature-quality-drawer__body { padding-left: var(--space-4); padding-right: var(--space-4); } .signature-quality-overview, .signature-carrier-grid { grid-template-columns: 1fr; } } .downstream-delivery-toolbar { align-items: center; border-bottom: 1px solid var(--color-border); display: flex; gap: var(--space-4); justify-content: space-between; padding: var(--space-4) var(--space-5); } .downstream-delivery-toolbar p { color: var(--color-text-muted); line-height: 1.6; margin: 0; } .downstream-delivery-toolbar p strong { color: var(--color-text-strong); } .downstream-requeue-confirm, .downstream-requeue-result { align-items: flex-start; border: 1px solid var(--color-border); border-radius: var(--radius-lg); display: flex; gap: var(--space-3); padding: var(--space-4); } .downstream-requeue-confirm { background: #fffbeb; border-color: #fde68a; color: #92400e; } .downstream-requeue-confirm > div, .downstream-requeue-result > div { display: grid; gap: var(--space-2); min-width: 0; } .downstream-requeue-confirm p, .downstream-requeue-confirm small, .downstream-requeue-confirm strong, .downstream-requeue-result p, .downstream-requeue-result small { margin: 0; } .downstream-requeue-confirm strong { line-height: 1.6; } .downstream-requeue-result--success { background: #f0fdf4; border-color: #bbf7d0; color: #166534; } .downstream-requeue-result--partial { background: #fffbeb; border-color: #fde68a; color: #92400e; } .downstream-requeue-result--failed { background: #fef2f2; border-color: #fecaca; color: #991b1b; } .downstream-requeue-result p, .downstream-requeue-result li { line-height: 1.6; overflow-wrap: anywhere; } .downstream-requeue-result ul { margin: 0; max-height: 180px; overflow: auto; padding-left: var(--space-5); } .downstream-delivery-toolbar > div, .downstream-delivery-list__actions { align-items: center; display: flex; flex-shrink: 0; gap: var(--space-2); } .downstream-delivery-list { overflow-x: auto; } .downstream-delivery-list__header, .downstream-delivery-list__row { align-items: center; display: grid; gap: var(--space-3); grid-template-columns: 36px 140px minmax(150px, 1fr) minmax(165px, 1.05fr) 126px 54px minmax(170px, 1.2fr) 136px; min-width: 1080px; padding: var(--space-4); } .downstream-delivery-list__header { background: var(--color-bg-subtle); color: var(--color-text-muted); font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); } .downstream-delivery-list__row { border-top: 1px solid var(--color-border); min-height: 104px; } .downstream-delivery-list__row:first-of-type { border-top: 0; } .downstream-delivery-list__row:hover { background: color-mix(in srgb, var(--color-selected-soft) 28%, transparent); } .downstream-delivery-list__select, .downstream-delivery-list__retry { text-align: center; } .downstream-delivery-list__meta, .downstream-delivery-list__owner, .downstream-delivery-list__retry { display: grid; gap: 6px; } .downstream-delivery-list__meta strong, .downstream-delivery-list__owner strong, .downstream-delivery-list__retry strong { color: var(--color-text-strong); } .downstream-delivery-list__meta span, .downstream-delivery-list__owner span, .downstream-delivery-list__retry span { color: var(--color-text-muted); font-size: var(--font-size-sm); } .downstream-delivery-list__message strong { color: var(--color-text-strong); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: var(--font-size-sm); overflow-wrap: anywhere; } .downstream-delivery-list__error { background: #fff7ed; border: 1px solid #fed7aa; border-radius: var(--radius-md); color: #9a3412; display: -webkit-box; line-height: 1.55; overflow: hidden; padding: var(--space-3); -webkit-box-orient: vertical; -webkit-line-clamp: 2; } .downstream-delivery-list__error.is-empty { background: var(--color-bg-subtle); border-color: var(--color-border); color: var(--color-text-subtle); } .downstream-delivery-list__actions { justify-content: flex-end; } .downstream-delivery-list__empty { color: var(--color-text-muted); padding: 48px var(--space-5); text-align: center; } @media (max-width: 760px) { .downstream-delivery-toolbar { align-items: stretch; flex-direction: column; } .downstream-delivery-toolbar > div { justify-content: flex-end; } } .report-page-actions { align-items: center; display: flex; flex-wrap: wrap; gap: var(--space-3); } .report-task-time { color: var(--color-text-muted); display: grid; font-size: var(--font-size-xs); gap: 4px; line-height: 1.45; } .report-task-time span { white-space: nowrap; } .admin-remark-cell { background: var(--color-bg-subtle); border: 1px solid var(--color-border); border-radius: var(--radius-md); color: var(--color-text); display: -webkit-box; line-height: 1.6; max-width: 360px; min-width: 220px; overflow: hidden; padding: var(--space-3); -webkit-box-orient: vertical; -webkit-line-clamp: 2; } .admin-remark-cell--empty { color: var(--color-text-subtle); } .report-task-generate { display: grid; gap: var(--space-5); } .report-task-generate section, .report-task-detail .admin-task-card { background: var(--color-bg-subtle); border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: var(--space-5); } .report-task-generate h3, .report-receipt-preview h3 { color: var(--color-text-strong); font-size: var(--font-size-md); font-weight: 700; margin: 0 0 var(--space-4); } .report-task-preview { display: grid; gap: var(--space-4); grid-template-columns: repeat(4, minmax(0, 1fr)); } .report-task-preview > div, .report-receipt-preview > div { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: var(--space-4); } .report-task-preview span, .report-receipt-preview span { color: var(--color-text-muted); display: block; font-size: var(--font-size-xs); margin-bottom: var(--space-2); } .report-task-preview strong, .report-receipt-preview strong { color: var(--color-text-strong); font-size: var(--font-size-xl); } .report-receipt-modal { align-items: start; display: grid; gap: var(--space-5); grid-template-columns: minmax(260px, 0.9fr) minmax(320px, 1.1fr); } .report-receipt-modal .ui-field { grid-column: 1 / -1; } .report-upload-drop { align-content: center; background: var(--color-bg-subtle); border: 1px dashed var(--color-border-strong); border-radius: var(--radius-lg); display: grid; gap: var(--space-2); min-height: 180px; padding: var(--space-6); place-items: center; text-align: center; } .report-upload-drop svg { color: var(--color-primary); } .report-upload-drop strong { color: var(--color-text-strong); font-size: var(--font-size-md); } .report-upload-drop span { color: var(--color-text-muted); font-size: var(--font-size-sm); line-height: 1.5; } .report-receipt-preview { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-lg); display: grid; gap: var(--space-3); padding: var(--space-5); } .admin-app-route-card > .ui-field { max-width: 100%; min-width: 0; width: 100%; } .downstream-attempt-timeline { border-top: 0 !important; display: grid !important; gap: var(--space-4) !important; grid-template-columns: 1fr !important; padding: var(--space-2) 0 0 !important; position: relative; } .downstream-attempt-timeline::before { background: var(--color-border); bottom: 24px; content: ''; left: 19px; position: absolute; top: 28px; width: 2px; } .downstream-attempt-card { align-items: start; display: grid; gap: var(--space-4); grid-template-columns: 40px minmax(0, 1fr); position: relative; } .downstream-attempt-marker { align-items: center; background: var(--color-bg-subtle); border: 2px solid var(--color-border); border-radius: 50%; color: var(--color-text-muted); display: flex; font-size: var(--font-size-sm); font-weight: 700; height: 40px; justify-content: center; position: relative; width: 40px; z-index: 1; } .downstream-attempt-marker--success { background: #ecfdf3; border-color: #86efac; color: #15803d; } .downstream-attempt-marker--danger { background: #fef2f2; border-color: #fca5a5; color: #b91c1c; } .downstream-attempt-marker--info { background: #eff6ff; border-color: #93c5fd; color: #1d4ed8; } .downstream-attempt-card__body { background: var(--color-bg-subtle); border: 1px solid var(--color-border); border-radius: var(--radius-md); display: grid; gap: var(--space-4); padding: var(--space-4); } .downstream-attempt-card__body > header { align-items: center; display: flex; justify-content: space-between; } .downstream-attempt-card dl { display: grid; gap: var(--space-3); grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; } .downstream-attempt-card dl > div { display: grid; gap: var(--space-1); min-width: 0; } .downstream-attempt-card dt { color: var(--color-text-muted); font-size: var(--font-size-xs); } .downstream-attempt-card dd { color: var(--color-text-strong); font-size: var(--font-size-sm); margin: 0; overflow-wrap: anywhere; } .downstream-attempt-card__identifiers dd { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; } .downstream-attempt-result { align-items: center; background: var(--color-surface); border-radius: var(--radius-sm); display: flex; gap: var(--space-4); justify-content: space-between; padding: var(--space-3); } .downstream-attempt-result--error { background: #fef2f2; color: #b91c1c; } .downstream-attempt-timeline > p { color: var(--color-text-muted); margin: var(--space-3) 0 0; } .admin-mms-task-page .page-heading { align-items: center; } .admin-mms-task-table-card .ui-table { min-width: 1360px; } .admin-mms-task-table-card .ui-table-wrap { border: 0; border-radius: 0; } .admin-mms-task-table-card { overflow: hidden; padding: 0; } .admin-mms-task-table-card .mms-task-content { max-width: 420px; } .admin-mms-task-table-card .mms-task-content p { -webkit-box-orient: vertical; -webkit-line-clamp: 2; display: -webkit-box; overflow: hidden; } .admin-mms-task-table-card .mms-task-actions { justify-content: flex-end; } .admin-mms-task-table-card .mms-task-actions .ui-button { padding: 0 9px; } .admin-mms-task-detail .mms-detail-template small { color: var(--color-text-muted); font-size: var(--font-size-sm); margin-top: var(--space-2); } .admin-mms-city-list { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); display: grid; gap: var(--space-4); padding: var(--space-5); } .admin-mms-city-list > div { display: grid; gap: var(--space-2); grid-template-columns: 120px minmax(140px, 1fr) 80px; } .admin-mms-city-list strong { color: var(--color-text-strong); } .admin-mms-city-list span { color: var(--color-text-muted); text-align: right; } .admin-mms-city-list b { color: var(--color-selected); text-align: right; } .admin-mms-city-list .ui-progress-bar { grid-column: 1 / -1; } .admin-mms-record-search-button { background: #9d18ff; color: var(--color-text-inverse); } .admin-mms-record-search-button:hover { background: #8610dc; } .admin-mms-record-table { min-width: 1120px; } .admin-mms-record-table td { height: 112px; } .admin-mms-template-cell { display: grid; gap: var(--space-1); } .admin-mms-template-cell strong { color: var(--color-text-strong); } .admin-mms-template-cell span { color: var(--color-text-muted); } .admin-mms-template-cell small { color: #9d18ff; font-weight: var(--font-weight-semibold); } .admin-mms-preview-link { align-items: center; background: transparent; border: 0; color: #9d18ff; display: inline-flex; font-weight: var(--font-weight-semibold); gap: var(--space-2); padding: 0; } .admin-uplink-page .page-heading { align-items: center; } .admin-uplink-filter { align-items: end; display: grid; gap: var(--space-5); grid-template-columns: minmax(260px, 1.1fr) minmax(220px, 1fr) minmax(220px, 1fr) auto; } .admin-uplink-filter__actions { display: grid; gap: var(--space-3); grid-template-columns: repeat(2, minmax(120px, 1fr)); } .admin-uplink-table-card { overflow: hidden; padding: 0; } .admin-uplink-table-card .ui-table-wrap { border: 0; border-radius: 0; } .admin-uplink-table-card .ui-table { min-width: 1500px; } .gateway-exception-list-heading { align-items: flex-start; border-bottom: 1px solid var(--color-border); gap: var(--space-5); margin: 0; padding: var(--space-5) var(--space-6); } .gateway-exception-list-heading > div { display: grid; gap: var(--space-1); } .gateway-exception-list-heading h2, .gateway-exception-list-heading p { margin: 0; } .gateway-exception-page .report-task-table-card > .ui-pagination { border-top: 1px solid var(--color-border); padding: var(--space-4) var(--space-6); } @media (max-width: 720px) { .downstream-attempt-card dl { grid-template-columns: 1fr; } .downstream-attempt-result { align-items: flex-start; flex-direction: column; gap: var(--space-2); } } .admin-uplink-table-card .ui-table th { background: var(--color-bg-subtle); color: var(--color-text-muted); font-size: var(--font-size-sm); height: 58px; } .admin-uplink-table-card .ui-table td { height: 84px; padding: var(--space-5) var(--space-4); } .admin-uplink-checkbox { accent-color: var(--color-selected); height: 18px; width: 18px; } .admin-uplink-detail-link { background: transparent; border: 0; color: var(--color-selected); font-weight: var(--font-weight-semibold); padding: 0; } .admin-uplink-detail { display: grid; gap: var(--space-7); } .admin-uplink-info-card, .admin-uplink-match-card { background: var(--color-bg-subtle); border-radius: var(--radius-md); padding: var(--space-6); } .admin-uplink-info-card h3, .admin-uplink-match-section h3 { font-size: var(--font-size-lg); margin: 0 0 var(--space-5); } .admin-uplink-info-grid { display: grid; gap: var(--space-6) var(--space-8); grid-template-columns: repeat(2, minmax(0, 1fr)); } .admin-uplink-info-grid div { display: grid; gap: var(--space-2); } .admin-uplink-info-grid__full { grid-column: 1 / -1; } .admin-uplink-info-grid span, .admin-uplink-match-section > p, .admin-uplink-match-grid span, .admin-uplink-match-content span { color: var(--color-text-muted); font-weight: var(--font-weight-semibold); } .admin-uplink-info-grid strong, .admin-uplink-match-grid strong { color: var(--color-text-strong); font-weight: var(--font-weight-semibold); } .admin-uplink-match-section > p { margin-bottom: var(--space-5); } .admin-uplink-match-grid { display: grid; gap: var(--space-6); grid-template-columns: repeat(2, minmax(0, 1fr)); } .admin-uplink-match-grid div, .admin-uplink-match-content { display: grid; gap: var(--space-2); } .admin-uplink-match-content { margin-top: var(--space-5); } .admin-uplink-match-content p { border-bottom: 1px solid var(--color-border); color: var(--color-text-strong); line-height: 1.75; margin: 0; padding-bottom: var(--space-5); } .admin-uplink-candidate-footer { align-items: center; display: flex; gap: var(--space-4); justify-content: space-between; margin-top: var(--space-5); } .admin-uplink-candidate-footer span { color: var(--color-text-muted); line-height: 1.6; min-width: 0; } .admin-recharge-page .page-heading { align-items: center; } .admin-recharge-filter { align-items: end; display: grid; gap: var(--space-5); grid-template-columns: minmax(320px, 1.2fr) minmax(320px, 1.2fr) minmax(360px, 1fr); } .admin-recharge-filter__actions { display: grid; gap: var(--space-4); grid-template-columns: repeat(2, minmax(140px, 1fr)); } .admin-recharge-table-card { overflow: hidden; padding: 0; } .admin-recharge-table-card .ui-table-wrap { border: 0; border-radius: 0; } .admin-recharge-table { min-width: 1350px; } .admin-recharge-table th { background: var(--color-bg-subtle); color: var(--color-text-muted); font-size: var(--font-size-sm); height: 58px; text-align: left; } .admin-recharge-table td { color: var(--color-text-strong); font-weight: var(--font-weight-medium); height: 76px; padding: var(--space-4) var(--space-6); vertical-align: middle; } .admin-recharge-table td:nth-child(3), .admin-recharge-table td:nth-child(4) { font-variant-numeric: tabular-nums; } .recharge-receipt-modal .ui-modal__header, .recharge-receipt-modal .ui-modal__footer { padding: var(--space-3) var(--space-5); } .recharge-receipt-modal .ui-modal__body { padding: var(--space-3) var(--space-5); } .recharge-receipt { background: linear-gradient(135deg, rgba(217, 195, 160, 0.18), transparent 42%), var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); overflow: hidden; position: relative; } .recharge-receipt::before { background: linear-gradient(90deg, var(--color-brand), var(--color-accent-strong)); content: ''; height: 4px; inset: 0 0 auto; position: absolute; } .recharge-receipt__header { align-items: center; display: flex; justify-content: space-between; min-height: 52px; padding: var(--space-3) var(--space-5) var(--space-2); } .recharge-receipt__logo { display: block; height: 32px; max-width: 190px; object-fit: contain; object-position: left center; width: auto; } .recharge-receipt__header > span { align-items: center; border-radius: var(--radius-full); display: inline-flex; font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); gap: var(--space-2); padding: 7px 12px; } .recharge-receipt__header .is-posted { background: var(--color-success-soft); color: var(--color-success); } .recharge-receipt__header .is-correction { background: var(--color-warning-soft); color: var(--color-warning); } .recharge-receipt__amount { border-bottom: 1px solid var(--color-border); display: grid; justify-items: center; padding: var(--space-2) var(--space-5) var(--space-3); } .recharge-receipt__amount > span, .recharge-receipt__enterprise > span, .recharge-receipt__remark > span { color: var(--color-text-muted); font-size: var(--font-size-sm); } .recharge-receipt__amount strong { color: var(--color-text-strong); font-size: clamp(28px, 4vw, 34px); font-variant-numeric: tabular-nums; letter-spacing: -0.035em; line-height: 1.15; margin-top: var(--space-1); } .recharge-receipt__amount small { font-size: 0.58em; font-weight: var(--font-weight-semibold); margin: 0 var(--space-1); } .recharge-receipt__enterprise { display: grid; gap: var(--space-1); padding: var(--space-3) var(--space-5); } .recharge-receipt__enterprise strong { color: var(--color-text-strong); font-size: var(--font-size-lg); } .recharge-receipt__enterprise small { color: var(--color-text-muted); } .recharge-receipt__details { background: var(--color-bg-subtle); border-bottom: 1px solid var(--color-border); border-top: 1px solid var(--color-border); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding: var(--space-1) var(--space-5); } .recharge-receipt__details > div { display: grid; gap: var(--space-1); min-width: 0; padding: var(--space-2) 0; } .recharge-receipt__details > div:nth-child(even) { padding-left: var(--space-6); } .recharge-receipt__details dt { color: var(--color-text-muted); font-size: var(--font-size-xs); } .recharge-receipt__details dd { color: var(--color-text-strong); font-variant-numeric: tabular-nums; font-weight: var(--font-weight-medium); margin: 0; overflow-wrap: anywhere; } .recharge-receipt__remark { display: grid; gap: var(--space-2); padding: var(--space-2) var(--space-5); } .recharge-receipt__remark p { color: var(--color-text-strong); line-height: var(--line-height-loose); margin: 0; overflow-wrap: anywhere; } .recharge-receipt__note { background: var(--color-bg-subtle); border-top: 1px dashed var(--color-border-strong); color: var(--color-text-muted); font-size: var(--font-size-xs); padding: var(--space-2) var(--space-5); text-align: center; } .recharge-receipt--correction .recharge-receipt__amount { padding-bottom: var(--space-2); padding-top: var(--space-1); } .recharge-receipt--correction .recharge-receipt__amount strong { font-size: 28px; } @media (max-width: 560px) { .recharge-receipt__header, .recharge-receipt__enterprise, .recharge-receipt__remark { padding-left: var(--space-5); padding-right: var(--space-5); } .recharge-receipt__logo { height: 32px; max-width: 150px; } .recharge-receipt__details { grid-template-columns: 1fr; padding-left: var(--space-5); padding-right: var(--space-5); } .recharge-receipt__details > div { border-bottom: 1px solid var(--color-border); } .recharge-receipt__details > div:last-child { border-bottom: 0; } .recharge-receipt__details > div:nth-child(even) { padding-left: 0; } } .manual-recharge-review, .manual-recharge-result { display: grid; gap: var(--space-5); } .manual-recharge-review > p { color: var(--color-text-muted); margin: 0; } .manual-recharge-review dl { background: var(--color-bg-subtle); border: 1px solid var(--color-border); border-radius: var(--radius-lg); margin: 0; overflow: hidden; } .manual-recharge-review dl > div { align-items: center; border-bottom: 1px solid var(--color-border); display: grid; gap: var(--space-4); grid-template-columns: minmax(110px, 0.7fr) minmax(0, 1.5fr); padding: var(--space-4) var(--space-5); } .manual-recharge-review dl > div:last-child { border-bottom: 0; } .manual-recharge-review dt { color: var(--color-text-muted); } .manual-recharge-review dd { display: grid; font-variant-numeric: tabular-nums; gap: var(--space-1); justify-items: end; margin: 0; overflow-wrap: anywhere; text-align: right; } .manual-recharge-review dd span { color: var(--color-text-muted); font-size: var(--font-size-sm); } .manual-recharge-review .is-positive { color: var(--color-success); } .manual-recharge-review .is-negative { color: var(--color-danger); } .manual-recharge-review__remark { background: var(--color-warning-soft); border-radius: var(--radius-md); color: var(--color-text-strong) !important; padding: var(--space-4); overflow-wrap: anywhere; } .manual-recharge-result { background: var(--color-success-soft); border: 1px solid var(--color-success); border-radius: var(--radius-lg); color: var(--color-text-strong); padding: var(--space-6); } .manual-recharge-result > strong { color: var(--color-success); font-size: var(--font-size-lg); } @media (max-width: 480px) { .manual-recharge-review dl > div { align-items: start; grid-template-columns: 1fr; gap: var(--space-2); } .manual-recharge-review dd { justify-items: start; text-align: left; } } .admin-recharge-pagination { align-items: center; border-top: 1px solid var(--color-border); display: flex; gap: var(--space-5); justify-content: flex-end; min-height: 88px; padding: var(--space-4) var(--space-6); } .admin-recharge-pagination > label { width: 130px; } .admin-recharge-pagination > div { align-items: center; display: flex; gap: var(--space-2); } .admin-recharge-pagination .ui-button--primary { background: var(--color-selected); } .admin-recharge-pagination span { color: var(--color-text-muted); padding: 0 var(--space-2); } .phone-segment-tabs .ui-tabs__list { width: fit-content; } .phone-segment-tabs .ui-tabs__tab { min-width: 0; padding-inline: var(--space-3); } .admin-user-toolbar { grid-template-columns: minmax(0, 1fr) auto; } .admin-user-filter-grid { min-width: 0; } .admin-user-toolbar > .ui-button { justify-self: end; width: max-content; } .phone-segment-workbench { max-width: 1440px; } .phone-segment-heading { display: grid; gap: var(--space-2); } .phone-segment-summary__icon { align-items: center; background: var(--color-selected-soft); border: 1px solid #bfdbfe; border-radius: 50%; color: var(--color-selected); display: inline-flex; flex: 0 0 auto; justify-content: center; } .phone-segment-heading > p { color: var(--color-text-muted); margin: 0 0 0 56px; } .phone-segment-panel { border-radius: var(--radius-lg); } .phone-segment-query { align-items: center; display: grid; gap: var(--space-4); grid-template-columns: minmax(300px, 670px) auto; } .phone-segment-query__actions { display: flex; gap: var(--space-3); } .phone-segment-workbench__tabs { display: grid; } .phone-segment-workbench__tabs .ui-tabs__list { border-bottom: 1px solid var(--color-border); overflow-y: hidden; padding: 0 var(--space-6); width: fit-content; } .phone-segment-workbench__tabs .ui-tabs__tab { min-height: 58px; padding-inline: var(--space-4); } .phone-segment-tab-content { display: grid; gap: 0; } .phone-segment-summary { align-items: center; border-bottom: 1px solid var(--color-border); display: grid; gap: var(--space-4); grid-template-columns: 52px auto minmax(0, 1fr); margin: 0 var(--space-6); min-height: 128px; padding: var(--space-5) 0; } .phone-segment-summary__icon { height: 48px; width: 48px; } .phone-segment-summary__value { border-right: 1px solid var(--color-border); display: grid; gap: var(--space-1); min-width: 190px; padding-right: var(--space-6); } .phone-segment-summary__value > span { color: var(--color-text); font-weight: var(--font-weight-medium); } .phone-segment-summary__value strong { color: var(--color-selected); font-size: 30px; letter-spacing: -0.02em; line-height: 1.1; } .phone-segment-summary p { color: var(--color-text-muted); margin: 0; padding-left: var(--space-2); } .phone-segment-tab-content > .phone-segment-query { margin: var(--space-5) var(--space-6); } .phone-segment-prefix { color: var(--color-text-strong); font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 15px; letter-spacing: 0.04em; } .phone-segment-delete { color: var(--color-danger); } .phone-segment-delete:hover:not(:disabled) { background: var(--color-danger-soft); color: var(--color-danger); } .phone-segment-panel .ui-pagination { border-top: 1px solid var(--color-border); padding: var(--space-5) var(--space-6); } .phone-segment-panel .ui-table { min-width: 800px; } .admin-drainage-actions { align-items: center; display: inline-flex; gap: var(--space-2); justify-content: flex-end; } .admin-drainage-toolbar { align-items: end; display: grid; gap: var(--space-5); grid-template-columns: minmax(320px, 1fr) minmax(160px, 220px) auto; } .admin-drainage-page .page-heading > div > p { color: var(--color-text-muted); margin: 6px 0 0; } .admin-drainage-summary { display: grid; gap: 16px; grid-template-columns: repeat(3, minmax(0, 1fr)); } .admin-drainage-summary article { align-items: center; background: linear-gradient(135deg, #fff, var(--color-bg-subtle)); border: 1px solid var(--color-border); border-radius: var(--radius-lg); display: flex; gap: 14px; min-height: 96px; padding: 20px; } .admin-drainage-summary article > span { align-items: center; background: #eef4ff; border-radius: 12px; color: var(--color-primary); display: flex; height: 42px; justify-content: center; width: 42px; } .admin-drainage-summary strong { color: var(--color-text-strong); font-size: 24px; } .admin-drainage-summary p { color: var(--color-text-muted); margin: 3px 0 0; } .admin-drainage-section { padding: 22px; } .admin-drainage-section__heading { align-items: flex-start; display: flex; gap: 20px; justify-content: space-between; margin-bottom: 18px; } .admin-drainage-section__heading h2 { margin: 0 0 6px; } .admin-drainage-section__heading p { color: var(--color-text-muted); margin: 0; } .admin-drainage-common-grid { display: grid; gap: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); } .admin-drainage-common-group { background: var(--color-bg-subtle); border: 1px solid var(--color-border); border-radius: var(--radius-md); min-width: 0; padding: 16px; } .admin-drainage-common-group__title { align-items: center; display: flex; justify-content: space-between; margin-bottom: 12px; } .admin-drainage-common-group__title > span, .admin-drainage-common-empty { color: var(--color-text-muted); font-size: var(--font-size-sm); } .admin-drainage-common-list { display: grid; gap: 8px; } .admin-drainage-common-list > div { align-items: center; background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-sm); display: grid; gap: 10px; grid-template-columns: minmax(0, 1fr) auto auto; padding: 11px 12px; } .admin-drainage-common-list strong, .admin-drainage-common-list span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .admin-drainage-common-list span { color: var(--color-text-muted); font-size: 12px; margin-top: 3px; } .admin-drainage-field-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); } .admin-drainage-field-card { border: 1px solid var(--color-border); border-radius: var(--radius-md); display: flex; flex-direction: column; min-height: 220px; padding: 16px; transition: border-color .2s, box-shadow .2s, transform .2s; } .admin-drainage-field-card:hover { border-color: #b8c9eb; box-shadow: 0 8px 24px rgba(27, 55, 100, .08); transform: translateY(-1px); } .admin-drainage-field-card__top { align-items: center; display: flex; justify-content: space-between; } .admin-drainage-field-card h3 { font-size: 17px; margin: 15px 0 5px; } .admin-drainage-field-card code { color: var(--color-primary); font-size: 13px; } .admin-drainage-field-card > p { color: var(--color-text-muted); flex: 1; line-height: 1.6; margin: 12px 0; } .admin-drainage-field-card__meta { border-top: 1px solid var(--color-border); color: var(--color-text-muted); display: flex; font-size: 13px; gap: 18px; padding-top: 12px; } .admin-drainage-field-card__meta strong { color: var(--color-text-strong); } .admin-drainage-empty { color: var(--color-text-muted); padding: 42px; text-align: center; } .admin-drainage-type { align-items: center; background: var(--color-bg-subtle); border: 1px solid var(--color-border); border-radius: var(--radius-sm); color: var(--color-text-strong); display: inline-flex; font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); min-height: 30px; padding: 0 var(--space-3); } @media (max-width: 900px) { .admin-drainage-summary, .admin-drainage-common-grid { grid-template-columns: 1fr; } .admin-drainage-toolbar { grid-template-columns: 1fr; } .admin-drainage-section__heading { align-items: stretch; flex-direction: column; } .admin-user-toolbar { grid-template-columns: 1fr; } } .admin-drainage-actions .ui-button--ghost { color: var(--color-text); } .admin-drainage-pagination { align-items: center; border-top: 1px solid var(--color-border); display: flex; gap: var(--space-3); justify-content: flex-end; min-height: 76px; padding: var(--space-4) var(--space-6); } .admin-drainage-pagination span { color: var(--color-text-muted); } .file-actions { align-items: center; display: inline-flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; } .file-action-link, .file-action-preview.ui-button { align-items: center; background: #fff; border: 1px solid var(--border); border-radius: 6px; color: var(--text); display: inline-flex; font-size: 13px; font-weight: 600; gap: 4px; min-height: 30px; padding: 0 10px; text-decoration: none; } .file-action-link:hover, .file-action-preview.ui-button:hover { border-color: var(--primary); color: var(--primary); } .file-preview-image { display: block; height: auto; margin: 0 auto; max-height: calc(100vh - 300px); max-width: 100%; object-fit: contain; } .client-signature-page { gap: 18px; } .client-signature-heading, .client-signature-title, .client-drainage-panel__head { align-items: center; display: flex; justify-content: space-between; } .client-signature-title { justify-content: flex-start; gap: 13px; } .client-signature-title__icon { align-items: center; background: #e9f6f0; border: 1px solid #d3ebe1; border-radius: 12px; color: #187352; display: inline-flex; height: 46px; justify-content: center; width: 46px; } .client-signature-title h1, .client-signature-title p, .client-drainage-panel h3, .client-drainage-panel p, .client-signature-form-section h3, .client-signature-form-section p { margin: 0; } .client-signature-title h1 { color: var(--text-strong); font-size: 24px; line-height: 1.25; } .client-signature-title p, .client-drainage-panel p, .client-signature-form-section p { color: var(--text-muted); font-size: 13px; margin-top: 5px; } .client-signature-overview { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); display: grid; grid-template-columns: repeat(4, 1fr); overflow: hidden; } .client-signature-overview > div { display: grid; gap: 7px; padding: 18px 22px; position: relative; } .client-signature-overview > div + div::before { background: var(--border); content: ''; height: 34px; left: 0; position: absolute; top: 20px; width: 1px; } .client-signature-overview span { color: var(--text-muted); font-size: 13px; } .client-signature-overview strong { color: var(--text-strong); font-size: 25px; line-height: 1; } .client-signature-toolbar { align-items: end; display: grid; gap: 12px; grid-template-columns: minmax(240px, 1fr) 190px 160px auto; } .client-signature-list-shell { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; } .client-signature-list-head, .client-signature-list-row { align-items: center; display: grid; gap: 14px; grid-template-columns: 24px minmax(120px, 1.1fr) minmax(110px, 1fr) minmax(120px, 1fr) 104px 76px 142px minmax(144px, auto); min-width: 1050px; } .client-signature-list-head { background: #f7f9f8; border-bottom: 1px solid var(--border); color: var(--text-muted); font-size: 12px; font-weight: 600; letter-spacing: .02em; padding: 12px 18px; } .client-signature-row-wrap { content-visibility: auto; contain-intrinsic-size: 62px; } .client-signature-row-wrap + .client-signature-row-wrap { border-top: 1px solid var(--border); } .client-signature-list-row { min-height: 62px; padding: 10px 18px; } .client-signature-list-row > span { color: var(--text-secondary); font-size: 13px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .client-signature-list-row > strong { color: var(--text-strong); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .client-signature-expand { align-items: center; background: transparent; border: 0; color: var(--text-muted); cursor: pointer; display: inline-flex; justify-content: center; padding: 3px; } .client-signature-expand:hover { color: var(--primary); } .client-signature-inline-reason, .client-signature-reason, .client-drainage-reason { background: #fff8f0; color: #9a4d12; font-size: 13px; } .client-signature-inline-reason { border-top: 1px solid #f5dfc8; padding: 9px 56px; } .client-signature-reason { border: 1px solid #f5dfc8; border-radius: 8px; display: grid; gap: 4px; padding: 12px 14px; } .client-drainage-panel { background: #f8fbfa; border-top: 1px solid var(--border); padding: 18px 56px 22px; } .client-drainage-panel__head { margin-bottom: 14px; } .client-drainage-panel h3 { align-items: center; color: var(--text-strong); display: flex; font-size: 15px; gap: 7px; } .client-drainage-table { background: var(--surface); border: 1px solid var(--border); border-radius: 9px; overflow-x: auto; } .client-drainage-table__head, .client-drainage-table__row { align-items: center; display: grid; gap: 14px; grid-template-columns: minmax(130px, 1fr) minmax(240px, 1.8fr) 104px 142px minmax(144px, auto); min-width: 820px; } .client-drainage-table__head { background: #f5f8f7; color: var(--text-muted); font-size: 12px; font-weight: 600; padding: 10px 14px; } .client-drainage-table__row { border-top: 1px solid var(--border); min-height: 56px; padding: 9px 14px; } .client-drainage-table__row > a { color: var(--primary); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .client-drainage-reason { grid-column: 1 / -1; margin: 0 -14px -9px; padding: 8px 14px; } .client-signature-list-empty, .client-signature-empty-hint { color: var(--text-muted); font-size: 13px; margin: 0; padding: 28px; text-align: center; } .client-signature-form-section { background: #f8fbfa; border: 1px solid var(--border); border-radius: 10px; display: grid; gap: 14px; padding: 16px; } .client-signature-form-section .client-signature-empty-hint { padding: 10px; text-align: left; } @media (max-width: 1180px) { .client-signature-list-shell { overflow-x: auto; } } @media (max-width: 780px) { .enterprise-flow-card { min-height: 0; padding: var(--space-4); } .enterprise-stepper { justify-content: flex-start; margin-bottom: var(--space-8); overflow-x: auto; padding-bottom: var(--space-2); } .enterprise-stepper__item { flex: 0 0 auto; gap: var(--space-2); } .enterprise-stepper__dot { height: 36px; width: 36px; } .enterprise-stepper__arrow { flex: 0 0 auto; margin: 0 var(--space-2); } .enterprise-form-panel, .enterprise-upload { min-width: 0; width: 100%; } .enterprise-upload { padding: var(--space-4); text-align: center; } .enterprise-upload strong { max-width: 100%; overflow-wrap: anywhere; } .enterprise-upload .file-actions { justify-content: center; } .enterprise-address-selects > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); } .enterprise-address-selects .ui-field { min-width: 0; width: 100%; } .client-signature-heading, .client-drainage-panel__head { align-items: stretch; display: grid; gap: 14px; } .client-signature-overview { grid-template-columns: repeat(2, 1fr); } .client-signature-overview > div:nth-child(3)::before { display: none; } .client-signature-toolbar { grid-template-columns: 1fr; } .client-drainage-panel { padding: 18px; } } @media (max-width: 780px) { .overview-hero { align-items: stretch; display: grid; padding: var(--space-5); } .dashboard-grid { grid-template-columns: 1fr; } .content-grid, .plan-grid, .chart-grid, .overview-grid, .overview-grid--three, .quick-grid, .sms-send-layout, .send-form-row { grid-template-columns: 1fr; } .sms-preview-card { position: static; } .receiver-table__head, .receiver-table__row { grid-template-columns: 64px minmax(0, 1fr) 64px; } .batch-filter-grid { gap: var(--space-4); grid-template-columns: 1fr; } .batch-pagination { align-items: stretch; display: grid; gap: var(--space-3); } .task-info-grid, .task-stat-grid, .carrier-rate-grid, .sms-app-grid, .template-card-grid { grid-template-columns: 1fr; } .template-toolbar, .template-custom-variable { grid-template-columns: 1fr; } .task-detail-title h2 { font-size: 26px; } .admin-uplink-filter, .admin-recharge-filter, .admin-recharge-filter__actions, .phone-segment-overview, .phone-segment-tabs, .admin-drainage-toolbar, .channel-route-card-grid, .detail-grid, .admin-mms-city-list > div, .admin-uplink-info-grid, .admin-uplink-match-grid { grid-template-columns: 1fr; } .admin-recharge-pagination { align-items: stretch; display: grid; justify-content: stretch; } } /* Shared responsive layouts for report filters and compact record rows. */ .client-http-credential-row { align-items: center; display: grid; gap: var(--space-3); grid-template-columns: 1fr 1.5fr 100px 1fr auto; padding: var(--space-4); } .client-http-credential-row code { min-width: 0; overflow-wrap: anywhere; } .admin-report-target-row { display: grid; gap: var(--space-4); grid-template-columns: minmax(0, 1fr) 220px; padding: var(--space-4); } @media (max-width: 780px) { .login-page { padding: var(--space-4); } .login-panel { padding: 28px 22px 24px; } .login-brand { margin-bottom: var(--space-6); } .login-captcha-row { grid-template-columns: minmax(0, 1fr) 112px; gap: var(--space-2); } .admin-dashboard-main-grid, .admin-metric-grid, .admin-workload-grid, .enterprise-summary-grid, .enterprise-query-grid, .system-log-filters, .channel-report-filter-grid, .channel-group-filter, .channel-group-config-item, .channel-group-base-form, .channel-group-retry-limit, .report-receipt-modal, .phone-segment-query, .client-http-credential-row, .admin-report-target-row, .admin-app-form-grid, .admin-app-route-grid { grid-template-columns: minmax(0, 1fr); } .admin-app-protocol-header { align-items: stretch; display: grid; gap: var(--space-4); } .admin-app-protocol-header > .admin-switch { justify-self: start; } .admin-metric-grid, .enterprise-summary-grid, .admin-workload-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .enterprise-query-actions, .phone-segment-query__actions { align-items: stretch; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); } .enterprise-query-actions .ui-button, .phone-segment-query__actions .ui-button { width: 100%; } .channel-report-page, .channel-group-form-page { min-width: 0; width: 100%; } .channel-report-heading, .channel-report-filter-footer { align-items: stretch; display: grid; gap: var(--space-4); } .channel-report-config-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-left: 0; } .channel-report-filter-footer > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); } .channel-report-table { background: transparent; border: 0; box-shadow: none; overflow: visible; } .channel-report-table__head { display: none; } .channel-report-row { align-items: stretch; border: 1px solid var(--color-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); display: grid; gap: var(--space-3); grid-template-columns: minmax(0, 1fr); margin-bottom: var(--space-3); min-height: 0; padding: var(--space-4); } .channel-report-row > :first-child { display: none; } .channel-report-name--flow { padding-left: 0; } .channel-report-row > :nth-child(3), .channel-report-row > :nth-child(4), .channel-report-row > :nth-child(5), .channel-report-row > :nth-child(6) { align-items: center; display: grid; gap: var(--space-3); grid-template-columns: 88px minmax(0, 1fr); min-width: 0; } .channel-report-row > :nth-child(3)::before { color: var(--color-text-muted); content: "报备状态"; font-size: var(--font-size-xs); } .channel-report-row > :nth-child(4)::before { color: var(--color-text-muted); content: "提交报备时间"; font-size: var(--font-size-xs); } .channel-report-row > :nth-child(5)::before { color: var(--color-text-muted); content: "报备成功时间"; font-size: var(--font-size-xs); } .channel-report-row > :nth-child(6)::before { color: var(--color-text-muted); content: "上次发送成功"; font-size: var(--font-size-xs); } .channel-report-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: 0; width: 100%; } .channel-report-actions { display: flex; flex-wrap: wrap; gap: var(--space-4); } .channel-signature-grid, .channel-status-options { grid-template-columns: minmax(0, 1fr); } .channel-group-base-form > .ui-field, .channel-group-retry-limit, .channel-group-radio-row, .channel-group-switch-row { grid-column: auto; } .channel-group-radio-row, .channel-group-switch-row { align-items: flex-start; display: grid; gap: var(--space-3); } .channel-group-filter__actions, .channel-group-config-item__actions, .channel-group-row-actions { justify-content: flex-start; justify-self: stretch; } .channel-group-config-item__metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); } .channel-group-retry-limit > span, .channel-group-retry-limit small { grid-column: auto; } .phone-segment-tab-content > .phone-segment-query { margin: var(--space-4); } .phone-segment-heading > p { font-size: var(--font-size-sm); line-height: 1.55; margin-left: 0; } .phone-segment-workbench__tabs .ui-tabs__list { padding: 0 var(--space-3); width: 100%; } .phone-segment-workbench__tabs .ui-tabs__tab { flex: 1; justify-content: center; white-space: nowrap; } .phone-segment-summary { gap: var(--space-3); grid-template-columns: 44px minmax(0, 1fr); margin: 0 var(--space-4); min-height: 0; padding: var(--space-5) 0; } .phone-segment-summary__icon { height: 42px; width: 42px; } .phone-segment-summary__value { border-right: 0; min-width: 0; padding-right: 0; } .phone-segment-summary__value strong { font-size: 26px; } .phone-segment-summary p { grid-column: 1 / -1; padding-left: 0; } .phone-segment-panel .ui-table tbody { padding: 0 var(--space-4) var(--space-4); } .phone-segment-panel .ui-pagination { padding: var(--space-4); } .sms-bulk-actions, .sms-audit-toolbar { align-items: stretch; flex-wrap: wrap; } /* Signature and drainage rows use true mobile cards. */ .client-signature-list-shell { background: transparent; border: 0; overflow: visible; } .client-signature-list-head, .client-drainage-table__head { display: none; } .client-signature-row-wrap { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); overflow: hidden; } .client-signature-row-wrap + .client-signature-row-wrap { border-top: 1px solid var(--border); margin-top: var(--space-3); } .client-signature-list-row { align-items: center; display: grid; gap: 10px; grid-template-columns: 32px minmax(0, 1fr); min-width: 0; padding: var(--space-4); } .client-signature-list-row > :nth-child(n+3):nth-child(-n+7) { align-items: center; display: grid; gap: var(--space-3); grid-column: 1 / -1; grid-template-columns: 92px minmax(0, 1fr); overflow: visible; white-space: normal; } .client-signature-list-row > :nth-child(3)::before { color: var(--text-muted); content: "所属应用"; font-size: 12px; } .client-signature-list-row > :nth-child(4)::before { color: var(--text-muted); content: "使用场景"; font-size: 12px; } .client-signature-list-row > :nth-child(5)::before { color: var(--text-muted); content: "审核状态"; font-size: 12px; } .client-signature-list-row > :nth-child(6)::before { color: var(--text-muted); content: "已交资料"; font-size: 12px; } .client-signature-list-row > :nth-child(7)::before { color: var(--text-muted); content: "更新时间"; font-size: 12px; } .client-signature-list-row > .table-actions { grid-column: 1 / -1; justify-content: flex-start; } .client-signature-inline-reason, .client-drainage-panel { padding: var(--space-4); } .client-drainage-table { background: transparent; border: 0; overflow: visible; } .client-drainage-table__row { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); display: grid; gap: 10px; grid-template-columns: 88px minmax(0, 1fr); min-width: 0; padding: var(--space-4); } .client-drainage-table__row > * { grid-column: 1 / -1; min-width: 0; white-space: normal; } .client-drainage-table__row > a { overflow-wrap: anywhere; } .client-drainage-reason { margin: 0; } } @media (max-width: 360px) { .login-captcha-row, .admin-metric-grid, .enterprise-summary-grid, .admin-workload-grid, .channel-report-config-actions, .channel-report-filter-footer > div, .enterprise-query-actions, .phone-segment-query__actions { grid-template-columns: minmax(0, 1fr); } } .application-unit-price { color: var(--color-text-strong); font-size: var(--font-size-base); font-variant-numeric: tabular-nums; } .downstream-page-size { display: inline-flex; align-items: center; gap: 8px; color: var(--text-muted); font-size: 13px; } .downstream-page-size select { min-width: 76px; height: 36px; border: 1px solid var(--border); border-radius: 8px; background: var(--surface); color: var(--text); padding: 0 10px; } .downstream-requeue-task-list { display: grid; gap: 10px; } .downstream-requeue-task-list article { display: grid; grid-template-columns: minmax(170px, 1fr) minmax(220px, 2fr) minmax(150px, .8fr) auto; gap: 16px; align-items: center; padding: 14px 0; border-top: 1px solid var(--border); } .downstream-requeue-task-list article > div { display: grid; gap: 4px; } .downstream-requeue-task-list__actions { display: flex !important; flex-wrap: wrap; justify-content: flex-end; } .downstream-requeue-preview { display: grid; gap: 18px; } .downstream-requeue-warning { display: flex; align-items: flex-start; gap: 10px; padding: 12px; border-radius: 10px; background: var(--warning-soft, #fff7ed); color: var(--warning-text, #9a3412); } .downstream-requeue-detail-items { display: grid; gap: 8px; } .downstream-requeue-detail-items > div { display: grid; grid-template-columns: minmax(180px, 1fr) 120px minmax(220px, 2fr); gap: 12px; align-items: center; padding: 10px 0; border-top: 1px solid var(--border); } @media (max-width: 900px) { .downstream-requeue-task-list article { grid-template-columns: 1fr; } .downstream-requeue-task-list__actions { justify-content: flex-start; } .downstream-requeue-detail-items > div { grid-template-columns: 1fr; } }