feat: expand ISAC content modeling
Validate and deploy production / validate (push) Canceled after 0s
Validate and deploy production / deploy (push) Canceled after 0s
Validate and deploy staging / validate (push) Successful in 28s
Validate and deploy staging / deploy (push) Successful in 1m3s

This commit is contained in:
jb
2026-08-03 01:23:20 -04:00
parent d9924a95b9
commit 57068b61cd
90 changed files with 9635 additions and 1270 deletions
+526
View File
@@ -4646,6 +4646,62 @@ a.secondary:active {
font-size: var(--shd-type-telemetry);
font-weight: bold;
}
.selection-head > .row-action {
min-height: 34px;
display: inline-grid;
place-items: center;
justify-self: end;
padding: 0 12px;
border: 1px solid #4c3d26;
background: #17140f;
color: var(--shd-orange);
font-family: var(--shd-font-sans);
font-size: var(--shd-type-telemetry);
font-weight: 900;
line-height: 1;
letter-spacing: 0.65px;
cursor: pointer;
transition:
border-color 0.12s ease,
background 0.12s ease,
color 0.12s ease,
transform 0.08s ease;
}
.selection-head > .row-action:hover,
.selection-head > .row-action:focus-visible {
border-color: var(--shd-orange);
background: #211a0e;
color: var(--shd-orange-hover);
}
.selection-head > .row-action:focus-visible {
outline: 1px solid var(--shd-orange);
outline-offset: 2px;
}
.selection-head > .row-action:active:not(:disabled) {
transform: translateY(1px);
background: #120f0b;
filter: brightness(0.9);
}
.selection-head > .row-action:disabled {
border-color: var(--shd-border);
background: #111415;
color: var(--shd-text-muted);
cursor: not-allowed;
opacity: 0.58;
}
@media (max-width: 700px) {
.selection-head > .row-action {
min-height: 44px;
}
}
@media (prefers-reduced-motion: reduce) {
.selection-head > .row-action {
transition: none;
}
.selection-head > .row-action:active:not(:disabled) {
transform: none;
}
}
.button-link {
display: grid;
place-items: center;
@@ -12585,6 +12641,134 @@ a.secondary:active {
opacity: 0.3;
cursor: not-allowed;
}
.mod-secondary-pool-registry {
margin: 10px 0;
padding: 10px;
border: 1px solid var(--shd-border);
border-left: 2px solid var(--quality-specialized);
background: #0d1011;
}
.mod-secondary-capacity {
display: grid;
grid-template-columns: repeat(5, minmax(120px, 1fr));
margin-top: 8px;
border: 1px solid var(--shd-border);
}
.mod-secondary-capacity > span {
min-height: 58px;
display: grid;
grid-template-columns: 1fr auto;
grid-template-rows: 1fr 1fr;
align-items: center;
gap: 1px 8px;
padding: 8px;
border-left: 1px solid var(--shd-border);
background: #101314;
}
.mod-secondary-capacity > span:first-child {
border-left: 0;
}
.mod-secondary-capacity b,
.mod-secondary-capacity small {
font-size: var(--shd-type-telemetry);
letter-spacing: 0.55px;
}
.mod-secondary-capacity small {
color: var(--shd-text-muted);
}
.mod-secondary-capacity strong {
grid-row: 1/3;
grid-column: 2;
color: var(--shd-orange);
font-size: 24px;
}
.mod-secondary-capacity .pool-total {
border-left-color: #74552a;
background: #18150d;
}
.mod-secondary-pool-editor {
border-top-color: var(--quality-specialized);
}
.pool-editor-head {
margin-top: 12px;
}
.mod-secondary-pool-options {
display: grid;
gap: 7px;
margin-top: 7px;
}
.mod-secondary-pool-option {
display: grid;
grid-template-columns: 30px minmax(220px, 0.9fr) repeat(
3,
minmax(285px, 1fr)
) 30px;
align-items: stretch;
gap: 6px;
padding: 6px;
border: 1px solid var(--shd-border);
background: #101314;
}
.mod-secondary-pool-option > strong {
display: grid;
place-items: center;
background: #171b1c;
color: var(--shd-orange);
font-size: var(--shd-type-telemetry);
}
.mod-secondary-quality-range {
display: grid;
grid-template-columns: 72px 1fr;
grid-template-rows: 1fr 1fr;
align-items: center;
gap: 4px 6px;
padding: 6px;
border: 1px solid var(--shd-border);
}
.mod-secondary-quality-range > b {
grid-row: 1/3;
font-size: var(--shd-type-telemetry);
letter-spacing: 0.5px;
}
.mod-secondary-quality-range label {
display: grid;
grid-template-columns: 54px 1fr;
align-items: center;
gap: 5px;
}
.mod-secondary-quality-range label > span {
color: var(--shd-text-muted);
font-size: var(--shd-type-telemetry);
font-weight: 900;
}
.mod-secondary-quality-range label > div {
display: grid;
grid-template-columns: 1fr 12px 1fr;
align-items: center;
}
.mod-secondary-quality-range input {
height: 30px;
margin: 0;
padding: 0 5px;
}
.mod-secondary-quality-range i {
color: #596164;
font-size: var(--shd-type-telemetry);
font-style: normal;
text-align: center;
}
.mod-secondary-pool-option > button {
align-self: end;
height: 32px;
border: 1px solid #563734;
background: #1d1212;
color: var(--shd-danger);
cursor: pointer;
}
.mod-secondary-pool-option > button:disabled {
opacity: 0.3;
cursor: not-allowed;
}
@media (max-width: 1100px) {
.weapon-mod-quality-row,
.weapon-mod-quality-row.heading {
@@ -12597,8 +12781,156 @@ a.secondary:active {
.weapon-mod-secondary-options label:nth-of-type(4) {
grid-column: auto;
}
.mod-secondary-pool-options {
overflow-x: auto;
}
.skill-chip-shared-config {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
margin-bottom: 12px;
}
.skill-chip-shared-config .mod-secondary-pool-registry {
margin-bottom: 0;
}
.skill-chip-profile-options {
display: grid;
gap: 8px;
overflow-x: auto;
}
.skill-chip-profile-option {
min-width: 870px;
display: grid;
grid-template-columns: minmax(190px, 1.2fr) repeat(4, minmax(130px, 1fr));
gap: 8px;
align-items: stretch;
padding: 8px;
border: 1px solid var(--shd-border);
background: #0e1112;
}
.skill-chip-profile-option.selectable {
grid-template-columns: 32px minmax(210px, 1.2fr) repeat(
3,
minmax(130px, 1fr)
) 34px;
}
.skill-chip-profile-option > div:first-child,
.skill-chip-profile-option > label {
min-width: 0;
display: grid;
align-content: center;
gap: 6px;
padding: 8px;
border: 1px solid #292f30;
background: #121617;
}
.skill-chip-profile-option > div:first-child strong,
.skill-chip-profile-option > div:first-child small,
.skill-chip-profile-option > label > b {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.skill-chip-profile-option > div:first-child small,
.skill-chip-profile-option > label > b {
font-size: var(--shd-type-micro);
letter-spacing: 0.08em;
}
.skill-chip-profile-option > label > span {
display: grid;
grid-template-columns: 1fr auto 1fr;
gap: 5px;
align-items: center;
}
.skill-chip-profile-option input {
width: 100%;
min-width: 0;
padding: 8px 6px;
border: 1px solid #353c3d;
background: #090c0d;
color: var(--shd-text);
font: inherit;
}
.skill-chip-profile-option > strong {
align-self: center;
color: var(--shd-orange);
font-size: var(--shd-type-telemetry);
text-align: center;
}
.skill-chip-profile-option > button:last-child {
border: 1px solid #553128;
background: #1a1110;
color: var(--shd-danger);
cursor: pointer;
}
.skill-chip-profile-option > button:last-child:disabled {
opacity: 0.3;
cursor: not-allowed;
}
.skill-chip-profile-option input:focus-visible,
.skill-chip-profile-option > button:last-child:focus-visible {
outline: 2px solid var(--shd-orange);
outline-offset: 2px;
}
.skill-chip-talent-disclosure,
.protocol-talent-disclosure {
margin-top: 10px;
}
.skill-chip-talent-removal,
.protocol-talent-removal {
display: flex;
align-items: center;
gap: 8px;
margin-top: 10px;
padding: 10px;
border: 1px solid #57332b;
background: #1a1110;
color: var(--shd-danger);
font-size: var(--shd-type-telemetry);
font-weight: 800;
letter-spacing: 0.06em;
}
@media (max-width: 900px) {
.skill-chip-shared-config {
grid-template-columns: 1fr;
}
}
.mod-secondary-pool-option {
min-width: 1160px;
}
}
@media (max-width: 700px) {
.mod-secondary-capacity {
grid-template-columns: 1fr 1fr;
}
.mod-secondary-capacity > span,
.mod-secondary-capacity > span:first-child {
border-top: 1px solid var(--shd-border);
border-left: 1px solid var(--shd-border);
}
.mod-secondary-capacity > span:nth-child(odd) {
border-left: 0;
}
.mod-secondary-capacity .pool-total {
grid-column: 1/-1;
}
.weapon-mod-secondary-options > div {
grid-template-columns: 30px 1fr;
}
@@ -13088,6 +13420,18 @@ a.secondary:active {
border-top: 2px solid #404748;
background: #111415;
}
.database-item-card.protocol-quality-standard {
border-top-color: var(--quality-standard);
}
.database-item-card.protocol-quality-specialized {
border-top-color: var(--quality-specialized);
}
.database-item-card.protocol-quality-superior {
border-top-color: var(--quality-superior);
}
.database-item-card.protocol-quality-highend {
border-top-color: var(--quality-high-end);
}
.database-item-card > header {
height: auto;
min-height: 78px;
@@ -13193,6 +13537,68 @@ a.secondary:active {
font-size: var(--shd-type-telemetry);
line-height: 1.35;
}
.database-weapon-mod-slots {
display: grid;
grid-template-columns: 110px minmax(0, 1fr);
align-items: center;
gap: 9px;
margin: 7px 12px 0;
padding: 8px 0;
}
.database-weapon-mod-slots > div {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
}
.database-weapon-mod-slots > div span,
.database-weapon-mod-slots > p {
color: #626a6c;
font-size: var(--shd-type-telemetry);
font-weight: 900;
letter-spacing: 0.65px;
}
.database-weapon-mod-slots ul {
display: flex;
flex-wrap: wrap;
gap: 5px;
margin: 0;
padding: 0;
list-style: none;
}
.database-weapon-mod-slots li {
display: inline-flex;
align-items: center;
gap: 6px;
min-height: 27px;
padding: 4px 7px;
border: 1px solid #383f40;
background: #0d1011;
color: #aeb4b5;
font-size: var(--shd-type-telemetry);
font-weight: 800;
}
.database-weapon-mod-slots li.has-slot-icon {
min-width: 34px;
justify-content: center;
padding: 4px;
}
.database-weapon-mod-slots li.upgrade-slot {
border-color: #315b6a;
background: #0b171c;
color: var(--shd-info);
}
.database-weapon-mod-slots li small {
padding-left: 6px;
border-left: 1px solid #315b6a;
color: var(--shd-info);
font-size: var(--shd-type-micro);
font-weight: 900;
letter-spacing: 0.08em;
}
.database-weapon-mod-slots > p {
margin: 0;
}
.database-item-lines {
display: grid;
gap: 1px;
@@ -13357,6 +13763,123 @@ a.secondary:active {
font-weight: 900;
letter-spacing: 0.7px;
}
.database-header-badge.exotic {
border-color: #74552a;
background: #1a160d;
color: var(--quality-high-end);
}
.database-header-badge.highend {
border-color: color-mix(in srgb, var(--quality-high-end) 58%, #52431a);
background: #1c190c;
color: var(--quality-high-end);
}
.database-header-badge.protocol-badge-standard {
border-color: color-mix(in srgb, var(--quality-standard) 58%, #354142);
background: #111718;
color: var(--quality-standard);
}
.database-header-badge.protocol-badge-specialized {
border-color: color-mix(in srgb, var(--quality-specialized) 58%, #274338);
background: #0e1713;
color: var(--quality-specialized);
}
.database-header-badge.protocol-badge-superior {
border-color: color-mix(in srgb, var(--quality-superior) 58%, #2c3f5a);
background: #10161d;
color: var(--quality-superior);
}
.database-header-badge.protocol-badge-highend {
border-color: color-mix(in srgb, var(--quality-high-end) 58%, #52431a);
background: #1c190c;
color: var(--quality-high-end);
}
.database-protocol-preview {
display: grid;
gap: 10px;
margin: 9px 12px 0;
}
.database-protocol-primary {
min-height: 66px;
display: grid;
grid-template-columns: minmax(130px, 0.7fr) minmax(0, 1fr);
align-items: center;
gap: 9px;
padding: 7px;
border: 1px solid var(--shd-border);
border-left: 3px solid var(--shd-orange);
background: linear-gradient(90deg, #21190e, #101314);
}
.database-protocol-primary span {
padding-left: 5px;
color: #c89138;
font-size: var(--shd-type-telemetry);
font-weight: 900;
letter-spacing: 0.9px;
}
.database-protocol-primary b {
overflow-wrap: anywhere;
color: var(--shd-orange);
font-size: 20px;
letter-spacing: 0.7px;
}
.database-protocol-level {
min-width: 0;
display: flex;
align-items: center;
gap: 7px;
color: var(--shd-text-muted);
font-size: var(--shd-type-telemetry);
font-weight: 900;
letter-spacing: 0.7px;
}
.database-protocol-level > span {
flex: none;
color: var(--shd-text);
}
.database-protocol-level input {
width: 104px;
accent-color: var(--shd-orange);
}
.database-protocol-talent {
display: grid;
}
.database-protocol-controls {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
}
.database-protocol-diamonds {
display: flex;
gap: 5px;
}
.database-protocol-diamonds button {
min-width: 24px;
min-height: 24px;
padding: 0;
border: 0;
background: transparent;
color: #596164;
font-size: 16px;
cursor: pointer;
}
.database-protocol-diamonds button.active,
.database-protocol-diamonds button:hover,
.database-protocol-diamonds button:focus-visible {
color: var(--quality-high-end);
}
.database-protocol-diamonds button:focus-visible {
outline: 2px solid var(--shd-orange);
outline-offset: 2px;
}
.database-protocol-talent p {
margin: 0;
padding: 9px;
border: 1px solid var(--shd-border);
background: #101314;
color: #a2a8aa;
font: var(--shd-type-supporting)/1.55 var(--shd-font-editorial);
}
.database-fact-value {
min-width: 0;
display: flex;
@@ -13691,6 +14214,9 @@ a.secondary:active {
.database-item-grid {
grid-template-columns: 1fr;
}
.database-weapon-mod-slots {
grid-template-columns: 1fr;
}
.database-item-card > header {
grid-template-columns: 52px minmax(0, 1fr);
}