.card {
    max-width: 30dvw;
}

.card-dot {
    border-radius: 50%;
    width: 1rem;
    height: 1rem;
}

.purple  { background-color: var(--assessment-color-purple, rebeccapurple);}
.yellow {background-color: var(--assessment-color-yellow, #daa520);}
.green {background-color: var(--assessment-color-green, green);}
.gray {background-color: var(--assessment-color-gray, gray);}
.orange {background-color: #FF8C00;}
.red {background-color: #DC3545;}
.blue {background-color: #0D6EFD;}

.bgLight.purple {background-color: var(--assessment-color-purple-bg, #f3effa);}
.bgLight.gray {background-color: var(--assessment-color-gray-bg, #f0f1f4);}
.bgLight.green {background-color: var(--assessment-color-green-bg, #e5f3ec);}
.bgLight.yellow {background-color: var(--assessment-color-yellow-bg, #fffaed);}
.bgLight.orange {background-color: #FFF4E6;}
.bgLight.red {background-color: #FCE8E8;}
.bgLight.blue {background-color: #E7F1FF;}

.form-check-input.assetSwitch{
    width: 2.5rem;
    height: 1.3rem;
}

.card-accordion > .accordion-item:not(:last-child){
margin-bottom: .5rem;
}

/* --------------------------

Search input

 -------------------------- */

.card-search {
    position: relative;
}

.card-search-icon {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    font-size: 0.9rem;
    opacity: 0.7;
}

.card-accordion-header:not(.collapsed) {
    box-shadow: none;
}

.card-accordion-header {
    display: flex;
    align-items: center;
}

.card-accordion-title {
    flex: 1;
}

.card-accordion-actions i {
    cursor: pointer;
}

.noBottomMargin{
    margin: 0;
}

/* -----------------------------------

Border left in List

------------------------------------- */

.card-accordion-header {
    background-color: transparent;
    box-shadow: none;
    border: 0;
}

.card-accordion-header:not(.collapsed) {
    background-color: transparent;
    color: inherit;
    box-shadow: none;
}


.asset-item,
.threat-item,
.vulnerability-item,
.security-control-item {
    position: relative;
    overflow: hidden;
    border-radius: 8px;
    border: 1px solid rgba(0,0,0,.05);
}


.asset-item::before,
.threat-item::before,
.vulnerability-item::before,
.security-control-item::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 6px;
    border-radius: 8px 0 0 8px;
}

.asset-item.purple::before,
.threat-item.purple::before,
.vulnerability-item.purple::before,
.security-control-item.purple::before {
    background-image: repeating-linear-gradient(
            -45deg,
            var(--assessment-color-purple, rebeccapurple),
            var(--assessment-color-purple, rebeccapurple) 4px,
            transparent 4px,
            transparent 8px
    );
}

.asset-item.gray::before,
.threat-item.gray::before,
.vulnerability-item.gray::before,
.security-control-item.gray::before {
    background-image: repeating-linear-gradient(
            -45deg,
            var(--assessment-color-gray, gray),
            var(--assessment-color-gray, gray) 4px,
            transparent 4px,
            transparent 8px
    );
}

.asset-item.green::before,
.threat-item.green::before,
.vulnerability-item.green::before,
.security-control-item.green::before {
    background-image: repeating-linear-gradient(
            -45deg,
            var(--assessment-color-green, green),
            var(--assessment-color-green, green) 4px,
            transparent 4px,
            transparent 8px
    );
}

.asset-item.yellow::before,
.threat-item.yellow::before,
.vulnerability-item.yellow::before,
.security-control-item.yellow::before {
    background-image: repeating-linear-gradient(
            -45deg,
            var(--assessment-color-yellow, #daa520),
            var(--assessment-color-yellow, #daa520) 4px,
            transparent 4px,
            transparent 8px
    );
}

.asset-item.orange::before,
.threat-item.orange::before,
.vulnerability-item.orange::before,
.security-control-item.orange::before {
    background-image: repeating-linear-gradient(
            -45deg,
            #FF8C00,
            #FF8C00 4px,
            transparent 4px,
            transparent 8px
    );
}

.asset-item.red::before,
.threat-item.red::before,
.vulnerability-item.red::before,
.security-control-item.red::before {
    background-image: repeating-linear-gradient(
            -45deg,
            #DC3545,
            #DC3545 4px,
            transparent 4px,
            transparent 8px
    );
}

.asset-item.blue::before,
.threat-item.blue::before,
.vulnerability-item.blue::before,
.security-control-item.blue::before {
    background-image: repeating-linear-gradient(
            -45deg,
            #0D6EFD,
            #0D6EFD 4px,
            transparent 4px,
            transparent 8px
    );
}

.asset-row {
    position: relative;
    padding-left: 2.6rem;
}

/* ------------------------------

ICON Li

---------------------------------- */

.card-accordion-title {
    position: relative;
    transition: padding-left 0.2s ease;
}

.card-accordion-plus {
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 22px;
    height: 22px;
    border-radius: 4px;
    background-color: var(--success);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.2s ease;
}

/* Hide original plus icon completely outside linking mode */
:not(.linking-mode) .card-accordion-plus {
    display: none !important;
    opacity: 0 !important;
}

/* Don't add padding when hovering outside linking mode */
:not(.linking-mode) .asset-item:hover .card-accordion-title,
:not(.linking-mode) .threat-item:hover .card-accordion-title,
:not(.linking-mode) .vulnerability-item:hover .card-accordion-title,
:not(.linking-mode) .security-control-item:hover .card-accordion-title {
    padding-left: 0;
}

/* ------------------------------

Asset Linking Mode

---------------------------------- */

/* Selected parent asset - highlighted with solid color */
.asset-item.selected-parent,
.threat-item.selected-parent,
.vulnerability-item.selected-parent,
.security-control-item.selected-parent {
    border-color: rgba(0, 0, 0, 0.75);
}

/* Disabled/unlinkable assets - dimmed */
.asset-item.disabled-for-linking,
.threat-item.disabled-for-linking,
.vulnerability-item.disabled-for-linking,
.security-control-item.disabled-for-linking {
    opacity: 0.4;
    pointer-events: none;
}

/* Linked child asset - solid border instead of striped */
.asset-item.linked-child::before,
.threat-item.linked-child::before,
.vulnerability-item.linked-child::before,
.security-control-item.linked-child::before {
    background-image: none !important;
    background-color: currentColor;
}

.asset-item.linked-child.purple::before,
.threat-item.linked-child.purple::before,
.vulnerability-item.linked-child.purple::before,
.security-control-item.linked-child.purple::before {
    background-color: var(--assessment-color-purple, rebeccapurple);
}

.asset-item.linked-child.gray::before,
.threat-item.linked-child.gray::before,
.vulnerability-item.linked-child.gray::before,
.security-control-item.linked-child.gray::before {
    background-color: var(--assessment-color-gray, gray);
}

.asset-item.linked-child.green::before,
.threat-item.linked-child.green::before,
.vulnerability-item.linked-child.green::before,
.security-control-item.linked-child.green::before {
    background-color: var(--assessment-color-green, green);
}

.asset-item.linked-child.yellow::before,
.threat-item.linked-child.yellow::before,
.vulnerability-item.linked-child.yellow::before,
.security-control-item.linked-child.yellow::before {
    background-color: var(--assessment-color-yellow, #daa520);
}

.asset-item.linked-child.orange::before,
.threat-item.linked-child.orange::before,
.vulnerability-item.linked-child.orange::before,
.security-control-item.linked-child.orange::before {
    background-color: #FF8C00;
}

.asset-item.linked-child.red::before,
.threat-item.linked-child.red::before,
.vulnerability-item.linked-child.red::before,
.security-control-item.linked-child.red::before {
    background-color: #DC3545;
}

.asset-item.linked-child.blue::before,
.threat-item.linked-child.blue::before,
.vulnerability-item.linked-child.blue::before,
.security-control-item.linked-child.blue::before {
    background-color: #0D6EFD;
}

/* Link/Unlink buttons (separate elements for + / -) */
.card-accordion-link-btn {
    display: none;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 22px;
    height: 22px;
    border-radius: 4px;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 22px;
    color: white;
}

.card-accordion-link-btn i {
    color: #fff;
    font-weight: bold;
}

/* Hide buttons outside linking mode */
:not(.linking-mode) .card-accordion-link-btn {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* Show button in linking mode for non-disabled assets */
.linking-mode .asset-item:not(.disabled-for-linking) .card-accordion-link-btn,
.linking-mode .threat-item:not(.disabled-for-linking) .card-accordion-link-btn,
.linking-mode .vulnerability-item:not(.disabled-for-linking) .card-accordion-link-btn,
.linking-mode .security-control-item:not(.disabled-for-linking) .card-accordion-link-btn {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    z-index: 10;
    background-color: #28a745; /* default green for link */
}

/* Red background when already linked */
.linking-mode .asset-item.linked-child .card-accordion-link-btn,
.linking-mode .threat-item.linked-child .card-accordion-link-btn,
.linking-mode .vulnerability-item.linked-child .card-accordion-link-btn,
.linking-mode .security-control-item.linked-child .card-accordion-link-btn {
    background-color: #dc3545;
}

/* Disable accordion collapse in linking mode to prevent conflicts */
.linking-mode .card-accordion-header {
    pointer-events: none;
}

/* Re-enable pointer events for link button and asset name */
.linking-mode .card-accordion-link-btn,
.linking-mode .asset-name,
.linking-mode .card-accordion-actions {
    pointer-events: auto;
}

/* Adjust title padding in linking mode when hovering */
.linking-mode .asset-item:not(.disabled-for-linking) .card-accordion-title,
.linking-mode .threat-item:not(.disabled-for-linking) .card-accordion-title,
.linking-mode .vulnerability-item:not(.disabled-for-linking) .card-accordion-title,
.linking-mode .security-control-item:not(.disabled-for-linking) .card-accordion-title {
    padding-left: 30px;
}

/* Asset name - clickable for linking mode */
.asset-name,
.threat-name,
.vulnerability-name,
.security-control-name {
    cursor: pointer;
    display: inline-block;
    max-width: 300px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: middle;
}

.asset-name:hover,
.threat-name:hover,
.vulnerability-name:hover,
.security-control-name:hover {
    text-decoration: underline;
}

/* Responsivní max-width pro různé velikosti obrazovek */
@media (max-width: 1960px) {
    .asset-name,
    .threat-name,
    .vulnerability-name,
    .security-control-name {
        max-width: 15dvw;
    }
}

@media (max-width: 1515px) {
    .asset-name,
    .threat-name,
    .vulnerability-name,
    .security-control-name {
        max-width: 13dvw;
    }
}
