body { min-height: 100vh; }
.field-row { display: grid; grid-template-columns: 1fr 1.7fr 1fr auto; gap: .5rem; margin-bottom: .5rem; }
.result { max-width: 320px; white-space: normal; font-size: .85rem; }
.url-cell { max-width: 310px; overflow-wrap: anywhere; }
.actions { min-width: 110px; }
.product-image { width: 84px; height: 84px; object-fit: contain; border-radius: .5rem; background: #fff; border: 1px solid var(--bs-border-color); }
.image-placeholder { width: 84px; height: 84px; display: grid; place-items: center; border-radius: .5rem; background: var(--bs-secondary-bg); color: var(--bs-secondary-color); font-size: 1.5rem; }
.history-domain { border-left: 2px solid var(--bs-border-color); padding-left: .6rem; margin-top: .5rem; min-width: 230px; }
.history-points { display: grid; gap: .25rem; margin-top: .5rem; font-size: .8rem; color: var(--bs-secondary-color); }
.history-points span { display: flex; justify-content: space-between; gap: 1rem; }
.lowest-price { display: grid; gap: .15rem; padding: .85rem; border-radius: .6rem; background: var(--bs-success-bg-subtle); color: var(--bs-success-text-emphasis); margin-bottom: 1rem; }
.lowest-price strong { font-size: 1.5rem; }
.field-order-item { display: inline-flex; align-items: center; gap: .35rem; padding: .35rem .45rem .35rem .7rem; border: 1px solid var(--bs-border-color); border-radius: .5rem; background: var(--bs-body-bg); }
.sort-column { border: 0; background: none; padding: 0; font-weight: 600; white-space: nowrap; color: inherit; }
.sort-column:hover { color: var(--bs-primary); }
.filter-row th { padding-top: 0; min-width: 130px; }
.note-dialog { width: min(520px, calc(100vw - 2rem)); border: 0; border-radius: .75rem; padding: 1.25rem; box-shadow: 0 1rem 3rem rgba(0,0,0,.3); }
.note-dialog::backdrop { background: rgba(0,0,0,.5); }
.note-text { white-space: pre-wrap; }
.card-body:not(:has(#toggle-group-mode.btn-primary)) .ungroup { display: none; }
.card-body:not(:has(#toggle-group-mode.btn-primary)) .delete-url,
.card-body:not(:has(#toggle-group-mode.btn-primary)) .edit-note { display: none; }
.actions { text-align: right; }
.favorite-star { color: #e0a800; }
.product-table-placeholder { display: none; }
.card-view { border-collapse: separate; border-spacing: 0; }
.card-view thead { display: none; }
.card-view tbody { display: grid; grid-template-columns: repeat(auto-fill, minmax(310px, 1fr)); gap: 1rem; }
.card-view tbody tr { display: block; border: 1px solid var(--bs-border-color); border-radius: .75rem; padding: .75rem; background: var(--bs-body-bg); box-shadow: 0 .125rem .25rem rgba(0,0,0,.075); }
.card-view tbody tr.table-danger { background: var(--bs-danger-bg-subtle); border-color: var(--bs-danger-border-subtle); }
.card-view tbody td { display: grid; grid-template-columns: 110px minmax(0,1fr); gap: .65rem; align-items: start; border: 0; border-bottom: 1px solid var(--bs-border-color); padding: .6rem .25rem; max-width: none; }
.card-view tbody td::before { content: attr(data-label); font-weight: 600; color: var(--bs-secondary-color); font-size: .8rem; }
.card-view tbody td:last-child { border-bottom: 0; }
.card-view .actions { min-width: 0; }
.card-view .product-image, .card-view .image-placeholder { width: 100px; height: 100px; }
@media (max-width: 575.98px) { .card-view tbody { grid-template-columns: 1fr; } .view-toggle { order: 2; } }
.rule-editor { top: 1rem; }
.list-card { transition: transform .15s ease, box-shadow .15s ease; }
.list-card:hover { transform: translateY(-2px); }
.list-card .card-actions { position: relative; z-index: 2; }
code { color: #6f42c1; }
.test-result { border-left: 3px solid var(--bs-secondary); padding: .55rem .7rem; margin-top: .6rem; background: var(--bs-body-bg); }
.test-result.test-success { border-left-color: var(--bs-success); }
.test-result.test-empty { border-left-color: var(--bs-secondary); }
@media (max-width: 600px) { .field-row { grid-template-columns: 1fr; } }
