.cmsapi-widget {
    --cmsapi-widget-radius: .75rem;
    background: var(--cmsapi-widget-surface);
    border: 1px solid var(--cmsapi-widget-border);
    border-radius: var(--cmsapi-widget-radius);
    color: var(--cmsapi-widget-text);
    margin: 1.5rem 0;
    padding: 1.25rem;
}
.cmsapi-widget * { box-sizing: border-box; }
.cmsapi-widget h2, .cmsapi-widget h3 { color: var(--cmsapi-widget-text); }
.cmsapi-widget__intro, .cmsapi-widget__help, .cmsapi-widget__methodology { color: var(--cmsapi-widget-text-muted); }
.cmsapi-widget button, .cmsapi-widget input, .cmsapi-widget select {
    font: inherit;
}
.cmsapi-widget button {
    background: var(--cmsapi-widget-primary);
    border: 1px solid var(--cmsapi-widget-primary);
    border-radius: .5rem;
    color: var(--cmsapi-widget-surface);
    cursor: pointer;
    margin: .25rem;
    padding: .6rem .85rem;
}
.cmsapi-widget button:focus-visible, .cmsapi-widget input:focus-visible, .cmsapi-widget select:focus-visible {
    outline: 3px solid var(--cmsapi-widget-focus);
    outline-offset: 2px;
}
.cmsapi-widget fieldset, .cmsapi-widget__output, .cmsapi-widget__verdict, .cmsapi-widget [role="tabpanel"] {
    background: var(--cmsapi-widget-surface-muted);
    border: 1px solid var(--cmsapi-widget-border);
    border-radius: .5rem;
    margin: .75rem 0;
    padding: 1rem;
}
.cmsapi-widget__calculator { display: grid; gap: 1rem; }
.cmsapi-widget__calculator label { display: grid; gap: .35rem; }
.cmsapi-widget__outputs { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); }
.cmsapi-widget__output strong { display: block; font-size: 1.35em; }
.cmsapi-widget__progress { background: var(--cmsapi-widget-border); border-radius: 1rem; height: .65rem; overflow: hidden; }
.cmsapi-widget__progress span { background: var(--cmsapi-widget-primary); display: block; height: 100%; transition: width .2s ease; width: 0; }
.cmsapi-widget__table-wrap { overflow-x: auto; }
.cmsapi-widget table { border-collapse: collapse; width: 100%; }
.cmsapi-widget th, .cmsapi-widget td { border: 1px solid var(--cmsapi-widget-border); padding: .55rem; text-align: left; }
.cmsapi-widget__checklist ul { list-style: none; padding: 0; }
.cmsapi-widget__checklist li { border-bottom: 1px solid var(--cmsapi-widget-border); padding: .75rem 0; }
.cmsapi-widget__verdict--positive { border-color: var(--cmsapi-widget-success); }
.cmsapi-widget__verdict--warning { border-color: var(--cmsapi-widget-warning); }
.cmsapi-widget__verdict--danger { border-color: var(--cmsapi-widget-danger); }
.cmsapi-widget--compact { padding: .85rem; }
.cmsapi-widget [hidden] { display: none; }
@media (min-width: 48rem) {
    .cmsapi-widget { padding: 1.5rem; }
    .cmsapi-widget__calculator { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cmsapi-widget__calculator .cmsapi-widget__outputs { grid-column: 1 / -1; }
}
