/* Public directory only; no simulator or shared grid rules. */
.component-library { background:#fff; color:#111; }
.component-library #library-title:focus { outline:none; }
.component-library .ds-topbar nav a { color:#fff; }
.component-library .ds-topbar nav .ds-button { color:#111; }
.cl-main { padding:32px 3.2% 48px; max-width:2000px; margin:auto; }
.cl-hero { display:flex; align-items:center; justify-content:space-between; gap:32px; margin-bottom:26px; }
.cl-eyebrow { font-size:10px; font-weight:700; letter-spacing:2px; color:#0878a8; }
.component-library h1 { font-size:clamp(30px,3.1vw,48px); letter-spacing:-1.6px; line-height:1.2; margin:7px 0 10px; }
.cl-hero p { font-size:15px; color:#333; }
.cl-totals { display:flex; border:1px solid #c7e4f1; border-radius:14px; padding:18px 24px; background:linear-gradient(125deg,#f9fdff,#eaf8ff); box-shadow:0 4px 18px #14749e08; }
.cl-totals>span { display:flex; flex-direction:column; font-size:11px; color:#222; padding:0 22px; }
.cl-totals>span:first-child { padding-left:0; border-right:1px solid #bddce9; }
.cl-totals>span:last-child { padding-right:0; }
.cl-totals strong { color:#047cac; font-size:29px; line-height:1.3; font-variant-numeric:tabular-nums; }
.cl-search { display:flex; align-items:center; gap:14px; background:#f9fcff; padding:8px 8px 8px 20px; border:1px solid #b7dce9; border-radius:12px; box-shadow:0 3px 12px #20597808; margin-bottom:30px; }
.cl-search>.ds-icon { color:#148db5; }
.cl-search input[type=search] { background:transparent; width:100%; min-width:0; padding:9px 0; border:0; color:#111; font-size:15px; }
.cl-search input::placeholder { color:#5a6d77; opacity:1; }
.cl-search:focus-within { border-color:#008dc3; box-shadow:0 0 0 3px #00a9d817; }
.cl-search input:focus-visible { outline:none; }
.cl-search button { display:flex; align-items:center; justify-content:center; flex-shrink:0; gap:15px; padding:12px 22px; border:1px solid #008cc8; border-radius:8px; color:#fff; background:linear-gradient(#05b9e3,#008fd0); font-weight:650; }
.cl-search button:hover { background:#007fae; }
.cl-sr { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.cl-workspace { display:grid; grid-template-columns:235px minmax(0,1fr); gap:30px; align-items:start; }
.cl-sidebar { border:1px solid #d6e7f0; border-radius:12px; overflow:hidden; background:#fbfdff; }
.component-library .cl-sidebar h2 { color:#fff; background:var(--ds-protech-header); padding:16px 18px; font-size:15px; letter-spacing:0; }
.cl-sidebar nav { padding:9px; }
.cl-sidebar nav a { display:flex; align-items:center; gap:10px; padding:11px 8px; border:1px solid transparent; border-radius:8px; font-size:12px; min-height:60px; }
.cl-sidebar nav a:hover { background:#edf8ff; }
.cl-sidebar nav a.active { background:linear-gradient(115deg,#e1f7ff,#effaff); border-color:#a4dbe9; font-weight:650; }
.cl-sidebar nav b { font-size:11px; font-weight:500; margin-left:auto; font-variant-numeric:tabular-nums; }
.cl-sidebar .ds-icon-tile { width:30px; height:30px; flex:0 0 30px; border-radius:8px; }
.cl-sidebar .ds-icon-tile .ds-icon { width:20px; height:20px; }
.cl-sidebar-note { border-top:1px solid #deebf2; margin-top:8px; padding:22px 18px; background:linear-gradient(135deg,#fff,#eff9ff); }
.cl-sidebar-note>.ds-icon-tile { display:flex; margin-bottom:14px; }
.cl-sidebar-note strong { display:block; font-size:12px; }
.cl-sidebar-note p { font-size:12px; color:#424a50; margin-top:8px; line-height:1.7; }
.cl-results { min-width:0; }
.cl-results-header { display:flex; justify-content:space-between; gap:20px; align-items:center; margin:0 0 20px; min-height:52px; }
.component-library .cl-results-header h2 { font-size:22px; overflow-wrap:anywhere; }
.cl-results-header p { color:#4b5962; font-size:12px; margin-top:3px; }
.cl-view-switch { display:flex; flex-shrink:0; padding:4px; border-radius:10px; border:1px solid #bddde9; background:#eef7fc; }
.cl-view-switch a { padding:8px 12px; font-size:12px; font-weight:600; border-radius:6px; display:flex; align-items:center; gap:6px; }
.cl-view-switch a[aria-current=page] { color:#047fae; background:#fff; box-shadow:0 1px 5px #164b7526; }
.cl-view-switch .ds-icon { width:16px; height:16px; }
.cl-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.cl-card { min-width:0; border:1px solid #c7dfe9; border-radius:12px; overflow:hidden; background:#fff; box-shadow:0 3px 14px #2055750b; transition:box-shadow .18s,border-color .18s,transform .18s; }
.cl-card:hover { border-color:#6fc9e9; box-shadow:0 8px 22px #1d658519; transform:translateY(-2px); }
.cl-card:focus-within { outline:3px solid #1689c9; outline-offset:3px; }
.cl-card-link { display:flex; flex-direction:column; height:100%; }
.cl-card-image { position:relative; height:210px; background:radial-gradient(ellipse at 45% 75%,#e0eef8,transparent 70%),#f5f9fc; display:flex; align-items:center; justify-content:center; overflow:hidden; border-bottom:1px solid #deebf1; }
.cl-card-image.rose { background:radial-gradient(ellipse at 45% 75%,#f8e5eb,transparent 70%),#fcf8fa; }
.cl-card-image.teal { background:radial-gradient(ellipse at 45% 75%,#ddf3eb,transparent 70%),#f5fbf9; }
.cl-card-image.violet { background:radial-gradient(ellipse at 45% 75%,#eae5fa,transparent 70%),#faf9ff; }
.cl-card-image.amber { background:radial-gradient(ellipse at 45% 75%,#fff0ce,transparent 70%),#fffcf7; }
.cl-type { position:absolute; top:12px; left:14px; display:flex; align-items:center; gap:6px; font-size:10px; font-weight:600; z-index:1; border:1px solid #d5e4ec; background:#ffffffed; padding:4px 8px; border-radius:6px; }
.cl-type .ds-icon { width:14px; height:14px; color:#0b82b5; }
.cl-card-image img { width:100%; height:100%; object-fit:contain; padding:44px 18px 25px; }
.cl-ready { position:absolute; bottom:10px; right:12px; display:flex; align-items:center; gap:5px; background:#ffffffeb; color:#176746; padding:3px 7px; border:1px solid #bfe7d2; border-radius:5px; font-size:9px; font-weight:600; }
.cl-ready i { width:5px; height:5px; border-radius:50%; background:#1db079; }
.cl-part-placeholder { display:flex; align-items:center; justify-content:center; width:96px; height:96px; border-radius:24px; color:#348bb1; background:linear-gradient(145deg,#ffffffd9,#e2f2fa); box-shadow:inset 0 1px #fff,0 6px 18px #075a8121; border:1px solid #c8e5f1; }
.cl-part-placeholder .ds-icon { width:60px; height:60px; stroke-width:1.15; }
.cl-card-copy { flex:1; padding:19px 19px 20px; }
.component-library .cl-card h3 { font-size:19px; line-height:1.3; overflow-wrap:anywhere; }
.cl-card-copy>p { font-size:12px; line-height:1.65; margin-top:7px; color:#303438; }
.cl-specs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:17px 0 0; padding-top:13px; border-top:1px dashed #c9dfe9; gap:8px; }
.cl-specs dt { font-size:9px; color:#4f5a61; line-height:1.4; }
.cl-specs dd { font-size:14px; font-weight:700; margin:4px 0 0; overflow-wrap:anywhere; }
.cl-card footer { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:13px 18px; font-size:11px; font-weight:650; background:#eaf7ff; color:#06668d; border-top:1px solid #cde4f0; }
.cl-card footer span { display:flex; align-items:center; gap:7px; }
.cl-card footer .ds-icon { width:17px; height:17px; }
.cl-pagination { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:24px 0 0; font-size:12px; }
.cl-pagination>span { color:#455966; }
.cl-pagination>div { display:flex; gap:6px; align-items:center; }
.cl-pagination :is(a,div>span) { padding:8px 11px; border:1px solid #c7e2ec; border-radius:7px; background:#f6fbff; text-align:center; }
.cl-pagination a:hover { background:#e2f5ff; }
.cl-pagination a[aria-current=page] { background:#008fc9; border-color:#008fc9; color:#fff; font-weight:700; }
.cl-pagination [aria-disabled=true] { color:#737e86; background:#f8fafb; }
.cl-pagination .cl-ellipsis { border:0; background:transparent; padding:5px; }
.cl-empty { padding:70px 25px; text-align:center; border:1px dashed #bfdbe7; border-radius:12px; background:#f8fcff; }
.cl-empty>.ds-icon { width:40px; height:40px; color:#3188aa; margin-bottom:16px; }
.cl-empty p { margin:9px 0 20px; color:#3d505c; }
.cl-footer { display:flex; align-items:center; gap:24px; padding:22px 3.2%; border-top:1px solid #cbe4ee; background:#f2faff; font-size:12px; }
.cl-footer span:first-child { font-weight:650; display:flex; gap:8px; align-items:center; }
.cl-footer>a { margin-left:auto; color:#0877a1; }
.cl-footer .ds-icon { width:18px; height:18px; }
@media(min-width:1850px) { .cl-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:1250px) { .cl-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .cl-workspace { grid-template-columns:215px minmax(0,1fr); gap:22px; } .cl-results-header { align-items:flex-start; flex-direction:column; gap:12px; } }
@media(max-width:850px) { .cl-hero { align-items:flex-start; flex-direction:column; gap:20px; } .cl-totals { padding:12px 18px; } .cl-totals strong { font-size:23px; } .cl-workspace { grid-template-columns:1fr; gap:22px; } .cl-sidebar nav { display:flex; flex-wrap:wrap; gap:3px; } .cl-sidebar nav a { min-height:44px; padding:6px 8px; } .cl-sidebar-note { display:none; } .cl-sidebar h2 { display:none; } .cl-sidebar nav b { margin-left:4px; } .cl-sidebar .ds-icon-tile { width:24px; height:24px; flex-basis:24px; } .cl-sidebar .ds-icon { width:17px; height:17px; } .cl-results-header { flex-direction:row; align-items:center; } }
@media(max-width:580px) { .cl-main { padding:24px 16px 30px; } .component-library .ds-brand { font-size:16px; letter-spacing:-.4px; } .component-library .ds-brand-sub { font-size:8px; letter-spacing:1px; } .component-library .ds-topbar { gap:10px; } .component-library .ds-topbar .ds-button { padding:8px; font-size:10px; } .cl-hero p { font-size:13px; } .cl-search { padding-left:12px; gap:8px; margin-bottom:20px; } .cl-search input[type=search] { font-size:12px; } .cl-search button { padding:12px; font-size:12px; gap:0; } .cl-search button .ds-icon { display:none; } .cl-grid { grid-template-columns:1fr; gap:16px; } .cl-card-image { height:220px; } .cl-card-copy { padding:17px; } .cl-card-copy>p { font-size:13px; } .cl-results-header { flex-direction:column; align-items:flex-start; gap:14px; } .cl-view-switch { width:100%; } .cl-view-switch a { flex:1; justify-content:center; } .cl-pagination { flex-direction:column; } .cl-pagination :is(a,div>span) { padding:8px 9px; } .cl-footer { flex-wrap:wrap; padding:20px 16px; gap:10px; } .cl-footer>a { width:100%; margin-left:0; } }
