:root { color-scheme: light; font-family: system-ui, -apple-system, "Segoe UI", sans-serif; color: #20272d; background: #e8ecef; line-height: 1.6; }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; display: flex; flex-direction: column; }
a { color: #145b81; text-underline-offset: .2em; }
.site-header { background: #20262b; color: #fff; padding: 1rem max(1.25rem, calc((100vw - 1120px) / 2)); display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.site-header a { color: #fff; }
.site-header .nav-logout { margin: 0; }
.site-header .nav-logout button { margin: 0; padding: 0; min-height: 0; border: 0; border-radius: 0; background: transparent; color: #fff; font: inherit; text-decoration: underline; text-underline-offset: .2em; }
.wordmark { font-size: 1.25rem; font-weight: 700; text-decoration: none; }
nav { display: flex; gap: 1.5rem; }
.shell { width: min(100% - 2rem, 1120px); margin: clamp(1rem, 5vw, 4rem) auto; flex: 1; }
.panel { padding: clamp(1.25rem, 4vw, 3rem); background: #fff; border: 1px solid #c2cbd1; border-radius: .6rem; box-shadow: 0 12px 35px #172c3b0d; }
.narrow { max-width: 32rem; margin-inline: auto; }
.hero { max-width: 56rem; margin: 3vh auto; }
h1 { font-size: clamp(1.8rem, 4vw, 3rem); line-height: 1.15; margin: .5rem 0 1.25rem; letter-spacing: -.035em; }
.lead { font-size: 1.3rem; }
.eyebrow { color: #4c5c68; text-transform: uppercase; font-size: .8rem; font-weight: 700; letter-spacing: .08em; }
label { display: block; font-weight: 650; margin-top: 1rem; }
input { width: 100%; border: 1px solid #6b7b86; border-radius: .3rem; padding: .7rem; font: inherit; background: #fff; color: #20272d; }
button, .button { display: inline-block; background: #205b77; color: #fff; font: inherit; font-weight: 650; border: 1px solid #205b77; border-radius: .3rem; padding: .65rem 1.15rem; margin-top: 1.5rem; cursor: pointer; text-decoration: none; min-height: 44px; }
button:hover, .button:hover { background: #163f53; }
:focus-visible { outline: 3px solid #bb5200; outline-offset: 4px; }
.error { color: #8f1e1e; border-left: 4px solid #a12626; padding: .6rem 1rem; background: #fff0f0; }
.site-footer { padding: 1.5rem; color: #4c5c68; text-align: center; font-size: .85rem; }
.skip-link { position: absolute; top: -100px; left: 1rem; padding: .75rem; background: #fff; z-index: 1; }
.skip-link:focus { top: 1rem; }
@media (max-width: 480px) { .site-header { align-items: flex-start; } nav { gap: 1rem; } .hero { margin-top: 0; } }
nav { flex-wrap: wrap; }
textarea, select { width: 100%; font: inherit; padding: .6rem; border: 1px solid #6b7b86; border-radius: .3rem; background: white; color: #20272d; }
.form-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,260px),1fr)); gap: 0 1.5rem; }
.check { display: flex; align-items: center; gap: .75rem; }
.check input { width: auto; }
fieldset { margin-top: 1.5rem; border: 1px solid #c2cbd1; }
.table-scroll { overflow-x: auto; margin-block: 1.5rem; }
.brand-scroll { position: relative; }
.brand-table { min-width: 760px; }
.brand-table th, .brand-table td { vertical-align: middle; overflow-wrap: anywhere; }
.brand-display-name { display: block; color: #4c5c68; font-weight: 400; }
.brand-actions { display: flex; flex-wrap: wrap; gap: .75rem; min-width: 9rem; }
.brand-actions a { display: inline-flex; align-items: center; min-height: 44px; }
.danger-link { color: #8f1e1e; }
.csv-preview table { min-width: 760px; }
.csv-preview td { overflow-wrap: anywhere; max-width: 22rem; }
.csv-preview details { font-size: .875rem; }
table { width: 100%; border-collapse: collapse; text-align: left; }
th, td { border-bottom: 1px solid #c2cbd1; padding: .7rem; vertical-align: top; }
td button { margin-top: .5rem; }
details { padding: 1rem; border: 1px solid #c2cbd1; margin-block: .75rem; border-radius: .3rem; }
summary { cursor: pointer; font-weight: 600; overflow-wrap: anywhere; }
pre { white-space: pre-wrap; overflow-wrap: anywhere; }
dt { font-weight: 700; } dd { margin: 0 0 1rem; white-space: pre-wrap; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.archive-landing { background: linear-gradient(#17232b55,#17232b99), url('02.jpg') center/cover fixed; }
.archive-landing .site-footer { color: white; background: #20262b; }
.product-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,240px),1fr)); gap: 1rem; margin-block: 1.5rem; }
.product-card { border: 1px solid #c2cbd1; padding: 1.2rem; border-radius: .3rem; overflow-wrap: anywhere; }
.product-card h3 { margin-top: .25rem; }
.badge { display: inline-block; font-size: .85rem; background: #e5edf1; color: #293e4a; padding: .2rem .6rem; border-radius: .25rem; }
.provenance { background: #f0f4f6; padding: 1rem; margin-block: 1.5rem; border-left: 4px solid #205b77; }
.provenance h2 { font-size: 1.2rem; }
.product-tabs { border-bottom: 1px solid #aab8c1; gap: .5rem; flex-wrap: wrap; }
.product-tabs a { padding: .75rem; min-height: 44px; }
.product-tabs [aria-selected="true"] { background: #205b77; color: white; }
.compare-action { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; }
.compare-action button { margin: 0; background: #e5edf1; color: #4c5c68; cursor: default; }
[data-panel] th { width: 55%; } [data-panel] td, [data-panel] th { overflow-wrap: anywhere; }
[data-panel][hidden] { display: none; }
.member-scroll { position: relative; margin-block: 1rem; }
.member-table { min-width: 780px; border-collapse: separate; border-spacing: 0; font-size: .875rem; font-variant-numeric: tabular-nums; }
[data-panel] .member-table th { width: auto; }
.member-table th, .member-table td { padding: .6rem .55rem; vertical-align: middle; }
.member-table thead th { border-bottom: 2px solid #84919a; white-space: nowrap; text-align: center; }
.member-table thead th:first-child, .member-table thead th:nth-child(2) { text-align: left; }
.member-table thead abbr { text-decoration: none; font-style: italic; }
.member-table sub { font-size: .7em; }
.member-table tbody tr { background: #fff; }
.member-table tbody tr:nth-child(even) { background: #f5f7f8; }
.member-table tbody tr:hover { background: #eaf1f5; }
.member-table tr>th:first-child { position: sticky; left: 0; z-index: 1; background: inherit; min-width: 8rem; max-width: 12rem; box-shadow: 1px 0 #e0e5e8; }
.member-table thead tr>th:first-child { background: #fff; }
.member-table tbody th { font-weight: 550; }
.member-label { display: block; margin-top: .15rem; font-size: .75rem; font-weight: 400; color: #4c5c68; }
.member-profile { min-width: 9rem; max-width: 13rem; }
.member-profile-size { display: inline-flex; align-items: center; gap: .35rem; white-space: nowrap; }
.member-profile-icon { width: .65rem; height: .65rem; flex: 0 0 .65rem; border: 2px solid #8972a5; border-radius: 50%; background: #efeaf5; }
.member-number { white-space: nowrap; text-align: center; }
.member-alloy { min-width: 10rem; max-width: 15rem; text-align: center; }
.downloads caption { text-align: left; font-weight: 600; padding-block: .75rem; }
.downloads .button { margin-top: 0; white-space: nowrap; }
[data-panel] .downloads th { width: auto; }
[data-panel] .downloads th:first-child { width: 40%; }
.downloads { min-width: 580px; }
.downloads thead th { white-space: nowrap; }
.file-metadata { overflow-wrap: anywhere; }
.comparison-panel { padding: clamp(1rem,2vw,2rem); }
.comparison-selectors { margin-bottom: 1.5rem; }
.comparison-selectors .form-grid { grid-template-columns: repeat(auto-fit,minmax(min(100%,210px),1fr)); }
.basis-warning { position: sticky; top: 0; z-index: 3; padding: .8rem 1rem; background: #fff2cf; border: 2px solid #876000; color: #513700; }
.basis-warning p { margin: .25rem 0; }
.comparison-table { width: max-content; min-width: 100%; table-layout: fixed; }
.comparison-table th, .comparison-table td { min-width: 210px; max-width: 270px; overflow-wrap: anywhere; }
.comparison-table tr>th:first-child { position: sticky; left: 0; background: #f1f5f7; z-index: 1; min-width: 160px; max-width: 220px; }
.comparison-table .comparison-group th { background: #dbe5eb; position: static; }
.comparison-table caption { text-align: left; margin-bottom: .75rem; }
.comparison-member + .comparison-member { border-top: 1px solid #c2cbd1; margin-top: 1rem; padding-top: .75rem; }
.source-value { display: block; margin-top: .4rem; color: #4c5c68; }
.compare-action .button { margin-top: 0; }
.compare-action { position: fixed; right: 1rem; bottom: 1rem; z-index: 4; background: white; padding: .6rem; border: 1px solid #aab8c1; border-radius: .4rem; box-shadow: 0 4px 20px #172c3b33; max-width: min(32rem,calc(100% - 2rem)); }
body:has(.compare-action) .site-footer { padding-bottom: 6rem; }
@media(max-width:480px) { .comparison-table tr>th:first-child { min-width: 125px; max-width: 145px; } }
@media (max-width:480px) { .product-tabs { gap: 0; } .product-tabs a { padding: .65rem .5rem; } .panel { padding: 1rem; } }
.loads { min-width: 780px; }
.loads caption { text-align: left; padding-block: .75rem; }
[data-panel] .loads th { width: auto; }
.load-table { margin-block: 1.5rem; }
.load-table-metadata { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,22rem),1fr)); gap: .35rem 1.5rem; margin-block: .5rem .75rem; font-size: .875rem; line-height: 1.4; }
.load-table-metadata > div { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,1fr); gap: .75rem; align-items: baseline; }
.load-table-metadata dt, .load-table-metadata dd { margin: 0; overflow-wrap: anywhere; }
.load-table-hint { color: #4c5c68; font-size: .85rem; margin-bottom: .25rem; }
.load-matrix-scroll { margin-top: .25rem; border: 1px solid #aab4bc; border-radius: .25rem; }
.load-matrix { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; font-size: .85rem; font-variant-numeric: tabular-nums; }
.load-matrix caption { padding: .65rem .8rem; text-align: left; font-weight: 600; }
.load-matrix th, .load-matrix td { padding: .65rem .6rem; min-width: 6rem; max-width: 10rem; text-align: center; border-right: 1px solid #d2d8dc; border-bottom: 1px solid #c2cbd1; vertical-align: middle; }
.load-matrix thead th { background: #3f3f3f; color: #fff; border-color: #707070; }
.load-matrix .load-case-group { padding: .5rem 1rem .65rem; border-left: 2px solid #9b9b9b; }
.load-case-label { display: block; font-size: 1.1rem; font-weight: 750; line-height: 1.3; }
.load-case-diagram { display: block; width: 150px; height: 52px; margin: .25rem auto; }
.load-case-name { display: block; font-size: .75rem; font-weight: 450; line-height: 1.35; }
.load-matrix thead tr:last-child th { background: #525252; font-size: .75rem; font-weight: 600; }
.load-matrix tbody tr { background: #fff; }
.load-matrix tbody tr:nth-child(even) { background: #f0f4f6; }
.load-matrix tbody tr:hover { background: #e2edf3; }
.load-matrix .load-group-start { border-left: 2px solid #8d999f; }
.load-matrix .load-span { position: sticky; left: 0; z-index: 1; min-width: 4.25rem; max-width: 4.25rem; box-shadow: 1px 0 #8d999f; }
.load-matrix tbody .load-span { background: inherit; font-weight: 750; }
.load-matrix .load-weight { min-width: 5.5rem; }
.load-matrix .load-unit { font-weight: 450; }
.load-matrix .load-missing { color: #53616b; font-size: .8rem; }
.load-notes { font-size: .9rem; }
.load-notes li + li { margin-top: .75rem; }
.load-notes li p { margin: .25rem 0 0; }
fieldset { min-width: 0; }
input, select, textarea { max-width: 100%; min-width: 0; }
:focus-visible { scroll-margin-block: 5rem; }
html { scroll-padding-bottom: 8rem; }
.specification-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,290px),1fr)); gap: .75rem 1.25rem; }
.specification-entry { border-bottom: 1px solid #c2cbd1; padding-bottom: .75rem; min-width: 0; }
.specification-entry details { padding: .35rem .5rem; margin-block: .5rem 0; font-size: .85rem; }
.value-unit { display: flex; gap: .5rem; align-items: center; }
.value-unit input { flex: 1; min-width: 0; }
.value-unit select { flex: 1; min-width: 0; }
.value-unit input + label + select { flex: 0 0 6rem; }
.revision-actions { border-top: 2px solid #c2cbd1; margin-top: 1rem; padding-top: .5rem; }
.provenance, .specification-entry { overflow-wrap: anywhere; }
@media (max-width:480px) { .compare-action { right: .5rem; bottom: .5rem; padding: .35rem; } }
/* Staff entry feedback stays readable on narrow screens. */
.save-status { position: sticky; top: 0; z-index: 2; padding: .75rem; background: #17242b; color: #fff; border-left: .3rem solid #edaa4c; }
#stiffness { scroll-margin-top: 5rem; }
.publication-check { padding: 1rem; border: 1px solid #82919a; margin-block: 1rem; }
.error { white-space: pre-line; }
.audit-filters { display: flex; flex-wrap: wrap; gap: .5rem; margin-block: 1rem; }
.audit-filters [aria-current="page"] { background: #17242b; color: #fff; outline: 2px solid #17242b; outline-offset: 2px; }
.site-footer a { color: inherit; text-decoration: underline; }
input[data-geometry-feature] { width:1.2rem; height:1.2rem; margin:.4rem 0 1rem; }
