/* Reusable ControlPlan components */
.btn,.button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:40px;padding:var(--button-padding-y) var(--button-padding-x);border:1px solid transparent;border-radius:var(--button-radius);cursor:pointer;font-weight:600;text-decoration:none;transition:transform var(--cp-transition-fast),background var(--cp-transition-fast),border-color var(--cp-transition-fast),box-shadow var(--cp-transition-fast)}
.btn:hover,.button:hover{transform:translateY(-1px)}
.btn-primary,.button.is-primary{background:var(--cp-action-primary);border-color:var(--cp-action-primary);color:var(--cp-text-inverse)}
.btn-primary:hover,.button.is-primary:hover{background:var(--cp-action-primary-hover);border-color:var(--cp-action-primary-hover);color:var(--cp-white)}
.btn-secondary{background:var(--cp-action-secondary);color:var(--cp-text-inverse)}
.btn-success,.button.is-success{background:var(--cp-status-success);color:var(--cp-white)}
.btn-warning,.button.is-warning{background:var(--cp-status-warning);color:var(--cp-navy-900)}
.btn-danger,.button.is-danger{background:var(--cp-status-danger);color:var(--cp-white)}
.btn-outline,.button.is-light{background:var(--cp-bg-surface);border-color:var(--cp-border-default);color:var(--cp-text-primary)}
.btn-outline:hover,.button.is-light:hover{background:var(--cp-bg-muted);border-color:var(--cp-border-strong)}
.card,.box{border:1px solid var(--cp-card-border);border-radius:var(--cp-radius-md);background:var(--cp-card-bg);box-shadow:var(--cp-shadow-sm);color:var(--cp-text-primary)}
.box{padding:1.35rem}.card-header{padding:1rem 1.25rem;border-bottom:1px solid var(--cp-border-subtle);color:var(--cp-card-title);font-weight:600}.card-body{padding:1.25rem}.card-footer{padding:1rem 1.25rem;border-top:1px solid var(--cp-border-subtle)}
.notification,.alert{padding:1rem 1.2rem;border:1px solid transparent;border-radius:var(--cp-radius-md);box-shadow:none}.notification.is-success,.alert-success{background:var(--cp-bg-success);border-color:rgba(44,173,113,.25);color:#1F6D49}.notification.is-warning,.alert-warning{background:var(--cp-bg-warning);border-color:rgba(241,169,55,.3);color:#7B5311}.notification.is-danger,.alert-danger{background:var(--cp-bg-danger);border-color:rgba(229,72,77,.24);color:#992F34}.notification.is-link,.alert-info{background:var(--cp-bg-info);border-color:rgba(33,190,211,.25);color:#176E78}
.badge,.tag{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .65rem;border-radius:var(--cp-radius-pill);font-size:var(--cp-font-size-xs);font-weight:700}.badge-success,.tag.is-success{background:var(--cp-bg-success);color:#1F6D49}.badge-warning,.tag.is-warning{background:var(--cp-bg-warning);color:#7B5311}.badge-danger,.tag.is-danger{background:var(--cp-bg-danger);color:#992F34}.badge-info,.tag.is-info,.tag.is-link{background:var(--cp-bg-selected);color:var(--cp-blue)}
.status-dot{display:inline-block;width:.55rem;height:.55rem;margin-right:.35rem;border-radius:50%;background:var(--cp-status-neutral)}.status-dot.success{background:var(--cp-status-success)}.status-dot.warning{background:var(--cp-status-warning)}.status-dot.danger{background:var(--cp-status-danger)}
.progress{overflow:hidden;height:.55rem;border-radius:var(--cp-radius-pill);background:var(--cp-bg-muted)}.progress::-webkit-progress-value{background:var(--cp-blue)}.progress::-moz-progress-bar{background:var(--cp-blue)}
