.cex {
    box-sizing: border-box;
    margin: 1.5rem 0;
}

.cex *,
.cex *::before,
.cex *::after {
    box-sizing: border-box;
}

.cex-search-form {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    align-items: center;
    margin-bottom: 1rem;
}

.cex-search-form input[type="search"] {
    min-width: min(100%, 320px);
    flex: 1;
}

.cex-search-form input,
.cex-search-form select,
.cex-search-form button {
    padding: .65rem .75rem;
}

.cex-entity-list {
    display: grid;
    gap: 1rem;
}

.cex-card-public,
.cex-profile,
.cex-notice {
    border: 1px solid rgba(0,0,0,.12);
    border-radius: 12px;
    padding: 1rem;
    background: rgba(255,255,255,.72);
}

.cex-card-public h3,
.cex-profile h2 {
    margin-top: 0;
}

.cex-meta,
.cex-footnote,
.cex-empty {
    opacity: .78;
}

.cex-profile-header {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    margin-bottom: 1rem;
}

.cex-score-box {
    border: 1px solid rgba(0,0,0,.12);
    border-radius: 10px;
    padding: .75rem 1rem;
    font-weight: 700;
}

.cex-profile-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: .75rem;
}

.cex-profile-grid > div {
    border-top: 1px solid rgba(0,0,0,.08);
    padding-top: .75rem;
}

.cex-ranking-list li {
    margin-bottom: .75rem;
}

.cex-ranking-list span {
    display: block;
    opacity: .78;
}

