{"id":742,"date":"2026-07-30T09:21:41","date_gmt":"2026-07-30T01:21:41","guid":{"rendered":"https:\/\/luminvolt.com\/"},"modified":"2026-07-30T10:37:59","modified_gmt":"2026-07-30T02:37:59","slug":"solarmontage-strukturlastrechner","status":"publish","type":"page","link":"https:\/\/luminvolt.com\/de\/solarmontage-strukturlastrechner\/","title":{"rendered":"Solarsystem-Lastenrechner"},"content":{"rendered":"\n<style>\n  body.page-id-742 #right-sidebar {\n    display: none !important;\n  }\n\n  body.page-id-742 #primary {\n    float: none !important;\n    width: 100% !important;\n  }\n\n  body.page-id-742 #page.site {\n    max-width: none !important;\n  }\n\n  body.page-id-742 .site-content {\n    display: block !important;\n    padding: 0 !important;\n  }\n\n  body.page-id-742 .site-main {\n    margin: 0 !important;\n  }\n\n  body.page-id-742 .inside-article {\n    padding: 0 !important;\n    background: transparent !important;\n  }\n\n  body.page-id-742 .entry-content {\n    margin: 0 !important;\n  }\n\n  .slc {\n    --slc-ink: #10251f;\n    --slc-ink-soft: #1b3b31;\n    --slc-green: #16815d;\n    --slc-green-dark: #0d6749;\n    --slc-green-bright: #39b98a;\n    --slc-mint: #e8f5ef;\n    --slc-mint-strong: #d6eee4;\n    --slc-sand: #f3f5f0;\n    --slc-white: #fff;\n    --slc-text: #51635d;\n    --slc-line: #d9e4df;\n    --slc-danger: #a44334;\n    --slc-warning: #9b6725;\n    color: var(--slc-ink);\n    font-family: inherit;\n    line-height: 1.6;\n  }\n\n  .slc,\n  .slc * {\n    box-sizing: border-box;\n  }\n\n  .slc [hidden] {\n    display: none !important;\n  }\n\n  .slc .slc-wrap {\n    width: min(100% - 40px, 1240px);\n    margin: 0 auto;\n  }\n\n  .slc h1,\n  .slc h2,\n  .slc h3,\n  .slc h4,\n  .slc p {\n    margin-top: 0;\n  }\n\n  .slc h1,\n  .slc h2,\n  .slc h3,\n  .slc h4 {\n    color: var(--slc-ink);\n    font-weight: 760;\n    letter-spacing: -0.025em;\n    line-height: 1.12;\n  }\n\n  .slc h1 {\n    max-width: 780px;\n    margin-bottom: 22px;\n    color: #fff;\n    font-size: clamp(40px, 6vw, 68px);\n  }\n\n  .slc h2 {\n    margin-bottom: 16px;\n    font-size: clamp(30px, 4vw, 46px);\n  }\n\n  .slc h3 {\n    margin-bottom: 12px;\n    font-size: 22px;\n  }\n\n  .slc h4 {\n    margin-bottom: 0;\n    font-size: 16px;\n  }\n\n  .slc p {\n    color: var(--slc-text);\n  }\n\n  .slc .slc-eyebrow {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    margin-bottom: 18px;\n    color: #78dfb9;\n    font-size: 12px;\n    font-weight: 850;\n    letter-spacing: 0.15em;\n    text-transform: uppercase;\n  }\n\n  .slc .slc-eyebrow::before {\n    width: 28px;\n    height: 2px;\n    background: currentColor;\n    content: \"\";\n  }\n\n  .slc .slc-hero {\n    position: relative;\n    isolation: isolate;\n    overflow: hidden;\n    padding: clamp(70px, 9vw, 112px) 0;\n    background:\n      radial-gradient(circle at 82% 18%, rgba(57, 185, 138, 0.2), transparent 27%),\n      linear-gradient(135deg, #0d251e 0%, #12392e 58%, #0c2b21 100%);\n  }\n\n  .slc .slc-hero::after {\n    position: absolute;\n    z-index: -1;\n    inset: 0;\n    background-image:\n      linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),\n      linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);\n    background-size: 60px 60px;\n    content: \"\";\n    mask-image: linear-gradient(to right, #000, transparent 92%);\n  }\n\n  .slc .slc-hero-grid {\n    display: grid;\n    grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.55fr);\n    gap: clamp(42px, 7vw, 96px);\n    align-items: center;\n  }\n\n  .slc .slc-hero-lead {\n    max-width: 720px;\n    margin-bottom: 26px;\n    color: rgba(255, 255, 255, 0.72);\n    font-size: clamp(17px, 2vw, 21px);\n  }\n\n  .slc .slc-hero-actions,\n  .slc .slc-guide-actions {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 12px;\n  }\n\n  .slc .slc-button {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-height: 48px;\n    padding: 12px 20px;\n    border: 1px solid #47c99a;\n    border-radius: 8px;\n    background: #47c99a;\n    color: #0a2b20;\n    font-size: 14px;\n    font-weight: 800;\n    text-decoration: none;\n    transition: background 180ms ease, border-color 180ms ease, transform 180ms ease;\n  }\n\n  .slc .slc-button:hover {\n    border-color: #70deb7;\n    background: #70deb7;\n    color: #0a2b20;\n    transform: translateY(-1px);\n  }\n\n  .slc .slc-button--ghost {\n    border-color: rgba(255, 255, 255, 0.34);\n    background: rgba(255, 255, 255, 0.05);\n    color: #fff;\n  }\n\n  .slc .slc-button--ghost:hover {\n    border-color: rgba(255, 255, 255, 0.58);\n    background: rgba(255, 255, 255, 0.12);\n    color: #fff;\n  }\n\n  .slc .slc-hero-panel {\n    display: grid;\n    gap: 1px;\n    overflow: hidden;\n    border: 1px solid rgba(255, 255, 255, 0.14);\n    border-radius: 8px;\n    background: rgba(255, 255, 255, 0.14);\n  }\n\n  .slc .slc-hero-panel div {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 20px;\n    min-height: 62px;\n    padding: 14px 18px;\n    background: rgba(7, 32, 24, 0.76);\n  }\n\n  .slc .slc-hero-panel span {\n    color: rgba(255, 255, 255, 0.58);\n    font-size: 11px;\n    font-weight: 800;\n    letter-spacing: 0.1em;\n    text-transform: uppercase;\n  }\n\n  .slc .slc-hero-panel strong {\n    color: #fff;\n    font-size: 14px;\n    text-align: right;\n  }\n\n  .slc .slc-hero-visual {\n    position: relative;\n    min-height: 330px;\n    overflow: hidden;\n    padding: 22px;\n    border: 1px solid rgba(255, 255, 255, 0.16);\n    border-radius: 8px;\n    background:\n      linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02)),\n      rgba(7, 32, 24, 0.72);\n    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.18);\n  }\n\n  .slc .slc-visual-head,\n  .slc .slc-visual-metrics {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 16px;\n  }\n\n  .slc .slc-visual-head {\n    position: relative;\n    z-index: 2;\n  }\n\n  .slc .slc-visual-head span {\n    color: rgba(255, 255, 255, 0.55);\n    font-size: 10px;\n    font-weight: 850;\n    letter-spacing: 0.12em;\n    text-transform: uppercase;\n  }\n\n  .slc .slc-visual-head strong {\n    display: inline-flex;\n    align-items: center;\n    gap: 7px;\n    color: #fff;\n    font-size: 12px;\n  }\n\n  .slc .slc-visual-head strong::before {\n    width: 7px;\n    height: 7px;\n    border-radius: 50%;\n    background: #58d5a6;\n    box-shadow: 0 0 0 4px rgba(88, 213, 166, 0.12);\n    content: \"\";\n  }\n\n  .slc .slc-panel-diagram {\n    position: relative;\n    height: 195px;\n    margin: 9px 0 4px;\n  }\n\n  .slc .slc-panel-array {\n    position: absolute;\n    top: 54px;\n    left: 50%;\n    display: grid;\n    grid-template-columns: repeat(3, 52px);\n    grid-template-rows: repeat(2, 39px);\n    gap: 4px;\n    padding: 7px;\n    border: 1px solid rgba(120, 223, 185, 0.5);\n    background: #173e34;\n    box-shadow: 0 16px 32px rgba(0, 0, 0, 0.2);\n    transform: translateX(-50%) skewY(-8deg);\n  }\n\n  .slc .slc-panel-array span {\n    border: 1px solid rgba(120, 223, 185, 0.28);\n    background:\n      linear-gradient(rgba(120, 223, 185, 0.08) 1px, transparent 1px),\n      linear-gradient(90deg, rgba(120, 223, 185, 0.08) 1px, transparent 1px),\n      linear-gradient(145deg, #164d40, #0e3028);\n    background-size: 12px 12px;\n  }\n\n  .slc .slc-panel-diagram::before,\n  .slc .slc-panel-diagram::after {\n    position: absolute;\n    left: 50%;\n    background: rgba(120, 223, 185, 0.55);\n    content: \"\";\n  }\n\n  .slc .slc-panel-diagram::before {\n    top: 137px;\n    width: 2px;\n    height: 34px;\n  }\n\n  .slc .slc-panel-diagram::after {\n    top: 169px;\n    width: 128px;\n    height: 2px;\n    transform: translateX(-50%);\n  }\n\n  .slc .slc-load-arrow {\n    position: absolute;\n    z-index: 2;\n    display: flex;\n    align-items: center;\n    gap: 8px;\n    color: rgba(255, 255, 255, 0.62);\n    font-size: 9px;\n    font-weight: 820;\n    letter-spacing: 0.09em;\n    text-transform: uppercase;\n  }\n\n  .slc .slc-load-arrow::after {\n    width: 30px;\n    height: 1px;\n    background: #78dfb9;\n    clip-path: polygon(0 0, 78% 0, 78% -3px, 100% 50%, 78% calc(100% + 3px), 78% 100%, 0 100%);\n    content: \"\";\n  }\n\n  .slc .slc-load-arrow--wind {\n    top: 101px;\n    left: 2px;\n  }\n\n  .slc .slc-load-arrow--snow {\n    top: 20px;\n    right: 21px;\n    flex-direction: row-reverse;\n    transform: rotate(90deg);\n    transform-origin: right center;\n  }\n\n  .slc .slc-visual-metrics {\n    position: relative;\n    z-index: 2;\n    padding-top: 15px;\n    border-top: 1px solid rgba(255, 255, 255, 0.11);\n  }\n\n  .slc .slc-visual-metrics div {\n    min-width: 0;\n  }\n\n  .slc .slc-visual-metrics span,\n  .slc .slc-visual-metrics strong {\n    display: block;\n  }\n\n  .slc .slc-visual-metrics span {\n    margin-bottom: 3px;\n    color: rgba(255, 255, 255, 0.44);\n    font-size: 9px;\n    font-weight: 800;\n    letter-spacing: 0.08em;\n    text-transform: uppercase;\n  }\n\n  .slc .slc-visual-metrics strong {\n    color: #fff;\n    font-size: 13px;\n  }\n\n  .slc .slc-tool {\n    padding: clamp(62px, 8vw, 96px) 0;\n    background: #f7faf8;\n  }\n\n  .slc .slc-intro {\n    display: grid;\n    grid-template-columns: minmax(0, 1fr) minmax(280px, 0.62fr);\n    gap: 36px;\n    align-items: end;\n    margin-bottom: 32px;\n  }\n\n  .slc .slc-intro p {\n    max-width: 520px;\n    margin-bottom: 0;\n    justify-self: end;\n  }\n\n  .slc .slc-mode-tabs {\n    display: inline-grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 4px;\n    width: min(100%, 620px);\n    margin-bottom: 18px;\n    padding: 4px;\n    border: 1px solid var(--slc-line);\n    border-radius: 8px;\n    background: #e9f0ed;\n  }\n\n  .slc .slc-mode-tab {\n    min-height: 48px;\n    padding: 10px 18px;\n    border: 0;\n    border-radius: 6px;\n    background: transparent;\n    color: var(--slc-text);\n    cursor: pointer;\n    font: inherit;\n    font-size: 14px;\n    font-weight: 760;\n  }\n\n  .slc .slc-mode-tab[aria-selected=\"true\"] {\n    background: #fff;\n    color: var(--slc-green-dark);\n    box-shadow: 0 4px 16px rgba(16, 37, 31, 0.1);\n  }\n\n  .slc .slc-calculator {\n    display: grid;\n    grid-template-columns: minmax(360px, 0.86fr) minmax(0, 1.14fr);\n    overflow: hidden;\n    border: 1px solid var(--slc-line);\n    border-radius: 8px;\n    background: var(--slc-line);\n    box-shadow: 0 24px 70px rgba(16, 37, 31, 0.11);\n  }\n\n  .slc .slc-inputs,\n  .slc .slc-results {\n    min-width: 0;\n    padding: clamp(24px, 3.4vw, 42px);\n  }\n\n  .slc .slc-inputs {\n    border-right: 1px solid var(--slc-line);\n    background: #fbfcfb;\n  }\n\n  .slc .slc-results {\n    background:\n      radial-gradient(circle at 100% 0, rgba(57, 185, 138, 0.11), transparent 28%),\n      linear-gradient(180deg, rgba(232, 245, 239, 0.8), rgba(255, 255, 255, 0) 360px),\n      #fff;\n  }\n\n  .slc .slc-panel-head {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 18px;\n    margin-bottom: 24px;\n    padding-bottom: 17px;\n    border-bottom: 1px solid var(--slc-line);\n  }\n\n  .slc .slc-panel-head h3,\n  .slc .slc-panel-head p {\n    margin-bottom: 0;\n  }\n\n  .slc .slc-panel-head p {\n    font-size: 13px;\n  }\n\n  .slc .slc-live-badge {\n    display: inline-flex;\n    flex: none;\n    align-items: center;\n    gap: 7px;\n    padding: 7px 10px;\n    border: 1px solid #bfe2d4;\n    border-radius: 6px;\n    background: rgba(255, 255, 255, 0.78);\n    color: var(--slc-green-dark);\n    font-size: 10px;\n    font-weight: 850;\n    letter-spacing: 0.08em;\n    text-transform: uppercase;\n  }\n\n  .slc .slc-live-badge::before {\n    width: 6px;\n    height: 6px;\n    border-radius: 50%;\n    background: var(--slc-green);\n    box-shadow: 0 0 0 3px rgba(22, 129, 93, 0.1);\n    content: \"\";\n  }\n\n  .slc .slc-reset {\n    flex: none;\n    padding: 8px 11px;\n    border: 1px solid var(--slc-line);\n    border-radius: 6px;\n    background: #fff;\n    color: var(--slc-green-dark);\n    cursor: pointer;\n    font: inherit;\n    font-size: 12px;\n    font-weight: 760;\n  }\n\n  .slc .slc-group {\n    counter-increment: slc-group;\n    margin-bottom: 12px;\n    border: 1px solid var(--slc-line);\n    border-radius: 8px;\n    background: #fff;\n    box-shadow: 0 1px 0 rgba(16, 37, 31, 0.02);\n  }\n\n  .slc .slc-group:last-child {\n    margin-bottom: 0;\n  }\n\n  .slc .slc-group summary {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 16px;\n    min-height: 52px;\n    padding: 13px 16px;\n    color: var(--slc-ink);\n    cursor: pointer;\n    font-size: 14px;\n    font-weight: 780;\n    list-style: none;\n  }\n\n  .slc .slc-inputs {\n    counter-reset: slc-group;\n  }\n\n  .slc .slc-group summary > span:first-child {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n  }\n\n  .slc .slc-group summary > span:first-child::before {\n    display: inline-flex;\n    flex: 0 0 25px;\n    align-items: center;\n    justify-content: center;\n    width: 25px;\n    height: 25px;\n    border-radius: 6px;\n    background: var(--slc-mint);\n    color: var(--slc-green-dark);\n    content: counter(slc-group, decimal-leading-zero);\n    font-size: 9px;\n    font-weight: 900;\n    letter-spacing: 0.04em;\n  }\n\n  .slc .slc-group summary::-webkit-details-marker {\n    display: none;\n  }\n\n  .slc .slc-group-icon {\n    position: relative;\n    display: inline-flex;\n    flex: 0 0 24px;\n    align-items: center;\n    justify-content: center;\n    width: 24px;\n    height: 24px;\n    border-radius: 50%;\n    background: var(--slc-mint);\n  }\n\n  .slc .slc-group-icon::before,\n  .slc .slc-group-icon::after {\n    position: absolute;\n    width: 10px;\n    height: 2px;\n    background: var(--slc-green);\n    content: \"\";\n  }\n\n  .slc .slc-group-icon::after {\n    transform: rotate(90deg);\n    transition: transform 0.18s ease;\n  }\n\n  .slc .slc-group[open] .slc-group-icon::after {\n    transform: rotate(0deg);\n  }\n\n  .slc .slc-group-body {\n    padding: 3px 16px 18px;\n    border-top: 1px solid var(--slc-line);\n  }\n\n  .slc .slc-fields {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 14px;\n    padding-top: 16px;\n  }\n\n  .slc .slc-fields--three {\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n  }\n\n  .slc .slc-subhead {\n    grid-column: 1 \/ -1;\n    margin: 6px 0 -2px;\n    color: var(--slc-green-dark);\n    font-size: 11px;\n    font-weight: 850;\n    letter-spacing: 0.1em;\n    text-transform: uppercase;\n  }\n\n  .slc .slc-field {\n    min-width: 0;\n  }\n\n  .slc .slc-field label {\n    display: block;\n    margin-bottom: 6px;\n    color: var(--slc-text);\n    font-size: 12px;\n    font-weight: 720;\n    line-height: 1.35;\n  }\n\n  .slc .slc-input {\n    display: grid;\n    grid-template-columns: minmax(0, 1fr) auto;\n    align-items: center;\n    overflow: hidden;\n    border: 1px solid #cddbd5;\n    border-radius: 6px;\n    background: #fff;\n    transition: border-color 0.18s ease, box-shadow 0.18s ease;\n  }\n\n  .slc .slc-input:focus-within {\n    border-color: var(--slc-green);\n    box-shadow: 0 0 0 3px rgba(22, 129, 93, 0.11);\n  }\n\n  .slc .slc-input input {\n    width: 100%;\n    min-width: 0;\n    height: 42px;\n    padding: 0 10px;\n    border: 0;\n    outline: 0;\n    background: transparent;\n    color: var(--slc-ink);\n    font: inherit;\n    font-size: 14px;\n    font-weight: 680;\n  }\n\n  .slc .slc-unit {\n    padding: 0 10px;\n    color: #71827c;\n    font-size: 11px;\n    white-space: nowrap;\n  }\n\n  .slc .slc-note {\n    margin: 12px 0 0;\n    color: #71827c;\n    font-size: 12px;\n  }\n\n  .slc .slc-primary-results {\n    display: grid;\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n    gap: 10px;\n    margin-bottom: 18px;\n  }\n\n  .slc .slc-result-card {\n    position: relative;\n    min-width: 0;\n    overflow: hidden;\n    padding: 16px;\n    border: 1px solid var(--slc-line);\n    border-radius: 8px;\n    background: #fff;\n  }\n\n  .slc .slc-result-card::before {\n    position: absolute;\n    top: 0;\n    right: 0;\n    left: 0;\n    height: 3px;\n    background: var(--slc-mint-strong);\n    content: \"\";\n  }\n\n  .slc .slc-result-card--accent {\n    border-color: transparent;\n    background:\n      radial-gradient(circle at 100% 0, rgba(57, 185, 138, 0.2), transparent 38%),\n      var(--slc-ink);\n  }\n\n  .slc .slc-result-card--accent::before {\n    background: var(--slc-green-bright);\n  }\n\n  .slc .slc-result-label {\n    display: block;\n    min-height: 34px;\n    margin-bottom: 8px;\n    color: #6d7e78;\n    font-size: 11px;\n    font-weight: 780;\n    letter-spacing: 0.06em;\n    line-height: 1.35;\n    text-transform: uppercase;\n  }\n\n  .slc .slc-result-card--accent .slc-result-label {\n    color: rgba(255, 255, 255, 0.6);\n  }\n\n  .slc .slc-result-value {\n    display: block;\n    overflow-wrap: anywhere;\n    color: var(--slc-green-dark);\n    font-size: clamp(22px, 3vw, 32px);\n    font-variant-numeric: tabular-nums;\n    font-weight: 800;\n    letter-spacing: -0.035em;\n    line-height: 1;\n  }\n\n  .slc .slc-result-card--accent .slc-result-value {\n    color: #fff;\n  }\n\n  .slc .slc-result-unit {\n    display: block;\n    margin-top: 6px;\n    color: #7c8b86;\n    font-size: 11px;\n  }\n\n  .slc .slc-result-card--accent .slc-result-unit {\n    color: rgba(255, 255, 255, 0.52);\n  }\n\n  .slc .slc-result-section {\n    margin-top: 18px;\n  }\n\n  .slc .slc-result-section h4 {\n    display: flex;\n    align-items: center;\n    gap: 10px;\n    margin-bottom: 10px;\n  }\n\n  .slc .slc-result-section h4::after {\n    flex: 1;\n    height: 1px;\n    background: var(--slc-line);\n    content: \"\";\n  }\n\n  .slc .slc-metric-list {\n    overflow: hidden;\n    border: 1px solid var(--slc-line);\n    border-radius: 8px;\n    background: #fff;\n  }\n\n  .slc .slc-metric-row {\n    display: grid;\n    grid-template-columns: minmax(0, 1fr) auto;\n    gap: 18px;\n    align-items: center;\n    min-height: 48px;\n    padding: 11px 14px;\n    border-bottom: 1px solid var(--slc-line);\n  }\n\n  .slc .slc-metric-row:last-child {\n    border-bottom: 0;\n  }\n\n  .slc .slc-metric-row span {\n    color: var(--slc-text);\n    font-size: 13px;\n  }\n\n  .slc .slc-metric-row strong {\n    color: var(--slc-ink);\n    font-size: 14px;\n    font-variant-numeric: tabular-nums;\n    text-align: right;\n  }\n\n  .slc .slc-table-wrap {\n    overflow-x: auto;\n    border: 1px solid var(--slc-line);\n    border-radius: 8px;\n    background: #fff;\n  }\n\n  .slc .slc-table {\n    width: 100%;\n    min-width: 520px;\n    margin: 0;\n    border-collapse: collapse;\n    font-size: 13px;\n  }\n\n  .slc .slc-table th,\n  .slc .slc-table td {\n    padding: 11px 12px;\n    border: 0;\n    border-bottom: 1px solid var(--slc-line);\n    text-align: left;\n    vertical-align: middle;\n  }\n\n  .slc .slc-table tr:last-child td {\n    border-bottom: 0;\n  }\n\n  .slc .slc-table th {\n    background: #f5f8f6;\n    color: #6c7d77;\n    font-size: 10px;\n    font-weight: 850;\n    letter-spacing: 0.07em;\n    text-transform: uppercase;\n  }\n\n  .slc .slc-table td:not(:first-child),\n  .slc .slc-table th:not(:first-child) {\n    text-align: right;\n  }\n\n  .slc .slc-status {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: 58px;\n    padding: 4px 8px;\n    border-radius: 5px;\n    font-size: 10px;\n    font-weight: 850;\n    letter-spacing: 0.05em;\n    text-transform: uppercase;\n  }\n\n  .slc .slc-status--pass {\n    background: var(--slc-mint);\n    color: var(--slc-green-dark);\n  }\n\n  .slc .slc-status--fail {\n    background: #f9e8e4;\n    color: var(--slc-danger);\n  }\n\n  .slc .slc-field-help {\n    margin: 6px 0 0;\n    font-size: 10px;\n    line-height: 1.4;\n  }\n\n  .slc .slc-field-help a {\n    color: var(--slc-green-dark);\n    font-weight: 760;\n    text-decoration: none;\n  }\n\n  .slc .slc-field-help a:hover,\n  .slc .slc-field-help a:focus-visible {\n    text-decoration: underline;\n    text-underline-offset: 3px;\n  }\n\n  .slc .slc-reference {\n    margin-top: clamp(52px, 7vw, 78px);\n    scroll-margin-top: 24px;\n  }\n\n  .slc .slc-reference-head {\n    display: grid;\n    grid-template-columns: minmax(0, 1fr) minmax(280px, 0.6fr);\n    gap: 36px;\n    align-items: end;\n    margin-bottom: 24px;\n  }\n\n  .slc .slc-reference-head h2,\n  .slc .slc-reference-head p {\n    margin-bottom: 0;\n  }\n\n  .slc .slc-reference-head p {\n    max-width: 520px;\n    justify-self: end;\n  }\n\n  .slc .slc-reference-grid {\n    display: grid;\n    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);\n    gap: 18px;\n    align-items: start;\n  }\n\n  .slc .slc-reference-card {\n    min-width: 0;\n    overflow: hidden;\n    border: 1px solid var(--slc-line);\n    border-radius: 8px;\n    background: #fff;\n    box-shadow: 0 16px 44px rgba(16, 37, 31, 0.07);\n  }\n\n  .slc .slc-reference-card--wide {\n    grid-column: 1 \/ -1;\n  }\n\n  .slc .slc-reference-card-head {\n    display: flex;\n    align-items: flex-start;\n    justify-content: space-between;\n    gap: 18px;\n    padding: 20px;\n    border-bottom: 1px solid var(--slc-line);\n    background:\n      linear-gradient(135deg, rgba(232, 245, 239, 0.86), rgba(255, 255, 255, 0.92));\n  }\n\n  .slc .slc-reference-card-head h3,\n  .slc .slc-reference-card-head p {\n    margin-bottom: 0;\n  }\n\n  .slc .slc-reference-card-head p {\n    margin-top: 5px;\n    font-size: 12px;\n  }\n\n  .slc .slc-reference-tag {\n    flex: none;\n    padding: 5px 8px;\n    border: 1px solid #bfe2d4;\n    border-radius: 5px;\n    background: #fff;\n    color: var(--slc-green-dark);\n    font-size: 9px;\n    font-weight: 850;\n    letter-spacing: 0.07em;\n    text-transform: uppercase;\n  }\n\n  .slc .slc-reference-table-wrap {\n    overflow-x: auto;\n  }\n\n  .slc .slc-reference-table {\n    width: 100%;\n    margin: 0;\n    border-collapse: collapse;\n    table-layout: fixed;\n    font-size: 12px;\n  }\n\n  .slc .slc-reference-table th,\n  .slc .slc-reference-table td {\n    padding: 10px 11px;\n    border: 0;\n    border-bottom: 1px solid var(--slc-line);\n    text-align: left;\n    vertical-align: middle;\n  }\n\n  .slc .slc-reference-table tr:last-child td {\n    border-bottom: 0;\n  }\n\n  .slc .slc-reference-table th {\n    background: #f5f8f6;\n    color: #6c7d77;\n    font-size: 9px;\n    font-weight: 850;\n    letter-spacing: 0.06em;\n    text-transform: uppercase;\n  }\n\n  .slc .slc-reference-table tbody tr:nth-child(even) {\n    background: #fbfcfb;\n  }\n\n  .slc .slc-reference-table td:not(:first-child),\n  .slc .slc-reference-table th:not(:first-child) {\n    text-align: center;\n  }\n\n  .slc .slc-check-label {\n    display: inline-flex;\n    padding: 4px 7px;\n    border-radius: 5px;\n    background: var(--slc-mint);\n    color: var(--slc-green-dark);\n    font-size: 9px;\n    font-weight: 850;\n    letter-spacing: 0.04em;\n    text-transform: uppercase;\n  }\n\n  .slc .slc-terrain-notes {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 1px;\n    padding: 1px 0 0;\n    background: var(--slc-line);\n  }\n\n  .slc .slc-terrain-note {\n    padding: 13px 15px;\n    background: #fff;\n  }\n\n  .slc .slc-terrain-note strong {\n    display: block;\n    margin-bottom: 3px;\n    color: var(--slc-green-dark);\n    font-size: 11px;\n  }\n\n  .slc .slc-terrain-note span {\n    display: block;\n    color: #6c7d77;\n    font-size: 10px;\n    line-height: 1.45;\n  }\n\n  .slc .slc-snow-reference-body {\n    display: grid;\n    grid-template-columns: minmax(300px, 0.72fr) minmax(0, 1.28fr);\n    align-items: stretch;\n  }\n\n  .slc .slc-roof-figure {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    min-height: 280px;\n    padding: 24px;\n    border-right: 1px solid var(--slc-line);\n    background:\n      radial-gradient(circle at 50% 45%, rgba(57, 185, 138, 0.1), transparent 44%),\n      #f8fbf9;\n  }\n\n  .slc .slc-roof-figure svg {\n    display: block;\n    width: min(100%, 430px);\n    height: auto;\n    overflow: visible;\n  }\n\n  .slc .slc-mur-panel {\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    min-width: 0;\n    padding: clamp(22px, 3vw, 34px);\n  }\n\n  .slc .slc-mur-panel h4 {\n    margin-bottom: 7px;\n  }\n\n  .slc .slc-mur-panel > p {\n    margin-bottom: 18px;\n    font-size: 12px;\n  }\n\n  .slc .slc-mur-values {\n    display: grid;\n    grid-template-columns: repeat(8, minmax(0, 1fr));\n    overflow: hidden;\n    border: 1px solid var(--slc-line);\n    border-radius: 8px;\n    background: var(--slc-line);\n    gap: 1px;\n  }\n\n  .slc .slc-mur-cell {\n    min-width: 0;\n    padding: 12px 5px;\n    background: #fff;\n    text-align: center;\n  }\n\n  .slc .slc-mur-cell span,\n  .slc .slc-mur-cell strong {\n    display: block;\n  }\n\n  .slc .slc-mur-cell span {\n    margin-bottom: 6px;\n    color: #71827c;\n    font-size: 10px;\n    font-weight: 720;\n    white-space: nowrap;\n  }\n\n  .slc .slc-mur-cell strong {\n    color: var(--slc-green-dark);\n    font-size: 18px;\n    font-variant-numeric: tabular-nums;\n    font-weight: 820;\n    letter-spacing: -0.02em;\n  }\n\n  .slc .slc-mur-legend {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 16px;\n    margin-top: 12px;\n    color: #71827c;\n    font-size: 10px;\n  }\n\n  .slc .slc-mur-legend strong {\n    color: var(--slc-ink);\n  }\n\n  .slc .slc-guide {\n    padding: 70px 0;\n    background: #f3f7f4;\n  }\n\n  .slc .slc-guide-card {\n    display: grid;\n    grid-template-columns: minmax(0, 1fr) auto;\n    gap: 36px;\n    align-items: center;\n    padding: clamp(30px, 5vw, 52px);\n    border-radius: 8px;\n    background:\n      radial-gradient(circle at 88% 12%, rgba(57, 185, 138, 0.2), transparent 31%),\n      #102f26;\n    box-shadow: 0 20px 54px rgba(16, 37, 31, 0.12);\n  }\n\n  .slc .slc-guide-card h2 {\n    max-width: 760px;\n    margin-bottom: 12px;\n    color: #fff;\n  }\n\n  .slc .slc-guide-card p {\n    max-width: 750px;\n    margin-bottom: 0;\n    color: rgba(255, 255, 255, 0.7);\n  }\n\n  .slc .slc-guide-card .slc-button {\n    min-width: 230px;\n  }\n\n  .slc .slc-method {\n    padding: clamp(62px, 8vw, 92px) 0;\n    background: #fff;\n  }\n\n  .slc .slc-method-grid {\n    display: grid;\n    grid-template-columns: 0.72fr 1.28fr;\n    gap: clamp(36px, 7vw, 90px);\n    align-items: start;\n  }\n\n  .slc .slc-method-copy {\n    position: sticky;\n    top: 30px;\n  }\n\n  .slc .slc-method-copy p {\n    margin-bottom: 0;\n  }\n\n  .slc .slc-formulas {\n    display: grid;\n    gap: 12px;\n  }\n\n  .slc .slc-formula {\n    padding: 20px;\n    border: 1px solid var(--slc-line);\n    border-radius: 8px;\n    background: var(--slc-sand);\n  }\n\n  .slc .slc-formula strong {\n    display: block;\n    margin-bottom: 7px;\n    color: var(--slc-ink);\n    font-size: 14px;\n  }\n\n  .slc .slc-formula code {\n    display: block;\n    overflow-wrap: anywhere;\n    color: var(--slc-green-dark);\n    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;\n    font-size: 13px;\n    line-height: 1.6;\n    white-space: normal;\n  }\n\n  .slc .slc-disclaimer {\n    padding: 22px 0;\n    border-top: 1px solid var(--slc-line);\n    background: #fff;\n  }\n\n  .slc .slc-disclaimer p {\n    margin: 0;\n    color: #71827c;\n    font-size: 12px;\n  }\n\n  @media (max-width: 980px) {\n    .slc .slc-hero-grid,\n    .slc .slc-intro,\n    .slc .slc-reference-head,\n    .slc .slc-guide-card,\n    .slc .slc-method-grid {\n      grid-template-columns: 1fr;\n    }\n\n    .slc .slc-hero-panel {\n      max-width: 620px;\n    }\n\n    .slc .slc-intro p {\n      justify-self: start;\n    }\n\n    .slc .slc-reference-head p {\n      justify-self: start;\n    }\n\n    .slc .slc-reference-grid {\n      grid-template-columns: 1fr;\n    }\n\n    .slc .slc-reference-card--wide {\n      grid-column: auto;\n    }\n\n    .slc .slc-snow-reference-body {\n      grid-template-columns: 1fr;\n    }\n\n    .slc .slc-roof-figure {\n      min-height: 240px;\n      border-right: 0;\n      border-bottom: 1px solid var(--slc-line);\n    }\n\n    .slc .slc-calculator {\n      grid-template-columns: 1fr;\n    }\n\n    .slc .slc-inputs {\n      border-right: 0;\n      border-bottom: 1px solid var(--slc-line);\n    }\n\n    .slc .slc-method-copy {\n      position: static;\n    }\n  }\n\n  @media (max-width: 680px) {\n    .slc .slc-wrap {\n      width: min(100% - 28px, 1240px);\n    }\n\n    .slc .slc-hero {\n      padding: 62px 0;\n    }\n\n    .slc .slc-hero-actions,\n    .slc .slc-guide-actions {\n      align-items: stretch;\n      flex-direction: column;\n    }\n\n    .slc .slc-button,\n    .slc .slc-guide-card .slc-button {\n      width: 100%;\n      min-width: 0;\n    }\n\n    .slc .slc-mode-tabs {\n      width: 100%;\n    }\n\n    .slc .slc-mode-tab {\n      padding-inline: 10px;\n      font-size: 12px;\n    }\n\n    .slc .slc-inputs,\n    .slc .slc-results {\n      padding: 20px 16px;\n    }\n\n    .slc .slc-fields,\n    .slc .slc-fields--three {\n      grid-template-columns: 1fr;\n    }\n\n    .slc .slc-primary-results {\n      grid-template-columns: 1fr 1fr;\n    }\n\n    .slc .slc-result-card--accent {\n      grid-column: 1 \/ -1;\n    }\n\n    .slc .slc-result-label {\n      min-height: 0;\n    }\n\n    .slc .slc-table {\n      min-width: 0;\n      table-layout: fixed;\n      font-size: 11px;\n    }\n\n    .slc .slc-table th,\n    .slc .slc-table td {\n      padding: 9px 5px;\n      overflow-wrap: anywhere;\n    }\n\n    .slc .slc-table th {\n      font-size: 8px;\n      letter-spacing: 0.04em;\n    }\n\n    .slc .slc-table th:first-child,\n    .slc .slc-table td:first-child {\n      width: 23%;\n    }\n\n    .slc .slc-table th:last-child,\n    .slc .slc-table td:last-child {\n      width: 21%;\n    }\n\n    .slc .slc-status {\n      min-width: 0;\n      width: 100%;\n      padding-inline: 4px;\n      font-size: 8px;\n    }\n\n    .slc .slc-reference-card-head {\n      padding: 17px 15px;\n    }\n\n    .slc .slc-reference-table {\n      min-width: 0;\n      font-size: 9px;\n    }\n\n    .slc .slc-reference-table th,\n    .slc .slc-reference-table td {\n      padding: 8px 4px;\n      overflow-wrap: anywhere;\n    }\n\n    .slc .slc-reference-table th {\n      font-size: 7px;\n      letter-spacing: 0.02em;\n    }\n\n    .slc .slc-check-label {\n      padding: 3px 4px;\n      font-size: 7px;\n    }\n\n    .slc .slc-terrain-notes {\n      grid-template-columns: 1fr;\n    }\n\n    .slc .slc-mur-panel {\n      padding: 18px 15px;\n    }\n\n    .slc .slc-mur-values {\n      grid-template-columns: repeat(4, minmax(0, 1fr));\n    }\n\n    .slc .slc-mur-cell {\n      padding-block: 11px;\n    }\n\n    .slc .slc-mur-cell strong {\n      font-size: 16px;\n    }\n\n    .slc .slc-mur-legend {\n      align-items: flex-start;\n      flex-direction: column;\n      gap: 4px;\n    }\n\n    .slc .slc-panel-head {\n      align-items: flex-start;\n    }\n  }\n\n  @media (prefers-reduced-motion: reduce) {\n    .slc *,\n    .slc *::before,\n    .slc *::after {\n      scroll-behavior: auto !important;\n      transition-duration: 0.01ms !important;\n    }\n  }\n<\/style>\n\n<main class=\"slc\" id=\"solar-structural-load-calculator\">\n  <section class=\"slc-hero\">\n    <div class=\"slc-wrap slc-hero-grid\">\n      <div>\n        <span class=\"slc-eyebrow\">Engineering calculator<\/span>\n        <h1>Solar Mounting Structural Load Calculator<\/h1>\n        <p class=\"slc-hero-lead\">\n          Calculate wind pressure, snow pressure, member utilization, deflection\n          and tracker torque from one engineering-ready interface.\n        <\/p>\n        <div class=\"slc-hero-actions\">\n          <a class=\"slc-button\" href=\"#slc-fixed\">Open calculator<\/a>\n          <a class=\"slc-button slc-button--ghost\" href=\"https:\/\/luminvolt.com\/how-to-use-solar-mounting-structural-load-calculator\/\">Read the beginner\u2019s guide<\/a>\n        <\/div>\n      <\/div>\n      <div class=\"slc-hero-visual\" aria-label=\"Structural load calculation model\">\n        <div class=\"slc-visual-head\">\n          <span>Structural load model<\/span>\n          <strong>Live calculation<\/strong>\n        <\/div>\n        <div class=\"slc-panel-diagram\" aria-hidden=\"true\">\n          <span class=\"slc-load-arrow slc-load-arrow--wind\">Wind<\/span>\n          <span class=\"slc-load-arrow slc-load-arrow--snow\">Snow<\/span>\n          <div class=\"slc-panel-array\">\n            <span><\/span><span><\/span><span><\/span>\n            <span><\/span><span><\/span><span><\/span>\n          <\/div>\n        <\/div>\n        <div class=\"slc-visual-metrics\">\n          <div><span>Systems<\/span><strong>2 modes<\/strong><\/div>\n          <div><span>Load types<\/span><strong>3 forces<\/strong><\/div>\n          <div><span>Response<\/span><strong>Instant<\/strong><\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <section class=\"slc-tool\">\n    <div class=\"slc-wrap\">\n      <div class=\"slc-intro\">\n        <div>\n          <span class=\"slc-eyebrow\" style=\"color: var(--slc-green)\">Workbook converted<\/span>\n          <h2>Choose the mounting system<\/h2>\n        <\/div>\n        <p>\n          Defaults reproduce the supplied engineering workbook. Change any field\n          to update all dependent results immediately.\n        <\/p>\n      <\/div>\n\n      <div class=\"slc-mode-tabs\" role=\"tablist\" aria-label=\"Mounting system\">\n        <button class=\"slc-mode-tab\" type=\"button\" role=\"tab\" aria-selected=\"true\" aria-controls=\"slc-fixed\" id=\"slc-tab-fixed\" data-mode=\"fixed\">\n          Fixed-tilt structure\n        <\/button>\n        <button class=\"slc-mode-tab\" type=\"button\" role=\"tab\" aria-selected=\"false\" aria-controls=\"slc-tracker\" id=\"slc-tab-tracker\" data-mode=\"tracker\">\n          Single-axis tracker\n        <\/button>\n      <\/div>\n\n      <section class=\"slc-calculator\" id=\"slc-fixed\" role=\"tabpanel\" aria-labelledby=\"slc-tab-fixed\">\n        <div class=\"slc-inputs\">\n          <div class=\"slc-panel-head\">\n            <div>\n              <h3>Fixed-tilt inputs<\/h3>\n              <p>Fixed-mount structural model<\/p>\n            <\/div>\n            <button class=\"slc-reset\" type=\"button\" data-reset=\"fixed\">Reset<\/button>\n          <\/div>\n\n          <details class=\"slc-group\" open>\n            <summary><span>Module and layout<\/span><span class=\"slc-group-icon\" aria-hidden=\"true\"><\/span><\/summary>\n            <div class=\"slc-group-body\">\n              <div class=\"slc-fields\">\n                <div class=\"slc-field\">\n                  <label for=\"f-module-length\">Module length<\/label>\n                  <div class=\"slc-input\"><input id=\"f-module-length\" data-calc=\"fixed\" type=\"number\" min=\"1\" step=\"1\" value=\"1650\"><span class=\"slc-unit\">mm<\/span><\/div>\n                <\/div>\n                <div class=\"slc-field\">\n                  <label for=\"f-module-width\">Module width<\/label>\n                  <div class=\"slc-input\"><input id=\"f-module-width\" data-calc=\"fixed\" type=\"number\" min=\"1\" step=\"1\" value=\"991\"><span class=\"slc-unit\">mm<\/span><\/div>\n                <\/div>\n                <div class=\"slc-field\">\n                  <label for=\"f-module-mass\">Module mass<\/label>\n                  <div class=\"slc-input\"><input id=\"f-module-mass\" data-calc=\"fixed\" type=\"number\" min=\"0\" step=\"0.1\" value=\"16.5\"><span class=\"slc-unit\">kg<\/span><\/div>\n                <\/div>\n                <div class=\"slc-field\">\n                  <label for=\"f-layout-rows\">Layout rows<\/label>\n                  <div class=\"slc-input\"><input id=\"f-layout-rows\" data-calc=\"fixed\" type=\"number\" min=\"1\" step=\"1\" value=\"2\"><span class=\"slc-unit\">rows<\/span><\/div>\n                <\/div>\n                <div class=\"slc-field\">\n                  <label for=\"f-layout-cols\">Modules per row<\/label>\n                  <div class=\"slc-input\"><input id=\"f-layout-cols\" data-calc=\"fixed\" type=\"number\" min=\"1\" step=\"1\" value=\"11\"><span class=\"slc-unit\">pcs<\/span><\/div>\n                <\/div>\n                <div class=\"slc-field\">\n                  <label for=\"f-purlin-length\">Total purlin length<\/label>\n                  <div class=\"slc-input\"><input id=\"f-purlin-length\" data-calc=\"fixed\" type=\"number\" min=\"1\" step=\"1\" value=\"11200\"><span class=\"slc-unit\">mm<\/span><\/div>\n                <\/div>\n                <div class=\"slc-field\">\n                  <label for=\"f-rafter-length\">Rafter length<\/label>\n                  <div class=\"slc-input\"><input id=\"f-rafter-length\" data-calc=\"fixed\" type=\"number\" min=\"1\" step=\"1\" value=\"2800\"><span class=\"slc-unit\">mm<\/span><\/div>\n                <\/div>\n              <\/div>\n            <\/div>\n          <\/details>\n\n          <details class=\"slc-group\" open>\n            <summary><span>Environmental loads<\/span><span class=\"slc-group-icon\" aria-hidden=\"true\"><\/span><\/summary>\n            <div class=\"slc-group-body\">\n              <div class=\"slc-fields\">\n                <span class=\"slc-subhead\">Wind<\/span>\n                <div class=\"slc-field\">\n                  <label for=\"f-wind-beta\">Gust response \u03b2z<\/label>\n                  <div class=\"slc-input\"><input id=\"f-wind-beta\" data-calc=\"fixed\" type=\"number\" min=\"0\" step=\"0.01\" value=\"1\"><span class=\"slc-unit\">factor<\/span><\/div>\n                <\/div>\n                <div class=\"slc-field\">\n                  <label for=\"f-wind-shape\">Shape coefficient \u03bcs<\/label>\n                  <div class=\"slc-input\"><input id=\"f-wind-shape\" data-calc=\"fixed\" type=\"number\" step=\"0.01\" value=\"1.3\"><span class=\"slc-unit\">factor<\/span><\/div>\n                <\/div>\n                <div class=\"slc-field\">\n                  <label for=\"f-wind-height\">Height factor \u03bcz<\/label>\n                  <div class=\"slc-input\"><input id=\"f-wind-height\" data-calc=\"fixed\" type=\"number\" min=\"0\" step=\"0.01\" value=\"1\"><span class=\"slc-unit\">factor<\/span><\/div>\n                  <p class=\"slc-field-help\"><a href=\"#slc-muz-table\">View the \u03bcz reference table \u2193<\/a><\/p>\n                <\/div>\n                <div class=\"slc-field\">\n                  <label for=\"f-air-density\">Air density \u03c1<\/label>\n                  <div class=\"slc-input\"><input id=\"f-air-density\" data-calc=\"fixed\" type=\"number\" min=\"0\" step=\"0.01\" value=\"1.25\"><span class=\"slc-unit\">kg\/m\u00b3<\/span><\/div>\n                <\/div>\n                <div class=\"slc-field\">\n                  <label for=\"f-wind-speed\">Design wind speed<\/label>\n                  <div class=\"slc-input\"><input id=\"f-wind-speed\" data-calc=\"fixed\" type=\"number\" min=\"0\" step=\"0.01\" value=\"26.84\"><span class=\"slc-unit\">m\/s<\/span><\/div>\n                <\/div>\n                <span class=\"slc-subhead\">Snow<\/span>\n                <div class=\"slc-field\">\n                  <label for=\"f-snow-shape\">Snow shape coefficient \u03bcr<\/label>\n                  <div class=\"slc-input\"><input id=\"f-snow-shape\" data-calc=\"fixed\" type=\"number\" min=\"0\" step=\"0.01\" value=\"0.85\"><span class=\"slc-unit\">factor<\/span><\/div>\n                  <p class=\"slc-field-help\"><a href=\"#slc-mur-table\">View the \u03bcr reference table \u2193<\/a><\/p>\n                <\/div>\n                <div class=\"slc-field\">\n                  <label for=\"f-snow-density\">Snow density \u03c1<\/label>\n                  <div class=\"slc-input\"><input id=\"f-snow-density\" data-calc=\"fixed\" type=\"number\" min=\"0\" step=\"1\" value=\"130\"><span class=\"slc-unit\">kg\/m\u00b3<\/span><\/div>\n                <\/div>\n                <div class=\"slc-field\">\n                  <label for=\"f-snow-depth\">Snow depth h<\/label>\n                  <div class=\"slc-input\"><input id=\"f-snow-depth\" data-calc=\"fixed\" type=\"number\" min=\"0\" step=\"0.01\" value=\"0.11\"><span class=\"slc-unit\">m<\/span><\/div>\n                <\/div>\n              <\/div>\n            <\/div>\n          <\/details>\n\n          <details class=\"slc-group\">\n            <summary><span>Member section properties<\/span><span class=\"slc-group-icon\" aria-hidden=\"true\"><\/span><\/summary>\n            <div class=\"slc-group-body\">\n              <div class=\"slc-fields slc-fields--three\">\n                <span class=\"slc-subhead\">Purlin<\/span>\n                <div class=\"slc-field\"><label for=\"f-p-wnx\">Wnx<\/label><div class=\"slc-input\"><input id=\"f-p-wnx\" data-calc=\"fixed\" type=\"number\" min=\"0.001\" step=\"0.01\" value=\"11.25\"><span class=\"slc-unit\">cm\u00b3<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"f-p-wny\">Wny<\/label><div class=\"slc-input\"><input id=\"f-p-wny\" data-calc=\"fixed\" type=\"number\" min=\"0.001\" step=\"0.01\" value=\"4.06\"><span class=\"slc-unit\">cm\u00b3<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"f-p-area\">Area An<\/label><div class=\"slc-input\"><input id=\"f-p-area\" data-calc=\"fixed\" type=\"number\" min=\"0.001\" step=\"0.01\" value=\"4.5\"><span class=\"slc-unit\">cm\u00b2<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"f-p-gx\">\u03b3x<\/label><div class=\"slc-input\"><input id=\"f-p-gx\" data-calc=\"fixed\" type=\"number\" min=\"0.001\" step=\"0.01\" value=\"1.05\"><span class=\"slc-unit\">factor<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"f-p-gy\">\u03b3y<\/label><div class=\"slc-input\"><input id=\"f-p-gy\" data-calc=\"fixed\" type=\"number\" min=\"0.001\" step=\"0.01\" value=\"1.05\"><span class=\"slc-unit\">factor<\/span><\/div><\/div>\n\n                <span class=\"slc-subhead\">Rafter<\/span>\n                <div class=\"slc-field\"><label for=\"f-r-wnx\">Wnx<\/label><div class=\"slc-input\"><input id=\"f-r-wnx\" data-calc=\"fixed\" type=\"number\" min=\"0.001\" step=\"0.01\" value=\"11.25\"><span class=\"slc-unit\">cm\u00b3<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"f-r-wny\">Wny<\/label><div class=\"slc-input\"><input id=\"f-r-wny\" data-calc=\"fixed\" type=\"number\" min=\"0.001\" step=\"0.01\" value=\"4.06\"><span class=\"slc-unit\">cm\u00b3<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"f-r-area\">Area An<\/label><div class=\"slc-input\"><input id=\"f-r-area\" data-calc=\"fixed\" type=\"number\" min=\"0.001\" step=\"0.01\" value=\"4.5\"><span class=\"slc-unit\">cm\u00b2<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"f-r-gx\">\u03b3x<\/label><div class=\"slc-input\"><input id=\"f-r-gx\" data-calc=\"fixed\" type=\"number\" min=\"0.001\" step=\"0.01\" value=\"1.05\"><span class=\"slc-unit\">factor<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"f-r-gy\">\u03b3y<\/label><div class=\"slc-input\"><input id=\"f-r-gy\" data-calc=\"fixed\" type=\"number\" min=\"0.001\" step=\"0.01\" value=\"1.05\"><span class=\"slc-unit\">factor<\/span><\/div><\/div>\n\n                <span class=\"slc-subhead\">Post<\/span>\n                <div class=\"slc-field\"><label for=\"f-c-wnx\">Wnx<\/label><div class=\"slc-input\"><input id=\"f-c-wnx\" data-calc=\"fixed\" type=\"number\" min=\"0.001\" step=\"0.01\" value=\"11.25\"><span class=\"slc-unit\">cm\u00b3<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"f-c-wny\">Wny<\/label><div class=\"slc-input\"><input id=\"f-c-wny\" data-calc=\"fixed\" type=\"number\" min=\"0.001\" step=\"0.01\" value=\"4.06\"><span class=\"slc-unit\">cm\u00b3<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"f-c-area\">Area An<\/label><div class=\"slc-input\"><input id=\"f-c-area\" data-calc=\"fixed\" type=\"number\" min=\"0.001\" step=\"0.01\" value=\"4.5\"><span class=\"slc-unit\">cm\u00b2<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"f-c-gx\">\u03b3x<\/label><div class=\"slc-input\"><input id=\"f-c-gx\" data-calc=\"fixed\" type=\"number\" min=\"0.001\" step=\"0.01\" value=\"1.05\"><span class=\"slc-unit\">factor<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"f-c-gy\">\u03b3y<\/label><div class=\"slc-input\"><input id=\"f-c-gy\" data-calc=\"fixed\" type=\"number\" min=\"0.001\" step=\"0.01\" value=\"1.05\"><span class=\"slc-unit\">factor<\/span><\/div><\/div>\n                <span class=\"slc-subhead\">Brace and material<\/span>\n                <div class=\"slc-field\"><label for=\"f-b-area\">Brace design area<\/label><div class=\"slc-input\"><input id=\"f-b-area\" data-calc=\"fixed\" type=\"number\" min=\"0.001\" step=\"0.01\" value=\"2.36\"><span class=\"slc-unit\">cm\u00b2<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"f-yield\">Design strength<\/label><div class=\"slc-input\"><input id=\"f-yield\" data-calc=\"fixed\" type=\"number\" min=\"1\" step=\"1\" value=\"215\"><span class=\"slc-unit\">MPa<\/span><\/div><\/div>\n              <\/div>\n              <p class=\"slc-note\">The workbook\u2019s brace check uses 2.36 cm\u00b2 directly; it is exposed here as an editable design area.<\/p>\n            <\/div>\n          <\/details>\n\n          <details class=\"slc-group\">\n            <summary><span>Member forces and moments<\/span><span class=\"slc-group-icon\" aria-hidden=\"true\"><\/span><\/summary>\n            <div class=\"slc-group-body\">\n              <div class=\"slc-fields slc-fields--three\">\n                <span class=\"slc-subhead\">Purlin<\/span>\n                <div class=\"slc-field\"><label for=\"f-p-mx\">Mx<\/label><div class=\"slc-input\"><input id=\"f-p-mx\" data-calc=\"fixed\" type=\"number\" step=\"0.01\" value=\"1178.27\"><span class=\"slc-unit\">N\u00b7m<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"f-p-my\">My<\/label><div class=\"slc-input\"><input id=\"f-p-my\" data-calc=\"fixed\" type=\"number\" step=\"0.01\" value=\"137.42\"><span class=\"slc-unit\">N\u00b7m<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"f-p-n\">Axial force N<\/label><div class=\"slc-input\"><input id=\"f-p-n\" data-calc=\"fixed\" type=\"number\" step=\"0.01\" value=\"125.05\"><span class=\"slc-unit\">N<\/span><\/div><\/div>\n\n                <span class=\"slc-subhead\">Rafter<\/span>\n                <div class=\"slc-field\"><label for=\"f-r-mx\">Mx<\/label><div class=\"slc-input\"><input id=\"f-r-mx\" data-calc=\"fixed\" type=\"number\" step=\"0.01\" value=\"1501.67\"><span class=\"slc-unit\">N\u00b7m<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"f-r-my\">My<\/label><div class=\"slc-input\"><input id=\"f-r-my\" data-calc=\"fixed\" type=\"number\" step=\"0.01\" value=\"59.62\"><span class=\"slc-unit\">N\u00b7m<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"f-r-n\">Axial force N<\/label><div class=\"slc-input\"><input id=\"f-r-n\" data-calc=\"fixed\" type=\"number\" step=\"0.01\" value=\"14310.44\"><span class=\"slc-unit\">N<\/span><\/div><\/div>\n\n                <span class=\"slc-subhead\">Post<\/span>\n                <div class=\"slc-field\"><label for=\"f-c-mx\">Mx<\/label><div class=\"slc-input\"><input id=\"f-c-mx\" data-calc=\"fixed\" type=\"number\" step=\"0.01\" value=\"1747.07\"><span class=\"slc-unit\">N\u00b7m<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"f-c-my\">My<\/label><div class=\"slc-input\"><input id=\"f-c-my\" data-calc=\"fixed\" type=\"number\" step=\"0.01\" value=\"6.6\"><span class=\"slc-unit\">N\u00b7m<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"f-c-n\">Axial force N<\/label><div class=\"slc-input\"><input id=\"f-c-n\" data-calc=\"fixed\" type=\"number\" step=\"0.01\" value=\"2820.03\"><span class=\"slc-unit\">N<\/span><\/div><\/div>\n\n                <span class=\"slc-subhead\">Brace<\/span>\n                <div class=\"slc-field\"><label for=\"f-b-n\">Axial force N<\/label><div class=\"slc-input\"><input id=\"f-b-n\" data-calc=\"fixed\" type=\"number\" step=\"0.01\" value=\"16654.61\"><span class=\"slc-unit\">N<\/span><\/div><\/div>\n              <\/div>\n            <\/div>\n          <\/details>\n\n          <details class=\"slc-group\">\n            <summary><span>Deflection checks<\/span><span class=\"slc-group-icon\" aria-hidden=\"true\"><\/span><\/summary>\n            <div class=\"slc-group-body\">\n              <div class=\"slc-fields\">\n                <span class=\"slc-subhead\">Purlin \u00b7 L\/200<\/span>\n                <div class=\"slc-field\"><label for=\"f-p-def-length\">Span L<\/label><div class=\"slc-input\"><input id=\"f-p-def-length\" data-calc=\"fixed\" type=\"number\" min=\"1\" step=\"1\" value=\"3500\"><span class=\"slc-unit\">mm<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"f-p-def-actual\">Maximum displacement<\/label><div class=\"slc-input\"><input id=\"f-p-def-actual\" data-calc=\"fixed\" type=\"number\" min=\"0\" step=\"0.1\" value=\"15\"><span class=\"slc-unit\">mm<\/span><\/div><\/div>\n                <span class=\"slc-subhead\">Rafter \u00b7 L\/250<\/span>\n                <div class=\"slc-field\"><label for=\"f-r-def-length\">Span L<\/label><div class=\"slc-input\"><input id=\"f-r-def-length\" data-calc=\"fixed\" type=\"number\" min=\"1\" step=\"1\" value=\"2800\"><span class=\"slc-unit\">mm<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"f-r-def-actual\">Maximum displacement<\/label><div class=\"slc-input\"><input id=\"f-r-def-actual\" data-calc=\"fixed\" type=\"number\" min=\"0\" step=\"0.1\" value=\"2.6\"><span class=\"slc-unit\">mm<\/span><\/div><\/div>\n                <span class=\"slc-subhead\">Post \u00b7 L\/60<\/span>\n                <div class=\"slc-field\"><label for=\"f-c-def-length\">Height L<\/label><div class=\"slc-input\"><input id=\"f-c-def-length\" data-calc=\"fixed\" type=\"number\" min=\"1\" step=\"1\" value=\"1300\"><span class=\"slc-unit\">mm<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"f-c-def-actual\">Maximum displacement<\/label><div class=\"slc-input\"><input id=\"f-c-def-actual\" data-calc=\"fixed\" type=\"number\" min=\"0\" step=\"0.1\" value=\"2.8\"><span class=\"slc-unit\">mm<\/span><\/div><\/div>\n              <\/div>\n            <\/div>\n          <\/details>\n        <\/div>\n\n        <div class=\"slc-results\" aria-live=\"polite\">\n          <div class=\"slc-panel-head\">\n            <div>\n              <h3>Fixed-tilt results<\/h3>\n              <p>Calculated from current inputs<\/p>\n            <\/div>\n            <span class=\"slc-live-badge\">Live<\/span>\n          <\/div>\n\n          <div class=\"slc-primary-results\">\n            <div class=\"slc-result-card slc-result-card--accent\">\n              <span class=\"slc-result-label\">Design wind load<\/span>\n              <strong class=\"slc-result-value\" id=\"fo-wind-load\">585.31<\/strong>\n              <span class=\"slc-result-unit\">N\/m\u00b2<\/span>\n            <\/div>\n            <div class=\"slc-result-card\">\n              <span class=\"slc-result-label\">Basic wind pressure<\/span>\n              <strong class=\"slc-result-value\" id=\"fo-wind-pressure\">450.24<\/strong>\n              <span class=\"slc-result-unit\">Pa<\/span>\n            <\/div>\n            <div class=\"slc-result-card\">\n              <span class=\"slc-result-label\">Design snow load<\/span>\n              <strong class=\"slc-result-value\" id=\"fo-snow-load\">121.55<\/strong>\n              <span class=\"slc-result-unit\">N\/m\u00b2<\/span>\n            <\/div>\n          <\/div>\n\n          <section class=\"slc-result-section\">\n            <h4>Distributed loads<\/h4>\n            <div class=\"slc-metric-list\">\n              <div class=\"slc-metric-row\"><span>Purlin wind line load<\/span><strong id=\"fo-purlin-wind\">0.470 N\/mm<\/strong><\/div>\n              <div class=\"slc-metric-row\"><span>Wind load per table<\/span><strong id=\"fo-table-wind\">21,055.65 N<\/strong><\/div>\n              <div class=\"slc-metric-row\"><span>Rafter wind line load<\/span><strong id=\"fo-rafter-wind\">3.760 N\/mm<\/strong><\/div>\n              <div class=\"slc-metric-row\"><span>Purlin snow line load<\/span><strong id=\"fo-purlin-snow\">0.195 N\/mm<\/strong><\/div>\n              <div class=\"slc-metric-row\"><span>Snow load per table<\/span><strong id=\"fo-table-snow\">4,372.55 N<\/strong><\/div>\n              <div class=\"slc-metric-row\"><span>Rafter snow line load<\/span><strong id=\"fo-rafter-snow\">0.781 N\/mm<\/strong><\/div>\n              <div class=\"slc-metric-row\"><span>Purlin gravity line load<\/span><strong id=\"fo-gravity\">0.081 N\/mm<\/strong><\/div>\n            <\/div>\n          <\/section>\n\n          <section class=\"slc-result-section\">\n            <h4>Strength utilization<\/h4>\n            <div class=\"slc-table-wrap\">\n              <table class=\"slc-table\">\n                <thead><tr><th>Member<\/th><th>Stress<\/th><th>Utilization<\/th><th>Status<\/th><\/tr><\/thead>\n                <tbody id=\"fo-strength-body\"><\/tbody>\n              <\/table>\n            <\/div>\n          <\/section>\n\n          <section class=\"slc-result-section\">\n            <h4>Deflection checks<\/h4>\n            <div class=\"slc-table-wrap\">\n              <table class=\"slc-table\">\n                <thead><tr><th>Member<\/th><th>Limit<\/th><th>Actual<\/th><th>Status<\/th><\/tr><\/thead>\n                <tbody id=\"fo-deflection-body\"><\/tbody>\n              <\/table>\n            <\/div>\n          <\/section>\n        <\/div>\n      <\/section>\n\n      <section class=\"slc-calculator\" id=\"slc-tracker\" role=\"tabpanel\" aria-labelledby=\"slc-tab-tracker\" hidden>\n        <div class=\"slc-inputs\">\n          <div class=\"slc-panel-head\">\n            <div>\n              <h3>Tracker inputs<\/h3>\n              <p>Single-axis torque model<\/p>\n            <\/div>\n            <button class=\"slc-reset\" type=\"button\" data-reset=\"tracker\">Reset<\/button>\n          <\/div>\n\n          <details class=\"slc-group\" open>\n            <summary><span>Module and torque tube<\/span><span class=\"slc-group-icon\" aria-hidden=\"true\"><\/span><\/summary>\n            <div class=\"slc-group-body\">\n              <div class=\"slc-fields\">\n                <div class=\"slc-field\"><label for=\"t-module-length\">Module length<\/label><div class=\"slc-input\"><input id=\"t-module-length\" data-calc=\"tracker\" type=\"number\" min=\"0\" step=\"0.01\" value=\"2.15\"><span class=\"slc-unit\">m<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"t-module-width\">Module width<\/label><div class=\"slc-input\"><input id=\"t-module-width\" data-calc=\"tracker\" type=\"number\" min=\"0\" step=\"0.01\" value=\"1.06\"><span class=\"slc-unit\">m<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"t-module-mass\">Module mass<\/label><div class=\"slc-input\"><input id=\"t-module-mass\" data-calc=\"tracker\" type=\"number\" min=\"0\" step=\"0.1\" value=\"30\"><span class=\"slc-unit\">kg<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"t-module-count\">Modules per row<\/label><div class=\"slc-input\"><input id=\"t-module-count\" data-calc=\"tracker\" type=\"number\" min=\"1\" step=\"1\" value=\"56\"><span class=\"slc-unit\">pcs<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"t-axis-length\">Torque tube length<\/label><div class=\"slc-input\"><input id=\"t-axis-length\" data-calc=\"tracker\" type=\"number\" min=\"0.01\" step=\"0.1\" value=\"60.7\"><span class=\"slc-unit\">m<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"t-wind-length\">Module windward length<\/label><div class=\"slc-input\"><input id=\"t-wind-length\" data-calc=\"tracker\" type=\"number\" min=\"0\" step=\"0.01\" value=\"2.15\"><span class=\"slc-unit\">m<\/span><\/div><\/div>\n              <\/div>\n            <\/div>\n          <\/details>\n\n          <details class=\"slc-group\" open>\n            <summary><span>Wind cases<\/span><span class=\"slc-group-icon\" aria-hidden=\"true\"><\/span><\/summary>\n            <div class=\"slc-group-body\">\n              <div class=\"slc-fields slc-fields--three\">\n                <span class=\"slc-subhead\">Case 1 \u00b7 0\u00b0<\/span>\n                <div class=\"slc-field\"><label for=\"t-c1-beta\">\u03b2z<\/label><div class=\"slc-input\"><input id=\"t-c1-beta\" data-calc=\"tracker\" type=\"number\" min=\"0\" step=\"0.01\" value=\"1\"><span class=\"slc-unit\">factor<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"t-c1-muz\">\u03bcz<\/label><div class=\"slc-input\"><input id=\"t-c1-muz\" data-calc=\"tracker\" type=\"number\" min=\"0\" step=\"0.01\" value=\"1\"><span class=\"slc-unit\">factor<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"t-c1-rho\">Air density<\/label><div class=\"slc-input\"><input id=\"t-c1-rho\" data-calc=\"tracker\" type=\"number\" min=\"0\" step=\"0.01\" value=\"1.25\"><span class=\"slc-unit\">kg\/m\u00b3<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"t-c1-speed\">Wind speed<\/label><div class=\"slc-input\"><input id=\"t-c1-speed\" data-calc=\"tracker\" type=\"number\" min=\"0\" step=\"0.1\" value=\"25\"><span class=\"slc-unit\">m\/s<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"t-c1-cp-plus\">Positive Cp<\/label><div class=\"slc-input\"><input id=\"t-c1-cp-plus\" data-calc=\"tracker\" type=\"number\" step=\"0.1\" value=\"1.3\"><span class=\"slc-unit\">factor<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"t-c1-cp-minus\">Negative Cp<\/label><div class=\"slc-input\"><input id=\"t-c1-cp-minus\" data-calc=\"tracker\" type=\"number\" step=\"0.1\" value=\"0.5\"><span class=\"slc-unit\">factor<\/span><\/div><\/div>\n\n                <span class=\"slc-subhead\">Case 2 \u00b7 45\u00b0<\/span>\n                <div class=\"slc-field\"><label for=\"t-c2-beta\">\u03b2z<\/label><div class=\"slc-input\"><input id=\"t-c2-beta\" data-calc=\"tracker\" type=\"number\" min=\"0\" step=\"0.01\" value=\"1\"><span class=\"slc-unit\">factor<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"t-c2-muz\">\u03bcz<\/label><div class=\"slc-input\"><input id=\"t-c2-muz\" data-calc=\"tracker\" type=\"number\" min=\"0\" step=\"0.01\" value=\"1\"><span class=\"slc-unit\">factor<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"t-c2-rho\">Air density<\/label><div class=\"slc-input\"><input id=\"t-c2-rho\" data-calc=\"tracker\" type=\"number\" min=\"0\" step=\"0.01\" value=\"1.25\"><span class=\"slc-unit\">kg\/m\u00b3<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"t-c2-speed\">Wind speed<\/label><div class=\"slc-input\"><input id=\"t-c2-speed\" data-calc=\"tracker\" type=\"number\" min=\"0\" step=\"0.1\" value=\"15\"><span class=\"slc-unit\">m\/s<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"t-c2-cp-plus\">Positive Cp<\/label><div class=\"slc-input\"><input id=\"t-c2-cp-plus\" data-calc=\"tracker\" type=\"number\" step=\"0.1\" value=\"1.4\"><span class=\"slc-unit\">factor<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"t-c2-cp-minus\">Negative Cp<\/label><div class=\"slc-input\"><input id=\"t-c2-cp-minus\" data-calc=\"tracker\" type=\"number\" step=\"0.1\" value=\"0.6\"><span class=\"slc-unit\">factor<\/span><\/div><\/div>\n              <\/div>\n            <\/div>\n          <\/details>\n\n          <details class=\"slc-group\">\n            <summary><span>Gravity and snow<\/span><span class=\"slc-group-icon\" aria-hidden=\"true\"><\/span><\/summary>\n            <div class=\"slc-group-body\">\n              <div class=\"slc-fields\">\n                <div class=\"slc-field\"><label for=\"t-gravity-arm\">Gravity eccentricity<\/label><div class=\"slc-input\"><input id=\"t-gravity-arm\" data-calc=\"tracker\" type=\"number\" min=\"0\" step=\"0.01\" value=\"0.13\"><span class=\"slc-unit\">m<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"t-gravity-angle\">Tracker angle<\/label><div class=\"slc-input\"><input id=\"t-gravity-angle\" data-calc=\"tracker\" type=\"number\" min=\"0\" max=\"90\" step=\"1\" value=\"45\"><span class=\"slc-unit\">deg<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"t-snow-mur\">Snow coefficient \u03bcr<\/label><div class=\"slc-input\"><input id=\"t-snow-mur\" data-calc=\"tracker\" type=\"number\" min=\"0\" step=\"0.01\" value=\"0.7\"><span class=\"slc-unit\">factor<\/span><\/div><p class=\"slc-field-help\"><a href=\"#slc-mur-table\">View the \u03bcr reference table \u2193<\/a><\/p><\/div>\n                <div class=\"slc-field\"><label for=\"t-snow-density\">Snow density<\/label><div class=\"slc-input\"><input id=\"t-snow-density\" data-calc=\"tracker\" type=\"number\" min=\"0\" step=\"1\" value=\"250\"><span class=\"slc-unit\">kg\/m\u00b3<\/span><\/div><\/div>\n                <div class=\"slc-field\"><label for=\"t-snow-depth\">Snow depth<\/label><div class=\"slc-input\"><input id=\"t-snow-depth\" data-calc=\"tracker\" type=\"number\" min=\"0\" step=\"0.01\" value=\"0.1\"><span class=\"slc-unit\">m<\/span><\/div><\/div>\n              <\/div>\n            <\/div>\n          <\/details>\n        <\/div>\n\n        <div class=\"slc-results\" aria-live=\"polite\">\n          <div class=\"slc-panel-head\">\n            <div>\n              <h3>Tracker results<\/h3>\n              <p>Torque and environmental loads<\/p>\n            <\/div>\n            <span class=\"slc-live-badge\">Live<\/span>\n          <\/div>\n\n          <div class=\"slc-primary-results\">\n            <div class=\"slc-result-card slc-result-card--accent\">\n              <span class=\"slc-result-label\">Governing unit torque<\/span>\n              <strong class=\"slc-result-value\" id=\"to-governing\">176.58<\/strong>\n              <span class=\"slc-result-unit\">N\u00b7m per metre<\/span>\n            <\/div>\n            <div class=\"slc-result-card\">\n              <span class=\"slc-result-label\">Case 1 \u00b7 0\u00b0<\/span>\n              <strong class=\"slc-result-value\" id=\"to-total-c1\">176.58<\/strong>\n              <span class=\"slc-result-unit\">N\u00b7m per metre<\/span>\n            <\/div>\n            <div class=\"slc-result-card\">\n              <span class=\"slc-result-label\">Case 2 \u00b7 45\u00b0<\/span>\n              <strong class=\"slc-result-value\" id=\"to-total-c2\">88.50<\/strong>\n              <span class=\"slc-result-unit\">N\u00b7m per metre<\/span>\n            <\/div>\n          <\/div>\n\n          <section class=\"slc-result-section\">\n            <h4>Torque breakdown<\/h4>\n            <div class=\"slc-metric-list\">\n              <div class=\"slc-metric-row\"><span>Wind eccentric torque \u00b7 0\u00b0<\/span><strong id=\"to-wind-torque-c1\">10,718.42 N\u00b7m<\/strong><\/div>\n              <div class=\"slc-metric-row\"><span>Wind eccentric torque \u00b7 45\u00b0<\/span><strong id=\"to-wind-torque-c2\">3,858.63 N\u00b7m<\/strong><\/div>\n              <div class=\"slc-metric-row\"><span>Gravity eccentric torque<\/span><strong id=\"to-gravity-torque\">1,513.43 N\u00b7m<\/strong><\/div>\n              <div class=\"slc-metric-row\"><span>Wind unit torque \u00b7 0\u00b0<\/span><strong id=\"to-unit-c1\">176.58 N\u00b7m\/m<\/strong><\/div>\n              <div class=\"slc-metric-row\"><span>Wind unit torque \u00b7 45\u00b0<\/span><strong id=\"to-unit-c2\">63.57 N\u00b7m\/m<\/strong><\/div>\n              <div class=\"slc-metric-row\"><span>Gravity unit torque<\/span><strong id=\"to-unit-gravity\">24.93 N\u00b7m\/m<\/strong><\/div>\n            <\/div>\n          <\/section>\n\n          <section class=\"slc-result-section\">\n            <h4>Environmental values<\/h4>\n            <div class=\"slc-metric-list\">\n              <div class=\"slc-metric-row\"><span>Module area<\/span><strong id=\"to-module-area\">2.279 m\u00b2<\/strong><\/div>\n              <div class=\"slc-metric-row\"><span>Basic wind pressure \u00b7 0\u00b0<\/span><strong id=\"to-pressure-c1\">390.63 Pa<\/strong><\/div>\n              <div class=\"slc-metric-row\"><span>Design wind load \u00b7 0\u00b0<\/span><strong id=\"to-load-c1\">351.56 N\/m\u00b2<\/strong><\/div>\n              <div class=\"slc-metric-row\"><span>Basic wind pressure \u00b7 45\u00b0<\/span><strong id=\"to-pressure-c2\">140.63 Pa<\/strong><\/div>\n              <div class=\"slc-metric-row\"><span>Design wind load \u00b7 45\u00b0<\/span><strong id=\"to-load-c2\">140.63 N\/m\u00b2<\/strong><\/div>\n              <div class=\"slc-metric-row\"><span>Design snow load<\/span><strong id=\"to-snow-load\">0.175 kN\/m\u00b2<\/strong><\/div>\n            <\/div>\n          <\/section>\n        <\/div>\n      <\/section>\n\n      <section class=\"slc-reference\" aria-labelledby=\"slc-reference-title\">\n        <div class=\"slc-reference-head\">\n          <div>\n            <span class=\"slc-eyebrow\" style=\"color: var(--slc-green)\">Fixed-tilt reference data<\/span>\n            <h2 id=\"slc-reference-title\">Engineering reference tables<\/h2>\n          <\/div>\n          <p>\n            Complete load-combination factors and wind-pressure height\n            coefficients reproduced from the supplied workbook.\n          <\/p>\n        <\/div>\n\n        <div class=\"slc-reference-grid\">\n          <article class=\"slc-reference-card\">\n            <header class=\"slc-reference-card-head\">\n              <div>\n                <h3>Load combinations<\/h3>\n                <p>Strength and deflection combinations<\/p>\n              <\/div>\n              <span class=\"slc-reference-tag\">12 factors<\/span>\n            <\/header>\n            <div class=\"slc-reference-table-wrap\">\n              <table class=\"slc-reference-table\" aria-label=\"Load combinations\">\n                <thead>\n                  <tr>\n                    <th>Check<\/th>\n                    <th>Combination<\/th>\n                    <th>Load component<\/th>\n                    <th>Factor<\/th>\n                  <\/tr>\n                <\/thead>\n                <tbody>\n                  <tr><td><span class=\"slc-check-label\">Strength<\/span><\/td><td>1.2G + 1.4W+<\/td><td>Gravity<\/td><td>1.20<\/td><\/tr>\n                  <tr><td><span class=\"slc-check-label\">Strength<\/span><\/td><td>1.2G + 1.4W+<\/td><td>Positive wind<\/td><td>1.40<\/td><\/tr>\n                  <tr><td><span class=\"slc-check-label\">Strength<\/span><\/td><td>G + 1.4W\u2212<\/td><td>Gravity<\/td><td>1.00<\/td><\/tr>\n                  <tr><td><span class=\"slc-check-label\">Strength<\/span><\/td><td>G + 1.4W\u2212<\/td><td>Leeward wind<\/td><td>1.40<\/td><\/tr>\n                  <tr><td><span class=\"slc-check-label\">Strength<\/span><\/td><td>1.2G + 1.4S<\/td><td>Gravity<\/td><td>1.20<\/td><\/tr>\n                  <tr><td><span class=\"slc-check-label\">Strength<\/span><\/td><td>1.2G + 1.4S<\/td><td>Snow<\/td><td>1.40<\/td><\/tr>\n                  <tr><td><span class=\"slc-check-label\">Deflection<\/span><\/td><td>G + W+<\/td><td>Gravity<\/td><td>1.00<\/td><\/tr>\n                  <tr><td><span class=\"slc-check-label\">Deflection<\/span><\/td><td>G + W+<\/td><td>Positive wind<\/td><td>1.00<\/td><\/tr>\n                  <tr><td><span class=\"slc-check-label\">Deflection<\/span><\/td><td>G + W\u2212<\/td><td>Gravity<\/td><td>1.00<\/td><\/tr>\n                  <tr><td><span class=\"slc-check-label\">Deflection<\/span><\/td><td>G + W\u2212<\/td><td>Leeward wind<\/td><td>1.00<\/td><\/tr>\n                  <tr><td><span class=\"slc-check-label\">Deflection<\/span><\/td><td>G + S<\/td><td>Gravity<\/td><td>1.00<\/td><\/tr>\n                  <tr><td><span class=\"slc-check-label\">Deflection<\/span><\/td><td>G + S<\/td><td>Snow<\/td><td>1.00<\/td><\/tr>\n                <\/tbody>\n              <\/table>\n            <\/div>\n          <\/article>\n\n          <article class=\"slc-reference-card\" id=\"slc-muz-table\">\n            <header class=\"slc-reference-card-head\">\n              <div>\n                <h3>Wind pressure height coefficient \u03bcz<\/h3>\n                <p>Coefficient by height and terrain category<\/p>\n              <\/div>\n              <span class=\"slc-reference-tag\">A\u2013D terrain<\/span>\n            <\/header>\n            <div class=\"slc-reference-table-wrap\">\n              <table class=\"slc-reference-table\" aria-label=\"Wind pressure height coefficient by terrain category\">\n                <thead>\n                  <tr>\n                    <th>Height (m)<\/th>\n                    <th>Terrain A<\/th>\n                    <th>Terrain B<\/th>\n                    <th>Terrain C<\/th>\n                    <th>Terrain D<\/th>\n                  <\/tr>\n                <\/thead>\n                <tbody>\n                  <tr><td>5<\/td><td>1.09<\/td><td>1.00<\/td><td>0.65<\/td><td>0.51<\/td><\/tr>\n                  <tr><td>10<\/td><td>1.28<\/td><td>1.00<\/td><td>0.65<\/td><td>0.51<\/td><\/tr>\n                  <tr><td>15<\/td><td>1.42<\/td><td>1.13<\/td><td>0.65<\/td><td>0.51<\/td><\/tr>\n                  <tr><td>20<\/td><td>1.52<\/td><td>1.23<\/td><td>0.74<\/td><td>0.51<\/td><\/tr>\n                  <tr><td>30<\/td><td>1.67<\/td><td>1.39<\/td><td>0.88<\/td><td>0.51<\/td><\/tr>\n                  <tr><td>40<\/td><td>1.79<\/td><td>1.52<\/td><td>1.00<\/td><td>0.60<\/td><\/tr>\n                  <tr><td>50<\/td><td>1.89<\/td><td>1.62<\/td><td>1.10<\/td><td>0.69<\/td><\/tr>\n                  <tr><td>60<\/td><td>1.97<\/td><td>1.71<\/td><td>1.20<\/td><td>0.77<\/td><\/tr>\n                  <tr><td>70<\/td><td>2.05<\/td><td>1.79<\/td><td>1.28<\/td><td>0.84<\/td><\/tr>\n                  <tr><td>80<\/td><td>2.12<\/td><td>1.87<\/td><td>1.36<\/td><td>0.91<\/td><\/tr>\n                  <tr><td>90<\/td><td>2.18<\/td><td>1.93<\/td><td>1.43<\/td><td>0.98<\/td><\/tr>\n                  <tr><td>100<\/td><td>2.23<\/td><td>2.00<\/td><td>1.50<\/td><td>1.04<\/td><\/tr>\n                  <tr><td>150<\/td><td>2.46<\/td><td>2.25<\/td><td>1.79<\/td><td>1.33<\/td><\/tr>\n                  <tr><td>200<\/td><td>2.64<\/td><td>2.46<\/td><td>2.03<\/td><td>1.58<\/td><\/tr>\n                  <tr><td>250<\/td><td>2.78<\/td><td>2.63<\/td><td>2.24<\/td><td>1.81<\/td><\/tr>\n                  <tr><td>300<\/td><td>2.91<\/td><td>2.77<\/td><td>2.43<\/td><td>2.02<\/td><\/tr>\n                  <tr><td>350<\/td><td>2.91<\/td><td>2.91<\/td><td>2.60<\/td><td>2.22<\/td><\/tr>\n                  <tr><td>400<\/td><td>2.91<\/td><td>2.91<\/td><td>2.76<\/td><td>2.40<\/td><\/tr>\n                  <tr><td>450<\/td><td>2.91<\/td><td>2.91<\/td><td>2.91<\/td><td>2.58<\/td><\/tr>\n                  <tr><td>500<\/td><td>2.91<\/td><td>2.91<\/td><td>2.91<\/td><td>2.74<\/td><\/tr>\n                  <tr><td>\u2265550<\/td><td>2.91<\/td><td>2.91<\/td><td>2.91<\/td><td>2.91<\/td><\/tr>\n                <\/tbody>\n              <\/table>\n            <\/div>\n            <div class=\"slc-terrain-notes\">\n              <div class=\"slc-terrain-note\"><strong>Terrain A<\/strong><span>Offshore areas, islands, coasts, lake shores and deserts.<\/span><\/div>\n              <div class=\"slc-terrain-note\"><strong>Terrain B<\/strong><span>Fields, rural areas, forests, hills and sparsely built suburbs.<\/span><\/div>\n              <div class=\"slc-terrain-note\"><strong>Terrain C<\/strong><span>Urban districts with dense groups of buildings.<\/span><\/div>\n              <div class=\"slc-terrain-note\"><strong>Terrain D<\/strong><span>Dense urban districts dominated by taller buildings.<\/span><\/div>\n            <\/div>\n          <\/article>\n\n          <article class=\"slc-reference-card slc-reference-card--wide\" id=\"slc-mur-table\">\n            <header class=\"slc-reference-card-head\">\n              <div>\n                <h3>Mono-pitch roof snow coefficient \u03bcr<\/h3>\n                <p>Single-span roof snow distribution by roof slope \u03b1<\/p>\n              <\/div>\n              <span class=\"slc-reference-tag\">8 slope points<\/span>\n            <\/header>\n            <div class=\"slc-snow-reference-body\">\n              <div class=\"slc-roof-figure\">\n                <svg viewBox=\"0 0 440 230\" role=\"img\" aria-labelledby=\"slc-roof-diagram-title slc-roof-diagram-desc\">\n                  <title id=\"slc-roof-diagram-title\">Single-span mono-pitch roof<\/title>\n                  <desc id=\"slc-roof-diagram-desc\">A sloped roof with uniformly distributed snow load and roof angle alpha.<\/desc>\n                  <defs>\n                    <linearGradient id=\"slcSnowFill\" x1=\"0\" x2=\"1\">\n                      <stop offset=\"0\" stop-color=\"#dff3ea\"><\/stop>\n                      <stop offset=\"1\" stop-color=\"#f4faf7\"><\/stop>\n                    <\/linearGradient>\n                  <\/defs>\n                  <text x=\"220\" y=\"30\" fill=\"#51635d\" font-size=\"12\" font-weight=\"700\" text-anchor=\"middle\">Uniform snow distribution<\/text>\n                  <rect x=\"126\" y=\"45\" width=\"188\" height=\"25\" rx=\"0\" fill=\"url(#slcSnowFill)\" stroke=\"#16815d\" stroke-width=\"2.5\"><\/rect>\n                  <text x=\"327\" y=\"64\" fill=\"#16815d\" font-size=\"17\" font-weight=\"800\">\u03bcr<\/text>\n                  <path d=\"M104 151 L316 103 L316 181 L104 181 Z\" fill=\"#eaf5f0\" stroke=\"none\"><\/path>\n                  <path d=\"M104 151 L316 103\" fill=\"none\" stroke=\"#10251f\" stroke-width=\"4\" stroke-linecap=\"round\"><\/path>\n                  <path d=\"M104 151 L104 181 M316 103 L316 181 M82 181 H340\" fill=\"none\" stroke=\"#10251f\" stroke-width=\"4\" stroke-linecap=\"round\"><\/path>\n                  <path d=\"M104 151 H202\" fill=\"none\" stroke=\"#51635d\" stroke-width=\"2\" stroke-linecap=\"round\"><\/path>\n                  <path d=\"M164 151 A60 60 0 0 0 162.5 137.4\" fill=\"none\" stroke=\"#16815d\" stroke-width=\"2.5\" stroke-linecap=\"round\"><\/path>\n                  <text x=\"174\" y=\"148\" fill=\"#16815d\" font-size=\"13\" font-weight=\"800\">\u03b1<\/text>\n                <\/svg>\n              <\/div>\n              <div class=\"slc-mur-panel\">\n                <h4>Roof slope \u03b1 and snow coefficient \u03bcr<\/h4>\n                <p>Select the coefficient corresponding to the mono-pitch roof angle.<\/p>\n                <div class=\"slc-mur-values\" role=\"table\" aria-label=\"Mono-pitch roof snow coefficient by slope\">\n                  <div class=\"slc-mur-cell\" role=\"row\"><span role=\"rowheader\">\u03b1 \u226425\u00b0<\/span><strong role=\"cell\">1.00<\/strong><\/div>\n                  <div class=\"slc-mur-cell\" role=\"row\"><span role=\"rowheader\">\u03b1 30\u00b0<\/span><strong role=\"cell\">0.85<\/strong><\/div>\n                  <div class=\"slc-mur-cell\" role=\"row\"><span role=\"rowheader\">\u03b1 35\u00b0<\/span><strong role=\"cell\">0.70<\/strong><\/div>\n                  <div class=\"slc-mur-cell\" role=\"row\"><span role=\"rowheader\">\u03b1 40\u00b0<\/span><strong role=\"cell\">0.55<\/strong><\/div>\n                  <div class=\"slc-mur-cell\" role=\"row\"><span role=\"rowheader\">\u03b1 45\u00b0<\/span><strong role=\"cell\">0.40<\/strong><\/div>\n                  <div class=\"slc-mur-cell\" role=\"row\"><span role=\"rowheader\">\u03b1 50\u00b0<\/span><strong role=\"cell\">0.25<\/strong><\/div>\n                  <div class=\"slc-mur-cell\" role=\"row\"><span role=\"rowheader\">\u03b1 55\u00b0<\/span><strong role=\"cell\">0.10<\/strong><\/div>\n                  <div class=\"slc-mur-cell\" role=\"row\"><span role=\"rowheader\">\u03b1 \u226560\u00b0<\/span><strong role=\"cell\">0.00<\/strong><\/div>\n                <\/div>\n                <div class=\"slc-mur-legend\">\n                  <span><strong>\u03b1<\/strong> Roof slope angle<\/span>\n                  <span><strong>\u03bcr<\/strong> Snow distribution coefficient<\/span>\n                <\/div>\n              <\/div>\n            <\/div>\n          <\/article>\n        <\/div>\n      <\/section>\n    <\/div>\n  <\/section>\n\n  <section class=\"slc-guide\" aria-labelledby=\"slc-guide-title\">\n    <div class=\"slc-wrap\">\n      <div class=\"slc-guide-card\">\n        <div>\n          <span class=\"slc-eyebrow\">New to structural load calculations?<\/span>\n          <h2 id=\"slc-guide-title\">Follow the calculator step by step<\/h2>\n          <p>\n            Learn where each input comes from, which units to use, how to read\n            Pass and Review results, and how the default fixed-tilt and tracker\n            examples work.\n          <\/p>\n        <\/div>\n        <div class=\"slc-guide-actions\">\n          <a class=\"slc-button\" href=\"https:\/\/luminvolt.com\/how-to-use-solar-mounting-structural-load-calculator\/\">Open the full tutorial<\/a>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <section class=\"slc-method\">\n    <div class=\"slc-wrap slc-method-grid\">\n      <div class=\"slc-method-copy\">\n        <span class=\"slc-eyebrow\" style=\"color: var(--slc-green)\">Calculation basis<\/span>\n        <h2>Transparent formulas, live results<\/h2>\n        <p>\n          The calculation chain mirrors the supplied workbook and exposes the\n          previously hard-coded brace area as an editable engineering input.\n        <\/p>\n      <\/div>\n      <div class=\"slc-formulas\">\n        <div class=\"slc-formula\">\n          <strong>Basic wind pressure<\/strong>\n          <code>w = 0.5 \u00d7 \u03c1 \u00d7 V\u00b2<\/code>\n        <\/div>\n        <div class=\"slc-formula\">\n          <strong>Design wind and snow loads<\/strong>\n          <code>\u03c9k = \u03b2z \u00d7 \u03bcs \u00d7 \u03bcz \u00d7 w0 &nbsp; | &nbsp; sk = \u03bcr \u00d7 s0<\/code>\n        <\/div>\n        <div class=\"slc-formula\">\n          <strong>Combined member stress<\/strong>\n          <code>\u03c3 = N \/ An + Mx \/ (\u03b3x \u00d7 Wnx) + My \/ (\u03b3y \u00d7 Wny)<\/code>\n        <\/div>\n        <div class=\"slc-formula\">\n          <strong>Tracker unit torque<\/strong>\n          <code>t = T \/ L1<\/code>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <section class=\"slc-disclaimer\">\n    <div class=\"slc-wrap\">\n      <p>\n        Preliminary engineering tool only. Confirm site wind, snow, exposure,\n        load combinations, member capacities and applicable codes with a qualified\n        structural engineer before design or construction.\n      <\/p>\n    <\/div>\n  <\/section>\n<\/main>\n\n<script>\n  (() => {\n    const root = document.getElementById(\"solar-structural-load-calculator\");\n    if (!root) return;\n\n    const number = (id) => {\n      const field = document.getElementById(id);\n      const value = field ? Number.parseFloat(field.value) : 0;\n      return Number.isFinite(value) ? value : 0;\n    };\n\n    const safeDivide = (a, b) => (Math.abs(b) > 1e-12 ? a \/ b : 0);\n    const format = (value, digits = 2) =>\n      Number.isFinite(value)\n        ? value.toLocaleString(\"en-US\", {\n            minimumFractionDigits: digits,\n            maximumFractionDigits: digits,\n          })\n        : \"\u2014\";\n    const put = (id, text) => {\n      const node = document.getElementById(id);\n      if (node) node.textContent = text;\n    };\n    const status = (pass) =>\n      `<span class=\"slc-status slc-status--${pass ? \"pass\" : \"fail\"}\">${pass ? \"Pass\" : \"Review\"}<\/span>`;\n\n    const memberStress = (prefix, forcePrefix) => {\n      const axial = number(`${forcePrefix}-n`);\n      const mx = number(`${forcePrefix}-mx`);\n      const my = number(`${forcePrefix}-my`);\n      const area = number(`${prefix}-area`);\n      const wnx = number(`${prefix}-wnx`);\n      const wny = number(`${prefix}-wny`);\n      const gx = number(`${prefix}-gx`);\n      const gy = number(`${prefix}-gy`);\n      const raw =\n        safeDivide(axial * 10000, area) +\n        safeDivide(mx * 1000000, gx * wnx) +\n        safeDivide(my * 1000000, gy * wny);\n      return raw \/ 1000000;\n    };\n\n    function calculateFixed() {\n      const moduleLength = number(\"f-module-length\");\n      const moduleWidth = number(\"f-module-width\");\n      const moduleMass = number(\"f-module-mass\");\n      const rows = number(\"f-layout-rows\");\n      const columns = number(\"f-layout-cols\");\n      const purlinLength = number(\"f-purlin-length\");\n      const rafterLength = number(\"f-rafter-length\");\n      const moduleArea = (moduleLength * moduleWidth) \/ 1000000;\n\n      const basicWindPressure =\n        0.5 * number(\"f-air-density\") * number(\"f-wind-speed\") ** 2;\n      const designWind =\n        number(\"f-wind-beta\") *\n        number(\"f-wind-shape\") *\n        number(\"f-wind-height\") *\n        basicWindPressure;\n      const basicSnowPressure =\n        number(\"f-snow-density\") * 10 * number(\"f-snow-depth\");\n      const designSnow = number(\"f-snow-shape\") * basicSnowPressure;\n\n      const purlinWind = safeDivide(\n        designWind * moduleArea * columns,\n        2 * purlinLength,\n      );\n      const tableWind = designWind * moduleArea * columns * rows;\n      const rafterWind = safeDivide(tableWind, 2 * rafterLength);\n      const purlinSnow = safeDivide(\n        designSnow * moduleArea * columns,\n        purlinLength,\n      );\n      const tableSnow = designSnow * moduleArea * columns * rows;\n      const rafterSnow = safeDivide(tableSnow, 2 * rafterLength);\n      const gravity = safeDivide(columns * moduleMass * 10, purlinLength * 2);\n\n      put(\"fo-wind-pressure\", format(basicWindPressure, 2));\n      put(\"fo-wind-load\", format(designWind, 2));\n      put(\"fo-snow-load\", format(designSnow, 2));\n      put(\"fo-purlin-wind\", `${format(purlinWind, 3)} N\/mm`);\n      put(\"fo-table-wind\", `${format(tableWind, 2)} N`);\n      put(\"fo-rafter-wind\", `${format(rafterWind, 3)} N\/mm`);\n      put(\"fo-purlin-snow\", `${format(purlinSnow, 3)} N\/mm`);\n      put(\"fo-table-snow\", `${format(tableSnow, 2)} N`);\n      put(\"fo-rafter-snow\", `${format(rafterSnow, 3)} N\/mm`);\n      put(\"fo-gravity\", `${format(gravity, 3)} N\/mm`);\n\n      const strength = [\n        [\"Purlin\", memberStress(\"f-p\", \"f-p\")],\n        [\"Rafter\", memberStress(\"f-r\", \"f-r\")],\n        [\"Post\", memberStress(\"f-c\", \"f-c\")],\n        [\n          \"Brace\",\n          safeDivide(number(\"f-b-n\") * 10000, number(\"f-b-area\")) \/ 1000000,\n        ],\n      ];\n      const designStrength = number(\"f-yield\");\n      document.getElementById(\"fo-strength-body\").innerHTML = strength\n        .map(([name, stress]) => {\n          const utilization = safeDivide(stress, designStrength);\n          return `<tr><td>${name}<\/td><td>${format(stress, 2)} MPa<\/td><td>${format(utilization * 100, 1)}%<\/td><td>${status(utilization <= 1)}<\/td><\/tr>`;\n        })\n        .join(\"\");\n\n      const deflections = [\n        [\"Purlin\", safeDivide(number(\"f-p-def-length\"), 200), number(\"f-p-def-actual\")],\n        [\"Rafter\", safeDivide(number(\"f-r-def-length\"), 250), number(\"f-r-def-actual\")],\n        [\"Post\", safeDivide(number(\"f-c-def-length\"), 60), number(\"f-c-def-actual\")],\n      ];\n      document.getElementById(\"fo-deflection-body\").innerHTML = deflections\n        .map(([name, limit, actual]) =>\n          `<tr><td>${name}<\/td><td>${format(limit, 2)} mm<\/td><td>${format(actual, 2)} mm<\/td><td>${status(actual <= limit)}<\/td><\/tr>`,\n        )\n        .join(\"\");\n    }\n\n    function trackerCase(prefix) {\n      const beta = number(`${prefix}-beta`);\n      const muz = number(`${prefix}-muz`);\n      const rho = number(`${prefix}-rho`);\n      const speed = number(`${prefix}-speed`);\n      const cpPlus = number(`${prefix}-cp-plus`);\n      const cpMinus = number(`${prefix}-cp-minus`);\n      const pressure = 0.5 * rho * speed ** 2;\n      const shapeAverage = (cpPlus + cpMinus) \/ 2;\n      return {\n        beta,\n        muz,\n        cpPlus,\n        cpMinus,\n        pressure,\n        designLoad: beta * shapeAverage * muz * pressure,\n      };\n    }\n\n    function calculateTracker() {\n      const moduleArea =\n        number(\"t-module-length\") * number(\"t-module-width\");\n      const count = number(\"t-module-count\");\n      const windLength = number(\"t-wind-length\");\n      const axisLength = number(\"t-axis-length\");\n      const case1 = trackerCase(\"t-c1\");\n      const case2 = trackerCase(\"t-c2\");\n\n      const windTorque = (item) =>\n        count *\n        0.5 *\n        item.pressure *\n        item.beta *\n        item.muz *\n        (item.cpPlus - item.cpMinus) *\n        0.25 *\n        windLength *\n        moduleArea;\n      const torque1 = windTorque(case1);\n      const torque2 = windTorque(case2);\n      const gravityTorque =\n        number(\"t-module-mass\") *\n        count *\n        9.8 *\n        number(\"t-gravity-arm\") *\n        Math.sin((number(\"t-gravity-angle\") * Math.PI) \/ 180);\n      const unit1 = safeDivide(torque1, axisLength);\n      const unit2 = safeDivide(torque2, axisLength);\n      const gravityUnit = safeDivide(gravityTorque, axisLength);\n      const total1 = unit1;\n      const total2 = unit2 + gravityUnit;\n      const snowPressure =\n        number(\"t-snow-density\") * 10 * number(\"t-snow-depth\");\n      const snowLoad = (number(\"t-snow-mur\") * snowPressure) \/ 1000;\n\n      put(\"to-governing\", format(Math.max(Math.abs(total1), Math.abs(total2)), 2));\n      put(\"to-total-c1\", format(total1, 2));\n      put(\"to-total-c2\", format(total2, 2));\n      put(\"to-wind-torque-c1\", `${format(torque1, 2)} N\u00b7m`);\n      put(\"to-wind-torque-c2\", `${format(torque2, 2)} N\u00b7m`);\n      put(\"to-gravity-torque\", `${format(gravityTorque, 2)} N\u00b7m`);\n      put(\"to-unit-c1\", `${format(unit1, 2)} N\u00b7m\/m`);\n      put(\"to-unit-c2\", `${format(unit2, 2)} N\u00b7m\/m`);\n      put(\"to-unit-gravity\", `${format(gravityUnit, 2)} N\u00b7m\/m`);\n      put(\"to-module-area\", `${format(moduleArea, 3)} m\u00b2`);\n      put(\"to-pressure-c1\", `${format(case1.pressure, 2)} Pa`);\n      put(\"to-load-c1\", `${format(case1.designLoad, 2)} N\/m\u00b2`);\n      put(\"to-pressure-c2\", `${format(case2.pressure, 2)} Pa`);\n      put(\"to-load-c2\", `${format(case2.designLoad, 2)} N\/m\u00b2`);\n      put(\"to-snow-load\", `${format(snowLoad, 3)} kN\/m\u00b2`);\n    }\n\n    root.querySelectorAll(\"[data-calc]\").forEach((input) => {\n      input.dataset.defaultValue = input.value;\n      input.addEventListener(\"input\", () => {\n        if (input.dataset.calc === \"fixed\") calculateFixed();\n        else calculateTracker();\n      });\n    });\n\n    root.querySelectorAll(\"[data-reset]\").forEach((button) => {\n      button.addEventListener(\"click\", () => {\n        const mode = button.dataset.reset;\n        root.querySelectorAll(`[data-calc=\"${mode}\"]`).forEach((input) => {\n          input.value = input.dataset.defaultValue;\n        });\n        if (mode === \"fixed\") calculateFixed();\n        else calculateTracker();\n      });\n    });\n\n    root.querySelectorAll(\".slc-mode-tab\").forEach((tab) => {\n      tab.addEventListener(\"click\", () => {\n        const mode = tab.dataset.mode;\n        root.querySelectorAll(\".slc-mode-tab\").forEach((item) => {\n          const active = item === tab;\n          item.setAttribute(\"aria-selected\", String(active));\n          item.tabIndex = active ? 0 : -1;\n        });\n        document.getElementById(\"slc-fixed\").hidden = mode !== \"fixed\";\n        document.getElementById(\"slc-tracker\").hidden = mode !== \"tracker\";\n      });\n    });\n\n    calculateFixed();\n    calculateTracker();\n  })();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>Engineeringrechner Solarsystem-Lastenrechner Berechnen Sie Winddruck, Schneelast, Bauteilbelastung, Neigung und Tracker-Torque aus einer engineeringbereiten Oberfl\u00e4che. \u00d6ffnen Sie den Rechner Lesen Sie das Einsteigerhandbuch Strukturlastmodell Echtzeitberechnung Wind Schneesysteme 2 Modi Lasttypen 3 Kr\u00e4fte AntwortSofort Arbeitsmappe konvertiert W\u00e4hlen Sie das Montagesystem Standardwerte reproduzieren Sie das bereitgestellte engineering Workbook. \u00c4ndern Sie \u2026 <a title=\"Solarsystem-Lastenrechner\" class=\"read-more\" href=\"https:\/\/luminvolt.com\/de\/solarmontage-strukturlastrechner\/\" aria-label=\"Weitere Informationen zum Berechnungsprogramm f\u00fcr die statische Belastung von Solaranlagen\">Die Energiewelt durchl\u00e4uft eine leise Revolution. Jahrzehntelang war Solarenergie nur f\u00fcr Hauseigent\u00fcmer mit gro\u00dfen Dachfl\u00e4chen und einem erheblichen Budget zug\u00e4nglich. Heute hat das Balkon-Solar-System (auch als plug-and-play Solar-System bezeichnet) den Zugang zu erneuerbarer Energie demokratisiert und erm\u00f6glicht es Mietern von Wohnungen und Stadtbewohnern ...<\/a><\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_yoast_wpseo_focuskw":"solar mounting structural load calculator","_yoast_wpseo_title":"Solar Mounting Structural Load Calculator | LuminVolt","_yoast_wpseo_metadesc":"Calculate wind pressure, snow load, member utilization, deflection and single-axis tracker torque with LuminVolt\u2019s interactive engineering calculator.","footnotes":""},"class_list":["post-742","page","type-page","status-publish"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.3 (Yoast SEO v28.1) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Solar Mounting Structural Load Calculator | LuminVolt<\/title>\n<meta name=\"description\" content=\"Calculate wind pressure, snow load, member utilization, deflection and single-axis tracker torque with LuminVolt\u2019s interactive engineering calculator.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/luminvolt.com\/de\/solarmontage-strukturlastrechner\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Solar Mounting Structural Load Calculator\" \/>\n<meta property=\"og:description\" content=\"Calculate wind pressure, snow load, member utilization, deflection and single-axis tracker torque with LuminVolt\u2019s interactive engineering calculator.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/luminvolt.com\/de\/solarmontage-strukturlastrechner\/\" \/>\n<meta property=\"og:site_name\" content=\"LuminVolt\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-30T02:37:59+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data1\" content=\"5\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/luminvolt.com\\\/solar-mounting-structural-load-calculator\\\/\",\"url\":\"https:\\\/\\\/luminvolt.com\\\/solar-mounting-structural-load-calculator\\\/\",\"name\":\"Solar Mounting Structural Load Calculator | LuminVolt\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/luminvolt.com\\\/#website\"},\"datePublished\":\"2026-07-30T01:21:41+00:00\",\"dateModified\":\"2026-07-30T02:37:59+00:00\",\"description\":\"Calculate wind pressure, snow load, member utilization, deflection and single-axis tracker torque with LuminVolt\u2019s interactive engineering calculator.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/luminvolt.com\\\/solar-mounting-structural-load-calculator\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/luminvolt.com\\\/solar-mounting-structural-load-calculator\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/luminvolt.com\\\/solar-mounting-structural-load-calculator\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/luminvolt.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Solar Mounting Structural Load Calculator\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/luminvolt.com\\\/#website\",\"url\":\"https:\\\/\\\/luminvolt.com\\\/\",\"name\":\"LuminVolt\",\"description\":\"Your Partner in Advanced Solar Mounting Systems &amp; Energy Storage\",\"publisher\":{\"@id\":\"https:\\\/\\\/luminvolt.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/luminvolt.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/luminvolt.com\\\/#organization\",\"name\":\"LuminVolt\",\"url\":\"https:\\\/\\\/luminvolt.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/luminvolt.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/luminvolt.com\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/LuminVolt-02.webp\",\"contentUrl\":\"https:\\\/\\\/luminvolt.com\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/LuminVolt-02.webp\",\"width\":512,\"height\":512,\"caption\":\"LuminVolt\"},\"image\":{\"@id\":\"https:\\\/\\\/luminvolt.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Solarmontage-Strukturlastrechner | LuminVolt","description":"Berechnen Sie den Winddruck, die Schneelast, die Bauteilbeanspruchung, die Neigung und den Drehmoment des Einachsen-Trackers mit dem interaktiven Engineering-Rechner von LuminVolt.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/luminvolt.com\/de\/solarmontage-strukturlastrechner\/","og_locale":"de_DE","og_type":"article","og_title":"Solar Mounting Structural Load Calculator","og_description":"Calculate wind pressure, snow load, member utilization, deflection and single-axis tracker torque with LuminVolt\u2019s interactive engineering calculator.","og_url":"https:\/\/luminvolt.com\/de\/solarmontage-strukturlastrechner\/","og_site_name":"LuminVolt","article_modified_time":"2026-07-30T02:37:59+00:00","twitter_card":"summary_large_image","twitter_misc":{"Gesch\u00e4tzte Lesezeit":"5\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/luminvolt.com\/solar-mounting-structural-load-calculator\/","url":"https:\/\/luminvolt.com\/solar-mounting-structural-load-calculator\/","name":"Solarmontage-Strukturlastrechner | LuminVolt","isPartOf":{"@id":"https:\/\/luminvolt.com\/#website"},"datePublished":"2026-07-30T01:21:41+00:00","dateModified":"2026-07-30T02:37:59+00:00","description":"Berechnen Sie den Winddruck, die Schneelast, die Bauteilbeanspruchung, die Neigung und den Drehmoment des Einachsen-Trackers mit dem interaktiven Engineering-Rechner von LuminVolt.","breadcrumb":{"@id":"https:\/\/luminvolt.com\/solar-mounting-structural-load-calculator\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/luminvolt.com\/solar-mounting-structural-load-calculator\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/luminvolt.com\/solar-mounting-structural-load-calculator\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/luminvolt.com\/"},{"@type":"ListItem","position":2,"name":"Solar Mounting Structural Load Calculator"}]},{"@type":"WebSite","@id":"https:\/\/luminvolt.com\/#website","url":"https:\/\/luminvolt.com\/","name":"LuminVolt","description":"Ihr Partner f\u00fcr fortschrittliche Solarmontagesysteme und Energiespeicherung","publisher":{"@id":"https:\/\/luminvolt.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/luminvolt.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/luminvolt.com\/#organization","name":"LuminVolt","url":"https:\/\/luminvolt.com\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/luminvolt.com\/#\/schema\/logo\/image\/","url":"https:\/\/luminvolt.com\/wp-content\/uploads\/2024\/12\/LuminVolt-02.webp","contentUrl":"https:\/\/luminvolt.com\/wp-content\/uploads\/2024\/12\/LuminVolt-02.webp","width":512,"height":512,"caption":"LuminVolt"},"image":{"@id":"https:\/\/luminvolt.com\/#\/schema\/logo\/image\/"}}]}},"yoast_social":{"twitter_title":"","twitter_description":"","twitter_image":""},"_links":{"self":[{"href":"https:\/\/luminvolt.com\/de\/wp-json\/wp\/v2\/pages\/742","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/luminvolt.com\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/luminvolt.com\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/luminvolt.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/luminvolt.com\/de\/wp-json\/wp\/v2\/comments?post=742"}],"version-history":[{"count":9,"href":"https:\/\/luminvolt.com\/de\/wp-json\/wp\/v2\/pages\/742\/revisions"}],"predecessor-version":[{"id":757,"href":"https:\/\/luminvolt.com\/de\/wp-json\/wp\/v2\/pages\/742\/revisions\/757"}],"wp:attachment":[{"href":"https:\/\/luminvolt.com\/de\/wp-json\/wp\/v2\/media?parent=742"}],"curies":[{"name":"Web-Plattform","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}