/* Company Data page — scoped to .cd-root. Light & Gold on --sh-* tokens. */
.cd-root { display: flex; flex-direction: column; gap: 16px; color: var(--sh-on-surface); font-family: var(--sh-font); padding-top: 16px; min-width: 0; padding-bottom: 80px; }
.cd-root *, .cd-root *::before, .cd-root *::after { box-sizing: border-box; }
.cd-root .material-symbols-outlined { font-size: 18px; line-height: 1; vertical-align: middle; flex-shrink: 0; }
.cd-root h1 { margin: 4px 0 0; font-size: 28px; line-height: 36px; font-weight: 700; letter-spacing: -.02em; }
.cd-root h2 { margin: 0; font-size: 20px; font-weight: 700; }
.cd-root h3 { margin: 0 0 4px; font-size: 16px; font-weight: 700; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.cd-root h4 { margin: 18px 0 8px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--sh-on-surface-variant); }
.cd-root p { margin: 0; }
.cd-kicker { font-size: 11px; font-weight: 700; color: var(--sh-on-surface-variant); text-transform: uppercase; letter-spacing: .06em; }
.cd-sub { font-size: 12px; color: var(--sh-on-surface-variant); line-height: 1.4; }
.cd-center { text-align: center; }
.cd-r { text-align: right !important; white-space: nowrap; }
.cd-scroll { overflow-x: auto; }

.cd-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; background: var(--sh-surface-lowest); box-shadow: var(--sh-shadow); border-radius: 12px; padding: 20px 24px; }
.cd-head p { margin-top: 6px; font-size: 14px; color: var(--sh-on-surface-variant); max-width: 620px; }
.cd-credit { display: flex; align-items: baseline; gap: 6px; background: var(--sh-primary-container); color: var(--sh-on-primary-container); border-radius: 12px; padding: 10px 16px; }
.cd-credit b { font-size: 24px; font-weight: 800; }
.cd-credit .material-symbols-outlined { align-self: center; }

.cd-tabs { display: flex; gap: 4px; overflow-x: auto; border-bottom: 1px solid var(--sh-surface-high); }
.cd-tab { display: inline-flex; align-items: center; gap: 6px; border: none; background: none; padding: 10px 14px; margin-bottom: -1px; border-bottom: 2px solid transparent; color: var(--sh-on-surface-variant); font: 600 13px var(--sh-font); white-space: nowrap; cursor: pointer; }
.cd-tab.cd-on { color: var(--sh-on-surface); border-bottom-color: var(--sh-primary-container); }