/* Build 2 public forms and review cards */
.cex-form { border: 1px solid #ddd; padding: 1.25rem; border-radius: 12px; background: #fff; }
.cex-form fieldset { border: 1px solid #e3e3e3; border-radius: 10px; padding: 1rem; margin: 0 0 1rem; }
.cex-form legend { font-weight: 700; padding: 0 .35rem; }
.cex-form label { display: block; margin-bottom: .25rem; }
.cex-form input[type="text"], .cex-form input[type="url"], .cex-form input[type="email"], .cex-form input[type="month"], .cex-form input[type="number"], .cex-form select, .cex-form textarea { width: 100%; max-width: 760px; box-sizing: border-box; }
.cex-form button, .cex-primary-link, .cex-button-link { display: inline-block; border: 0; border-radius: 999px; padding: .65rem 1rem; text-decoration: none; font-weight: 700; background: #111; color: #fff; cursor: pointer; }
.cex-form button:hover, .cex-primary-link:hover, .cex-button-link:hover { opacity: .86; color: #fff; }
.cex-muted { color: #666; }
.cex-hp { position: absolute; left: -9999px; height: 1px; overflow: hidden; }
.cex-inline-new-entity { background: #fafafa; border-radius: 10px; padding: .9rem; margin-top: .5rem; }
.cex-score-grid-public { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .75rem 1rem; }
.cex-review-rules { display: grid; gap: .5rem; padding: 1rem; border-radius: 10px; background: #f6f7f7; margin: 1rem 0; }
.cex-status { border-radius: 10px; padding: .85rem 1rem; margin: 1rem 0; font-weight: 600; }
.cex-status-success { background: #e9f7ef; border: 1px solid #a3d9b8; }
.cex-status-info { background: #eef5ff; border: 1px solid #b8d4ff; }
.cex-status-error { background: #fff1f0; border: 1px solid #ffb4ad; }
.cex-public-reviews { margin-top: 1.5rem; }
.cex-review-card { border: 1px solid #ddd; border-radius: 12px; padding: 1rem; margin: 1rem 0; background: #fff; }
.cex-review-card h3 { margin-top: 0; margin-bottom: .25rem; }
.cex-review-facts { display: flex; flex-wrap: wrap; gap: .5rem; margin: .75rem 0; }
.cex-review-facts span { background: #f1f1f1; border-radius: 999px; padding: .25rem .6rem; font-size: .9rem; }

/* Build 3: reviewer ownership */
.cex-my-reviews .cex-owner-list {
    display: grid;
    gap: 1.25rem;
}
.cex-owner-card {
    border: 1px solid #dcdcde;
    border-radius: 10px;
    padding: 1rem;
    background: #fff;
}
.cex-owner-card-header {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    margin-bottom: .75rem;
}
.cex-owner-edit summary {
    cursor: pointer;
    font-weight: 700;
    margin: .5rem 0;
}
.cex-owner-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #eee;
}
.cex-inline-action {
    margin: 0;
}
.cex-button-secondary,
.cex-button-danger {
    border: 1px solid #777;
    border-radius: 6px;
    padding: .6rem .9rem;
    background: #f6f7f7;
    cursor: pointer;
}
.cex-button-danger {
    border-color: #b32d2e;
}
.cex-owner-form textarea,
.cex-owner-form input[type="text"],
.cex-owner-form input[type="month"],
.cex-owner-form input[type="number"],
.cex-owner-form select {
    width: 100%;
    max-width: 720px;
}

/* Build 4 - claimed profiles */
.cex-secondary-link {
    display: inline-block;
    margin-left: .75rem;
    font-size: .95em;
}
.cex-claim-profile .cex-form,
.cex-company-dashboard .cex-form {
    max-width: 880px;
}
.cex-company-managed-entity {
    border: 1px solid #dcdcde;
    border-radius: 10px;
    padding: 1.25rem;
    margin: 1.25rem 0;
    background: #fff;
}
.cex-dashboard-review {
    margin-top: 1rem;
}
.cex-inline-reply-form textarea {
    width: 100%;
}
.cex-company-replies {
    margin-top: 1rem;
    border-left: 4px solid #dcdcde;
    padding-left: 1rem;
}
.cex-company-reply {
    background: #f6f7f7;
    border-radius: 8px;
    padding: .85rem 1rem;
    margin-top: .75rem;
}

.cex-report-row {
    margin-top: 0.75rem;
    font-size: 0.9rem;
}
.cex-report-link {
    color: #666;
    text-decoration: underline;
}
.cex-dsa-notice-form fieldset,
.cex-dsa-appeal-form fieldset,
.cex-privacy-request-form fieldset,
.cex-guidelines {
    margin-top: 1rem;
}

/* Build 6 - billing and entitlements */
.cex-plan-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 1rem;
    margin: 1rem 0;
}
.cex-plan-card,
.cex-locked-panel,
.cex-insight-panel {
    border: 1px solid #dcdcde;
    border-radius: 10px;
    padding: 1rem;
    background: #fff;
}
.cex-price {
    font-size: 1.15rem;
    font-weight: 700;
}
.cex-inline-payment-form {
    margin: .75rem 0 0;
}
.cex-inline-payment-form button {
    border: 0;
    border-radius: 999px;
    padding: .65rem 1rem;
    font-weight: 700;
    background: #111;
    color: #fff;
    cursor: pointer;
}
.cex-table {
    width: 100%;
    border-collapse: collapse;
    margin: 1rem 0;
}
.cex-table th,
.cex-table td {
    border-bottom: 1px solid #ddd;
    padding: .6rem;
    text-align: left;
}
.cex-locked {
    display: inline-block;
    opacity: .75;
    font-weight: 600;
}

/* Build 7: paid dashboards and reports */
.cex-insight-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:16px 0}.cex-insight-card{border:1px solid #dcdcde;border-radius:8px;padding:12px;background:#fff}.cex-insight-card strong{display:block;font-size:.9rem;color:#50575e}.cex-insight-card span{display:block;font-size:1.35rem;font-weight:700;margin-top:6px}.cex-table-wrap{overflow-x:auto;margin:16px 0}.cex-insight-table,.cex-compare-table{width:100%;border-collapse:collapse;background:#fff}.cex-insight-table th,.cex-insight-table td,.cex-compare-table th,.cex-compare-table td{border:1px solid #dcdcde;padding:8px;text-align:left}.cex-insight-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:16px 0}.cex-breakdown-box{border:1px solid #dcdcde;border-radius:8px;padding:12px;background:#fff}.cex-breakdown-box ul{list-style:none;margin:0;padding:0}.cex-breakdown-box li{display:flex;justify-content:space-between;border-bottom:1px solid #f0f0f1;padding:6px 0}.cex-breakdown-box li:last-child{border-bottom:0}.cex-risk-notes{border-left:4px solid #2271b1;padding:10px 14px;background:#f6f7f7;margin:16px 0}.cex-report-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.cex-report-teaser{font-size:1.05rem;border-left:4px solid #dcdcde;padding:10px 14px;background:#f6f7f7}.cex-badge{display:inline-block;border-radius:999px;padding:3px 9px;font-size:.82rem;background:#f0f0f1}.cex-badge-ok{background:#edfaef}.cex-badge-locked{background:#fff4e5}.cex-tool-panel{border:1px solid #dcdcde;border-radius:8px;padding:16px;margin-top:16px}.cex-compare-form{display:flex;gap:8px;flex-wrap:wrap}.cex-compare-form select{min-width:180px}
