/* CleanDesk Design System — shared, dependency-free visual primitives.
   This file deliberately contains no application state, data, or behavior. */

:root {
  --cd-font-sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --cd-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  --cd-ink: #091a33; --cd-ink-soft: #29435f; --cd-text: #405570; --cd-text-subtle: #70829a;
  --cd-surface: #ffffff; --cd-surface-subtle: #f7faff; --cd-surface-tint: #eff7ff;
  --cd-line: #dce8f4; --cd-line-strong: #c8d9ec;
  --cd-blue: #2676ed; --cd-blue-strong: #135ecf; --cd-blue-tint: #eaf3ff;
  --cd-cyan: #20bfc5; --cd-indigo: #6674ef; --cd-green: #0caa87; --cd-green-tint: #e7faf5;
  --cd-amber: #c98214; --cd-amber-tint: #fff6df; --cd-red: #cf4f67; --cd-red-tint: #fff0f3;
  --cd-radius-xs: 6px; --cd-radius-sm: 10px; --cd-radius-md: 14px; --cd-radius-lg: 20px; --cd-radius-pill: 999px;
  --cd-space-1: 4px; --cd-space-2: 8px; --cd-space-3: 12px; --cd-space-4: 16px; --cd-space-5: 20px; --cd-space-6: 24px; --cd-space-8: 32px; --cd-space-10: 40px;
  --cd-shadow-xs: 0 1px 2px rgba(15,49,91,.05); --cd-shadow-sm: 0 8px 22px rgba(25,79,139,.08); --cd-shadow-md: 0 18px 46px rgba(25,79,139,.12);
  --cd-glow: 0 0 0 4px rgba(38,118,237,.14); --cd-ease: cubic-bezier(.2,.8,.2,1); --cd-speed: 160ms;
}

