/* Portable tool stylesheet: every application rule is isolated under .tower-stability-tool. */
.tower-stability-tool{--bg:#f4f7fb;--card:#fff;--ink:#162033;--muted:#657187;--line:#dfe5ee;--accent:#215fc5;--accent2:#164b9e;--soft:#eef4ff;--good:#16764a;--goodbg:#edf9f3;--warn:#9a6211;--warnbg:#fff7e8;--orange:#b65b12;--orange-bg:#fff3e8;--yellow:#856b00;--yellow-bg:#fffbe6;--bad:#a83434;--badbg:#fff0f0;--member:#4d607c;--load:#7f596f;--shadow:0 12px 34px rgba(23,41,75,.08);--radius:18px}
.tower-stability-tool,.tower-stability-tool *{box-sizing:border-box}.tower-stability-tool{scroll-behavior:smooth}.tower-stability-tool{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.45}.tower-stability-tool .app-header{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;padding:28px clamp(18px,4vw,58px);background:linear-gradient(180deg,#fff,#f9fbfe);border-bottom:1px solid var(--line)}.tower-stability-tool h1,.tower-stability-tool h2,.tower-stability-tool h3,.tower-stability-tool h4,.tower-stability-tool p{margin-top:0}.tower-stability-tool h1{font-size:clamp(28px,4vw,46px);line-height:1.05;margin-bottom:8px;letter-spacing:-.035em}.tower-stability-tool h2{font-size:21px;margin:0}.tower-stability-tool h3{font-size:16px;margin:24px 0 12px}.tower-stability-tool h4{font-size:13px;margin:12px 0 7px}.tower-stability-tool .eyebrow{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}.tower-stability-tool .subtitle{color:var(--muted);margin:0}.tower-stability-tool .header-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.tower-stability-tool .shell{max-width:1480px;margin:0 auto;padding:24px}.tower-stability-tool .workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(390px,.78fr);gap:22px;align-items:start}.tower-stability-tool .input-column{display:grid;gap:18px}.tower-stability-tool .card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}.tower-stability-tool .project-card{margin-bottom:20px}.tower-stability-tool .section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.tower-stability-tool .section-head>div:first-child{display:flex;align-items:center;gap:10px;min-width:0}.tower-stability-tool .step{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:9px;background:var(--soft);color:var(--accent);font-weight:800;font-size:13px}.tower-stability-tool .grid{display:grid;gap:14px}.tower-stability-tool .grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.tower-stability-tool .grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.tower-stability-tool .pad-box{padding:0 14px 14px}.tower-stability-tool label{display:block;font-size:13px;font-weight:700;color:#354157;position:relative}.tower-stability-tool .unit{float:right;color:var(--muted);font-size:11px;font-weight:700}.tower-stability-tool input,.tower-stability-tool select,.tower-stability-tool textarea{width:100%;border:1px solid #ccd5e2;border-radius:11px;background:#fff;color:var(--ink);padding:11px 12px;font:inherit;font-size:14px;margin-top:6px;outline:none;transition:.15s}.tower-stability-tool input:focus,.tower-stability-tool select:focus,.tower-stability-tool textarea:focus{border-color:#6c98dd;box-shadow:0 0 0 3px rgba(33,95,197,.12)}.tower-stability-tool textarea{resize:vertical}.tower-stability-tool .btn{border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:11px;padding:10px 14px;font-weight:800;cursor:pointer;font:inherit;font-size:13px}.tower-stability-tool .btn:hover{background:var(--accent2)}.tower-stability-tool .btn.ghost{background:#fff;color:var(--ink);border-color:var(--line)}.tower-stability-tool .btn.ghost:hover{background:#f7f9fc}.tower-stability-tool .btn.small{padding:8px 11px}.tower-stability-tool .file-btn{display:inline-flex;align-items:center;cursor:pointer}.tower-stability-tool .file-btn input{display:none}.tower-stability-tool .text-btn{border:0;background:transparent;color:var(--accent);text-decoration:underline;text-underline-offset:2px;padding:0;cursor:pointer;font:inherit;font-size:inherit}.tower-stability-tool .info{display:inline-grid;place-items:center;width:19px;height:19px;border:1px solid #b8c5d8;border-radius:50%;background:#fff;color:#53627a;font-weight:800;font-size:11px;cursor:pointer;padding:0;vertical-align:middle;margin-left:3px}.tower-stability-tool .info:hover{border-color:var(--accent);color:var(--accent);background:var(--soft)}.tower-stability-tool .notice{display:flex;gap:12px;align-items:flex-start;border:1px solid #cfdcf0;background:#f6f9ff;border-radius:14px;padding:13px 15px;color:#43516a;font-size:13px}.tower-stability-tool .standards-note{margin-bottom:20px}.tower-stability-tool .notice-icon{flex:0 0 24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#fff;font-weight:900}.tower-stability-tool .notice.caution{background:var(--warnbg);border-color:#f0d8aa;margin-bottom:16px}.tower-stability-tool .notice.caution .notice-icon{background:var(--warn)}.tower-stability-tool .section-copy{font-size:13px;color:var(--muted);margin:-8px 0 16px}.tower-stability-tool .advanced-box{border:1px solid var(--line);border-radius:12px;margin-top:14px;background:#fbfcfe}.tower-stability-tool .advanced-box summary{cursor:pointer;padding:12px 14px;font-size:13px;font-weight:800;color:#48566c}.tower-stability-tool .advanced-content{padding:0 14px 14px}.tower-stability-tool .field-note{font-size:12px;color:var(--muted);align-self:end;padding:8px 0}.tower-stability-tool .component-card{border:1px solid var(--line);border-radius:14px;padding:15px;margin-top:12px;background:#fcfdff}.tower-stability-tool .member-card{border-left:4px solid var(--member)}.tower-stability-tool .equipment-card{border-left:4px solid var(--load)}.tower-stability-tool .component-head{display:grid;grid-template-columns:30px 1fr auto;gap:8px;align-items:center}.tower-stability-tool .component-index{width:28px;height:28px;border-radius:9px;background:#eaf0fa;display:grid;place-items:center;font-weight:900;color:#52637c;font-size:12px}.tower-stability-tool .component-name{margin:0;padding:8px 10px;font-weight:800;border-color:transparent;background:transparent}.tower-stability-tool .component-name:focus{background:#fff;border-color:#6c98dd}.tower-stability-tool .component-actions{display:flex;gap:5px}.tower-stability-tool .icon-btn{width:31px;height:31px;border-radius:9px;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:16px}.tower-stability-tool .component-card>.grid{margin-top:12px}.tower-stability-tool .offset-row{display:grid;grid-template-columns:90px 1fr;gap:6px}.tower-stability-tool .member-points{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.tower-stability-tool .point-box{border:1px solid var(--line);border-radius:12px;padding:11px;background:#fff}.tower-stability-tool .point-box h4{margin:0 0 5px}.tower-stability-tool .xyz-readout{font-size:12px;color:var(--muted);margin-top:12px}.tower-stability-tool .xyz-readout strong{color:var(--ink)}.tower-stability-tool hr{border:0;border-top:1px solid var(--line);margin:15px 0}.tower-stability-tool .segmented{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}.tower-stability-tool .segmented button{border:0;background:#fff;padding:7px 11px;cursor:pointer;font-weight:800;color:var(--muted)}.tower-stability-tool .segmented button.active{background:var(--accent);color:#fff}.tower-stability-tool .segmented .info{border:0;border-left:1px solid var(--line);border-radius:0;width:31px;height:auto;margin:0}.tower-stability-tool .switch{display:flex;align-items:center;gap:8px;cursor:pointer}.tower-stability-tool .switch input{display:none}.tower-stability-tool .switch span{width:40px;height:23px;background:#bcc6d5;border-radius:99px;position:relative}.tower-stability-tool .switch span:after{content:"";position:absolute;left:3px;top:3px;width:17px;height:17px;border-radius:50%;background:#fff;transition:.18s}.tower-stability-tool .switch input:checked+span{background:var(--accent)}.tower-stability-tool .switch input:checked+span:after{left:20px}.tower-stability-tool .switch em{font-style:normal}.tower-stability-tool .disabled-panel{opacity:.46;pointer-events:none}.tower-stability-tool .disabled-panel.enabled{opacity:1;pointer-events:auto}.tower-stability-tool .sticky-results{position:sticky;top:16px}.tower-stability-tool .status{border-radius:14px;padding:14px 15px;margin-bottom:16px;display:flex;flex-direction:column;border:1px solid var(--line)}.tower-stability-tool .status strong{font-size:14px}.tower-stability-tool .status span{font-size:12px;margin-top:2px}.tower-stability-tool .status.neutral{background:#f6f8fb;color:#526079}.tower-stability-tool .status.good{background:var(--goodbg);border-color:#b9dfcb;color:var(--good)}.tower-stability-tool .status.warn{background:var(--warnbg);border-color:#edd49e;color:var(--warn)}.tower-stability-tool .status.bad{background:var(--badbg);border-color:#efbbbb;color:var(--bad)}.tower-stability-tool .warning-list{margin:-7px 0 14px;padding:11px 13px;border:1px solid #ecd49d;background:#fff9ec;border-radius:11px;color:#79531c;font-size:12px}.tower-stability-tool .warning-list strong{display:block;margin-bottom:4px}.tower-stability-tool .result-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tower-stability-tool .metric{border:1px solid var(--line);border-radius:12px;padding:11px 12px;min-width:0}.tower-stability-tool .metric span{display:block;color:var(--muted);font-size:11px;font-weight:700}.tower-stability-tool .metric strong{display:block;margin-top:3px;font-size:15px;overflow-wrap:anywhere}.tower-stability-tool .metric.wide{grid-column:1/-1}.tower-stability-tool .result-grid.compact .metric{background:#fbfcfe}.tower-stability-tool .visual-tabs{display:flex;gap:6px;margin-top:16px}.tower-stability-tool .visual-tabs button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:7px 11px;font-weight:800;cursor:pointer;color:var(--muted)}.tower-stability-tool .visual-tabs button.active{background:var(--soft);color:var(--accent);border-color:#b8ccef}.tower-stability-tool .viz-wrap,.tower-stability-tool .tilt-viz-wrap{margin-top:8px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:linear-gradient(180deg,#fbfdff,#f4f7fb)}.tower-stability-tool #towerViz,.tower-stability-tool #tiltViz{display:block;width:100%;height:auto}.tower-stability-tool .advanced-results{border-top:1px solid var(--line);margin-top:18px;padding-top:4px}.tower-stability-tool .advanced-results summary{cursor:pointer;font-weight:800;font-size:13px;padding:12px 0}.tower-stability-tool .math-panel{font-size:12px;color:#4c596f;overflow-x:auto}.tower-stability-tool .math-panel table,.tower-stability-tool .print-summary table{width:100%;border-collapse:collapse;margin:8px 0 14px}.tower-stability-tool .math-panel th,.tower-stability-tool .math-panel td,.tower-stability-tool .print-summary th,.tower-stability-tool .print-summary td{text-align:left;border-bottom:1px solid var(--line);padding:7px 5px}.tower-stability-tool .tilt-tool{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.tower-stability-tool .tilt-head{display:flex;justify-content:space-between;align-items:center}.tower-stability-tool .tilt-head h3{margin:0}.tower-stability-tool .tilt-head span{font-weight:900;color:var(--accent)}.tower-stability-tool input[type=range]{padding:0;border:0;box-shadow:none}.tower-stability-tool .references-card{margin-top:22px}.tower-stability-tool .references-card p,.tower-stability-tool .disclaimer p{color:#58657a;font-size:13px}.tower-stability-tool .disclaimer{margin:22px 0 36px;padding:20px 22px;border:1px solid #d9dee7;background:#f8f9fb;border-radius:16px}.tower-stability-tool .disclaimer h2{font-size:16px;margin-bottom:10px}.tower-stability-tool .disclaimer p:last-of-type{margin-bottom:10px}.tower-stability-tool .copyright{border-top:1px solid #dfe4eb;padding-top:12px;margin-top:14px;color:#7a8596;font-size:12px;text-align:center}.tower-stability-tool .print-only{display:none}.tower-stability-tool .print-report-head{display:flex;justify-content:space-between;gap:20px;align-items:start}.tower-stability-tool .toast{position:fixed;right:18px;bottom:18px;background:#162033;color:#fff;padding:11px 14px;border-radius:10px;z-index:9999;font-size:13px;box-shadow:0 12px 30px rgba(0,0,0,.2)}
.tower-stability-tool dialog{border:0;border-radius:18px;max-width:650px;width:calc(100% - 32px);padding:26px;box-shadow:0 30px 90px rgba(15,28,50,.28);color:var(--ink)}.tower-stability-tool dialog::backdrop{background:rgba(19,29,45,.58);backdrop-filter:blur(3px)}.tower-stability-tool dialog h2{font-size:22px;margin-bottom:12px}.tower-stability-tool dialog p{color:#536076}.tower-stability-tool .dialog-close{position:absolute;right:14px;top:12px;border:0;background:transparent;font-size:28px;color:#68758a;cursor:pointer}.tower-stability-tool .dialog-actions{display:flex;justify-content:flex-end;margin-top:20px}.tower-stability-tool .help-more{font-weight:800;margin-top:4px}.tower-stability-tool .help-more-body{margin-top:12px;padding:13px 15px;background:#f6f9ff;border:1px solid #d7e2f2;border-radius:12px}.tower-stability-tool .help-more-body p{margin-bottom:0}.tower-stability-tool .safety-dialog{max-width:760px;padding:34px}.tower-stability-tool .safety-dialog h2{font-size:28px}.tower-stability-tool .safety-dialog p{font-size:14px;line-height:1.6}.tower-stability-tool .modal-badge{display:inline-block;background:#fff1dc;color:#925b0c;border:1px solid #efd3a4;border-radius:999px;padding:5px 10px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}
@media(max-width:980px){.tower-stability-tool .app-header{align-items:flex-start;flex-direction:column}.tower-stability-tool .header-actions{justify-content:flex-start}.tower-stability-tool .workspace{grid-template-columns:1fr}.tower-stability-tool .sticky-results{position:static}}
@media(max-width:720px){.tower-stability-tool .member-points{grid-template-columns:1fr}.tower-stability-tool .grid.three{grid-template-columns:repeat(3,minmax(70px,1fr))}}
@media(max-width:620px){.tower-stability-tool .shell{padding:14px}.tower-stability-tool .app-header{padding:22px 16px}.tower-stability-tool .card{padding:17px;border-radius:15px}.tower-stability-tool .grid.two{grid-template-columns:1fr}.tower-stability-tool .result-grid{grid-template-columns:1fr}.tower-stability-tool .header-actions{width:100%}.tower-stability-tool .header-actions .btn,.tower-stability-tool .file-btn{flex:1;justify-content:center}.tower-stability-tool .section-head{align-items:flex-start}.tower-stability-tool .component-head{grid-template-columns:28px 1fr auto}.tower-stability-tool .offset-row{grid-template-columns:82px 1fr}.tower-stability-tool .metric.wide{grid-column:auto}.tower-stability-tool .grid.three{grid-template-columns:1fr}.tower-stability-tool .safety-dialog{padding:24px}}
@page{margin:.45in}
@media print{
 .tower-stability-tool{background:#fff;font-size:10pt}.tower-stability-tool .app-header{padding:0 0 12px;border-bottom:1px solid #bbb;margin-bottom:12px}.tower-stability-tool .app-header h1{font-size:24pt}.tower-stability-tool .shell{max-width:none;padding:0}.tower-stability-tool .no-print,.tower-stability-tool .help-trigger,.tower-stability-tool .visual-tabs,.tower-stability-tool .tilt-tool,.tower-stability-tool .standards-note,.tower-stability-tool .header-actions,.tower-stability-tool .component-actions,.tower-stability-tool .segmented,.tower-stability-tool .switch{display:none!important}.tower-stability-tool .workspace{display:block}.tower-stability-tool .input-column{display:none}.tower-stability-tool .results-column{width:100%}.tower-stability-tool .sticky-results{position:static}.tower-stability-tool .card{box-shadow:none;border:1px solid #bbb;border-radius:8px;padding:14px}.tower-stability-tool .project-card{display:none}.tower-stability-tool .print-only{display:block!important}.tower-stability-tool .print-summary{margin-bottom:14px;break-inside:auto}.tower-stability-tool .result-grid{grid-template-columns:repeat(4,1fr)}.tower-stability-tool .metric{padding:8px}.tower-stability-tool .viz-wrap{max-width:7.2in;margin:10px auto}.tower-stability-tool .references-card,.tower-stability-tool .disclaimer,.tower-stability-tool .advanced-results{break-inside:avoid}.tower-stability-tool .advanced-results{display:block}.tower-stability-tool .advanced-results>summary{display:none}.tower-stability-tool .advanced-results[open] .math-panel,.tower-stability-tool .advanced-results .math-panel{display:block!important}.tower-stability-tool .math-panel{font-size:8.5pt}.tower-stability-tool .math-panel table,.tower-stability-tool .print-summary table{font-size:8.5pt}.tower-stability-tool .references-card{margin-top:12px}.tower-stability-tool .disclaimer{margin:12px 0 0}.tower-stability-tool .copyright{font-size:8pt}.tower-stability-tool a{text-decoration:none;color:inherit}
}

/* The website shell stays on screen, but the calculator owns the printed report. */
@media print{
  .tower-stability-page>.fx-site-header,
  .tower-stability-page>.fx-site-footer,
  .tower-stability-page>.fx-cookie-banner,
  .tower-stability-page>.fx-cookie,
  .tower-stability-page>.fx-cookie-panel,
  .tower-stability-page>.fx-cookie-backdrop,
  .tower-stability-page>.site-header,
  .tower-stability-page>.site-footer,
  .tower-stability-page>.cookie-banner,
  .tower-stability-page>.cookie-panel{display:none!important}
  .tower-stability-page{background:#fff!important}
  .tower-stability-page>.tower-stability-tool{width:100%;min-height:0}
}
.tower-stability-tool .getting-started{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;background:linear-gradient(180deg,#fff,#f8fbff)}.tower-stability-tool .getting-started-copy{display:flex;align-items:center;gap:12px;color:#43516a;font-size:13px}.tower-stability-tool .guide-icon{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:var(--soft);color:var(--accent);font-weight:900;font-size:17px;flex:0 0 32px}.tower-stability-tool .checkbox-field{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:11px;padding:10px 12px;margin-top:0;background:#fbfcfe}.tower-stability-tool .checkbox-field>span{font-size:12px}.tower-stability-tool .checkbox-field input[type=checkbox]{width:auto;margin:0;transform:scale(1.15)}.tower-stability-tool .guide-dialog{max-width:900px;max-height:88vh;overflow:auto}.tower-stability-tool .guide-dialog h2{font-size:28px}.tower-stability-tool .quick-start{background:#eef4ff;border:1px solid #ccdaf2;border-radius:14px;padding:14px 16px;color:#31445f;margin:12px 0 18px}.tower-stability-tool .guide-body{columns:2;column-gap:30px}.tower-stability-tool .guide-body h3{break-after:avoid;margin:18px 0 6px}.tower-stability-tool .guide-body p{break-inside:avoid;font-size:13px;line-height:1.58;margin-bottom:10px}.tower-stability-tool .tilt-explainer{font-size:12px;color:var(--muted);margin:8px 0 10px;line-height:1.5}.tower-stability-tool .metric #rEqForceLabel{display:inline}.tower-stability-tool .metric #rEqForceLabel+.info{vertical-align:middle}.tower-stability-tool .member-card .grid.two{align-items:end}
@media(max-width:760px){.tower-stability-tool .getting-started{align-items:flex-start;flex-direction:column}.tower-stability-tool .guide-body{columns:1}.tower-stability-tool .guide-dialog{padding:22px}}
@media print{.tower-stability-tool .getting-started,.tower-stability-tool .guide-dialog{display:none!important}}

.tower-stability-tool /* Version 2.2 UI polish */
.header-tools{display:flex;flex-direction:column;align-items:flex-end;gap:10px;min-width:min(760px,56vw)}
.tower-stability-tool .header-tools .help-btn{align-self:flex-end;background:#eef4ff;color:#174f9e;border:1px solid #9bb8e5;box-shadow:0 1px 2px rgba(22,55,99,.06);padding:9px 14px}
.tower-stability-tool .header-tools .help-btn:hover{background:#dfeaff;border-color:#6f98d8;color:#123f7d}
.tower-stability-tool .header-tools .help-btn span{display:inline-grid;place-items:center;width:18px;height:18px;border:1px solid currentColor;border-radius:50%;margin-right:5px;font-size:11px;font-weight:900}
.tower-stability-tool .header-actions{align-items:center}
.tower-stability-tool .btn.action-btn{background:#f4f7fb;color:#17253a;border:1px solid #aebbd0;box-shadow:0 1px 2px rgba(16,31,53,.05)}
.tower-stability-tool .btn.action-btn:hover{background:#e6edf7;border-color:#7d91ae;color:#0e1b2d}
.tower-stability-tool .btn.primary-action{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 2px 5px rgba(33,95,197,.18)}
.tower-stability-tool .btn.primary-action:hover{background:var(--accent2);border-color:var(--accent2)}
.tower-stability-tool .banner-guide-btn{background:#fff;color:#17253a;border:1px solid #aebbd0}
.tower-stability-tool .banner-guide-btn:hover{background:#eaf0f8;border-color:#7d91ae}
.tower-stability-tool .dismissible-banner{position:relative}
.tower-stability-tool .banner-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.tower-stability-tool .banner-copy{min-width:0;flex:1}
.tower-stability-tool .banner-dismiss{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;padding:0;border:1px solid #b5c2d5;border-radius:9px;background:#fff;color:#46566e;font-size:20px;line-height:1;cursor:pointer;transition:.15s}
.tower-stability-tool .banner-dismiss:hover{background:#e7edf6;border-color:#8296b3;color:#13233a}
.tower-stability-tool .dismissible-banner.is-dismissed{display:none!important}
.tower-stability-tool .standards-note{align-items:center}
.tower-stability-tool .standards-note .banner-dismiss{margin-left:auto}
@media(max-width:980px){.tower-stability-tool .header-tools{width:100%;min-width:0;align-items:stretch}.tower-stability-tool .header-tools .help-btn{align-self:flex-end}.tower-stability-tool .header-actions{width:100%;justify-content:flex-start}}
@media(max-width:620px){.tower-stability-tool .header-tools .help-btn{align-self:stretch}.tower-stability-tool .header-actions .action-btn,.tower-stability-tool .header-actions .primary-action,.tower-stability-tool .header-actions .file-btn{flex:1 1 calc(50% - 4px);justify-content:center}.tower-stability-tool .getting-started .banner-actions{width:100%}.tower-stability-tool .banner-guide-btn{flex:1}.tower-stability-tool .standards-note{padding-right:10px}}

.tower-stability-tool /* Version 2.3 live visualization expansion / pop-out */
.viz-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px}.tower-stability-tool .viz-toolbar .visual-tabs{margin-top:0}.tower-stability-tool .viz-actions{display:flex;gap:7px;align-items:center}.tower-stability-tool .btn.viz-action{padding:7px 10px;background:#f4f7fb;color:#24344d;border:1px solid #aebbd0;font-size:11px;font-weight:850;box-shadow:0 1px 2px rgba(16,31,53,.04)}.tower-stability-tool .btn.viz-action:hover{background:#e6edf7;border-color:#7d91ae;color:#0e1b2d}.tower-stability-tool .tilt-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px}.tower-stability-tool .tilt-head-actions #tiltReadout{margin-right:3px}.tower-stability-tool .viz-expand-dialog{width:min(1180px,calc(100% - 28px));max-width:1180px;height:min(88vh,900px);padding:22px;overflow:hidden}.tower-stability-tool .viz-expand-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-right:35px}.tower-stability-tool .viz-expand-head h2{margin:2px 0 0}.tower-stability-tool .viz-expand-project{margin:3px 0 0;color:#6a778b;font-size:12px}.tower-stability-tool .viz-live-badge{flex:0 0 auto;white-space:nowrap;font-size:10px;font-weight:900;letter-spacing:.04em;color:#215fc5;background:#eef4ff;border:1px solid #c8d8ef;border-radius:999px;padding:7px 10px}.tower-stability-tool .viz-expand-host{height:calc(100% - 126px);min-height:300px;margin-top:14px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(180deg,#fbfdff,#f4f7fb);overflow:hidden;display:flex;align-items:center;justify-content:center}.tower-stability-tool .viz-expand-host svg{display:block;width:100%;height:100%;max-width:100%;max-height:100%}.tower-stability-tool .viz-expand-note{font-size:11px;color:#778398;text-align:center;margin:9px 0 0}.tower-stability-tool .detached-viz-svg{display:block;width:100%;height:100%}
@media(max-width:720px){.tower-stability-tool .viz-toolbar{align-items:stretch;flex-direction:column}.tower-stability-tool .viz-actions{justify-content:flex-end}.tower-stability-tool .tilt-head{align-items:flex-start;gap:10px;flex-direction:column}.tower-stability-tool .tilt-head-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}.tower-stability-tool .viz-expand-dialog{height:min(86vh,760px);padding:16px}.tower-stability-tool .viz-expand-head{flex-direction:column;gap:7px}.tower-stability-tool .viz-live-badge{white-space:normal}.tower-stability-tool .viz-expand-host{height:calc(100% - 160px);min-height:240px}}
@media print{.tower-stability-tool .viz-toolbar .viz-actions,.tower-stability-tool .tilt-head-actions .viz-action,.tower-stability-tool .viz-expand-dialog{display:none!important}}


.tower-stability-tool /* Version 2.5 overturning stability rating */
.status.rating-green{background:var(--goodbg);border-color:#9fd3b8;color:var(--good);border-left:6px solid var(--good)}
.tower-stability-tool .status.rating-yellow{background:var(--yellow-bg);border-color:#e8d77b;color:var(--yellow);border-left:6px solid #c2a400}
.tower-stability-tool .status.rating-orange{background:var(--orange-bg);border-color:#efbd91;color:var(--orange);border-left:6px solid var(--orange)}
.tower-stability-tool .status.rating-red{background:var(--badbg);border-color:#e7a6a6;color:var(--bad);border-left:6px solid var(--bad)}
.tower-stability-tool .status.rating-neutral{background:#f4f6f9;border-color:#cfd6e0;color:#526079;border-left:6px solid #8996a8}
.tower-stability-tool .status.rating-green strong,.tower-stability-tool .status.rating-yellow strong,.tower-stability-tool .status.rating-orange strong,.tower-stability-tool .status.rating-red strong,.tower-stability-tool .status.rating-neutral strong{font-size:16px;letter-spacing:.01em}
.tower-stability-tool .stability-benchmark-note{margin:10px 2px 0;font-size:11px;line-height:1.45;color:var(--muted)}
@media print{.tower-stability-tool .stability-benchmark-note{font-size:8.5pt}.tower-stability-tool .status{break-inside:avoid}}

.tower-stability-tool /* Version 2.6 inherent stability advisory and fix round/square footprint hide */
.inherent-advisory-note{margin:-6px 0 14px}.tower-stability-tool .status[hidden]{display:none!important}
.tower-stability-tool [hidden]{display:none!important}
@media print{
 .tower-stability-tool .print-project-meta{
   display:flex;
   gap:36px;
   margin-top:14px;
   margin-bottom:18px;
   font-size:11px;
 }
 .tower-stability-tool .print-project-meta>div{
   min-width:120px;
 }
 .tower-stability-tool .print-page-footer{
   position:fixed;
   left:0;
   right:0;
   bottom:0;
   height:24px;
   display:flex;
   justify-content:space-between;
   align-items:center;
   border-top:1px solid #cfd7e3;
   background:#fff;
   font-size:8.5pt;
   color:#526078;
   padding:5px 22px 0;
   z-index:9999;
 }
 .tower-stability-tool{
   padding-bottom:34px;
 }
}

/* ============================================================
   PORTABLE SITE-THEME BRIDGE

   A host site may define the --site-tool-* variables below. The
   FX:Scape shell already exposes --fx-* variables, so it receives
   the dark treatment automatically. A site without either set of
   variables receives the calculator's original light treatment.
   ============================================================ */
.tower-stability-tool{
  --bg:var(--site-tool-bg,var(--fx-bg,#f4f7fb));
  --card:var(--site-tool-surface,var(--fx-surface,#fff));
  --raised:var(--site-tool-surface-raised,var(--fx-surface-2,#fbfcfe));
  --control:var(--site-tool-control,var(--fx-bg-deep,#fff));
  --ink:var(--site-tool-text,var(--fx-text,#162033));
  --muted:var(--site-tool-muted,var(--fx-muted,#657187));
  --line:var(--site-tool-line,var(--fx-line,#dfe5ee));
  --line-strong:var(--site-tool-line-strong,var(--fx-line-strong,#ccd5e2));
  --accent:var(--site-tool-accent,var(--fx-primary,#215fc5));
  --accent2:var(--site-tool-accent-hover,var(--fx-primary-2,#164b9e));
  --accent-ink:var(--site-tool-accent-ink,var(--fx-primary-ink,#fff));
  --soft:var(--site-tool-accent-soft,color-mix(in srgb,var(--accent) 13%,var(--card)));
  --shadow:var(--site-tool-shadow,var(--fx-shadow,0 12px 34px rgba(23,41,75,.08)));
  --radius:var(--site-tool-radius,var(--fx-radius,18px));
  --member:var(--site-tool-member,color-mix(in srgb,var(--accent) 42%,var(--muted)));
  --load:var(--site-tool-load,color-mix(in srgb,#b86b96 62%,var(--ink)));
  --goodbg:color-mix(in srgb,var(--good) 15%,var(--card));
  --warnbg:color-mix(in srgb,var(--warn) 15%,var(--card));
  --orange-bg:color-mix(in srgb,var(--orange) 15%,var(--card));
  --yellow-bg:color-mix(in srgb,var(--yellow) 15%,var(--card));
  --badbg:color-mix(in srgb,var(--bad) 15%,var(--card));
  min-height:100vh;
  background:var(--bg);
  color:var(--ink);
  color-scheme:inherit;
  font-family:var(--site-tool-font,var(--fx-font,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif));
  font-size:16px;
}
.tower-stability-tool .app-header{width:min(1480px,100%);margin-inline:auto;background:transparent;border-bottom:1px solid var(--line);padding-block:clamp(34px,5vw,64px)}
.tower-stability-tool h1{font-size:clamp(2rem,4vw,3.15rem)}
.tower-stability-tool h2{font-size:1.35rem}
.tower-stability-tool h3{font-size:1.05rem}
.tower-stability-tool h4{font-size:.9rem}
.tower-stability-tool .subtitle{font-size:1rem}
.tower-stability-tool label{color:var(--ink);font-size:.875rem}
.tower-stability-tool input,.tower-stability-tool select,.tower-stability-tool textarea{border-color:var(--line-strong);background:var(--control);color:var(--ink);font-size:.94rem}
.tower-stability-tool input::placeholder,.tower-stability-tool textarea::placeholder{color:var(--muted);opacity:.78}
.tower-stability-tool input:focus,.tower-stability-tool select:focus,.tower-stability-tool textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}
.tower-stability-tool .btn{color:var(--accent-ink)}
.tower-stability-tool .btn.ghost,.tower-stability-tool .btn.action-btn,.tower-stability-tool .btn.viz-action,.tower-stability-tool .banner-guide-btn{background:var(--raised);border-color:var(--line-strong);color:var(--ink)}
.tower-stability-tool .btn.ghost:hover,.tower-stability-tool .btn.action-btn:hover,.tower-stability-tool .btn.viz-action:hover,.tower-stability-tool .banner-guide-btn:hover{background:color-mix(in srgb,var(--accent) 10%,var(--raised));border-color:var(--accent);color:var(--ink)}
.tower-stability-tool .btn.primary-action{color:var(--accent-ink)}
.tower-stability-tool .section-copy,.tower-stability-tool .field-note,.tower-stability-tool .xyz-readout,.tower-stability-tool .math-panel,.tower-stability-tool .references-card p,.tower-stability-tool .disclaimer p{color:var(--muted)}
.tower-stability-tool .section-copy,.tower-stability-tool .references-card p,.tower-stability-tool .disclaimer p{font-size:.9rem;line-height:1.6}
.tower-stability-tool .field-note,.tower-stability-tool .xyz-readout{font-size:.82rem}
.tower-stability-tool .card{background:var(--card);border-color:var(--line);box-shadow:0 14px 38px rgba(0,0,0,.16)}
.tower-stability-tool .advanced-box,.tower-stability-tool .component-card,.tower-stability-tool .checkbox-field,.tower-stability-tool .result-grid.compact .metric,.tower-stability-tool .help-more-body,.tower-stability-tool .disclaimer{background:var(--raised);border-color:var(--line)}
.tower-stability-tool .point-box,.tower-stability-tool .segmented,.tower-stability-tool .segmented button,.tower-stability-tool .icon-btn,.tower-stability-tool .info,.tower-stability-tool .banner-dismiss,.tower-stability-tool .visual-tabs button{background:var(--control);border-color:var(--line-strong);color:var(--muted)}
.tower-stability-tool .component-index,.tower-stability-tool .guide-icon{background:var(--soft);color:var(--accent)}
.tower-stability-tool .component-name{color:var(--ink)}
.tower-stability-tool .component-name:focus{background:var(--control);border-color:var(--accent)}
.tower-stability-tool .advanced-box summary{color:var(--ink)}
.tower-stability-tool .notice,.tower-stability-tool .getting-started{background:linear-gradient(180deg,var(--card),var(--raised));border-color:var(--line);color:var(--muted)}
.tower-stability-tool .quick-start{background:var(--soft);border-color:color-mix(in srgb,var(--accent) 35%,var(--line));color:var(--ink)}
.tower-stability-tool .notice.caution{background:var(--warnbg);border-color:color-mix(in srgb,var(--warn) 45%,var(--line));color:color-mix(in srgb,var(--warn) 70%,var(--ink))}
.tower-stability-tool .segmented button.active,.tower-stability-tool .visual-tabs button.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.tower-stability-tool .switch span{background:var(--line-strong)}
.tower-stability-tool .switch span::after{background:var(--card)}
.tower-stability-tool .status.neutral{background:var(--raised);color:var(--muted)}
.tower-stability-tool .status.rating-green{color:color-mix(in srgb,var(--good) 68%,var(--ink));border-color:color-mix(in srgb,var(--good) 55%,var(--line));border-left-color:currentColor}
.tower-stability-tool .status.rating-yellow{color:color-mix(in srgb,var(--yellow) 68%,var(--ink));border-color:color-mix(in srgb,var(--yellow) 55%,var(--line));border-left-color:currentColor}
.tower-stability-tool .status.rating-orange{color:color-mix(in srgb,var(--orange) 68%,var(--ink));border-color:color-mix(in srgb,var(--orange) 55%,var(--line));border-left-color:currentColor}
.tower-stability-tool .status.rating-red{color:color-mix(in srgb,var(--bad) 68%,var(--ink));border-color:color-mix(in srgb,var(--bad) 55%,var(--line));border-left-color:currentColor}
.tower-stability-tool .warning-list{background:var(--warnbg);border-color:color-mix(in srgb,var(--warn) 45%,var(--line));color:color-mix(in srgb,var(--warn) 70%,var(--ink))}
.tower-stability-tool .metric{background:color-mix(in srgb,var(--raised) 66%,var(--card));border-color:var(--line)}
.tower-stability-tool .metric span{font-size:.78rem;color:var(--muted)}
.tower-stability-tool .metric strong{font-size:1rem;color:var(--ink)}
.tower-stability-tool .viz-wrap,.tower-stability-tool .tilt-viz-wrap,.tower-stability-tool .viz-expand-host{background:linear-gradient(180deg,var(--raised),var(--card));border-color:var(--line)}
.tower-stability-tool .viz-wrap svg text,.tower-stability-tool .tilt-viz-wrap svg text,.tower-stability-tool .viz-expand-host svg text{paint-order:stroke;stroke:var(--card);stroke-width:2px;stroke-linejoin:round}
.tower-stability-tool dialog{background:var(--card);border:1px solid var(--line);color:var(--ink)}
.tower-stability-tool dialog p,.tower-stability-tool .viz-expand-project,.tower-stability-tool .viz-expand-note{color:var(--muted)}
.tower-stability-tool .dialog-close{color:var(--muted)}
.tower-stability-tool .viz-live-badge{background:var(--soft);border-color:color-mix(in srgb,var(--accent) 35%,var(--line));color:var(--accent)}
.tower-stability-tool .toast{background:var(--raised);border:1px solid var(--line-strong);color:var(--ink)}
.tower-stability-tool .copyright{border-color:var(--line);color:var(--muted)}
.tower-stability-page>.fx-site-footer,.tower-stability-page>.site-footer{margin-top:0}

@media(max-width:620px){
  .tower-stability-tool .app-header{padding-block:28px}
  .tower-stability-tool{font-size:15px}
}

@media print{
  .tower-stability-tool{--bg:#fff;--card:#fff;--raised:#f8f9fb;--control:#fff;--ink:#162033;--muted:#58657a;--line:#d9dee7;--line-strong:#aeb8c6;--accent:#215fc5;--accent-ink:#fff;color-scheme:light}
}

@media print{.skip-link,.skip-to-content,a[href="#content"],a[href="#main"],a[href="#main-content"],body>footer,footer.site-footer,footer[role="contentinfo"]{display:none!important}}