@use '../styles/variables' as *; .tableContainer { display: flex; flex-direction: column; align-items: center; width: 100%; flex: 1; min-height: 0; margin-top: 1.5rem; } .tableWrapper { display: flex; flex-direction: column; width: 100%; max-width: 1200px; flex: 1; min-height: 0; } .tableHeader { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; } .tableTitle { font-size: 0.875rem; font-weight: $medium; color: $gray-600; margin: 0; } .table { display: flex; flex-direction: column; flex: 1; min-height: 0; background-color: $white; border-radius: $radius-lg; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); overflow: hidden; } .thead { display: flex; flex-direction: column; background-color: $gray-200; } .theadRow { display: flex; justify-content: space-between; padding: 0 1.5rem; border-bottom: 1px solid $gray-300; } .th { position: relative; display: flex; align-items: center; justify-content: flex-start; padding: 0.875rem 0; font-size: 0.75rem; font-weight: $semibold; text-transform: uppercase; letter-spacing: 0.05em; color: $gray-600; line-height: normal; } .thOriginal { flex: 2 2 0px; } .thShort { flex: 1 1 0px; } .tbody { display: flex; flex-direction: column; overflow-y: auto; } .tr { display: flex; justify-content: space-between; padding: 0 1.5rem; border-bottom: 1px solid $gray-200; transition: background-color $transition-fast; &:last-child { border-bottom: none; } &:hover { background-color: rgba($gray-200, 0.3); } } .td { position: relative; display: flex; align-items: center; padding: 1rem 0; } .tdOriginal { position: relative; overflow: hidden; white-space: nowrap; flex: 2 2 0px; padding-right: 1rem; &::after { content: ''; position: absolute; right: 0px; top: 0px; height: 100%; width: 48px; background: linear-gradient(to left, $white, $white, transparent); pointer-events: none; } .tr:hover &::after { background: linear-gradient(to left, rgba($gray-200, 0.3), rgba($gray-200, 0.3), transparent); } } .tdShort { position: relative; overflow: hidden; white-space: nowrap; flex: 1 1 0px; padding-right: 1rem; &::after { content: ''; position: absolute; right: 0px; top: 0px; height: 100%; width: 48px; background: linear-gradient(to left, $white, $white, transparent); pointer-events: none; } .tr:hover &::after { background: linear-gradient(to left, rgba($gray-200, 0.3), rgba($gray-200, 0.3), transparent); } } .link { font-size: 0.875rem; line-height: normal; text-decoration: none; color: $blue-500; transition: color $transition-fast; &:hover { color: darken($blue-500, 10%); text-decoration: underline; } } .copiedNotification { position: absolute; top: 0.25rem; left: 0; font-size: 0.625rem; font-weight: $medium; color: $green-500; background-color: rgba($green-500, 0.1); padding: 0.125rem 0.375rem; border-radius: $radius-sm; } .shortUrlWrapper { display: flex; align-items: center; } .actionsWrapper { display: flex; align-items: center; justify-content: flex-end; gap: 0.5rem; } .actionIcon { display: flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; background-color: $gray-200; border-radius: $radius-full; border: none; outline: none; cursor: pointer; transition: transform $transition-fast, background-color $transition-fast; &:hover { transform: translateY(-2px); background-color: $gray-300; } svg { stroke: $gray-600; stroke-width: 2; } &:first-child svg { stroke: $green-500; } } .emptyRow { padding: 2rem; color: $gray-500; text-align: center; font-size: 0.875rem; }