*{box-sizing:border-box}body{margin:0;font-family:Montserrat,Arial,sans-serif;background:#f5f5f5;color:#2b2b2b;min-height:100vh}.appbar{background:#448727;height:56px;display:flex;align-items:center;padding:0 16px;position:fixed;inset:0 0 auto;z-index:100;box-shadow:0 2px 4px #0002}.appbar-menu{background:none;border:0;color:#fff;font-size:20px;cursor:pointer;padding:8px;margin-right:12px}.appbar-title{color:#fff;font-size:18px;font-weight:600;flex:1}.appbar-user{color:#fff;font-size:13px;display:flex;align-items:center;gap:8px;position:relative}.appbar-avatar{width:32px;height:32px;border-radius:50%;background:#ffffff2b;display:grid;place-items:center;font-weight:700;cursor:pointer}.user-menu{position:absolute;top:44px;right:0;background:#fff;border-radius:6px;box-shadow:0 4px 16px #0003;min-width:190px;display:none;z-index:350;color:#333;overflow:hidden}.user-menu.open{display:block}.user-menu-name{padding:12px 16px 3px;font-weight:600}.user-menu-role{padding:0 16px 10px;font-size:11px;color:#767676}.user-menu-item{display:flex;gap:10px;padding:10px 16px;color:#555;text-decoration:none;cursor:pointer;border-top:1px solid #eee}.drawer-overlay{position:fixed;inset:0;background:#0005;z-index:200;display:none}.drawer-overlay.open{display:block}.drawer{position:fixed;top:0;left:-280px;width:280px;height:100vh;background:#fff;z-index:300;transition:left .22s;display:flex;flex-direction:column;box-shadow:2px 0 8px #0002}.drawer.open{left:0}.drawer-header{background:#448727;height:56px;display:flex;align-items:center;padding:0 16px}.drawer-header h2{color:#fff;font-size:16px}.drawer-nav{flex:1;padding:8px 0;overflow-y:auto}.drawer-link{display:flex;align-items:center;gap:12px;padding:12px 20px;color:#555;text-decoration:none;font-size:14px}.drawer-link:hover{background:#f0f0f0}.drawer-link.active{background:#47a01f14;color:#448727;font-weight:600}.drawer-link i{width:24px;text-align:center}.drawer-divider{border-top:1px solid #e8e8e8;margin:8px 16px}.drawer-group-title{display:flex;align-items:center;gap:12px;padding:10px 20px 4px;font-size:11px;font-weight:700;color:#767676;text-transform:uppercase;letter-spacing:.4px}.drawer-group-title i{width:24px;text-align:center;font-size:13px}.page{padding:78px 24px 36px;max-width:1500px;margin:auto}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}.page-heading h1{font-size:25px;margin:0 0 5px;color:#222}.page-heading p{margin:0;color:#666;font-size:13px}.actions{display:flex;gap:8px;flex-wrap:wrap}.button{border:1px solid #ccc;background:#fff;color:#444;border-radius:5px;padding:9px 14px;font:600 12px Montserrat;cursor:pointer}.button:hover{border-color:#448727;color:#36711e}.button.primary{background:#448727;border-color:#448727;color:#fff}.button.danger{color:#b3261e;border-color:#e0b4b0}.button.small{padding:6px 9px;font-size:11px}.advisory{background:#fff8e1;border:1px solid #efd78b;border-radius:7px;padding:11px 14px;color:#6c570f;font-size:12px;margin-bottom:15px;display:flex;gap:9px;align-items:flex-start}.tabs{display:flex;background:#fff;border:1px solid #e1e1e1;border-radius:7px 7px 0 0;overflow:hidden;width:max-content;max-width:100%}.tab{border:0;background:#fff;padding:13px 20px;font:600 13px Montserrat;color:#666;cursor:pointer;border-bottom:3px solid transparent}.tab[aria-selected=true]{color:#448727;border-bottom-color:#448727}.panel{display:none}.panel.active{display:block}.card{background:#fff;border:1px solid #e5e5e5;border-radius:7px;box-shadow:0 1px 4px #0000000d;margin-top:14px}.filters{padding:15px;display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:11px}.field label{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.35px;color:#777;margin-bottom:5px}.field input,.field select,.field textarea{width:100%;border:1px solid #d6d6d6;border-radius:5px;background:#fff;padding:9px 10px;font:13px Montserrat;color:#333}.field textarea{min-height:72px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:#448727;box-shadow:0 0 0 3px #4487271a}.table-head{padding:12px 16px;border-top:1px solid #eee;display:flex;justify-content:space-between;align-items:center;color:#666;font-size:12px}.table-wrap{overflow:auto;border-top:1px solid #eee}table{border-collapse:collapse;width:100%;min-width:1080px}th{text-align:left;background:#fafafa;color:#707070;font-size:10px;text-transform:uppercase;letter-spacing:.4px;padding:10px 12px;border-bottom:1px solid #e6e6e6;white-space:nowrap}.sort-button{border:0;background:none;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;padding:0;cursor:pointer}.sort-button i{margin-left:4px;color:#448727}td{padding:12px;border-bottom:1px solid #eee;font-size:12px;vertical-align:top}tr:last-child td{border-bottom:0}tr.retired{opacity:.55}.size-title{font-weight:700;color:#222;font-size:13px}.subtle{color:#7a7a7a;font-size:10px;margin-top:3px}.line-pill,.option-pill{display:inline-block;border-radius:12px;padding:4px 8px;font-size:10px;font-weight:700;white-space:nowrap}.line-pill{background:#eaf3ff;color:#245e9d}.option-pill{background:#f0f0f0;color:#555;margin-left:5px}.fit{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;white-space:nowrap}.fit-dot{width:9px;height:9px;border-radius:50%}.fit.green{color:#23751b}.fit.green .fit-dot{background:#3e9c34}.fit.yellow{color:#8a6700}.fit.yellow .fit-dot{background:#e6ab16}.fit.red{color:#b3261e}.fit.red .fit-dot{background:#d64035}.fit.gray{color:#666}.fit.gray .fit-dot{background:#999}.empty{padding:42px;text-align:center;color:#777}.edit-bar{display:none;align-items:center;justify-content:space-between;gap:12px;background:#eef7e9;border:1px solid #cde3c2;padding:10px 13px;border-radius:6px;margin:12px 0}.edit-bar.open{display:flex}.calculator-grid{display:grid;grid-template-columns:minmax(300px,460px) minmax(300px,1fr);gap:18px;padding:20px}.calc-fields{display:grid;grid-template-columns:1fr 1fr;gap:13px}.calc-fields .wide{grid-column:1/-1}.check{display:flex;align-items:center;gap:8px;font-size:12px;color:#555}.check input{width:auto}.result-card{background:#f8faf7;border:1px solid #dce8d7;border-radius:7px;padding:22px;min-height:245px;display:flex;flex-direction:column;justify-content:center}.od-values{display:grid;gap:4px;min-width:110px}.od-value{display:flex;align-items:center;justify-content:space-between;gap:9px;border-left:3px solid #999;border-radius:3px;padding:3px 6px;background:#f3f3f3}.od-value small{font-size:8px;text-transform:uppercase;letter-spacing:.35px}.od-value strong{font-size:11px}.od-value.green,.calc-diameter.green{color:#23751b;border-color:#3e9c34;background:#eef8ec}.od-value.yellow,.calc-diameter.yellow{color:#7d5d00;border-color:#e6ab16;background:#fff8df}.od-value.red,.calc-diameter.red{color:#a5231c;border-color:#d64035;background:#fff0ef}.od-value.gray,.calc-diameter.gray{color:#666;border-color:#999;background:#f3f3f3}.calc-diameters{display:grid;grid-template-columns:repeat(3,minmax(100px,1fr));gap:8px;margin:10px 0 12px}.calc-diameter{border:1px solid #999;border-top-width:4px;border-radius:6px;padding:10px}.calc-diameter[hidden]{display:none}.calc-diameter span{display:block;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px}.calc-diameter strong{font-size:23px;white-space:nowrap}.result-range{font-size:14px;color:#555;margin-bottom:16px}.result-message{font-size:12px;line-height:1.6;color:#555;margin-top:10px}.details{margin-top:14px;font-size:11px;color:#777}.details summary{cursor:pointer;font-weight:600}.modal-backdrop{position:fixed;inset:0;background:#0007;z-index:500;display:none;align-items:center;justify-content:center;padding:20px}.modal-backdrop.open{display:flex}.modal{background:#fff;border-radius:8px;width:620px;max-width:100%;max-height:90vh;overflow:auto;box-shadow:0 10px 35px #0005}.modal.wide{width:850px}.modal-head{padding:16px 19px;border-bottom:1px solid #eee;display:flex;justify-content:space-between;align-items:center}.modal-head h2{font-size:16px;margin:0}.icon-button{border:0;background:none;font-size:18px;color:#777;cursor:pointer}.modal-body{padding:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-grid .wide{grid-column:1/-1}.modal-foot{padding:13px 18px;border-top:1px solid #eee;display:flex;justify-content:flex-end;gap:8px}.history-list{display:grid;gap:10px}.history-event{border:1px solid #e5e5e5;border-radius:6px;padding:12px}.history-title{font-size:12px;font-weight:700}.history-meta{font-size:10px;color:#777;margin:4px 0 8px}.history-change{font:11px/1.5 ui-monospace,monospace;white-space:pre-wrap;background:#f7f7f7;padding:8px;border-radius:4px;overflow:auto}.profile-list{display:grid;gap:8px}.profile-row{border:1px solid #e5e5e5;border-radius:5px;padding:10px;display:flex;align-items:center;justify-content:space-between;gap:12px}.profile-row strong{font-size:12px}.profile-row span{font-size:10px;color:#777}.toast-local{position:fixed;right:20px;bottom:20px;z-index:800;background:#333;color:#fff;border-radius:5px;padding:11px 15px;font-size:12px;display:none}.toast-local.show{display:block}.toast-local.error{background:#a52b24}.mobile-label{display:none}@media(max-width:1100px){.filters{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.page{padding:72px 12px 24px}.page-heading{flex-direction:column}.filters{grid-template-columns:1fr 1fr}.calculator-grid{grid-template-columns:1fr;padding:14px}.form-grid,.calc-fields{grid-template-columns:1fr}.form-grid .wide,.calc-fields .wide{grid-column:auto}.calc-diameter strong{font-size:19px}.tabs{width:100%}.tab{flex:1;padding:12px 8px}.actions{width:100%}.actions .button{flex:1}}
.cap-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 18px 0}
.cap-title{margin:0 0 4px;font-size:17px;color:#222}
.cap-subtitle{margin:0;font-size:12px;color:#767676;max-width:640px;line-height:1.55}
.cap-source{text-align:right;font-size:10px;color:#767676;white-space:nowrap}
.cap-source-batch{font:10px/1.5 ui-monospace,monospace;color:#8a8a8a;margin-top:2px}
.cap-legend{display:flex;flex-wrap:wrap;gap:8px;padding:14px 18px 0}
.cap-key{display:inline-flex;align-items:center;gap:7px;border:1px solid #e5e5e5;border-radius:12px;padding:5px 11px;font-size:11px;font-weight:600;color:#555;background:#fff}
.cap-key:before{content:"";width:9px;height:9px;border-radius:50%;background:#999}
.cap-key-capable:before{background:#3e9c34}
.cap-key-attention:before{background:#e6ab16}
.cap-key-none:before{background:#d64035}
.cap-key-unknown:before{background:#c4c4c4}
.cap-table-wrap{overflow-x:auto;border-top:1px solid #eee;margin-top:14px}
.cap-table{min-width:940px}
.cap-table th.cap-th-width{text-align:left;white-space:nowrap}
.cap-table th.cap-th-family,.cap-table th.cap-th-band{white-space:nowrap}
.cap-table tbody th{background:#fff;text-transform:none;letter-spacing:normal;font-size:12px;color:#333;vertical-align:top;white-space:nowrap;border-bottom:1px solid #eee}
.cap-family-cell{border-right:1px solid #eee;background:#fbfbfb!important;min-width:120px}
.cap-family-label{font-size:13px;font-weight:700;color:#222}
.cap-family-note{font-size:10px;color:#767676;margin-top:5px;white-space:normal;max-width:140px;line-height:1.5}
.cap-band-cell{font-weight:600;color:#444;min-width:92px}
.cap-family-start td,.cap-family-start th{border-top:1px solid #e0e0e0}
.cap-marker{font-size:9px;color:#448727;margin-left:3px;font-weight:700}
.cap-cell{vertical-align:top;min-width:180px}
.cap-cell.cap-attention{background:#fffdf4}
.cap-cell.cap-none{background:#fdf6f5}
.cap-field{display:flex;gap:7px;margin-bottom:4px;line-height:1.5}
.cap-field:last-child{margin-bottom:0}
.cap-field-label{flex:0 0 34px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.35px;color:#8a8a8a;padding-top:2px}
.cap-field-value{font-size:12px;color:#333;white-space:pre-line}
.cap-field-skin .cap-field-value{font-weight:700;color:#222}
.cap-field-comments .cap-field-value{font-size:11px;color:#6b6b6b}
.cap-attention .cap-field-comments .cap-field-value{color:#7d5d00}
.cap-chip{display:inline-block;border-radius:12px;padding:4px 10px;font-size:10px;font-weight:700;white-space:nowrap}
.cap-chip-none{background:#fbe4e2;color:#a5231c}
.cap-chip-unknown{background:#f1f1f1;color:#767676}
.cap-note{font-size:10px;color:#767676;margin-top:6px;white-space:normal;line-height:1.5}
.cap-footnotes{padding:16px 18px 20px;border-top:1px solid #eee;margin-top:2px}
.cap-footnotes-title{margin:0 0 9px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#767676}
.cap-footnote-list{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.cap-footnote-list li{display:flex;gap:9px;font-size:11px;color:#5c5c5c;line-height:1.55}
.cap-marker-legend{flex:0 0 34px;color:#448727;font-weight:700}
@media(max-width:760px){.cap-intro{flex-direction:column}.cap-source{text-align:left}}
.cap-filters{grid-template-columns:repeat(5,minmax(130px,1fr));padding:16px 18px 4px}
@media(max-width:1100px){.cap-filters{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.cap-filters{grid-template-columns:1fr}}
/* ===== Fuse parts disclosure =====
   .cap-parts-banner and .cap-parts-panel both set display, so they are subject to the same
   trap as .advisory/.actions below: every rule here must stay ABOVE the [hidden] override,
   which closes the file. */
.cap-parts{display:flex;flex-direction:column;gap:3px;margin-top:7px;white-space:normal}
.cap-parts-toggle{align-self:flex-start;border:1px solid #cfe3c5;background:#f2f8ef;color:#36711e;border-radius:11px;padding:3px 10px;font:700 10px Montserrat;cursor:pointer}
.cap-parts-toggle:hover{border-color:#448727;background:#e8f4e2}
/* Per-cell count. Same visual language as the row chip so it reads as the same affordance,
   one step smaller because it sits inside a cell that already carries skin/line/notes. */
.cap-parts-cell{display:inline-block;margin-top:6px;border:1px solid #cfe3c5;background:#f2f8ef;color:#36711e;border-radius:11px;padding:2px 9px;font:700 10px Montserrat;cursor:pointer;white-space:nowrap}
.cap-parts-cell:hover{border-color:#448727;background:#e8f4e2}
/* Amber, NOT green: parts shipped at a size the workbook says we have no capability for.
   It must never read as a capability claim — it is a flag that the two sources disagree. */
.cap-parts-cell-attention{border-color:#efd78b;background:#fff2df;color:#8a6700}
.cap-parts-cell-attention:hover{border-color:#d8a93a;background:#ffe9c9}
.cap-parts-cell-review{border-color:#c9cdd1;background:#f3f4f5;color:#555}
.cap-parts-cell-review:hover{border-color:#8c939a;background:#e8eaec}
.cap-parts-empty{font-size:10px;color:#8a8a8a;font-weight:600}
.cap-parts-scope{font-size:9px;line-height:1.45;color:#8a8a8a;font-weight:400;max-width:190px}
.cap-parts-banner{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin:12px 18px 0;padding:9px 12px;border:1px solid #e2e2e2;border-radius:6px;background:#fafafa;color:#666;font-size:11px;line-height:1.55}
.cap-parts-banner.warn{background:#fff8e1;border-color:#efd78b;color:#6c570f}
/* Only rendered when the count is non-zero. Weighted so it reads as a caveat on the sync line
   rather than as more timestamp prose. */
.cap-parts-widthless{font-weight:700;color:#8a6700}
.cap-parts-banner strong{font-size:11px}
.cap-parts-panel{display:block;border-top:1px solid #eee;margin-top:8px;padding:16px 18px 20px}
/* As a modal body the panel drops its inline-panel chrome. This NEUTRALISES rather than removes
   the class, because the descendant rules below still key off .cap-parts-panel. */
.modal-body.cap-parts-panel{border-top:0;margin-top:0;padding:18px}
/* Wider than .wide — the parts table is eight columns now. It still scrolls inside its own
   overflow-x wrapper on a narrow viewport, so this is headroom, not a floor. */
.modal.xwide{width:1180px}
.cap-parts-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.cap-parts-title{margin:0;font-size:14px;color:#222}
.cap-parts-panel .cap-parts-scope{max-width:none;font-size:11px;color:#767676;margin:5px 0 12px}
.cap-parts-group{margin:16px 0 6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#767676}
.cap-parts-table-wrap{overflow-x:auto;border:1px solid #eee;border-radius:6px}
.cap-parts-table{min-width:820px;margin:0}
.cap-parts-table th{background:#fafafa;font-size:9px}
.cap-parts-table td{font-size:11px;line-height:1.5;vertical-align:top}
.cap-parts-code{white-space:nowrap;font-weight:700}
.cap-parts-link{color:#36711e;text-decoration:none;border-bottom:1px solid #cfe3c5}
.cap-parts-link:hover{border-bottom-color:#448727}
.cap-parts-desc{min-width:220px;color:#444}
.cap-parts-gauge,.cap-parts-width,.cap-parts-shipped{white-space:nowrap;color:#555}
.cap-parts-skin-value{font-weight:700;color:#333}
.cap-parts-marker{display:inline-block;margin-left:5px;border-radius:9px;padding:1px 7px;font-size:9px;font-weight:700;white-space:nowrap}
.cap-parts-assumed{background:#f1f1f1;color:#767676}
.cap-parts-conflict{background:#fff2df;color:#8a6700}
.cap-parts-route{white-space:nowrap;color:#555}
.cap-parts-customer{color:#444}
.cap-parts-more{margin-top:3px;font-size:10px;color:#767676}
.cap-parts-more summary{cursor:pointer;font-weight:600}
.cap-parts-muted{color:#8a8a8a}
@media(max-width:760px){.cap-parts-banner{margin:12px 14px 0}.cap-parts-panel{padding:14px}}

/* ===== Quoted-lines tier =====
   The second, weaker evidence tier. Everything here is shaped to stop a reader taking it for
   the first: a heavy rule and a full-size worded heading between the two sections, a chip in a
   different hue with a DASHED edge (provisional, unlike the solid green "we made it" chip), and
   no green anywhere. If this stylesheet fails to load the heading still separates them, which is
   why the break is a heading in words rather than a tint.
   .cap-quoted-banner sets display, so like the parts rules it must stay ABOVE the [hidden]
   override that closes this file. */
.cap-tier-heading{margin:0 0 4px;font-size:14px;font-weight:700;color:#222}
.cap-tier-sub{margin:0 0 12px;font-size:11px;line-height:1.55;color:#767676}
.cap-tier-break{margin:30px 0 18px;border-top:2px solid #333}
.cap-tier-heading-quoted{font-size:16px}
.cap-quoted-cell{display:inline-block;margin-top:6px;border:1px dashed #aab3bd;background:#f4f6f8;color:#4a5560;border-radius:11px;padding:2px 9px;font:700 10px Montserrat;cursor:pointer;white-space:nowrap}
.cap-quoted-cell:hover{border-color:#6f7b88;background:#e9edf1}
.cap-quoted-banner{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin:8px 18px 0;padding:9px 12px;border:1px solid #e2e2e2;border-radius:6px;background:#fafafa;color:#666;font-size:11px;line-height:1.55}
.cap-quoted-banner strong{font-size:11px}
.cap-quoted-unplaced{font-weight:700;color:#4a5560}
.cap-quoted-scope-note{color:#767676}
.cap-quoted-scope{font-size:11px;line-height:1.55;color:#767676;margin:5px 0 10px}
.cap-quoted-summary{margin:0 0 6px;font-size:12px;font-weight:600;color:#333}
.cap-quoted-truncated{margin:0 0 10px;font-size:11px;color:#767676}
.cap-quoted-table-wrap{overflow-x:auto;border:1px solid #eee;border-radius:6px}
.cap-quoted-table{min-width:780px;margin:0}
.cap-quoted-table th{background:#fafafa;font-size:9px}
.cap-quoted-table td{font-size:11px;line-height:1.5;vertical-align:top}
.cap-quoted-quote{white-space:nowrap;font-weight:700}
.cap-quoted-link{color:#3d4a57;text-decoration:none;border-bottom:1px solid #c4ccd4}
.cap-quoted-link:hover{border-bottom-color:#6f7b88}
.cap-quoted-customer{min-width:180px;color:#444}
.cap-quoted-gauge,.cap-quoted-width,.cap-quoted-received,.cap-quoted-eau{white-space:nowrap;color:#555}
.cap-quoted-marker{display:inline-block;margin-left:5px;border-radius:9px;padding:1px 7px;font-size:9px;font-weight:700;white-space:nowrap;background:#f1f1f1;color:#767676}
@media(max-width:760px){.cap-quoted-banner{margin:8px 14px 0}}

/* V/N truckload estimate. Deliberately AMBER throughout and never green: on this page green is
   `Likely Will Fit`, a calculated verdict against a configured packaging limit, and a truckload
   count has no such limit to be measured against. An estimate rendered in the same colour as a
   classified result borrows its authority. Same reason the headline number is not styled like
   #bdft_result on calculator.html, which is an exact answer.
   Every rule here sets display or is inert under it, so all of it must stay ABOVE the [hidden]
   override at the end of this file. */
/* The result card is taller than the form, and a stretched grid inflates the form's last row —
   which is the submit button, so it rendered as a 130px slab of Fuse green next to a hedged
   number. Pin the rows to their content and let the leftover space fall below the button. */
#vnTruckForm{align-content:start}
#vnCalculateButton{align-self:start}
.vn-advisory{background:#fff3e0;border-color:#e8b878;color:#7a4a05}
.vn-advisory strong{display:block;margin-bottom:3px}
.vn-unit-pair{display:grid;grid-template-columns:minmax(0,1fr) 72px;gap:6px}
.vn-assumptions{grid-column:1/-1;border:1px dashed #c9b998;border-radius:6px;background:#fdfaf4;padding:4px 13px 13px;margin:0}
.vn-assumptions legend{padding:0 7px;font:700 10px Montserrat;text-transform:uppercase;letter-spacing:.35px;color:#8a6700}
.vn-assumption-lede{margin:7px 0 11px;font-size:11px;line-height:1.55;color:#6f6250}
.vn-assumption-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-bottom:11px}
.vn-estimate-chip{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;border:1px solid #e6ab16;background:#fff8df;color:#8a6700;border-radius:12px;padding:3px 11px;font:700 10px Montserrat;text-transform:uppercase;letter-spacing:.4px}
.vn-range{display:flex;align-items:baseline;gap:8px;margin:12px 0 2px}
.vn-range strong{font-size:38px;line-height:1.1;color:#7d5d00;white-space:nowrap}
.vn-range span{font-size:12px;font-weight:700;color:#8a6700}
.vn-headline{margin:6px 0 0;font-size:13px;line-height:1.55;font-weight:600;color:#4a4235}
.vn-notes{display:grid;gap:7px;margin-top:12px}
.vn-note{font-size:11px;line-height:1.6;color:#5d5d5d;border-left:3px solid #ddd;padding-left:9px}
.vn-note.warn{border-left-color:#e6ab16;color:#7d5d00}
.vn-scenarios{margin-top:14px}
.vn-scenarios h3{margin:0 0 6px;font:700 10px Montserrat;text-transform:uppercase;letter-spacing:.4px;color:#777}
.vn-scenario-table{width:100%;min-width:0;border-collapse:collapse;border:1px solid #e6e6e6;border-radius:5px;overflow:hidden}
.vn-scenario-table th{background:#faf8f3;font-size:9px;padding:7px 9px}
.vn-scenario-table td{padding:7px 9px;font-size:11px;border-bottom:1px solid #eee}
.vn-scenario-table tr:last-child td{border-bottom:0}
.vn-scenario-count{font-weight:700;color:#333;white-space:nowrap}
.vn-scenario-tight{display:inline-block;margin-left:6px;border-radius:9px;padding:1px 7px;font:700 9px Montserrat;background:#fff8df;color:#8a6700;white-space:nowrap}
.vn-working{display:grid;gap:5px;margin:8px 0 12px}
.vn-working-row{display:flex;flex-wrap:wrap;gap:4px 8px;font-size:11px;line-height:1.5;color:#666}
.vn-working-row strong{color:#333;min-width:150px}
.vn-assumption-item{font-size:11px;line-height:1.55;color:#666;margin-bottom:7px}
.vn-assumption-item strong{color:#333}
@media(max-width:760px){.vn-assumption-grid{grid-template-columns:1fr}.vn-range strong{font-size:30px}}

/* `hidden` is an absolute instruction, but a class rule setting display beats the UA's
   [hidden]{display:none} on specificity. .advisory and .actions both do, so toggling
   .hidden on them changed the property and nothing on screen — including the role gate on
   #adminActions, which never actually hid the edit buttons from below-L4 users. */
[hidden]{display:none!important}
