.software-page { padding-bottom: 3rem; }
.software-card { background: var(--panel, #101c2f); color: var(--text, #f7f9fc); border: 1px solid var(--line, #d9e2ec); border-radius: 16px; padding: 1.5rem; margin: 1.25rem 0; }
.software-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 1rem 0; }
.software-page label { display: flex; flex-direction: column; gap: .4rem; font-weight: 600; min-width: 0; }
.software-page input:not([type=checkbox]):not([type=hidden]), .software-page select { width: 100%; box-sizing: border-box; min-height: 44px; padding: .6rem; border: 1px solid #8d9caf; border-radius: 8px; background: #fff; color: #172b45; }
.software-page button { min-height: 44px; padding: .65rem 1rem; margin-top: .75rem; border: 1px solid #1d4ed8; border-radius: 8px; background: #1d4ed8; color: #fff; font-weight: 600; cursor: pointer; }
.software-page :is(input, select, button, a):focus-visible { outline: 3px solid #f59e0b; outline-offset: 3px; }
.software-note { color: var(--muted, #a7b2c4); font-size: .9rem; line-height: 1.6; }
.software-preview { display: grid; gap: 1rem; margin: 1rem 0; }
.software-preview fieldset { min-width: 0; border: 1px solid #c5d0df; border-radius: 12px; padding: 1rem; }
.software-preview legend { padding: 0 .4rem; font-weight: 700; }
.software-page .software-select { flex-direction: row; align-items: center; gap: .7rem; }
.software-select input { width: 20px; height: 20px; }
.software-raw { overflow-wrap: anywhere; white-space: pre-wrap; }
.software-cancel button { background: #fff; color: #1d4ed8; }
.software-tools > summary { cursor: pointer; font-size: 1.1rem; font-weight: 700; }
.software-table-scroll { overflow-x: auto; }
.software-table { width: 100%; min-width: 680px; table-layout: fixed; border-collapse: collapse; text-align: left; font-size: .9rem; }
.software-table :is(th, td) { padding: .75rem; border-bottom: 1px solid var(--line, #263752); vertical-align: top; overflow-wrap: anywhere; }
.software-table thead th { color: var(--muted, #a7b2c4); font-weight: 600; }
.software-table small { display: block; margin-top: .25rem; color: var(--muted, #a7b2c4); font-weight: 400; }
.software-table thead th:nth-child(2) { width: 90px; }
.software-table thead th:nth-child(4) { width: 110px; }
.software-table thead th:last-child { width: 140px; }
.software-table .software-version { white-space: nowrap; overflow-wrap: normal; font-variant-numeric: tabular-nums; }
.software-table .software-actions { min-width: 110px; }
.software-row-links { display: flex; gap: .75rem; margin-top: .5rem; font-size: .8rem; }
.software-row-links a { color: var(--muted, #a7b2c4); text-decoration: underline; white-space: nowrap; }
.software-panel-head { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; }
.software-panel-head h2 { margin: 0 0 1rem; }
.software-panel-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 2rem; }
.software-item-panel { scroll-margin-top: 1rem; }
.software-item-panel h3 { margin: 1.25rem 0 .5rem; font-size: 1rem; }
.software-item-panel :is(p, a) { overflow-wrap: anywhere; }
.software-settings-danger { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--line, #263752); }
.software-settings-danger .software-remove { background: transparent; border-color: #9f4157; color: #fda4af; }
@media (max-width: 960px) { .software-panel-grid { grid-template-columns: 1fr; gap: 1rem; } }
.software-actions button { white-space: nowrap; overflow-wrap: normal; word-break: normal; }
.software-table button { margin-top: 0; padding: .4rem .65rem; font-size: .85rem; }
.software-actions form + form { margin-top: .5rem; }
.software-actions .software-remove { background: transparent; border-color: var(--line, #263752); color: var(--muted, #a7b2c4); }
.software-result > summary { cursor: pointer; margin-top: .4rem; color: var(--accent, #67e8f9); }
.software-result[open] { min-width: 220px; max-width: 420px; }
@media (max-width: 640px) { .software-grid { grid-template-columns: 1fr; } .software-card { padding: 1rem; } .software-table { min-width: 580px; } }

.software-advisories { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line, #263752); }
.software-advisory-state { font-weight: 700; line-height: 1.5; }
.software-advisory { padding: .8rem; margin: .75rem 0; border: 1px solid var(--line, #263752); border-radius: 8px; }
.software-advisory summary { cursor: pointer; font-weight: 700; line-height: 1.6; }
.software-advisory summary span { display: block; color: var(--muted, #a7b2c4); font-size: .85rem; }
.software-advisory p { line-height: 1.6; margin-top: .8rem; }
.software-advisory a { color: var(--accent, #67e8f9); text-decoration: underline; overflow-wrap: anywhere; }
.software-advisories button:disabled { opacity: .65; cursor: wait; }

.software-card form > .software-select { margin: .75rem 0; }

.software-page [hidden] { display: none !important; }
.software-security { display: inline-block; border-radius: 6px; padding: .2rem .5rem; font-weight: 600; white-space: normal; overflow-wrap: normal; line-height: 1.45; }
.software-security-important { color: #fde68a; background: #422f14; }
.software-security-confirmed { color: #a7f3d0; background: #123b34; }
.software-security-unknown { color: #cbd5e1; background: #253248; }
@media (max-width: 640px) {
    .software-table { min-width: 0; display: block; }
    .software-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    .software-table tbody { display: block; }
    .software-table tr { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: .65rem; padding: 1rem 0; border-bottom: 1px solid var(--line, #263752); }
    .software-table :is(th, td) { display: block; border: 0; padding: 0; min-width: 0; }
    .software-table th[scope=row], .software-table .software-status, .software-table .software-actions { grid-column: 1 / -1; }
    .software-table th[scope=row] { grid-row: 1; }
    .software-table td:nth-child(2) { grid-row: 2; grid-column: 1; }
    .software-table td:nth-child(4) { grid-row: 2; grid-column: 2; }
    .software-table .software-status { grid-row: 3; }
    .software-table .software-actions { grid-row: 4; }
    .software-table td[data-label]::before { content: attr(data-label); display: block; color: var(--muted, #a7b2c4); font-size: .8rem; margin-bottom: .2rem; }
    .software-table .software-actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
    .software-actions form + form { margin: 0; }
    .software-result[open] { min-width: 0; max-width: none; }
}
