.action-cell { display: flex; align-items: center; gap: 6px; } .drag-handle { cursor: grab; opacity: 0.35; font-size: 14px; padding: 4px; margin: -4px; touch-action: none; transition: opacity 0.15s; } .drag-handle:hover { opacity: 0.8; } .drag-handle:active { cursor: grabbing; } .row-dragging { opacity: 0.4; } .drop-before > td { box-shadow: inset 0 2px 0 0 #1677ff; } .drop-after > td { box-shadow: inset 0 -2px 0 0 #1677ff; } .row-index { font-weight: 500; opacity: 0.7; min-width: 18px; text-align: right; } .action-buttons { display: flex; align-items: center; justify-content: flex-end; gap: 4px; margin-left: auto; } .criterion-flow { display: flex; flex-direction: column; gap: 2px; font-size: 12px; } .criterion-row { display: inline-flex; align-items: baseline; gap: 4px; white-space: nowrap; } .criterion-label { font-size: 10px; text-transform: uppercase; opacity: 0.55; letter-spacing: 0.04em; } .criterion-value { font-weight: 500; } .criterion-more { font-size: 11px; padding: 0 5px; border-radius: 8px; background: rgba(0, 0, 0, 0.06); } body.dark .criterion-more { background: rgba(255, 255, 255, 0.1); } .criterion-empty { opacity: 0.4; } .target-row { display: flex; align-items: center; gap: 4px; } .target-icon { font-size: 12px; opacity: 0.6; } .rule-list { display: flex; flex-direction: column; gap: 8px; } .rule-card { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 10px 12px; background: var(--bg-card, #fff); border: 1px solid rgba(128, 128, 128, 0.15); border-radius: 8px; transition: opacity 0.15s, box-shadow 0.15s; } .rule-card.row-dragging { opacity: 0.4; } .rule-card.drop-before { box-shadow: inset 0 2px 0 0 #1677ff; } .rule-card.drop-after { box-shadow: inset 0 -2px 0 0 #1677ff; } .rule-card-head { display: flex; align-items: center; gap: 8px; } .rule-number { font-weight: 600; font-size: 13px; opacity: 0.75; flex: 1; } .rule-flow { display: flex; align-items: center; gap: 8px; } .flow-side { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; } .flow-side-target { align-items: flex-end; text-align: right; } .flow-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.05em; opacity: 0.55; } .flow-tag { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin: 0; } .flow-arrow { font-size: 16px; opacity: 0.45; flex-shrink: 0; } .rule-criteria { display: flex; flex-wrap: wrap; gap: 4px; padding-top: 6px; border-top: 1px dashed rgba(128, 128, 128, 0.2); } .criterion-chip { display: inline-flex; align-items: baseline; gap: 4px; padding: 1px 6px; font-size: 11px; background: rgba(128, 128, 128, 0.08); border-radius: 4px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .criterion-chip-label { font-size: 9px; text-transform: uppercase; letter-spacing: 0.04em; opacity: 0.6; } .criterion-chip-value { font-weight: 500; } .rule-empty { padding: 24px; text-align: center; opacity: 0.4; } body.dark .rule-card { background: rgba(255, 255, 255, 0.04); border-color: rgba(255, 255, 255, 0.08); } body.dark .criterion-chip { background: rgba(255, 255, 255, 0.06); }