.cd-btn { display: inline-flex; align-items: center; gap: 6px; border: none; border-radius: 8px; padding: 8px 14px; margin-left: 6px; font: 600 13px var(--sh-font); cursor: pointer; background: var(--sh-surface-lowest); color: var(--sh-on-surface); box-shadow: var(--sh-shadow); }
.cd-btn:first-child { margin-left: 0; }
.cd-btn:hover { background: var(--sh-surface-low); }
.cd-btn.cd-gold { background: var(--sh-primary-container); color: var(--sh-on-primary-container); font-weight: 700; }
.cd-btn[disabled] { opacity: .5; cursor: default; }
.cd-link { border: none; background: none; padding: 0; color: var(--sh-primary); font: 700 13px var(--sh-font); cursor: pointer; text-decoration: underline; }
.cd-in { border: 1px solid var(--sh-surface-high); background: var(--sh-surface-lowest); color: var(--sh-on-surface); border-radius: 8px; padding: 8px 12px; font: 400 13px var(--sh-font); min-width: 0; }
.cd-grow { flex: 1; min-width: 200px; }
.cd-chip { display: inline-flex; align-items: center; padding: 2px 10px; border-radius: 999px; background: var(--sh-surface-container); font-size: 12px; font-weight: 600; white-space: nowrap; }
.cd-chip.cd-ok { background: #e6f6ec; color: #067647; } .cd-chip.cd-warn { background: #fff4dc; color: #904d00; } .cd-chip.cd-bad { background: #ffdad6; color: #ba1a1a; }
.cd-note, .cd-banner { display: flex; align-items: center; gap: 8px; padding: 12px 16px; border-radius: 10px; background: #fff6e0; color: #904d00; font-size: 14px; }
.cd-banner { width: 100%; border: 1px solid #fde3b0; text-align: left; font-family: var(--sh-font); cursor: pointer; }
.cd-empty { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 48px 16px; color: var(--sh-on-surface-variant); text-align: center; }
.cd-err { margin-top: 10px; color: #ba1a1a; font-size: 13px; font-weight: 600; }

.cd-filters { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.cd-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: 16px; }
.cd-card { background: var(--sh-surface-lowest); box-shadow: var(--sh-shadow); border-radius: 12px; padding: 18px 20px; display: flex; flex-direction: column; gap: 10px; min-width: 0; border: 2px solid transparent; }
.cd-card.cd-sel { border-color: var(--sh-primary-container); }
.cd-card.cd-done { border-color: #bfe6cd; }
.cd-card-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.cd-card-title { min-width: 0; flex: 1; }
.cd-card-title h3 { margin: 0; overflow-wrap: anywhere; }
.cd-badges { display: flex; gap: 6px; flex-wrap: wrap; }
.cd-summary { font-size: 13px; line-height: 1.5; color: var(--sh-on-surface); }
.cd-target { display: flex; gap: 6px; font-size: 13px; color: var(--sh-on-surface-variant); }
.cd-why { font-size: 12px; color: var(--sh-on-surface-variant); }
.cd-why i, .cd-matchrow .cd-why i { font-style: normal; background: var(--sh-surface-container); border-radius: 6px; padding: 1px 6px; margin-right: 2px; }
.cd-offer { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; background: linear-gradient(90deg, #fff1c2, #fff8e1); color: #7a4b00; border-radius: 8px; padding: 6px 10px; font-size: 12px; }
.cd-card-foot { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; border-top: 1px solid var(--sh-surface-container); padding-top: 10px; margin-top: auto; }
.cd-sigs { display: flex; align-items: center; gap: 4px; }
.cd-sig { width: 28px; height: 28px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; background: var(--sh-surface-container); color: var(--sh-outline); opacity: .6; }
.cd-sig.cd-on { background: #e6f6ec; color: #067647; opacity: 1; }
.cd-locked { display: inline-flex; align-items: center; gap: 4px; margin-left: 6px; font-size: 11px; color: var(--sh-on-surface-variant); }
.cd-locked .material-symbols-outlined { font-size: 14px; }
.cd-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.cd-pick { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; cursor: pointer; }

.cd-ring { --p: 0; width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; text-align: center; position: relative; flex-shrink: 0;
  background: conic-gradient(var(--c, #f5b700) calc(var(--p) * 1%), var(--sh-surface-container) 0); }
.cd-ring::before { content: ''; position: absolute; inset: 5px; background: var(--sh-surface-lowest); border-radius: 50%; }
.cd-ring b, .cd-ring span { position: relative; line-height: 1; } .cd-ring b { font-size: 16px; margin-top: 9px; } .cd-ring span { font-size: 9px; color: var(--sh-on-surface-variant); margin-top: -9px; text-transform: uppercase; letter-spacing: .04em; }
.cd-ring-hot { --c: #12a150; } .cd-ring-warm { --c: #f5b700; } .cd-ring-cold { --c: #98a2b3; }

.cd-pager { display: flex; justify-content: center; align-items: center; gap: 12px; }
.cd-cart { position: fixed; left: 50%; transform: translateX(-50%); bottom: 16px; z-index: 20; display: flex; gap: 16px; align-items: center; justify-content: space-between; background: #101828; color: #fff; border-radius: 12px; padding: 12px 16px; box-shadow: 0 8px 30px rgba(16,24,40,.35); width: min(720px, calc(100vw - 32px)); font-size: 14px; }

.cd-drawer-bg { position: fixed; inset: 0; background: rgba(16,24,40,.45); z-index: 40; display: flex; justify-content: flex-end; }
.cd-drawer { width: min(560px, 100%); height: 100%; overflow-y: auto; background: var(--sh-surface-lowest); padding: 24px; display: flex; flex-direction: column; gap: 10px; position: relative; }
.cd-x { position: absolute; top: 14px; right: 14px; border: none; background: var(--sh-surface-container); border-radius: 50%; width: 32px; height: 32px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.cd-drawer .cd-card-top { padding-right: 40px; }
.cd-comp { margin-bottom: 8px; } .cd-comp-top { display: flex; justify-content: space-between; font-size: 13px; }
.cd-meter { height: 6px; border-radius: 99px; background: var(--sh-surface-container); overflow: hidden; margin: 4px 0; }
.cd-meter i { display: block; height: 100%; border-radius: 99px; background: var(--sh-primary-container); }
.cd-matchrow { display: grid; grid-template-columns: 1fr auto; gap: 2px 8px; margin-bottom: 10px; font-size: 13px; } .cd-matchrow .cd-meter, .cd-matchrow .cd-why { grid-column: 1 / -1; }
.cd-reasons { margin: 6px 0 0; padding-left: 18px; font-size: 13px; color: var(--sh-on-surface-variant); }
.cd-locks { display: flex; flex-direction: column; gap: 6px; }
.cd-lockrow { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-radius: 8px; background: var(--sh-surface-low); color: var(--sh-on-surface-variant); }
.cd-lockrow span { flex: 1; display: flex; flex-direction: column; font-size: 13px; } .cd-lockrow i { font-style: normal; font-size: 12px; }
.cd-lockrow.cd-on { background: #f1f8f4; color: #067647; }
.cd-drawer-foot { position: sticky; bottom: -24px; margin: 12px -24px -24px; padding: 14px 24px; background: var(--sh-surface-lowest); border-top: 1px solid var(--sh-surface-high); display: flex; justify-content: space-between; align-items: center; gap: 12px; }

.cd-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.cd-table th { text-align: left; font-size: 11px; font-weight: 700; color: var(--sh-on-surface-variant); text-transform: uppercase; letter-spacing: .05em; padding: 8px 10px; border-bottom: 1px solid var(--sh-surface-high); white-space: nowrap; }
.cd-table td { padding: 10px; border-bottom: 1px solid var(--sh-surface-container); vertical-align: top; }

.cd-steps { display: flex; gap: 8px; list-style: none; padding: 0; margin: 4px 0 8px; flex-wrap: wrap; }
.cd-steps li { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--sh-on-surface-variant); }
.cd-steps li span { width: 24px; height: 24px; border-radius: 50%; background: var(--sh-surface-container); display: inline-flex; align-items: center; justify-content: center; font-size: 12px; }
.cd-steps li .material-symbols-outlined { font-size: 14px; }
.cd-steps li.cd-now { color: var(--sh-on-surface); } .cd-steps li.cd-now span { background: var(--sh-primary-container); color: var(--sh-on-primary-container); }
.cd-steps li.cd-past span { background: #e6f6ec; color: #067647; }
.cd-steps li:not(:last-child)::after { content: ''; width: 24px; height: 1px; background: var(--sh-surface-high); margin-left: 4px; }
.cd-drop { border: 2px dashed var(--sh-surface-high); border-radius: 12px; padding: 40px 16px; display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; }
.cd-drop .material-symbols-outlined { font-size: 36px; color: var(--sh-primary); }
.cd-field { display: flex; flex-direction: column; gap: 4px; font-size: 12px; font-weight: 700; color: var(--sh-on-surface-variant); margin-top: 12px; border: none; padding: 0; }
.cd-field legend { padding: 0; margin-bottom: 6px; font-size: 12px; font-weight: 700; color: var(--sh-on-surface-variant); }
.cd-radio, .cd-check { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 500; color: var(--sh-on-surface); margin: 2px 0; }
.cd-check { margin-top: 14px; }
.cd-req { font-size: 10px; background: #ffdad6; color: #ba1a1a; border-radius: 6px; padding: 1px 6px; text-transform: uppercase; }
.cd-two { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 0 16px; } .cd-two .cd-wide { grid-column: 1 / -1; }
.cd-form .cd-actions { margin-top: 16px; }
.cd-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin: 8px 0; }
.cd-tile { background: var(--sh-surface-low); border-radius: 12px; padding: 14px 16px; display: flex; flex-direction: column; } .cd-tile b { font-size: 26px; font-weight: 800; } .cd-tile span { font-size: 12px; color: var(--sh-on-surface-variant); }
.cd-tile.cd-t-ok { background: #e6f6ec; } .cd-tile.cd-t-warn { background: #fff4dc; }

@media (max-width: 700px) {
  .cd-grid { grid-template-columns: 1fr; }
  .cd-cart { flex-direction: column; align-items: stretch; gap: 8px; }
  .cd-drawer { padding: 16px; } .cd-drawer-foot { margin: 12px -16px -16px; padding: 12px 16px; }
}