.cd-ui{font-family:var(--cd-font-sans);color:var(--cd-ink)} .cd-ui *,.cd-ui *::before,.cd-ui *::after{box-sizing:border-box}.cd-ui :focus-visible{outline:2px solid var(--cd-blue);outline-offset:3px}
.cd-shell{min-height:100%;background:radial-gradient(ellipse 70% 40% at 75% -12%,rgba(64,190,255,.15),transparent 66%),var(--cd-surface-subtle)}.cd-page{width:min(100%,1440px);margin:0 auto;padding:var(--cd-space-8)}.cd-page-header{display:flex;justify-content:space-between;gap:var(--cd-space-5);align-items:flex-start;margin-bottom:var(--cd-space-6)}.cd-eyebrow{margin:0 0 var(--cd-space-2);color:var(--cd-blue-strong);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.cd-title{margin:0;font-size:clamp(26px,3vw,38px);line-height:1.08;letter-spacing:-.045em}.cd-description{max-width:680px;margin:var(--cd-space-2) 0 0;color:var(--cd-text);font-size:14px;line-height:1.6}
.cd-stack{display:grid;gap:var(--cd-space-4)}.cd-stack--tight{gap:var(--cd-space-2)}.cd-cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--cd-space-2)}.cd-grid{display:grid;gap:var(--cd-space-4)}.cd-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.cd-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.cd-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.cd-card{border:1px solid var(--cd-line);border-radius:var(--cd-radius-md);background:rgba(255,255,255,.9);box-shadow:var(--cd-shadow-xs)}.cd-card--padded{padding:var(--cd-space-5)}.cd-card--interactive{transition:border-color var(--cd-speed) var(--cd-ease),box-shadow var(--cd-speed) var(--cd-ease),transform var(--cd-speed) var(--cd-ease)}.cd-card--interactive:hover{border-color:var(--cd-line-strong);box-shadow:var(--cd-shadow-sm);transform:translateY(-1px)}.cd-card--tint{background:linear-gradient(135deg,#fff 0%,var(--cd-surface-tint) 100%)}
.cd-button{display:inline-flex;min-height:38px;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:var(--cd-radius-pill);padding:0 16px;font:700 13px/1 var(--cd-font-sans);text-decoration:none;white-space:nowrap;cursor:pointer;transition:background var(--cd-speed) var(--cd-ease),border-color var(--cd-speed) var(--cd-ease),box-shadow var(--cd-speed) var(--cd-ease),transform var(--cd-speed) var(--cd-ease)}.cd-button:hover{transform:translateY(-1px)}.cd-button--primary{background:linear-gradient(125deg,#102a50,#195fc2);box-shadow:0 8px 18px rgba(30,86,164,.2);color:#fff}.cd-button--primary:hover{box-shadow:0 11px 23px rgba(30,86,164,.26)}.cd-button--secondary{border-color:var(--cd-line);background:var(--cd-surface);color:var(--cd-ink-soft)}.cd-button--secondary:hover{border-color:var(--cd-line-strong);background:var(--cd-surface-tint)}.cd-button--quiet{background:transparent;color:var(--cd-blue-strong)}.cd-button--danger{background:var(--cd-red);color:#fff}.cd-icon-button{display:inline-grid;width:38px;height:38px;place-items:center;border:1px solid var(--cd-line);border-radius:50%;background:var(--cd-surface);color:var(--cd-ink-soft);cursor:pointer}
.cd-input,.cd-select,.cd-textarea{width:100%;border:1px solid var(--cd-line-strong);border-radius:var(--cd-radius-sm);background:var(--cd-surface);color:var(--cd-ink);font:14px/1.4 var(--cd-font-sans);padding:10px 12px;transition:border-color var(--cd-speed) var(--cd-ease),box-shadow var(--cd-speed) var(--cd-ease)}.cd-input:focus,.cd-select:focus,.cd-textarea:focus{border-color:var(--cd-blue);box-shadow:var(--cd-glow);outline:none}.cd-input::placeholder,.cd-textarea::placeholder{color:var(--cd-text-subtle)}
.cd-badge,.cd-status{display:inline-flex;align-items:center;gap:6px;min-height:25px;border-radius:var(--cd-radius-pill);padding:0 9px;font-size:11px;font-weight:800;line-height:1;white-space:nowrap}.cd-badge{border:1px solid var(--cd-line);background:var(--cd-surface-subtle);color:var(--cd-ink-soft)}.cd-status::before{width:6px;height:6px;border-radius:50%;background:currentColor;content:""}.cd-status--success{background:var(--cd-green-tint);color:#077d66}.cd-status--warning{background:var(--cd-amber-tint);color:#9d6105}.cd-status--danger{background:var(--cd-red-tint);color:#ad3852}.cd-status--info{background:var(--cd-blue-tint);color:#225fb9}.cd-status--neutral{background:#eff3f7;color:#667991}
.cd-metric{padding:var(--cd-space-5)}.cd-metric__label{color:var(--cd-text-subtle);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.cd-metric__value{margin-top:var(--cd-space-2);color:var(--cd-ink);font-size:28px;font-weight:800;letter-spacing:-.045em;font-variant-numeric:tabular-nums}.cd-metric__detail{margin-top:var(--cd-space-2);color:var(--cd-text);font-size:12px;line-height:1.45}
.cd-readiness{--cd-readiness-value:0;position:relative;display:grid;width:132px;aspect-ratio:1;place-items:center;border-radius:50%;background:conic-gradient(var(--cd-cyan) calc(var(--cd-readiness-value) * 1%),var(--cd-blue) 0,#e6eef6 0)}.cd-readiness::before{position:absolute;inset:10px;border-radius:inherit;background:var(--cd-surface);content:""}.cd-readiness__content{position:relative;display:grid;text-align:center}.cd-readiness__value{font-size:27px;font-weight:800;letter-spacing:-.05em;font-variant-numeric:tabular-nums}.cd-readiness__label{margin-top:2px;color:var(--cd-text-subtle);font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.cd-progress{height:7px;overflow:hidden;border-radius:var(--cd-radius-pill);background:#e8eff6}.cd-progress__bar{width:var(--cd-progress,0%);height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--cd-cyan),var(--cd-blue));transition:width 360ms var(--cd-ease)}
.cd-framework-card{display:grid;gap:var(--cd-space-3);min-height:148px;padding:var(--cd-space-4)}.cd-framework-card__top{display:flex;justify-content:space-between;gap:var(--cd-space-3);align-items:center}.cd-framework-card__name{font-size:14px;font-weight:800}.cd-framework-card__score{font-size:22px;font-weight:800;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.cd-framework-card__meta{color:var(--cd-text);font-size:12px}
.cd-finding{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--cd-space-3);align-items:start;padding:var(--cd-space-4)}.cd-finding__severity{width:9px;height:9px;margin-top:5px;border-radius:50%;background:var(--cd-blue)}.cd-finding--critical .cd-finding__severity{background:var(--cd-red)}.cd-finding--high .cd-finding__severity{background:var(--cd-amber)}.cd-finding--low .cd-finding__severity{background:var(--cd-green)}.cd-finding__title{margin:0;color:var(--cd-ink);font-size:14px;font-weight:800}.cd-finding__description{margin:4px 0 0;color:var(--cd-text);font-size:12px;line-height:1.5}
.cd-filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--cd-space-2);padding:var(--cd-space-3);border:1px solid var(--cd-line);border-radius:var(--cd-radius-md);background:rgba(255,255,255,.72)}.cd-filter{border:1px solid transparent;border-radius:var(--cd-radius-pill);background:transparent;color:var(--cd-text);padding:7px 10px;font:700 12px/1 var(--cd-font-sans);cursor:pointer}.cd-filter[aria-selected="true"],.cd-filter.is-active{border-color:#cbdfff;background:var(--cd-blue-tint);color:var(--cd-blue-strong)}
.cd-table-wrap{overflow-x:auto;border:1px solid var(--cd-line);border-radius:var(--cd-radius-md);background:var(--cd-surface)}.cd-table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}.cd-table th{padding:12px 16px;border-bottom:1px solid var(--cd-line);color:var(--cd-text-subtle);background:var(--cd-surface-subtle);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.cd-table td{padding:14px 16px;border-bottom:1px solid var(--cd-line);color:var(--cd-ink-soft)}.cd-table tr:last-child td{border-bottom:0}.cd-table tbody tr{transition:background var(--cd-speed) var(--cd-ease)}.cd-table tbody tr:hover{background:#f6faff}
.cd-alert{display:flex;align-items:flex-start;gap:var(--cd-space-3);padding:var(--cd-space-4);border:1px solid var(--cd-line);border-radius:var(--cd-radius-md);background:var(--cd-surface-tint);color:var(--cd-ink-soft);font-size:13px;line-height:1.5}.cd-alert--warning{border-color:#f0dca5;background:var(--cd-amber-tint)}.cd-alert--danger{border-color:#f3cdd5;background:var(--cd-red-tint)}.cd-empty,.cd-error{display:grid;min-height:170px;place-items:center;padding:var(--cd-space-6);border:1px dashed var(--cd-line-strong);border-radius:var(--cd-radius-md);color:var(--cd-text);text-align:center}.cd-empty__title,.cd-error__title{margin:0 0 6px;color:var(--cd-ink);font-size:15px;font-weight:800}.cd-skeleton{border-radius:var(--cd-radius-xs);background:linear-gradient(90deg,#eef3f8 20%,#f8fbfd 40%,#eef3f8 60%);background-size:220% 100%;animation:cd-shimmer 1.4s linear infinite}.cd-skeleton--text{height:13px}.cd-skeleton--card{min-height:128px}
.cd-modal-backdrop{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:var(--cd-space-4);background:rgba(4,20,42,.34);backdrop-filter:blur(4px)}.cd-modal{width:min(100%,600px);border:1px solid rgba(255,255,255,.65);border-radius:var(--cd-radius-lg);background:var(--cd-surface);box-shadow:var(--cd-shadow-md)}.cd-modal__header,.cd-modal__body,.cd-modal__footer{padding:var(--cd-space-5)}.cd-modal__header{border-bottom:1px solid var(--cd-line)}.cd-modal__footer{display:flex;justify-content:flex-end;gap:var(--cd-space-2);border-top:1px solid var(--cd-line)}.cd-drawer{position:fixed;z-index:90;top:0;right:0;width:min(100%,440px);height:100dvh;padding:var(--cd-space-6);border-left:1px solid var(--cd-line);background:var(--cd-surface);box-shadow:var(--cd-shadow-md)}
@keyframes cd-shimmer{to{background-position:-220% 0}}@media (prefers-reduced-motion:reduce){.cd-ui *,.cd-ui *::before,.cd-ui *::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (max-width:820px){.cd-page{padding:var(--cd-space-5)}.cd-page-header{display:grid}.cd-grid--4,.cd-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:540px){.cd-page{padding:var(--cd-space-4)}.cd-grid--4,.cd-grid--3,.cd-grid--2{grid-template-columns:1fr}.cd-finding{grid-template-columns:auto minmax(0,1fr)}.cd-finding>:last-child{grid-column:2}.cd-modal__header,.cd-modal__body,.cd-modal__footer{padding:var(--cd-space-4)}}
