.cc-overlay { position: fixed; inset: 0; z-index: 1000; background: rgb(8 30 45 / 45%); display: flex; justify-content: center; align-items: flex-start; padding: 4vh 16px; overflow-y: auto; }
.cc-dialog { background: var(--surface); color: var(--text); border: 1px solid var(--border); border-radius: 12px; box-shadow: var(--raised-shadow, var(--shadow)); width: min(1040px, 100%); padding: 20px 24px 28px; }
.cc-dialog-head { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; border-bottom: 1px solid var(--border); padding-bottom: 12px; margin-bottom: 16px; }
.cc-dialog-head h2 { margin: 0 0 4px; font-size: 1.15rem; }
.cc-section { margin-top: 20px; }
.cc-section h3 { font-size: 1rem; margin: 0 0 10px; }
.cc-contract { border: 1px solid var(--border); border-radius: 10px; padding: 14px; margin-bottom: 12px; background: var(--surface-muted); }
.cc-contract-head { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
.cc-contract-head div { display: flex; flex-direction: column; }
.cc-contract-head span { color: var(--text-muted); font-size: .85rem; }
.cc-table { width: 100%; border-collapse: collapse; font-size: .88rem; }
.cc-table th, .cc-table td { text-align: left; padding: 6px 8px; border-bottom: 1px solid var(--border); vertical-align: top; }
.cc-table th { color: var(--text-muted); font-weight: 600; }
.cc-scroll { overflow-x: auto; }
.cc-details { margin-top: 10px; }
.cc-details > summary { cursor: pointer; color: var(--accent-strong); font-weight: 600; padding: 4px 0; }
.cc-details > summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.cc-action form { margin-top: 8px; }
.cc-inline { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.cc-muted { color: var(--text-muted); font-size: .85rem; margin: 4px 0; }
.cc-empty { color: var(--text-muted); padding: 14px; border: 1px dashed var(--border-strong); border-radius: 8px; }
.cc-tag { font-size: .72rem; background: var(--accent-soft, var(--surface-soft)); color: var(--accent-strong); border-radius: 4px; padding: 1px 5px; }
.cc-status { font-size: .8rem; border-radius: 999px; padding: 2px 10px; background: var(--surface-soft); color: var(--text-muted); align-self: center; }
.cc-status-active { background: var(--positive-soft, var(--surface-soft)); color: var(--positive, var(--text)); }
.cc-status-suspended { background: var(--warning-soft, var(--surface-soft)); color: var(--warning, var(--text)); }
.cc-status-revoked { background: var(--negative-soft, var(--surface-soft)); color: var(--negative, var(--text)); }
.cc-warning { background: var(--warning-soft, var(--surface-soft)); border-left: 3px solid var(--warning, var(--border-strong)); padding: 8px 12px; border-radius: 6px; margin: 8px 0; }
.cc-error { color: var(--negative, var(--text)); margin: 4px 0; }
.cc-notice { background: var(--positive-soft, var(--surface-soft)); padding: 8px 12px; border-radius: 6px; }
.cc-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.cc-skeleton span { display: block; height: 56px; margin-bottom: 10px; border-radius: 8px; background: var(--surface-soft); animation: cc-pulse 1.2s ease-in-out infinite; }
@keyframes cc-pulse { 50% { opacity: .5; } }
@media (max-width: 767px) { .cc-dialog { padding: 14px; } }
.cc-addr-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px; }
.cc-addr-grid p { margin: 6px 0; }
.cc-expiry { font-size: .78rem; color: var(--warning, var(--text-muted)); }
.cc-status-expired { background: var(--surface-soft); color: var(--text-faint); }
.cc-list { margin: 6px 0; padding-left: 18px; font-size: .88rem; }
.cc-list li { margin-bottom: 6px; }
