/* Bootstrap-style helpers used by the calculator articles (views/cprofile/*), scoped to .cp so they never touch the site layout. */
.cp{--bs-gutter:24px}
.cp .container,.cp .container-fluid{width:100%;max-width:none;padding:0}
.cp .row{display:flex;flex-wrap:wrap;margin:0 calc(var(--bs-gutter)/-2);gap:0;align-items:stretch}
.cp .row>*{padding:0 calc(var(--bs-gutter)/2);width:100%;max-width:100%;flex-shrink:0}
.cp .g-4{--bs-gutter:24px;row-gap:24px}
.cp .col-12{flex:0 0 100%}.cp .col-6{flex:0 0 50%;max-width:50%}.cp .col-4{flex:0 0 33.333%;max-width:33.333%}
@media (min-width:768px){.cp .col-md-3{flex:0 0 25%;max-width:25%}.cp .col-md-4{flex:0 0 33.333%;max-width:33.333%}.cp .col-md-12{flex:0 0 100%;max-width:100%}}
@media (min-width:992px){.cp .col-lg-6{flex:0 0 50%;max-width:50%}}
@media (min-width:1200px){.cp .col-xl-12{flex:0 0 100%;max-width:100%}}
.cp .card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.cp .card-header{padding:12px 16px;border-bottom:1px solid var(--line);background:var(--soft)}
.cp .card-body{padding:16px}
.cp .form-label{display:block;font-weight:500;margin-bottom:6px;font-size:.93rem}
.cp .form-control,.cp .form-select{width:100%;min-height:42px;padding:8px 12px;border:1px solid #cfd6de;border-radius:var(--r);font:inherit;background:#fff}
.cp .form-control-lg,.cp .form-select-lg{min-height:48px;font-size:1.05rem}
.cp .input-group{display:flex;align-items:stretch}.cp .input-group>.form-control{flex:1;border-radius:var(--r) 0 0 var(--r)}
.cp .input-group-text{display:flex;align-items:center;padding:0 12px;background:var(--soft);border:1px solid #cfd6de;border-left:0;border-radius:0 var(--r) var(--r) 0}
.cp .btn{border-radius:var(--r)}
.cp .btn-primary{background:var(--brand);color:#fff}.cp .btn-success{background:#1f9d55;color:#fff}
.cp .btn-outline-primary{background:#fff;border:1px solid var(--brand);color:var(--brand)}
.cp .btn-check{position:absolute;opacity:0;pointer-events:none}
.cp .btn-check:checked+.btn{background:var(--brand);color:#fff}
.cp .btn-group{display:inline-flex;gap:6px;flex-wrap:wrap}
.cp .d-block{display:block}.cp .d-grid{display:grid}.cp .w-100{width:100%}
.cp .align-items-center{align-items:center}.cp .justify-content-center{justify-content:center}
.cp .text-center{text-align:center}.cp .text-muted{color:var(--muted)}.cp .text-danger{color:var(--red)}.cp .text-success{color:#0b5a35}
.cp .text-primary{color:var(--brand)}.cp .text-warning{color:var(--amber)}.cp .text-dark{color:var(--ink)}.cp .text-white{color:#fff}
.cp .bg-light{background:var(--soft)}.cp .bg-white{background:#fff}.cp .bg-success{background:#1f9d55;color:#fff}
.cp .fw-bold{font-weight:700}.cp .fw-semibold{font-weight:600}.cp .fs-4{font-size:1.4rem}.cp .fs-5{font-size:1.2rem}.cp .small{font-size:.875rem}
.cp .opacity-75{opacity:.75}
.cp .border{border:1px solid var(--line)}.cp .border-top{border-top:1px solid var(--line)}.cp .border-bottom{border-bottom:1px solid var(--line)}.cp .border-end{border-right:1px solid var(--line)}
.cp .rounded{border-radius:var(--r)}.cp .rounded-4{border-radius:16px}.cp .shadow-sm{box-shadow:var(--sh)}
.cp .mb-0{margin-bottom:0}.cp .mb-1{margin-bottom:4px}.cp .mb-2{margin-bottom:8px}.cp .mb-3{margin-bottom:16px}.cp .mb-4{margin-bottom:24px}
.cp .mt-1{margin-top:4px}.cp .mt-2{margin-top:8px}.cp .mt-3{margin-top:16px}.cp .mt-4{margin-top:24px}
.cp .p-3{padding:16px}.cp .p-4{padding:24px}.cp .pt-2{padding-top:8px}.cp .pb-2{padding-bottom:8px}.cp .py-5{padding-top:48px;padding-bottom:48px}
.cp .table{width:100%;border-collapse:collapse}.cp .table td,.cp .table th{padding:8px;border-bottom:1px solid var(--line)}
.cp .table-bordered td,.cp .table-bordered th{border:1px solid var(--line)}
.cp .badge{display:inline-block}
