.cdb {
    max-width: 960px;
    margin: 1rem auto;
    padding: clamp(1rem, 4vw, 2rem);
    color: #142235;
    background: #fff;
    border: 1px solid #d9e2ed;
    border-radius: 14px;
}
.cdb label { display: block; margin: .75rem 0; font-weight: 600; }
.cdb input, .cdb select, .cdb button {
    box-sizing: border-box;
    min-height: 42px;
    max-width: 100%;
    padding: .45rem .7rem;
    font: inherit;
}
.cdb input, .cdb select { color: #142235; background: #fff; border: 1px solid #8694a8; border-radius: 6px; }
.cdb button { background: #174786; color: #fff; border: 0; border-radius: 6px; cursor: pointer; }
.cdb button:disabled { opacity: .55; cursor: default; }
.cdb-actions { display: flex; gap: .5rem; flex-wrap: wrap; }
.cdb [data-ui=reader] { max-width: 560px; margin: .75rem auto; }
.cdb [data-ui=progress], .cdb [data-ui=status]:not(:empty) { padding: .75rem; background: #edf3fc; border-radius: 6px; }
.cdb [data-state=saved] { background: #e5f6eb !important; }
.cdb [data-state=duplicate] { background: #fff0cc !important; }
.cdb [data-state=unknown] { background: #fce7e7 !important; }
.cdb-table { overflow-x: auto; max-height: 28rem; }
.cdb table { width: 100%; border-collapse: collapse; }
.cdb th, .cdb td { text-align: left; padding: .55rem; border-bottom: 1px solid #d9e2ed; }
.cdb th { position: sticky; top: 0; background: #edf3fc; }
.cdb details { margin-top: 1.5rem; padding: 1rem; border: 1px solid #d9e2ed; border-radius: 8px; }
.cdb summary { cursor: pointer; font-weight: 700; }
.cdb [hidden] { display: none !important; }
