Files
clawhub/src/styles.css
T
Vyctor H. Brzezowski dc7a0f4de1 fix(home): contain app category scroller on mobile (#3281)
Constrain the mobile app-category strip to the available content width while preserving internal horizontal scrolling. Scope the CSS regression contract to the exact nested mobile rule.
2026-08-03 13:51:44 -03:00

33872 lines
686 KiB
CSS

@import "tailwindcss";
@import "tw-animate-css";
@import "./publisher-profile.css";
@import "@fontsource/bricolage-grotesque/latin.css";
@import "@fontsource/manrope/latin.css";
@import "@fontsource/ibm-plex-mono/latin.css";
@theme {
/* Colors — core palette */
--color-bg: var(--bg);
--color-bg-soft: var(--bg-soft);
--color-surface: var(--surface);
--color-surface-muted: var(--surface-muted);
--color-nav-bg: var(--nav-bg);
--color-ink: var(--ink);
--color-ink-soft: var(--ink-soft);
--color-accent: var(--accent);
--color-accent-fg: var(--accent-fg);
--color-accent-deep: var(--accent-deep);
--color-seafoam: var(--seafoam);
--color-gold: var(--gold);
--color-line: var(--line);
--color-border-ui: var(--border-ui);
--color-border-ui-hover: var(--border-ui-hover);
--color-border-ui-active: var(--border-ui-active);
/* Colors — status */
--color-status-success-bg: var(--status-success-bg);
--color-status-success-fg: var(--status-success-fg);
--color-status-warning-bg: var(--status-warning-bg);
--color-status-warning-fg: var(--status-warning-fg);
--color-status-error-bg: var(--status-error-bg);
--color-status-error-fg: var(--status-error-fg);
/* Colors — form controls */
--color-input-border: var(--input-border);
--color-input-bg: var(--input-bg);
--color-input-placeholder: var(--input-placeholder);
--color-input-focus-border: var(--input-focus-border);
--color-input-focus-ring: var(--input-focus-ring);
--color-label-fg: var(--label-fg);
/* Colors — interactive states */
--color-hover-bg: var(--hover-bg);
--color-active-bg: var(--active-bg);
/* Colors — overlay */
--color-overlay-bg: var(--overlay-bg);
/* Spacing scale */
--spacing-space-1: var(--space-1);
--spacing-space-2: var(--space-2);
--spacing-space-3: var(--space-3);
--spacing-space-4: var(--space-4);
--spacing-space-5: var(--space-5);
--spacing-space-6: var(--space-6);
--spacing-space-7: var(--space-7);
--spacing-space-8: var(--space-8);
/* Typography scale */
--font-size-fs-xs: var(--fs-xs);
--font-size-fs-sm: var(--fs-sm);
--font-size-fs-base: var(--fs-base);
--font-size-fs-md: var(--fs-md);
--font-size-fs-lg: var(--fs-lg);
--font-size-fs-xl: var(--fs-xl);
--font-size-fs-2xl: var(--fs-2xl);
--font-size-fs-3xl: var(--fs-3xl);
/* Radii */
--radius-lg: var(--r-lg);
--radius-md: var(--r-md);
--radius-sm: var(--r-sm);
--radius-pill: var(--r-pill);
/* Fonts */
--font-display: var(--font-display);
--font-body: var(--font-body);
--font-mono: var(--font-mono);
/* Layout widths */
--width-page-max: var(--page-max);
--width-page-narrow: var(--page-narrow);
--width-page-min: var(--page-min);
/* Shadows */
--shadow-default: var(--shadow);
--shadow-dialog: var(--shadow-dialog);
--shadow-hover: var(--shadow-hover);
}
@variant dark (&:where([data-theme-resolved="dark"], [data-theme-resolved="dark"] *));
:root {
color-scheme: dark;
/* Legacy application aliases backed by the canonical design system. */
--bg: var(--oc-bg-page);
--bg-soft: var(--oc-bg-surface);
--bg-glow-1: #101012;
--bg-glow-2: #141416;
--surface: var(--oc-bg-elevated);
--surface-muted: var(--oc-bg-surface);
--nav-bg: var(--oc-bg-page);
--ink: var(--oc-text-primary);
--ink-soft: var(--oc-text-secondary);
--accent: var(--oc-accent-primary);
--accent-fg: var(--oc-text-on-accent);
--accent-deep: var(--oc-accent-primary-hover);
--accent-subtle: var(--oc-surface-accent-soft);
--seafoam: var(--oc-accent-secondary);
--diff-added: var(--oc-diff-added);
--diff-added-strong: var(--oc-diff-added-strong);
--diff-removed: var(--oc-diff-removed);
--diff-removed-strong: var(--oc-diff-removed-strong);
--diff-diagonal: #a1a1a118;
--diff-border: rgba(255, 255, 255, 0.1);
--diff-line-number: #6b6b6b;
--diff-scrollbar-rgb: 161, 161, 161;
--gold: #fbbf24;
--line: var(--oc-border-subtle);
--border-ui: var(--oc-border-subtle);
--border-ui-hover: color-mix(in srgb, var(--oc-text-primary) 20%, transparent);
--border-ui-active: var(--oc-border-accent);
--shadow: var(--oc-shadow-md);
/* Status colors — subtle, polished */
--status-success-bg: var(--oc-status-success-bg);
--status-success-fg: var(--oc-status-success-fg);
--status-warning-bg: var(--oc-status-warning-bg);
--status-warning-fg: var(--oc-status-warning-fg);
--status-error-bg: var(--oc-status-error-bg);
--status-error-fg: var(--oc-status-error-fg);
--official-bg: var(--oc-status-info-bg);
--official-fg: var(--oc-status-info-fg);
--official-border: color-mix(in srgb, var(--oc-status-info-fg) 30%, var(--oc-border-subtle));
/* Form controls — crisp, modern */
--input-border: var(--oc-input-border);
--input-bg: var(--oc-input-bg);
--input-placeholder: var(--oc-input-placeholder);
--input-focus-border: var(--oc-input-focus-border);
--input-focus-ring: var(--oc-input-focus-ring);
--label-fg: var(--oc-text-secondary);
/* Interactive states */
--hover-bg: var(--oc-surface-interactive);
--active-bg: var(--oc-surface-accent-soft);
/* Overlay */
--overlay-bg: var(--oc-surface-overlay);
/* Shadows — refined depth */
--shadow-dialog: var(--oc-shadow-lg);
--shadow-hover: var(--oc-shadow-md);
--shadow-card: var(--oc-shadow-sm);
/* Layout widths */
--page-max: 1536px;
--page-narrow: 900px;
--page-min: 320px;
--site-header-height: calc(52px + 24px);
/* Spacing scale */
--space-1: var(--oc-space-1);
--space-2: var(--oc-space-2);
--space-3: var(--oc-space-3);
--space-4: var(--oc-space-4);
--space-5: var(--oc-space-5);
--space-6: var(--oc-space-6);
--space-7: var(--oc-space-7);
--space-8: var(--oc-space-8);
/* Typography scale — refined */
--fs-xs: var(--oc-font-size-xs);
--fs-sm: var(--oc-font-size-sm);
--fs-base: var(--oc-font-size-base);
--fs-md: var(--oc-font-size-md);
--fs-lg: var(--oc-font-size-lg);
--fs-xl: var(--oc-font-size-xl);
--fs-2xl: var(--oc-font-size-2xl);
--fs-3xl: var(--oc-font-size-3xl);
/* Unified radius — one consistent size everywhere */
--r-lg: var(--oc-radius-surface);
--r-md: var(--oc-radius-surface);
--r-sm: var(--oc-radius-control);
--r-xs: var(--oc-radius-inset);
--r-pill: var(--oc-radius-control);
/* Modern typography — clean and readable */
--font-display: var(--oc-font-display);
--font-body: var(--oc-font-body);
--font-mono: var(--oc-font-mono);
/* Metric trend sparklines */
--metric-trend-line: color-mix(in srgb, #8eb8e8 78%, var(--ink));
--metric-trend-area: color-mix(in srgb, #8eb8e8 20%, transparent);
--metric-trend-marker: color-mix(in srgb, #8eb8e8 42%, transparent);
}
/* Light theme — OpenClaw black, white, red */
[data-theme-family="claw"][data-theme-resolved="light"] {
color-scheme: light;
--bg: var(--oc-bg-page);
--bg-soft: var(--oc-bg-surface);
--surface: var(--oc-bg-elevated);
--surface-muted: var(--oc-bg-surface);
--nav-bg: var(--oc-bg-page);
--ink: var(--oc-text-primary);
--ink-soft: var(--oc-text-secondary);
--accent: var(--oc-accent-primary);
--accent-fg: var(--oc-text-on-accent);
--accent-deep: var(--oc-accent-primary-hover);
--accent-subtle: var(--oc-surface-accent-soft);
--line: var(--oc-border-subtle);
--border-ui: var(--oc-border-subtle);
--border-ui-hover: color-mix(in srgb, var(--oc-text-primary) 20%, transparent);
--border-ui-active: var(--oc-border-accent);
/* Status colors — light */
--status-success-bg: var(--oc-status-success-bg);
--status-success-fg: var(--oc-status-success-fg);
--status-warning-bg: var(--oc-status-warning-bg);
--status-warning-fg: var(--oc-status-warning-fg);
--status-error-bg: var(--oc-status-error-bg);
--status-error-fg: var(--oc-status-error-fg);
--official-bg: var(--oc-status-info-bg);
--official-fg: var(--oc-status-info-fg);
--official-border: color-mix(in srgb, var(--oc-status-info-fg) 26%, var(--oc-border-subtle));
/* Form controls — light */
--input-border: var(--oc-input-border);
--input-bg: var(--oc-input-bg);
--input-placeholder: var(--oc-input-placeholder);
--input-focus-border: var(--oc-input-focus-border);
--input-focus-ring: var(--oc-input-focus-ring);
--label-fg: var(--oc-text-secondary);
/* Interactive states — light */
--hover-bg: var(--oc-surface-interactive);
--active-bg: var(--oc-surface-accent-soft);
/* Overlay — light */
--overlay-bg: var(--oc-surface-overlay);
/* Shadows — light */
--shadow: var(--oc-shadow-md);
--shadow-dialog: var(--oc-shadow-lg);
--shadow-hover: var(--oc-shadow-md);
--shadow-card: var(--oc-shadow-sm);
/* Metric trend sparklines */
--metric-trend-line: color-mix(in srgb, #4a7fd0 84%, var(--ink));
--metric-trend-area: color-mix(in srgb, #4a7fd0 14%, transparent);
--metric-trend-marker: color-mix(in srgb, #4a7fd0 30%, transparent);
/* Diff viewer — muted, readable in light mode */
--diff-added: #16a34a;
--diff-added-strong: #15803d;
--diff-removed: #e57373;
--diff-removed-strong: #dc2626;
--diff-diagonal: #5252520a;
--diff-border: rgba(0, 0, 0, 0.08);
--diff-line-number: #9ca3af;
--diff-scrollbar-rgb: 115, 115, 115;
}
@media (prefers-color-scheme: light) {
[data-theme-family="claw"][data-theme-mode="system"] {
color-scheme: light;
--bg: var(--oc-bg-page);
--bg-soft: var(--oc-bg-surface);
--surface: var(--oc-bg-elevated);
--surface-muted: var(--oc-bg-surface);
--nav-bg: var(--oc-bg-page);
--ink: var(--oc-text-primary);
--ink-soft: var(--oc-text-secondary);
--accent: var(--oc-accent-primary);
--accent-fg: var(--oc-text-on-accent);
--accent-deep: var(--oc-accent-primary-hover);
--accent-subtle: var(--oc-surface-accent-soft);
--line: var(--oc-border-subtle);
--border-ui: var(--oc-border-subtle);
--border-ui-hover: color-mix(in srgb, var(--oc-text-primary) 20%, transparent);
--border-ui-active: var(--oc-border-accent);
/* Status colors — light */
--status-success-bg: var(--oc-status-success-bg);
--status-success-fg: var(--oc-status-success-fg);
--status-warning-bg: var(--oc-status-warning-bg);
--status-warning-fg: var(--oc-status-warning-fg);
--status-error-bg: var(--oc-status-error-bg);
--status-error-fg: var(--oc-status-error-fg);
--official-bg: var(--oc-status-info-bg);
--official-fg: var(--oc-status-info-fg);
--official-border: color-mix(in srgb, var(--oc-status-info-fg) 26%, var(--oc-border-subtle));
/* Form controls — light */
--input-border: var(--oc-input-border);
--input-bg: var(--oc-input-bg);
--input-placeholder: var(--oc-input-placeholder);
--input-focus-border: var(--oc-input-focus-border);
--input-focus-ring: var(--oc-input-focus-ring);
--label-fg: var(--oc-text-secondary);
/* Interactive states — light */
--hover-bg: var(--oc-surface-interactive);
--active-bg: var(--oc-surface-accent-soft);
/* Overlay — light */
--overlay-bg: var(--oc-surface-overlay);
/* Shadows — light */
--shadow: var(--oc-shadow-md);
--shadow-dialog: var(--oc-shadow-lg);
--shadow-hover: var(--oc-shadow-md);
--shadow-card: var(--oc-shadow-sm);
/* Metric trend sparklines */
--metric-trend-line: color-mix(in srgb, #4a7fd0 84%, var(--ink));
--metric-trend-area: color-mix(in srgb, #4a7fd0 14%, transparent);
--metric-trend-marker: color-mix(in srgb, #4a7fd0 30%, transparent);
/* Diff viewer — muted, readable in light mode */
--diff-added: #16a34a;
--diff-added-strong: #15803d;
--diff-removed: #e57373;
--diff-removed-strong: #dc2626;
--diff-diagonal: #5252520a;
--diff-border: rgba(0, 0, 0, 0.08);
--diff-line-number: #9ca3af;
--diff-scrollbar-rgb: 115, 115, 115;
}
}
pre,
code,
.code-block {
font-size: 14px;
}
* {
box-sizing: border-box;
}
body {
margin: 0;
font-family: var(--font-body);
color: var(--ink);
background: var(--bg);
min-height: 100vh;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-size: var(--fs-base);
letter-spacing: -0.01em;
}
html {
scrollbar-gutter: stable;
}
[data-sonner-toast][data-styled="true"] .clawhub-toast-close {
top: 50% !important;
right: 14px !important;
left: auto !important;
width: 24px !important;
height: 24px !important;
border: 0 !important;
border-radius: var(--oc-radius-control) !important;
background: transparent !important;
color: var(--oc-text-muted) !important;
transform: translateY(-50%) !important;
}
[data-sonner-toast][data-styled="true"] .clawhub-toast-close:hover {
background: var(--oc-surface-interactive) !important;
color: var(--oc-text-primary) !important;
}
[data-sonner-toast][data-styled="true"] .clawhub-toast-close:focus-visible {
background: var(--oc-surface-interactive) !important;
box-shadow: 0 0 0 2px var(--oc-focus-ring) !important;
color: var(--oc-text-primary) !important;
}
/*
* Radix UI (react-remove-scroll) locks body scroll when a dropdown/dialog/popover
* opens and, to prevent the scrollbar from disappearing visibly, injects a
* dynamic stylesheet that sets `padding-right: <scrollbar-width>px !important`
* on `body[data-scroll-locked]`. We already reserve a stable scrollbar gutter
* globally via `scrollbar-gutter: stable` on <html>, so Radix's compensation is
* double-work and ends up shifting the whole page ~15px to the left for the
* duration the overlay is open — producing a visible horizontal "jump".
*
* We neutralize the compensation, but Radix's rule *also* uses `!important`
* and is injected into <head> at runtime (i.e. after our stylesheet), so a
* plain `body[data-scroll-locked]` selector would tie on specificity and lose
* on source order. We therefore prefix `html` to raise specificity (0,1,2 vs
* Radix's 0,1,1), guaranteeing we win regardless of inject order.
*/
html body[data-scroll-locked] {
padding-right: 0 !important;
margin-right: 0 !important;
}
a {
color: inherit;
text-decoration: none;
}
a:hover {
color: inherit;
text-decoration: underline;
text-underline-offset: 2px;
}
a.card:hover,
a.skill-card:hover,
a.skill-list-item:hover,
a.home-quick-link:hover,
a.home-category-card:hover,
a.home-v2-c-card:hover,
a.home-v2-cat-item:hover,
a.home-v2-trend-card:hover,
a.dashboard-import-banner-action:hover {
text-decoration: none;
}
.settings-sidebar-link:hover {
text-decoration: none;
}
.settings-org-logo .marketplace-icon {
width: 100%;
height: 100%;
border-radius: inherit;
}
/* Global focus indicator for keyboard navigation */
:focus-visible {
outline: 2px solid var(--accent);
outline-offset: 2px;
border-radius: 2px;
}
.catalog-topic-input:focus-visible {
outline: none;
}
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border-width: 0;
}
code {
font-family: var(--font-mono);
}
.app-shell {
position: relative;
min-width: var(--page-min);
min-height: 100vh;
display: flex;
flex-direction: column;
}
.app-shell:has(
.skill-detail-page,
.plugin-detail-page,
.security-audit-page,
.publisher-profile-route,
.dashboard-route
)::before {
position: absolute;
top: 0;
right: 0;
left: 0;
z-index: 0;
pointer-events: none;
content: "";
height: 620px;
background:
radial-gradient(
ellipse 58% 34% at 48% 0%,
color-mix(in srgb, #8f1d24 18%, transparent) 0%,
transparent 62%
),
radial-gradient(
ellipse 44% 26% at 28% 8%,
color-mix(in srgb, #d34848 8%, transparent) 0%,
transparent 68%
);
}
.app-shell:has(.dashboard-route)::before {
height: 520px;
background:
radial-gradient(
ellipse 52% 30% at 52% 0%,
color-mix(in srgb, #6478ff 7%, transparent) 0%,
transparent 64%
),
radial-gradient(
ellipse 42% 24% at 30% 6%,
color-mix(in srgb, var(--ink) 5%, transparent) 0%,
transparent 68%
);
}
.app-shell:has(.dashboard-route--welcome)::before {
height: 640px;
background:
radial-gradient(
ellipse 52% 40% at 46% 2%,
color-mix(in srgb, #6472c9 8%, transparent) 0%,
transparent 72%
),
radial-gradient(
ellipse 40% 32% at 68% 12%,
color-mix(in srgb, #53618f 5%, transparent) 0%,
transparent 74%
),
radial-gradient(
ellipse 36% 28% at 26% 18%,
color-mix(in srgb, #7180b5 4%, transparent) 0%,
transparent 76%
);
filter: blur(26px);
opacity: 0.86;
transform: translate3d(-1%, -1%, 0) scale(1.1);
transform-origin: 50% 12%;
animation: dashboard-welcome-wash-drift 36s linear infinite;
will-change: transform;
}
.app-shell:has(.dashboard-route--welcome) {
overflow-x: clip;
}
@keyframes dashboard-welcome-wash-drift {
0% {
transform: translate3d(-1%, -1%, 0) scale(1.1);
}
25% {
transform: translate3d(1%, -0.5%, 0) scale(1.12);
}
50% {
transform: translate3d(1%, 1%, 0) scale(1.1);
}
75% {
transform: translate3d(-1%, 0.5%, 0) scale(1.12);
}
100% {
transform: translate3d(-1%, -1%, 0) scale(1.1);
}
}
@media (prefers-reduced-motion: reduce) {
.app-shell:has(.dashboard-route--welcome)::before {
animation: none;
}
}
[data-theme-resolved="light"]
.app-shell:has(
.skill-detail-page,
.plugin-detail-page,
.security-audit-page,
.publisher-profile-route,
.dashboard-route
)::before {
display: none;
}
.app-shell:has(
.skill-detail-page,
.plugin-detail-page,
.security-audit-page,
.publisher-profile-route,
.dashboard-route
)
.navbar.navbar-calm {
background: transparent;
}
.app-shell:has(
.skill-detail-page,
.plugin-detail-page,
.security-audit-page,
.publisher-profile-route,
.dashboard-route
)
.navbar.navbar-calm.navbar-calm-scrolled {
background: color-mix(in srgb, var(--nav-bg) 78%, transparent);
}
.app-shell main {
position: relative;
flex: 1;
padding-bottom: clamp(72px, 9vw, 128px);
}
.site-footer {
padding: var(--space-3) var(--space-5);
margin-top: auto;
background: var(--surface);
border-top: 1px solid var(--line);
}
.site-footer-inner {
width: 100%;
padding: 0 var(--space-5);
}
.site-footer-divider {
height: 1px;
background: var(--line);
margin: var(--space-5) 0;
}
.site-footer-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 24px;
flex-wrap: wrap;
}
.site-footer-copy {
font-size: var(--fs-sm);
color: var(--ink-soft);
text-align: center;
flex: 1;
}
.site-footer-copy a {
color: var(--accent);
text-decoration: none;
font-weight: 500;
transition: opacity 0.15s ease;
}
.site-footer-copy a:hover {
opacity: 0.8;
}
.section-cta {
display: flex;
justify-content: flex-end;
margin-top: 18px;
}
.navbar {
position: sticky;
top: 0;
z-index: 10;
background: var(--nav-bg);
border-bottom: 1px solid var(--line);
}
.app-shell:has(
.skill-detail-page,
.plugin-detail-page,
.security-audit-page,
.publisher-profile-route,
.dashboard-route
)
.navbar {
border-bottom: 0;
}
.navbar-inner {
width: 100%;
max-width: var(--page-max);
margin: 0 auto;
padding: 0 var(--space-5);
display: flex;
flex-direction: column;
gap: 0;
box-sizing: border-box;
}
.navbar-top {
display: grid;
grid-template-columns: max-content max-content minmax(220px, 1fr) auto;
align-items: center;
column-gap: 16px;
row-gap: 10px;
padding: 12px 0;
min-height: 62px;
}
.navbar-search {
width: 100%;
max-width: none;
display: flex;
align-items: center;
gap: 12px;
background: color-mix(in srgb, var(--surface) 92%, transparent);
border: 1px solid var(--line);
border-radius: var(--r-btn);
padding: 0 18px;
height: 32px;
transition:
border-color 0.15s ease,
box-shadow 0.15s ease,
background 0.15s ease;
}
.navbar-search-wrap {
position: relative;
min-width: 0;
}
.navbar-search:focus-within {
border-color: var(--input-focus-border);
background: var(--surface);
box-shadow: 0 0 0 2px var(--input-focus-ring);
}
.navbar-search-icon {
color: var(--ink-soft);
opacity: 0.6;
flex-shrink: 0;
width: 20px;
height: 20px;
transition:
color 0.15s ease,
opacity 0.15s ease;
}
.navbar-search:focus-within .navbar-search-icon {
color: var(--accent);
opacity: 1;
}
.navbar-search-input {
all: unset;
flex: 1;
font-size: 0.95rem;
color: var(--ink);
min-width: 0;
}
.navbar-search-input::-webkit-search-cancel-button,
.navbar-search-input::-webkit-search-decoration {
display: none;
-webkit-appearance: none;
}
.navbar-search-input::placeholder {
color: var(--ink-soft);
font-size: 0.86rem;
opacity: 0.7;
}
.navbar-search-typeahead {
position: absolute;
z-index: 50;
top: calc(100% + 8px);
left: 0;
right: 0;
overflow: hidden;
border: 1px solid var(--line);
border-radius: var(--r-md);
background: var(--surface);
box-shadow: var(--oc-shadow-lg);
}
.navbar-search-typeahead-section + .navbar-search-typeahead-section {
border-top: 1px solid var(--line);
}
.navbar-search-typeahead-heading {
padding: 8px 12px;
background: var(--surface-muted);
color: var(--ink);
font-size: var(--fs-sm);
font-weight: 700;
}
.navbar-search-typeahead-row {
all: unset;
box-sizing: border-box;
display: flex;
align-items: center;
gap: 10px;
width: 100%;
min-height: 44px;
padding: 8px 12px;
border-top: 1px solid var(--line);
color: var(--ink);
cursor: pointer;
}
.navbar-search-typeahead-row:hover,
.navbar-search-typeahead-row.is-active {
background: var(--surface-muted);
}
.navbar-search-typeahead-row.is-footer {
color: var(--ink-soft);
}
.navbar-search-typeahead-icon {
display: inline-flex;
align-items: center;
justify-content: center;
width: 24px;
height: 24px;
border-radius: var(--oc-radius-inset);
background: var(--oc-surface-accent-soft);
color: var(--accent);
font-size: var(--fs-xs);
font-weight: 700;
flex: 0 0 auto;
}
.navbar-search-typeahead-copy {
display: flex;
flex-direction: column;
min-width: 0;
flex: 1;
}
.navbar-search-typeahead-title,
.navbar-search-typeahead-meta {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.navbar-search-typeahead-title {
font-size: var(--fs-sm);
font-weight: 600;
}
.navbar-search-typeahead-meta {
color: var(--ink-soft);
font-size: var(--fs-xs);
}
.navbar-search-typeahead-meta:has(.navbar-search-typeahead-publisher) {
display: inline-flex;
align-items: center;
gap: 5px;
min-width: 0;
}
.navbar-search-typeahead-publisher,
.navbar-search-typeahead-package {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.navbar-search-typeahead-separator {
flex: 0 0 auto;
}
.navbar-search-typeahead-meta .official-badge {
width: 15px;
height: 15px;
border: 0;
background: transparent;
}
.navbar-search-typeahead-meta .official-badge svg {
width: 13px;
height: 13px;
}
.navbar-search-typeahead-status {
padding: 12px;
color: var(--ink-soft);
font-size: var(--fs-sm);
}
.navbar-search-home {
justify-content: space-between;
cursor: pointer;
color: var(--ink-soft);
font: inherit;
}
.navbar-search-home-copy {
flex: 1;
min-width: 0;
text-align: left;
color: inherit;
}
.navbar-search-home-kbd {
font-size: 0.75rem;
font-weight: 600;
color: inherit;
opacity: 0.8;
}
.navbar-search-mobile-trigger {
display: none;
align-items: center;
justify-content: center;
width: 36px;
height: 36px;
border-radius: var(--r-pill);
border: 1px solid var(--line);
background: var(--surface);
cursor: pointer;
color: var(--ink-soft);
transition: border-color 0.15s ease;
}
.navbar-search-mobile-trigger:hover {
border-color: var(--border-ui-hover);
color: var(--ink);
}
.navbar-search-mobile {
display: none;
align-items: center;
gap: 8px;
background: var(--surface-muted);
border: 1px solid var(--line);
border-radius: var(--r-pill);
padding: 0 14px;
height: 36px;
margin-bottom: 8px;
}
.navbar-search-mobile-wrap {
display: none;
position: relative;
}
.navbar-search-mobile-overlay {
display: none;
}
.navbar-search-mobile-clear {
appearance: none;
display: inline-flex;
align-items: center;
justify-content: center;
flex: 0 0 auto;
width: auto;
height: 100%;
padding: 0;
border: 0;
background: transparent;
color: color-mix(in srgb, var(--ink) 74%, var(--ink-soft));
font: inherit;
font-size: 0.8125rem;
font-weight: 650;
cursor: pointer;
}
.navbar-search-mobile-clear:hover {
color: color-mix(in srgb, var(--ink) 88%, var(--ink-soft));
}
.navbar-tabs {
display: flex;
align-items: center;
justify-content: flex-start;
gap: 4px;
overflow-x: auto;
scrollbar-width: none;
-ms-overflow-style: none;
border-top: 1px solid var(--line);
padding: 6px 0;
}
.navbar-tabs::-webkit-scrollbar {
display: none;
}
.navbar-top-links {
display: inline-flex;
align-items: center;
justify-content: flex-start;
gap: 4px;
min-width: 0;
white-space: nowrap;
}
.navbar-top-links .navbar-tab {
min-height: 32px;
padding: 7px 10px;
}
.navbar-tabs-primary,
.navbar-tabs-secondary {
display: inline-flex;
align-items: center;
gap: 2px;
}
.navbar-tabs-secondary {
margin-left: 8px;
padding-left: 12px;
border-left: 1px solid var(--line);
}
.navbar-tab {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 10px 16px;
font-size: var(--fs-sm);
font-weight: 500;
color: var(--ink-soft);
border-radius: var(--r-sm);
white-space: nowrap;
transition: all 0.15s ease;
text-decoration: none;
}
.navbar-tab:hover {
color: var(--ink);
background: var(--surface-muted);
text-decoration: none;
}
.navbar-tab:hover svg {
opacity: 0.9;
}
.navbar-tab.active,
.navbar-tab[data-status="active"] {
color: var(--ink);
font-weight: 600;
background: color-mix(in srgb, var(--accent) 16%, transparent);
text-decoration: none;
}
.navbar-tab.active svg,
.navbar-tab[data-status="active"] svg {
opacity: 1;
color: var(--accent);
}
.navbar-tab-secondary {
font-size: var(--fs-xs);
opacity: 0.7;
}
.navbar-tab-secondary:hover {
opacity: 1;
}
.navbar-tab-secondary.active,
.navbar-tab-secondary[data-status="active"] {
opacity: 1;
}
.brand {
font-family: var(--font-display);
font-size: var(--fs-md);
font-weight: 700;
letter-spacing: -0.02em;
display: flex;
align-items: center;
gap: 10px;
color: var(--ink);
min-width: 0;
line-height: 1;
}
.brand-name {
display: inline-flex;
min-width: 6.5ch;
}
.brand-mark {
width: 32px;
height: 32px;
border-radius: var(--r-sm);
display: grid;
place-items: center;
overflow: hidden;
background: transparent;
box-shadow:
inset 0 0 0 1px color-mix(in srgb, var(--ink) 8%, transparent),
0 1px 2px rgba(0, 0, 0, 0.1),
0 2px 6px rgba(0, 0, 0, 0.05);
transition: box-shadow 0.2s ease;
}
.brand-mark img {
width: 100%;
height: 100%;
object-fit: cover;
border-radius: var(--r-sm);
transform: translateZ(0);
}
.nav-links {
display: flex;
gap: 2px;
font-size: 0.9rem;
color: var(--ink-soft);
align-items: center;
}
.nav-links a {
padding: 7px 12px;
border-radius: var(--r-sm);
transition:
color 0.15s ease,
background 0.15s ease;
white-space: nowrap;
}
.nav-links a:hover {
color: var(--ink);
background: color-mix(in srgb, var(--ink) 6%, transparent);
}
.nav-links a.active,
.nav-links a[data-status="active"] {
color: var(--ink);
font-weight: 600;
background: color-mix(in srgb, var(--ink) 7%, transparent);
}
.nav-mobile {
display: none;
}
.mobile-nav-sheet {
width: min(86vw, 320px);
}
.mobile-nav-section {
display: grid;
gap: 8px;
}
.mobile-nav-section + .mobile-nav-section {
padding-top: 12px;
border-top: 1px solid var(--line);
}
.mobile-nav-appearance-section {
justify-items: start;
}
.mobile-nav-appearance-section .navbar-theme-switcher {
--navbar-theme-seg: 34px;
justify-content: flex-start;
gap: var(--navbar-theme-gap);
width: var(--navbar-theme-expanded-w);
}
.mobile-nav-appearance-section .navbar-theme-switcher-btn:not(.is-active) {
max-width: var(--navbar-theme-seg);
opacity: 1;
pointer-events: auto;
}
.mobile-nav-appearance-section
.navbar-theme-switcher:not(:hover):not(:focus-within)
.navbar-theme-switcher-btn:not(.is-active) {
max-width: var(--navbar-theme-seg);
opacity: 1;
pointer-events: auto;
}
.mobile-nav-section-title {
font-size: var(--fs-xs);
font-weight: 600;
letter-spacing: 0.06em;
text-transform: uppercase;
color: var(--ink-soft);
}
.mobile-nav-brand {
display: inline-flex;
align-items: center;
gap: 10px;
}
.mobile-nav-brand-mark {
width: 28px;
height: 28px;
border-radius: var(--r-sm);
display: grid;
place-items: center;
overflow: hidden;
background: transparent;
box-shadow:
inset 0 0 0 1px color-mix(in srgb, var(--ink) 8%, transparent),
0 1px 2px rgba(0, 0, 0, 0.08);
flex-shrink: 0;
}
.mobile-nav-brand-mark-image {
width: 32px;
height: 32px;
object-fit: cover;
border-radius: 0;
transform: translateZ(0);
flex: 0 0 auto;
}
.mobile-nav-brand-name {
display: inline-flex;
min-width: 0;
}
.mobile-nav-link {
display: inline-flex;
align-items: center;
gap: 10px;
min-height: 44px;
padding: 10px 12px;
border-radius: var(--r-sm);
color: var(--ink);
text-decoration: none;
background: transparent;
border: 1px solid transparent;
text-align: left;
cursor: pointer;
}
.mobile-nav-link:hover {
background: var(--hover-bg);
border-color: var(--line);
text-decoration: none;
}
.mobile-nav-link-external {
margin-left: auto;
color: var(--oc-text-muted);
}
.nav-mobile-trigger {
position: relative;
width: 38px;
height: 38px;
border-radius: var(--r-pill);
border: 1px solid var(--line);
background: var(--surface);
display: grid;
place-items: center;
cursor: pointer;
transition:
transform 0.2s ease,
box-shadow 0.2s ease;
}
.nav-mobile-trigger::after {
content: "";
position: absolute;
inset: -3px;
border-radius: var(--r-pill);
}
.nav-mobile-trigger:hover {
transform: translateY(-1px);
box-shadow: 0 10px 18px rgba(255, 255, 255, 0.18);
}
.nav-mobile-trigger:focus-visible {
outline: 3px solid rgba(255, 255, 255, 0.35);
outline-offset: 3px;
}
.nav-actions {
display: flex;
gap: 14px;
align-items: center;
justify-self: end;
min-width: 0;
}
.github-sign-in-button {
height: 32px !important;
min-height: 32px !important;
padding: 0 12px !important;
gap: 8px !important;
border-color: var(--border-ui) !important;
background: transparent !important;
color: var(--ink) !important;
font-size: 0.86rem !important;
font-weight: 650 !important;
line-height: 1 !important;
box-shadow: none !important;
}
.github-sign-in-button:hover:not(:disabled) {
border-color: color-mix(in srgb, var(--ink) 24%, var(--border-ui)) !important;
background: var(--surface-muted) !important;
color: var(--ink) !important;
}
.github-sign-in-button .github-sign-in-logo {
width: 18px;
height: 18px;
}
.auth-loading-placeholder {
display: inline-flex;
width: 150px;
border: 1px solid var(--border-ui) !important;
border-radius: var(--r-btn);
background: var(--surface-muted) !important;
pointer-events: none;
opacity: 0.45;
}
.sign-in-full-copy {
display: inline-block;
white-space: nowrap;
}
.sign-in-compact-copy {
display: none;
}
.user-trigger {
display: inline-flex;
align-items: center;
gap: 8px;
height: 32px;
border: 1px solid var(--line);
background: var(--surface);
padding: 0 10px 0 4px;
border-radius: var(--r-btn);
cursor: pointer;
min-width: 0;
overflow: hidden;
transition:
border-color 0.15s ease,
box-shadow 0.15s ease;
}
.user-trigger:hover {
border-color: color-mix(in srgb, var(--ink) 20%, var(--line));
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
.user-trigger img,
.user-menu-fallback {
width: 24px;
height: 24px;
border-radius: 50%;
display: grid;
place-items: center;
background: rgba(255, 255, 255, 0.2);
color: var(--accent-deep);
font-weight: 700;
font-size: 0.95rem;
}
.user-trigger-handle {
font-family: var(--font-body);
font-size: var(--fs-sm);
font-weight: 600;
letter-spacing: 0;
}
.user-menu-chevron {
color: var(--ink-soft);
flex-shrink: 0;
width: 16px;
height: 16px;
}
.user-dropdown-content {
overflow: hidden;
border-radius: var(--r-md) !important;
background-clip: padding-box;
}
/* Remove global link underline and focus outline from user dropdown items */
.user-dropdown-content a,
.user-dropdown-content a:hover {
text-decoration: none;
}
.user-dropdown-content [data-slot="dropdown-menu-item"]:focus-visible {
outline: none;
}
[data-theme-resolved="light"]
.user-dropdown-content
[data-slot="dropdown-menu-item"]:not(.user-dropdown-theme-button):where(
:hover,
:focus,
[data-highlighted]
) {
background: var(--hover-bg);
}
.user-dropdown-theme-row {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 4px;
}
.user-dropdown-theme-button {
min-width: 0;
justify-content: center;
padding-inline: 0;
}
.user-dropdown-theme-button[data-status="active"] {
background: color-mix(in srgb, var(--accent) 12%, transparent);
color: var(--ink);
}
.navbar-theme-switcher {
--navbar-theme-ease: cubic-bezier(0.4, 0, 0.2, 1);
--navbar-theme-pad: 3px;
--navbar-theme-gap: 2px;
--navbar-theme-outer-r: var(--oc-radius-control);
--navbar-theme-inner-r: var(--oc-radius-inset);
--navbar-theme-seg: 26px;
--navbar-theme-collapsed-w: calc(var(--navbar-theme-seg) + var(--navbar-theme-pad) * 2);
--navbar-theme-expanded-w: calc(
var(--navbar-theme-seg) * 3 + var(--navbar-theme-gap) * 2 + var(--navbar-theme-pad) * 2
);
box-sizing: border-box;
display: inline-flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
gap: 0;
width: var(--navbar-theme-collapsed-w);
height: var(--navbar-theme-collapsed-w);
padding: var(--navbar-theme-pad);
border: 1px solid color-mix(in srgb, var(--ink) 10%, transparent);
border-radius: var(--navbar-theme-outer-r);
background: color-mix(in srgb, var(--surface) 95%, transparent);
overflow: hidden;
transition:
width 0.22s var(--navbar-theme-ease),
gap 0.22s var(--navbar-theme-ease),
border-color 0.18s ease,
background 0.18s ease;
}
.navbar-theme-switcher-skeleton {
display: inline-flex;
flex: 0 0 auto;
width: 32px;
height: 32px;
border: 1px solid color-mix(in srgb, var(--ink) 8%, transparent);
border-radius: var(--oc-radius-control);
background: linear-gradient(
90deg,
color-mix(in srgb, var(--surface-muted) 78%, transparent),
color-mix(in srgb, var(--line) 64%, transparent),
color-mix(in srgb, var(--surface-muted) 78%, transparent)
);
background-size: 220% 100%;
animation: skeleton-shimmer 1.15s ease-in-out infinite;
pointer-events: none;
}
.navbar-theme-switcher-btn {
display: inline-flex;
align-items: center;
justify-content: center;
flex: 0 0 auto;
width: var(--navbar-theme-seg);
min-width: 0;
max-width: var(--navbar-theme-seg);
height: var(--navbar-theme-seg);
padding: 0;
border: none;
border-radius: var(--navbar-theme-inner-r);
background: transparent;
color: var(--ink-soft);
cursor: pointer;
overflow: hidden;
transition:
max-width 0.22s var(--navbar-theme-ease),
opacity 0.18s var(--navbar-theme-ease),
color 0.15s ease,
background 0.15s ease;
}
.navbar-theme-switcher-btn svg {
flex-shrink: 0;
}
.navbar-theme-switcher-btn.is-active {
color: var(--ink);
background: color-mix(in srgb, var(--ink) 10%, transparent);
opacity: 1;
}
.navbar-theme-switcher:hover,
.navbar-theme-switcher:focus-within {
justify-content: flex-start;
gap: var(--navbar-theme-gap);
width: var(--navbar-theme-expanded-w);
border-color: color-mix(in srgb, var(--ink) 16%, transparent);
background: var(--surface-muted);
}
.navbar-theme-switcher-btn:hover,
.navbar-theme-switcher-btn:focus-visible {
color: var(--ink);
background: color-mix(in srgb, var(--ink) 8%, transparent);
}
.navbar-theme-switcher-btn.is-active:hover,
.navbar-theme-switcher-btn.is-active:focus-visible {
background: color-mix(in srgb, var(--ink) 14%, transparent);
}
.navbar-theme-switcher-btn:focus-visible {
outline: 2px solid var(--input-focus-border);
outline-offset: 1px;
}
@media (hover: hover) {
.navbar-theme-switcher:not(:hover):not(:focus-within) .navbar-theme-switcher-btn:not(.is-active) {
max-width: 0;
opacity: 0;
pointer-events: none;
}
.navbar-theme-switcher:hover .navbar-theme-switcher-btn:not(.is-active),
.navbar-theme-switcher:focus-within .navbar-theme-switcher-btn:not(.is-active) {
max-width: var(--navbar-theme-seg);
opacity: 1;
}
}
@media (hover: none) {
.navbar-theme-switcher {
justify-content: flex-start;
gap: var(--navbar-theme-gap);
width: var(--navbar-theme-expanded-w);
}
.navbar-theme-switcher-btn:not(.is-active) {
max-width: var(--navbar-theme-seg);
opacity: 1;
pointer-events: auto;
}
}
@media (prefers-reduced-motion: reduce) {
.navbar-theme-switcher,
.navbar-theme-switcher-btn {
transition-duration: 0.01ms;
}
.navbar-theme-switcher-skeleton {
animation: none;
}
}
/* @deprecated — use <Button> from components/ui/button.tsx */
.btn {
border: 1px solid var(--border-ui);
padding: 10px 16px;
border-radius: var(--r-md);
background: var(--surface);
font-family: var(--font-body);
font-weight: 500;
font-size: var(--fs-sm);
color: var(--ink);
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
white-space: nowrap;
cursor: pointer;
min-height: 36px;
transition: all 0.15s ease;
}
.btn:hover {
border-color: var(--border-ui-hover);
background: var(--hover-bg);
transform: translateY(-1px);
}
.btn:disabled {
cursor: not-allowed;
opacity: 0.5;
transform: none;
}
.btn-primary {
background: var(--accent);
color: var(--accent-fg);
border: 1px solid var(--accent);
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}
.btn-primary:hover {
background: var(--accent-deep);
border-color: var(--accent-deep);
box-shadow: 0 4px 12px rgba(220, 38, 38, 0.3);
}
.hero {
position: relative;
overflow: hidden;
padding: 72px 28px 56px;
}
.hero-inner {
max-width: var(--page-max);
margin: 0 auto;
display: grid;
grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
gap: 40px;
align-items: center;
transition:
grid-template-columns 0.45s cubic-bezier(0.2, 0.9, 0.2, 1),
gap 0.45s cubic-bezier(0.2, 0.9, 0.2, 1);
}
.hero-copy {
max-height: 640px;
overflow: hidden;
min-width: 0;
transition:
opacity 0.35s ease,
transform 0.35s ease,
max-height 0.35s ease;
}
.hero.search-mode .hero-inner {
grid-template-columns: 0fr minmax(0, 1fr);
gap: 0px;
}
.hero.search-mode .hero-copy {
opacity: 0;
transform: translateY(-12px);
max-height: 0;
pointer-events: none;
}
.hero-title {
font-family: var(--font-display);
font-size: clamp(2.6rem, 4vw, 4rem);
letter-spacing: -0.03em;
margin-bottom: 16px;
}
.hero-subtitle {
font-size: 1.1rem;
color: var(--ink-soft);
line-height: 1.6;
}
.hero-card {
background: var(--bg-soft);
border-radius: var(--r-lg);
padding: 24px;
box-shadow: var(--shadow);
border: 1px solid var(--line);
}
.hero-search-card {
transition:
transform 0.35s ease,
box-shadow 0.35s ease;
}
.hero.search-mode .hero-search-card {
transform: scale(1.01);
box-shadow: 0 22px 46px rgba(29, 26, 23, 0.16);
}
.hero-badge {
display: inline-flex;
align-items: center;
gap: 8px;
background: rgba(255, 255, 255, 0.12);
color: var(--accent-deep);
border-radius: var(--r-pill);
padding: 6px 12px;
font-weight: 600;
font-size: 0.85rem;
}
.section {
width: 100%;
max-width: var(--page-max);
margin: 0 auto;
padding: var(--space-5) var(--space-5) var(--space-7);
box-sizing: border-box;
}
.section.detail-page-section {
max-width: 1296px;
padding-right: 48px;
padding-left: 48px;
padding-top: calc(var(--space-5) + 16px);
}
.section.detail-page-section:is(.skill-detail-page, .plugin-detail-page) {
padding-top: calc(var(--space-5) + clamp(20px, 2.2vw, 32px));
}
@media (max-width: 768px) {
.section.detail-page-section {
padding-right: 20px;
padding-left: 20px;
}
}
.security-scanner-layout {
display: grid;
width: 100%;
grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
gap: var(--space-5);
}
.security-scan-hero {
display: grid;
gap: 30px;
min-width: 0;
padding: 8px 0 clamp(24px, 4vw, 44px);
}
.security-audit-eyebrow {
margin: 0;
color: var(--ink-soft);
font-size: 0.72rem;
font-weight: 700;
letter-spacing: 0.12em;
line-height: 1.2;
text-transform: uppercase;
}
.security-scan-hero-heading {
display: grid;
width: 100%;
gap: 10px;
min-width: 0;
}
.security-scan-hero-title-row {
display: flex;
width: 100%;
align-items: center;
gap: 12px;
min-width: 0;
}
.security-audit-sidebar-actions {
width: 100%;
}
.security-audit-sidebar-action-status {
width: 100%;
}
.security-scan-hero-subtext {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 12px;
min-width: 0;
margin: 0;
color: var(--ink-soft);
font-size: var(--fs-md);
line-height: 1.4;
}
.security-scan-hero-subtext span:last-child {
min-width: 0;
}
.security-report-section {
max-width: 1360px;
padding-top: clamp(20px, 3vw, 40px);
}
.security-report-shell {
display: grid;
gap: 20px;
}
.security-report-layout {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(260px, 340px);
gap: clamp(28px, 5vw, 72px);
align-items: start;
}
.security-report-main {
min-width: 0;
display: grid;
gap: clamp(40px, 5vw, 56px);
}
.security-report-header {
display: grid;
gap: 18px;
padding-bottom: 22px;
border-bottom: 1px solid var(--line);
}
.security-report-heading {
min-width: 0;
display: grid;
gap: 10px;
}
.security-report-badges {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.security-report-heading h1 {
margin: 0;
font-family: var(--font-display);
font-size: clamp(2.6rem, 5.2vw, 4.5rem);
line-height: 1.05;
font-weight: 800;
color: var(--ink);
}
.security-report-verdict-line {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 12px;
max-width: 820px;
color: var(--ink-soft);
font-size: 0.98rem;
line-height: 1.55;
}
.security-report-verdict-line span:last-child {
min-width: 0;
}
.security-report-overview-body {
display: grid;
gap: 14px;
max-width: 980px;
}
.security-report-overview-body p {
margin: 0;
color: var(--ink-soft);
font-size: 0.95rem;
line-height: 1.55;
}
.security-report-panel {
display: grid;
gap: 28px;
}
.security-report-panel-compact {
gap: 12px;
}
.security-report-panel-body .agentic-risk-findings > .scan-findings-title {
margin: 0;
font-family: var(--font-display);
font-size: 1.35rem;
line-height: 1.15;
color: var(--ink);
text-transform: none;
letter-spacing: 0;
}
.security-report-panel-header {
padding-bottom: 12px;
border-bottom: 1px solid var(--line);
}
.security-report-panel-header .skill-install-panel-title {
font-size: var(--font-size-fs-xl);
line-height: 1.15;
font-weight: 760;
}
.security-report-panel-title-row {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 8px;
min-width: 0;
}
.skillspector-attribution {
display: inline-flex;
align-items: center;
gap: 6px;
color: var(--ink-soft);
font-size: 0.72rem;
font-weight: 650;
line-height: 1;
text-transform: none;
}
.skillspector-nvidia-mark {
width: 16px;
height: 16px;
object-fit: contain;
border-radius: 3px;
}
.skillspector-findings-block {
display: grid;
gap: 18px;
}
.skillspector-checks {
display: grid;
gap: 10px;
margin-top: 28px;
}
.skillspector-findings-block + .skillspector-checks {
margin-top: 44px;
}
.skillspector-checks + .skillspector-findings-block {
margin-top: 44px;
}
.skillspector-subsection-title {
color: var(--ink);
font-size: 1.1rem;
font-weight: 720;
line-height: 1.25;
}
.skillspector-checks-list {
display: grid;
gap: 0;
margin: 0;
padding: 0;
list-style: none;
}
.skillspector-check-row {
display: grid;
align-items: center;
grid-template-columns: 24px minmax(170px, max-content) minmax(0, 1fr);
gap: 10px 14px;
padding: 8px 0;
}
.skillspector-check-row-flagged .skillspector-check-category {
color: var(--ink);
}
.skillspector-check-icon {
width: 18px;
height: 18px;
align-self: center;
color: var(--status-success-fg);
stroke-width: 2.2;
}
.skillspector-check-icon-flagged {
color: var(--status-warning-fg);
}
.skillspector-check-icon-unknown {
color: var(--ink-soft);
}
.skillspector-check-category {
color: var(--ink);
font-size: 0.95rem;
font-weight: 650;
line-height: 1.35;
}
.skillspector-check-patterns {
color: var(--ink-soft);
font-size: 14px;
line-height: 1.35;
}
.skillspector-checks-toggle {
width: fit-content;
border: 0;
background: transparent;
padding: 4px 0;
color: var(--ink);
font-size: 0.88rem;
font-weight: 700;
line-height: 1.3;
cursor: pointer;
}
.skillspector-checks-toggle:hover,
.skillspector-checks-toggle:focus-visible {
color: var(--accent);
outline: none;
}
@media (max-width: 720px) {
.skillspector-check-row {
align-items: center;
grid-template-columns: 24px minmax(0, 1fr);
gap: 4px 12px;
}
.skillspector-check-patterns {
grid-column: 2;
}
}
.security-report-title-info-link {
display: inline-flex;
align-items: center;
justify-content: center;
width: 24px;
height: 24px;
border: 1px solid transparent;
border-radius: 999px;
color: var(--ink-soft);
text-decoration: none;
transition:
border-color 0.16s ease,
color 0.16s ease,
background-color 0.16s ease;
}
.security-report-title-info-link:hover,
.security-report-title-info-link:focus-visible {
border-color: transparent;
background: transparent;
color: var(--ink);
outline: none;
}
.security-report-title-tooltip {
max-width: 320px;
line-height: 1.45;
}
.security-audit-scanner-header {
display: flex;
align-items: center;
justify-content: flex-start;
flex-wrap: wrap;
gap: 10px 12px;
}
.security-report-panel-body .clawscan-risk-review {
gap: 26px;
margin-top: 0;
}
.security-report-panel-body-findings {
padding-top: 12px;
}
.security-report-panel-body .clawscan-scope-note {
display: none;
}
.security-report-panel-body .clawscan-risk-buckets {
grid-template-columns: 1fr;
gap: 14px;
}
.security-report-panel-body .clawscan-risk-bucket {
padding: 16px 20px;
}
.security-report-panel-body .agentic-risk-findings {
gap: 40px;
}
.security-report-panel-body .agentic-risk-finding-groups {
display: grid;
gap: 32px;
}
.security-report-panel-body .agentic-risk-finding-group {
display: grid;
gap: 14px;
}
.security-report-panel-body .agentic-risk-finding-group-header {
display: grid;
gap: 6px;
}
.security-report-panel-body .agentic-risk-finding-group-header .clawscan-risk-bucket-label {
font-family: var(--font-display);
font-size: 1.05rem;
line-height: 1.2;
}
.security-report-panel-body .agentic-risk-finding-group-header p {
margin: 0;
max-width: 980px;
color: var(--ink-soft);
font-size: 0.88rem;
line-height: 1.5;
}
.security-report-sidebar {
min-width: 0;
display: grid;
gap: 14px;
color: var(--ink);
}
.security-scanner-skeleton,
.security-scanner-skeleton * {
min-width: 0;
}
.security-scanner-skeleton .security-scan-hero {
padding-top: 0;
}
.security-report-skeleton-panel {
gap: 18px;
}
.security-report-skeleton-sidebar {
align-self: start;
}
.security-report-sidebar .sidebar-metadata-compact > .sidebar-metadata-grid:first-child {
min-height: auto;
}
.security-report-sidebar .sidebar-metadata-row-inline {
padding-block: 12px;
}
.security-report-sidebar .sidebar-metadata-grid .sidebar-metadata-row-inline {
flex-wrap: wrap;
row-gap: 4px;
}
@media (max-width: 640px) {
.security-report-sidebar .sidebar-metadata-grid {
grid-template-columns: 1fr;
gap: 0;
}
.security-report-sidebar .sidebar-metadata-grid .sidebar-metadata-row + .sidebar-metadata-row {
padding-left: 0;
}
}
.security-report-badge-list {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.security-audit-empty-detail {
margin: 0;
color: var(--ink-soft);
font-size: 0.92rem;
line-height: 1.55;
}
.security-audit-external-link {
display: inline-flex;
align-items: center;
gap: 6px;
width: fit-content;
margin-top: 18px;
color: var(--ink);
font-size: 0.88rem;
font-weight: 720;
text-decoration: none;
}
.security-audit-external-link:hover,
.security-audit-external-link:focus-visible {
color: var(--ink);
text-decoration: underline;
text-underline-offset: 3px;
}
.vt-advisory-finding {
display: grid;
max-width: 980px;
}
.vt-advisory-finding p {
margin: 0;
color: var(--ink-soft);
font-size: 0.95rem;
line-height: 1.55;
}
.static-analysis-findings {
display: grid;
gap: 32px;
}
.static-analysis-finding {
display: grid;
gap: 18px;
}
.static-analysis-finding:not(:last-child) {
padding-bottom: 32px;
border-bottom: 1px solid var(--line);
}
.static-analysis-finding-header {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 12px;
}
.static-analysis-finding-header h3 {
margin: 0;
}
.static-analysis-finding-details {
display: grid;
gap: 0;
margin: 0;
}
.static-analysis-finding-details > div {
display: grid;
align-items: center;
grid-template-columns: minmax(140px, 190px) minmax(0, 1fr);
gap: clamp(18px, 3.5vw, 52px);
padding: 12px 0;
border-bottom: 1px solid var(--line);
}
.static-analysis-finding-details > div:last-child {
border-bottom: 0;
padding-bottom: 0;
}
.static-analysis-finding-details dt {
color: var(--ink);
font-size: 0.86rem;
font-weight: 680;
line-height: 1.35;
}
.static-analysis-finding-details dd {
min-width: 0;
margin: 0;
color: var(--ink-soft);
font-size: 0.88rem;
line-height: 1.55;
}
@media (max-width: 1100px) {
.security-report-layout {
grid-template-columns: 1fr;
gap: 32px;
}
.security-report-sidebar {
order: -1;
position: static;
padding: 0 0 20px;
border-bottom: 1px solid var(--line);
}
.security-report-metadata {
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 18px 24px;
}
.security-report-panel-body .clawscan-risk-buckets {
grid-template-columns: 1fr;
}
.static-analysis-finding-details > div {
grid-template-columns: 1fr;
gap: 8px;
}
.security-report-skeleton-layout {
gap: 26px;
}
.security-report-skeleton-sidebar {
padding: 0 0 18px;
}
}
@media (max-width: 760px) {
.security-audit-scanner-header {
align-items: center;
}
.security-report-sidebar {
padding: 22px 0;
}
.security-report-metadata {
grid-template-columns: 1fr;
}
.security-audit-page-skeleton .security-report-main {
gap: 30px;
}
.security-report-skeleton-panel {
gap: 14px;
}
}
.upload-shell {
position: relative;
}
.upload-page {
position: relative;
}
.upload-page::before {
content: "";
position: absolute;
inset: -80px 0 auto;
height: 220px;
pointer-events: none;
background:
radial-gradient(circle at 22% 40%, rgba(255, 118, 84, 0.14), transparent 58%),
radial-gradient(circle at 78% 0%, rgba(255, 177, 136, 0.08), transparent 45%);
}
.upload-page-header {
display: flex;
justify-content: space-between;
align-items: flex-end;
gap: 16px;
margin-bottom: 18px;
}
.upload-page-title {
margin: 0;
font-family: var(--font-display);
font-size: clamp(1.9rem, 3.2vw, 2.7rem);
letter-spacing: -0.03em;
}
.upload-page-subtitle {
margin: 8px 0 0;
max-width: 640px;
color: var(--ink-soft);
line-height: 1.6;
}
.upload-page .upload-grid {
grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
gap: 18px;
}
.upload-panel {
border-radius: calc(var(--r-md) + 2px);
border-color: rgba(255, 118, 84, 0.22);
background:
linear-gradient(180deg, rgba(255, 255, 255, 0.76), rgba(255, 249, 245, 0.66)), var(--surface);
box-shadow:
0 18px 44px rgba(16, 10, 6, 0.08),
inset 0 1px 0 rgba(255, 255, 255, 0.48);
gap: 10px;
}
.upload-panel-title {
margin: 0 0 6px;
font-family: var(--font-display);
font-size: 1.16rem;
letter-spacing: -0.01em;
}
/* @deprecated — use <Label> from components/ui/label.tsx */
.form-label {
font-size: 0.74rem;
letter-spacing: 0.14em;
text-transform: uppercase;
color: rgba(70, 95, 113, 0.9);
font-weight: 700;
}
/* @deprecated — use <Input> from components/ui/input.tsx */
.form-input {
width: 100%;
box-sizing: border-box;
border: 1px solid rgba(29, 59, 78, 0.22);
border-radius: var(--r-sm);
padding: 13px 14px;
min-height: 44px;
color: var(--ink);
background: rgba(255, 255, 255, 0.94);
transition:
border-color 0.18s ease,
box-shadow 0.18s ease,
background 0.18s ease;
}
.form-input::placeholder {
color: rgba(88, 115, 133, 0.72);
}
.form-input:focus {
outline: none;
border-color: color-mix(in srgb, var(--accent) 70%, white);
box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);
}
.form-input#changelog {
min-height: 146px;
resize: vertical;
}
.upload-dropzone {
border: 1.5px dashed rgba(255, 118, 84, 0.5);
border-radius: calc(var(--r-md) + 1px);
padding: 14px;
background: linear-gradient(145deg, rgba(255, 245, 239, 0.85), rgba(255, 255, 255, 0.72));
cursor: pointer;
transition:
border-color 0.18s ease,
box-shadow 0.18s ease,
transform 0.18s ease;
}
.upload-dropzone:hover {
border-color: rgba(229, 94, 60, 0.68);
box-shadow: 0 16px 30px rgba(255, 118, 84, 0.15);
transform: translateY(-1px);
}
.upload-dropzone.is-dragging {
border-color: rgba(229, 94, 60, 0.92);
box-shadow:
0 18px 38px rgba(255, 118, 84, 0.28),
0 0 0 3px rgba(255, 118, 84, 0.18);
background: linear-gradient(145deg, rgba(255, 238, 228, 0.95), rgba(255, 248, 244, 0.92));
}
.upload-file-input {
position: absolute;
width: 1px;
height: 1px;
opacity: 0;
pointer-events: none;
}
.upload-dropzone-copy {
display: grid;
gap: 10px;
}
.plugin-dropzone-art {
width: 52px;
height: 52px;
border-radius: 16px;
display: grid;
place-items: center;
color: #999999;
background: linear-gradient(145deg, rgba(255, 255, 255, 0.92), rgba(255, 231, 220, 0.88));
border: 1px solid rgba(255, 118, 84, 0.22);
margin-bottom: 12px;
}
.upload-dropzone-title-row {
display: flex;
justify-content: space-between;
gap: 10px;
align-items: baseline;
}
.upload-dropzone-title-row strong {
font-family: var(--font-display);
letter-spacing: -0.015em;
font-size: 1.02rem;
}
.upload-dropzone-count {
font-family: var(--font-mono);
color: var(--ink-soft);
font-size: 0.8rem;
}
.upload-dropzone-hint {
color: var(--ink-soft);
font-size: 0.9rem;
}
.upload-picker-btn {
justify-content: center;
border-radius: var(--r-sm);
border: 1px solid rgba(255, 118, 84, 0.4);
background: linear-gradient(140deg, rgba(255, 255, 255, 0.92), rgba(255, 245, 238, 0.88));
color: #999999;
font-weight: 700;
width: fit-content;
padding-inline: 14px;
}
.upload-picker-btn:hover {
border-color: rgba(229, 94, 60, 0.72);
box-shadow: 0 10px 20px rgba(255, 118, 84, 0.18);
}
.plugin-dropzone-actions {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.plugin-dropzone-secondary {
background: transparent;
color: var(--ink);
}
.plugin-publish-form {
transition:
opacity 0.18s ease,
filter 0.18s ease,
border-color 0.18s ease,
box-shadow 0.18s ease;
}
.plugin-publish-form.is-locked {
opacity: 0.58;
filter: saturate(0.75);
}
.plugin-publish-lock-note {
font-size: 0.9rem;
color: var(--ink-soft);
}
.plugin-publish-lock-note.is-ready {
color: #818181;
font-weight: 700;
}
.plugin-publish-form.is-locked .plugin-publish-lock-note {
color: var(--ink);
font-weight: 600;
}
.publish-empty-main {
min-height: clamp(660px, 62vh, 1090px);
padding-top: 34px;
padding-bottom: 0;
}
.publish-empty-container {
display: flex;
width: 901px;
max-width: 100%;
flex-direction: column;
align-items: flex-start;
gap: 24px;
}
.publish-empty-header {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
width: 100%;
align-items: center;
column-gap: 0;
}
.publish-empty-heading {
display: flex;
min-width: 0;
flex-direction: column;
align-items: flex-start;
gap: 6px;
}
.publish-empty-heading h1,
.publish-empty-heading p {
margin: 0;
}
.publish-empty-upload-card {
display: flex;
height: 260px;
width: 100%;
flex-direction: column;
align-items: flex-start;
gap: 12px;
margin-bottom: 0;
padding: 20px;
border-color: color-mix(in srgb, var(--oc-text-primary) 10%, transparent);
background: color-mix(in srgb, var(--oc-bg-elevated) 82%, transparent);
}
.publish-empty-dropzone {
min-height: 0;
flex: 1 1 auto;
align-self: stretch;
justify-content: center;
gap: 12px;
padding: 36px 28px;
border-color: color-mix(in srgb, var(--oc-text-primary) 12%, transparent);
background: color-mix(in srgb, var(--oc-bg-surface) 44%, transparent);
}
.publish-empty-dropzone[data-dragging="true"] {
border-color: color-mix(in srgb, var(--oc-accent-primary) 72%, transparent);
background: color-mix(in srgb, var(--oc-accent-primary) 6%, var(--oc-bg-surface));
}
.publish-empty-actions {
align-self: center;
justify-self: end;
}
.publish-empty-container > form {
width: 100%;
}
.publish-empty-skill-form > .publish-empty-upload-card ~ * {
display: none;
}
.publish-empty-upload-content {
min-height: 0;
width: 100%;
flex: 1 1 auto;
align-self: stretch;
gap: 0;
}
.publish-skill-main {
padding-block: 40px 128px;
}
.publish-skill-header {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
gap: var(--oc-space-4);
margin-bottom: var(--oc-space-5);
}
.publish-skill-heading {
display: flex;
min-width: 0;
flex-direction: column;
gap: var(--oc-space-1);
}
.publish-skill-heading h1,
.publish-skill-heading p {
margin: 0;
}
.publish-skill-actions {
justify-self: end;
}
.publish-skill-files {
border-radius: var(--oc-radius-surface);
}
.publish-skill-files-header {
min-height: 66px;
padding: var(--oc-space-4);
}
.publish-skill-files-body {
margin-top: 0;
border-radius: 0;
background: var(--oc-bg-elevated);
}
.publish-skill-file-row {
min-height: 40px;
border-radius: var(--oc-radius-inset);
background: color-mix(in srgb, var(--oc-bg-surface) 84%, var(--oc-bg-elevated));
}
.publish-skill-section {
padding: var(--oc-space-5);
}
.publish-skill-section-content {
gap: var(--oc-space-5);
}
.publish-skill-primary-grid {
row-gap: var(--oc-space-5);
}
.publish-skill-metadata textarea {
min-height: 100px;
resize: vertical;
}
.publish-skill-metadata
.catalog-metadata-fields[data-presentation="publish"]
.catalog-metadata-field:first-child
.catalog-metadata-field-header {
display: grid;
grid-template-columns: auto auto minmax(0, 1fr);
align-items: center;
column-gap: var(--oc-space-2);
}
.publish-skill-metadata
.catalog-metadata-fields[data-presentation="publish"]
.catalog-metadata-field:first-child
.catalog-metadata-field-actions {
display: contents;
}
.publish-skill-metadata
.catalog-metadata-fields[data-presentation="publish"]
.catalog-metadata-field:first-child
.catalog-metadata-field-actions
> button {
grid-column: 3;
justify-self: end;
}
.publish-skill-metadata
.catalog-metadata-fields[data-presentation="publish"]
.catalog-metadata-field:first-child
.catalog-metadata-field-actions
> span {
grid-column: 2;
grid-row: 1;
}
.publish-skill-license-acceptance {
min-height: 44px;
align-items: center;
border-radius: var(--oc-radius-inset);
background: var(--oc-bg-surface);
}
.publish-skill-license-acceptance input {
margin-top: 0;
}
@media (max-width: 640px) {
.publish-skill-main {
padding-block: 24px 80px;
}
.publish-skill-header {
grid-template-columns: 1fr;
align-items: flex-start;
margin-bottom: var(--oc-space-5);
}
.publish-skill-actions {
justify-self: start;
}
.publish-skill-section {
padding: var(--oc-space-4);
}
.publish-skill-submit {
align-items: stretch;
flex-direction: column;
}
.publish-skill-submit > button {
width: 100%;
}
.publish-empty-main {
min-height: 560px;
padding-top: 24px;
}
.publish-empty-container {
width: 100%;
gap: 20px;
}
.publish-empty-header {
grid-template-columns: 1fr;
align-items: flex-start;
row-gap: 16px;
}
.publish-empty-upload-card {
height: 248px;
padding: 16px;
}
.publish-empty-dropzone {
padding: 28px 20px;
}
.publish-empty-actions {
align-self: flex-start;
justify-self: start;
}
}
.skill-publish-share-list {
display: flex;
flex-direction: column;
align-items: center;
gap: 0;
min-width: 0;
padding-inline: 4px;
}
.publish-field-group {
display: grid;
gap: 8px;
}
.publish-field-label-row {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 12px;
color: var(--ink);
}
.publish-field-label-row > span {
flex: 0 0 auto;
color: var(--ink-soft);
font-size: 0.8rem;
}
.publish-field-help {
margin: 0;
color: var(--ink-soft);
font-size: 0.86rem;
line-height: 1.45;
}
.plugin-upload-summary {
border-top: 1px solid rgba(255, 118, 84, 0.16);
padding-top: 12px;
display: grid;
gap: 10px;
}
.plugin-upload-summary.is-ready {
border-radius: 16px;
padding: 14px;
border: 1px solid rgba(43, 198, 164, 0.24);
background: linear-gradient(135deg, rgba(43, 198, 164, 0.08), rgba(255, 255, 255, 0.6));
}
.plugin-upload-summary-row {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 12px;
}
.plugin-upload-summary-row strong {
font-family: var(--font-display);
letter-spacing: -0.015em;
}
.plugin-upload-summary-copy {
color: var(--ink-soft);
font-size: 0.92rem;
}
.plugin-upload-summary.is-ready .plugin-upload-summary-copy {
color: var(--ink);
}
.plugin-upload-summary-tags {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.upload-file-list {
border-top: 1px solid rgba(255, 118, 84, 0.16);
padding-top: 10px;
max-height: 248px;
overflow: auto;
display: grid;
gap: 6px;
}
.upload-file-row {
font-family: var(--font-mono);
font-size: 0.79rem;
line-height: 1.45;
border-radius: 10px;
border: 1px solid rgba(255, 118, 84, 0.18);
background: rgba(255, 255, 255, 0.55);
padding: 6px 9px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.validation-list {
margin: 0;
padding-left: 18px;
display: grid;
gap: 5px;
color: var(--ink-soft);
line-height: 1.45;
}
.upload-submit-row {
grid-column: 1 / -1;
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
border-radius: var(--r-md);
border: 1px solid rgba(255, 118, 84, 0.24);
background:
linear-gradient(120deg, rgba(255, 243, 236, 0.74), rgba(255, 255, 255, 0.76)), var(--surface);
box-shadow:
0 16px 34px rgba(16, 10, 6, 0.08),
inset 0 1px 0 rgba(255, 255, 255, 0.5);
padding: 12px 14px;
}
.upload-submit-notes {
display: grid;
gap: 6px;
}
.upload-submit-btn {
border-radius: var(--r-sm);
min-width: min(210px, 100%);
justify-content: center;
padding: 12px 22px;
font-size: 0.96rem;
box-shadow:
0 10px 22px rgba(229, 94, 60, 0.26),
inset 0 1px 0 rgba(255, 214, 198, 0.42);
}
.upload-license-card {
display: grid;
gap: 10px;
padding: 14px;
border-radius: 16px;
border: 1px solid rgba(255, 118, 84, 0.2);
background: rgba(255, 249, 245, 0.72);
}
.upload-license-pill {
width: fit-content;
padding: 6px 12px;
border-radius: var(--r-pill);
background: rgba(255, 255, 255, 0.16);
color: var(--accent-deep);
font-size: 0.78rem;
font-weight: 700;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.upload-license-copy {
margin: 0;
color: var(--ink-soft);
line-height: 1.55;
}
.upload-license-check {
display: flex;
align-items: flex-start;
gap: 10px;
color: var(--ink);
line-height: 1.45;
}
.upload-license-check input {
margin-top: 3px;
}
.upload-submit-btn:not(:disabled):hover {
transform: translateY(-1px);
box-shadow:
0 16px 28px rgba(229, 94, 60, 0.32),
inset 0 1px 0 rgba(255, 214, 198, 0.52);
}
.error {
color: #999999;
font-weight: 600;
}
.upload-header {
display: flex;
align-items: flex-end;
justify-content: space-between;
gap: 24px;
margin-bottom: 28px;
}
.upload-kicker {
display: inline-flex;
align-items: center;
gap: 8px;
font-weight: 600;
color: var(--accent-deep);
text-transform: uppercase;
letter-spacing: 0.16em;
font-size: 0.7rem;
}
.upload-title {
font-family: var(--font-display);
font-size: clamp(2.2rem, 3.5vw, 3rem);
letter-spacing: -0.03em;
margin: 8px 0 10px;
}
.upload-subtitle {
color: var(--ink-soft);
max-width: 560px;
line-height: 1.6;
margin: 0;
}
.upload-badge {
background: var(--surface-muted);
color: #999999;
border-radius: var(--r-pill);
padding: 12px 18px;
font-weight: 700;
box-shadow: 0 12px 24px rgba(255, 255, 255, 0.18);
text-align: center;
display: flex;
flex-direction: column;
gap: 4px;
}
.upload-badge-sub {
font-size: 0.7rem;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.upload-card {
background: linear-gradient(180deg, var(--surface) 0%, var(--surface-muted) 100%);
border-radius: calc(var(--r-lg) + 2px);
border: 1px solid color-mix(in srgb, var(--accent) 20%, transparent);
padding: 24px;
box-shadow: 0 24px 60px rgba(17, 36, 47, 0.14);
display: flex;
flex-direction: column;
gap: 24px;
}
.upload-grid {
display: grid;
grid-template-columns: minmax(0, 1.1fr) minmax(260px, 0.7fr);
gap: 28px;
}
.upload-fields {
display: grid;
gap: 14px;
}
.upload-field {
display: grid;
gap: 10px;
font-weight: 600;
}
.upload-field-header {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 12px;
}
.upload-field span {
font-size: 0.9rem;
color: var(--ink-soft);
}
.upload-field-hint {
font-size: 0.82rem;
color: rgba(74, 103, 121, 0.82);
font-weight: 500;
}
.upload-input {
border: 1px solid rgba(30, 57, 74, 0.2);
border-radius: var(--r-md);
padding: 12px 14px;
background: #141414;
box-shadow:
inset 0 0 0 1px rgba(255, 255, 255, 0.85),
inset 0 1px 6px rgba(255, 255, 255, 0.08);
}
.upload-input:focus {
border-color: rgba(255, 255, 255, 0.6);
box-shadow:
0 0 0 2px rgba(255, 255, 255, 0.2),
inset 0 0 0 1px rgba(255, 255, 255, 0.8);
}
.upload-row {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
gap: 16px;
}
.upload-side {
display: grid;
gap: 16px;
align-content: start;
}
.dropzone {
border: 2px dashed rgba(255, 255, 255, 0.5);
border-radius: 16px;
padding: 20px;
background: var(--surface);
display: grid;
gap: 12px;
text-align: center;
cursor: pointer;
transition:
transform 0.2s ease,
box-shadow 0.2s ease,
border-color 0.2s ease;
}
.dropzone:hover {
transform: translateY(-2px);
box-shadow: 0 18px 30px rgba(255, 255, 255, 0.15);
}
.dropzone.is-dragging {
border-color: var(--accent);
box-shadow: 0 20px 40px rgba(255, 255, 255, 0.25);
background: var(--surface-muted);
}
.dropzone-icon {
width: 54px;
height: 54px;
border-radius: 16px;
margin: 0 auto;
display: grid;
place-items: center;
font-size: 1.4rem;
background: var(--ink-soft);
color: white;
box-shadow: inset 0 0 0 3px rgba(255, 255, 255, 0.4);
}
.dropzone-input {
display: none;
}
.dropzone-button {
all: unset;
display: grid;
gap: 12px;
text-align: center;
cursor: pointer;
width: 100%;
height: 100%;
}
.dropzone-button:focus-visible {
outline: 3px solid rgba(255, 255, 255, 0.35);
outline-offset: 6px;
border-radius: 18px;
}
.upload-summary {
border-radius: var(--r-md);
background: rgba(255, 255, 255, 0.7);
border: 1px solid rgba(29, 26, 23, 0.08);
padding: 16px;
display: grid;
gap: 10px;
font-size: 0.9rem;
}
.upload-requirement {
padding: 6px 12px;
border-radius: var(--r-pill);
background: rgba(255, 255, 255, 0.12);
color: #999999;
font-weight: 600;
width: fit-content;
}
.upload-requirement.ok {
background: rgba(43, 198, 164, 0.18);
color: #818181;
}
.upload-filelist {
display: grid;
gap: 6px;
max-height: 220px;
overflow: auto;
}
.upload-filelist .upload-file {
display: flex;
align-items: center;
gap: 12px;
font-size: 0.85rem;
color: var(--ink-soft);
}
.upload-file span:first-child {
flex: 1;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.upload-remove {
border: none;
background: transparent;
color: var(--accent-deep);
font-weight: 600;
cursor: pointer;
}
.upload-remove:hover {
text-decoration: underline;
}
.upload-more {
font-size: 0.8rem;
color: var(--ink-soft);
}
.upload-muted {
color: var(--ink-soft);
margin: 0;
}
.upload-notes {
background: #141414;
border: 1px solid rgba(255, 255, 255, 0.12);
border-radius: var(--r-md);
padding: 18px;
font-size: 0.85rem;
color: var(--ink-soft);
}
.upload-notes ul {
padding-left: 18px;
margin: 8px 0 0;
display: grid;
gap: 6px;
}
.upload-footer {
display: flex;
align-items: center;
gap: 16px;
flex-wrap: wrap;
}
.upload-validation {
display: grid;
gap: 6px;
font-size: 0.85rem;
color: #999999;
}
.upload-validation-item {
display: flex;
align-items: center;
gap: 8px;
}
.upload-validation-item::before {
content: "•";
}
.upload-ready {
font-size: 0.9rem;
font-weight: 600;
color: #818181;
}
.upload-error {
color: #aaaaaa;
}
.section-title {
font-family: var(--font-mono);
font-size: var(--fs-lg);
font-weight: 600;
margin-bottom: var(--space-2);
}
.section-subtitle {
color: var(--ink-soft);
font-size: var(--fs-sm);
margin-bottom: var(--space-4);
}
.skill-summary-block {
margin-bottom: var(--space-4);
display: grid;
gap: 8px;
justify-items: start;
}
.skill-summary-line {
margin-bottom: 0;
}
.skill-summary-line .skill-summary-inline-code {
padding: 0.12em 0.35em;
border-radius: var(--r-xs);
background: color-mix(in srgb, var(--surface-muted) 74%, var(--ink) 6%);
box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--line) 56%, transparent);
box-decoration-break: clone;
-webkit-box-decoration-break: clone;
font-size: 0.88em;
font-family: var(--font-mono);
overflow-wrap: anywhere;
}
.skill-summary-line.line-clamp-2 {
display: -webkit-box;
overflow: hidden;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.skill-summary-toggle {
appearance: none;
border: 0;
padding: 0;
background: transparent;
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
font: inherit;
font-size: 12px;
font-weight: 650;
line-height: 1.2;
cursor: pointer;
text-decoration: underline;
text-underline-offset: 3px;
}
.skill-summary-toggle:hover,
.skill-summary-toggle:focus-visible {
color: var(--ink);
}
.grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr));
gap: 16px;
max-width: 100%;
}
.stars-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
padding-bottom: 16px;
}
.stars-header-title {
min-width: 0;
}
.stars-header-controls {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 8px;
min-width: 0;
}
.stars-sort-trigger {
width: 168px;
}
.stars-view-tabs .publisher-filter-tab {
width: 34px;
height: 34px;
justify-content: center;
padding: 0;
}
.stars-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 16px;
max-width: 100%;
}
.stars-card-shell {
position: relative;
min-width: 0;
}
.stars-card-shell .skill-card {
height: 100%;
}
.stars-card-shell .skill-card-footer {
padding-right: 44px;
}
.stars-card-unstar {
position: absolute;
right: 12px;
bottom: 12px;
z-index: 1;
}
@media (max-width: 1024px) {
.stars-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 640px) {
.stars-header {
align-items: flex-start;
flex-direction: column;
gap: 12px;
}
.stars-header-title {
font-size: var(--fs-2xl);
line-height: 1.1;
}
.stars-header-controls {
display: block;
width: 100%;
}
.stars-sort-trigger {
width: 100%;
min-width: 0;
}
.stars-view-tabs {
display: none;
}
.stars-grid {
grid-template-columns: 1fr;
}
}
.skills-header-top {
margin-bottom: 22px;
}
.skills-container {
max-width: 900px;
margin: 0 auto;
}
.skills-header {
display: flex;
align-items: flex-end;
justify-content: space-between;
gap: 14px;
flex-wrap: wrap;
margin-bottom: 22px;
}
.skills-toolbar {
display: grid;
gap: 10px;
padding: 15px 16px;
border-radius: var(--r-md);
border: 1px solid var(--border-ui);
background: linear-gradient(135deg, var(--surface), var(--surface-muted));
margin-bottom: 22px;
}
.skills-search {
display: flex;
align-items: center;
border-radius: var(--r-pill);
border: 1px solid var(--border-ui);
background: rgba(255, 255, 255, 0.45);
padding: 10px 14px;
}
.skills-search-input {
border: none;
outline: none;
width: 100%;
font-size: 0.95rem;
background: transparent;
}
.skills-toolbar-row {
display: flex;
align-items: center;
justify-content: flex-start;
gap: 8px;
flex-wrap: wrap;
}
.plugins-toolbar-top {
display: flex;
gap: 10px;
align-items: stretch;
}
.plugins-toolbar-top .skills-search {
flex: 1;
}
.plugins-toolbar-top .btn {
white-space: nowrap;
flex-shrink: 0;
}
.plugins-type-tabs {
display: inline-flex;
border-radius: var(--r-pill);
border: 1px solid var(--border-ui);
background: var(--surface-muted);
padding: 3px;
gap: 2px;
}
.plugins-type-tab {
border: none;
background: transparent;
padding: 6px 14px;
border-radius: var(--r-pill);
font-weight: 600;
font-size: 0.88rem;
color: var(--ink-soft);
cursor: pointer;
transition:
background 0.15s ease,
color 0.15s ease,
box-shadow 0.15s ease;
}
.plugins-type-tab:hover {
color: var(--ink);
}
.plugins-type-tab.is-active {
background: var(--surface);
color: var(--ink);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}
.skills-sort {
appearance: none;
border: 1px solid var(--border-ui);
border-radius: var(--r-pill);
padding: 10px 20px 10px 14px;
background: rgba(255, 255, 255, 0.45)
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%236b5549' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")
no-repeat right 7px center;
background-size: 10px;
color: var(--ink);
font-weight: 650;
font-size: 0.9rem;
cursor: pointer;
width: fit-content;
}
.skills-dir,
.skills-view {
border: 1px solid var(--border-ui);
border-radius: var(--r-pill);
padding: 10px 12px;
background: rgba(255, 255, 255, 0.45);
color: var(--ink);
font-weight: 700;
cursor: pointer;
}
.skills-view.is-active {
background: linear-gradient(180deg, rgba(255, 142, 111, 0.24), rgba(255, 255, 255, 0.16));
border-color: var(--border-ui-active);
color: var(--ink);
box-shadow: inset 0 1px 0 rgba(255, 244, 240, 0.7);
}
.skills-list {
display: grid;
gap: 0;
border-radius: var(--r-md);
border: 1px solid var(--line);
overflow: hidden;
background: var(--surface);
}
.skills-table {
border-radius: var(--r-md);
border: 1px solid var(--line);
overflow: hidden;
background: var(--surface);
}
.skills-table-header {
display: grid;
grid-template-columns: minmax(160px, 1fr) minmax(0, 2fr) 120px 140px;
gap: 12px;
padding: 10px 18px;
font-size: 0.78rem;
font-weight: 650;
color: var(--ink-soft);
text-transform: uppercase;
letter-spacing: 0.04em;
border-bottom: 1px solid var(--line);
background: rgba(42, 31, 25, 0.03);
}
.skills-table-row {
display: grid;
grid-template-columns: minmax(160px, 1fr) minmax(0, 2fr) 120px 140px;
gap: 12px;
padding: 12px 18px;
text-decoration: none;
color: inherit;
border-bottom: 1px solid var(--line);
transition: background 0.15s ease;
align-items: center;
}
.skills-table-row:last-child {
border-bottom: none;
}
.skills-table-row:hover {
background: rgba(255, 255, 255, 0.07);
}
.skills-table-name {
font-family: var(--font-display);
font-size: 0.95rem;
font-weight: 600;
letter-spacing: -0.01em;
display: flex;
flex-direction: column;
gap: 2px;
min-width: 0;
}
.skills-table-name > span:first-child {
display: flex;
align-items: baseline;
gap: 6px;
flex-wrap: wrap;
word-break: break-word;
}
.skills-table-summary {
color: var(--ink-soft);
font-size: 0.85rem;
line-height: 1.4;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
min-width: 0;
}
.skills-table-author {
font-size: 0.85rem;
color: var(--ink-soft);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.skills-table-stats {
display: flex;
gap: 10px;
font-size: 0.82rem;
color: var(--ink-soft);
white-space: nowrap;
}
.skills-table-version {
font-size: 0.85rem;
color: var(--ink-soft);
}
@media (max-width: 860px) {
.skills-table-header,
.skills-table-row {
grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr) 100px;
}
.skills-table-stats {
display: none;
}
.skills-table-header span:last-child {
display: none;
}
}
.skills-row {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 14px;
padding: 14px 18px;
text-decoration: none;
color: inherit;
border-bottom: 1px solid var(--line);
transition: background 0.15s ease;
}
.skills-row:last-child {
border-bottom: none;
}
.skills-row:hover {
background: rgba(255, 255, 255, 0.07);
}
.skills-row-main {
display: grid;
gap: 6px;
min-width: 0;
}
.skills-row-title {
display: flex;
align-items: baseline;
gap: 10px;
flex-wrap: wrap;
font-family: var(--font-display);
font-size: 1.1rem;
letter-spacing: -0.02em;
}
.skills-row-slug {
font-family: var(--font-mono);
font-size: 0.85rem;
color: var(--ink-soft);
}
.skills-row-summary {
color: var(--ink-soft);
font-size: 0.95rem;
line-height: 1.45;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.skills-row-owner {
display: flex;
align-items: center;
gap: 10px;
font-size: 0.82rem;
color: var(--ink-soft);
}
.skills-row-metrics {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 14px;
font-family: var(--font-mono);
font-size: 0.85rem;
color: var(--ink-soft);
white-space: nowrap;
}
.skills-row-metrics span {
display: inline-flex;
gap: 6px;
align-items: center;
}
/* @deprecated — use <Card> from components/ui/card.tsx */
.card {
width: 100%;
background: var(--surface);
border-radius: var(--r-md);
border: 1px solid var(--line);
padding: 18px;
display: flex;
flex-direction: column;
gap: 14px;
box-sizing: border-box;
box-shadow: var(--shadow-card);
}
@keyframes shimmer {
0% {
background-position: -200% 0;
}
100% {
background-position: 200% 0;
}
}
.loading-indicator {
display: inline-flex;
align-items: center;
gap: 10px;
font-weight: 650;
color: var(--ink-soft);
}
/* Skeleton loader rows */
.skeleton-list {
display: flex;
flex-direction: column;
border: 1px solid var(--line);
border-radius: var(--r-md);
overflow: hidden;
background: var(--surface);
}
.skeleton-row {
display: grid;
grid-template-columns: 42px minmax(0, 1fr);
gap: 14px;
align-items: start;
padding: 14px 18px;
border-bottom: 1px solid var(--line);
}
.skeleton-row:last-child {
border-bottom: none;
}
.skeleton-icon {
width: 42px;
height: 42px;
border-radius: 12px;
background: var(--surface-muted);
opacity: 0.55;
}
.skeleton-row-body {
display: grid;
gap: var(--space-2);
}
.skeleton-bar {
height: 10px;
border-radius: var(--r-sm);
background: var(--surface-muted);
opacity: 0.5;
}
.skeleton-bar-sm {
height: 10px;
width: 60%;
}
.skeleton-bar-lg {
height: 14px;
width: 84%;
}
.skeleton-bar-xs {
height: 8px;
width: 42%;
}
.skeleton-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: 16px;
}
.skeleton-card {
border: 1px solid var(--line);
border-radius: var(--r-md);
padding: 22px;
background: var(--surface);
display: flex;
flex-direction: column;
gap: 12px;
min-height: 160px;
}
.loading-indicator::before {
content: "";
width: 14px;
height: 14px;
border-radius: var(--r-pill);
border: 2px solid rgba(255, 255, 255, 0.25);
border-top-color: var(--accent);
animation: spin 0.9s linear infinite;
}
.skill-card {
min-height: 160px;
transition: all 0.2s ease;
}
.plugin-card {
min-height: 180px;
transition:
transform 0.2s ease,
box-shadow 0.2s ease;
}
.skill-card,
.skill-list-item,
.publisher-card,
.home-v2-listing-row,
.home-v2-listing-card,
.home-v2-popular-publisher-card {
-webkit-tap-highlight-color: transparent;
text-decoration: none;
}
.skill-card:hover,
.skill-card:active,
.skill-list-item:hover,
.skill-list-item:active,
.publisher-card:hover,
.publisher-card:active,
.home-v2-listing-row:hover,
.home-v2-listing-row:active,
.home-v2-listing-card:hover,
.home-v2-listing-card:active,
.home-v2-popular-publisher-card:hover,
.home-v2-popular-publisher-card:active {
text-decoration: none;
}
.skill-card:hover {
border-color: var(--border-ui-hover);
transform: translateY(-2px);
box-shadow: var(--shadow-hover);
}
.skill-card-header {
display: flex;
align-items: center;
gap: 14px;
}
.skill-card-identity {
display: grid;
gap: 2px;
min-width: 0;
}
.skill-card-owner-row {
display: inline-flex;
align-items: center;
gap: 6px;
min-width: 0;
}
.skill-card-owner {
min-width: 0;
overflow: hidden;
color: color-mix(in srgb, var(--ink-soft) 82%, transparent);
font-size: 12px;
font-weight: 500;
line-height: 1.25;
text-overflow: ellipsis;
white-space: nowrap;
}
.skill-card-tags {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.tag-compact {
padding: 4px 10px;
font-size: var(--fs-xs);
border-radius: var(--r-sm);
}
.skills-row-meta {
font-size: var(--fs-xs);
color: var(--ink-soft);
}
.skill-card-title {
font-family: var(--font-display);
font-size: var(--fs-md);
font-weight: 600;
margin: 0;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
letter-spacing: -0.01em;
}
.marketplace-icon {
--marketplace-icon-accent: var(--accent);
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: var(--oc-radius-inset);
flex: 0 0 auto;
background: color-mix(in srgb, var(--marketplace-icon-accent) 10%, var(--surface));
border: 1px solid color-mix(in srgb, var(--marketplace-icon-accent) 12%, var(--line));
color: var(--marketplace-icon-accent);
overflow: hidden;
transition:
transform 0.15s ease,
box-shadow 0.15s ease;
}
.marketplace-icon:hover {
transform: scale(1.02);
box-shadow: 0 4px 12px color-mix(in srgb, var(--marketplace-icon-accent) 20%, transparent);
}
.marketplace-icon.marketplace-icon-image-backed,
.marketplace-icon.marketplace-icon-image-backed:hover {
background: #fff;
border-color: rgb(0 0 0 / 14%);
border-radius: var(--oc-radius-control);
box-shadow: none;
}
.marketplace-icon-muted,
.marketplace-icon-muted:hover {
background: color-mix(in srgb, var(--ink) 4%, transparent);
border-color: color-mix(in srgb, var(--ink) 7%, transparent);
color: var(--ink-soft);
transform: none;
box-shadow: none;
}
.marketplace-icon-xs {
width: 26px;
height: 26px;
}
.marketplace-icon-xs.marketplace-icon-user {
border-radius: var(--oc-radius-round);
}
.marketplace-icon-sm {
width: 44px;
height: 44px;
}
.marketplace-icon-md {
width: 52px;
height: 52px;
}
.marketplace-icon-user {
border-radius: var(--oc-radius-round);
}
.marketplace-icon-glyph {
width: 22px;
height: 22px;
}
.marketplace-icon-xs .marketplace-icon-glyph {
width: 14px;
height: 14px;
}
.marketplace-icon-md .marketplace-icon-glyph {
width: 26px;
height: 26px;
}
.marketplace-icon-image {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
.skill-card-summary {
margin: 0;
color: var(--ink-soft);
font-size: var(--fs-sm);
line-height: 1.5;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.skill-card-footer {
margin-top: auto;
}
.browse-results-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
}
.browse-page .browse-results-grid .skill-card {
display: grid;
min-height: 0;
align-content: start;
gap: 12px;
padding: 16px;
border: 1px solid var(--line);
border-radius: var(--hv2-radius-lg, var(--r-md));
background: color-mix(in srgb, var(--surface) 94%, transparent);
color: inherit;
box-shadow: none;
transition:
border-color 0.16s ease,
background 0.16s ease,
transform 0.16s ease;
}
.browse-page .browse-results-grid .skill-card:hover {
border-color: color-mix(in srgb, var(--ink-soft) 22%, var(--line));
background: color-mix(in srgb, var(--surface) 98%, transparent);
box-shadow: none;
transform: none;
}
.browse-page .browse-results-grid .skill-card-header {
display: grid;
grid-template-columns: auto minmax(0, 1fr);
align-items: center;
gap: 12px;
min-width: 0;
}
.browse-page .browse-results-grid .skill-card-header .marketplace-icon {
--marketplace-icon-accent: var(--ink-soft) !important;
--marketplace-icon-wash: transparent !important;
width: 34px;
height: 34px;
border-radius: var(--oc-radius-inset);
background: color-mix(in srgb, var(--ink) 4%, transparent) !important;
border: 1px solid color-mix(in srgb, var(--ink) 7%, transparent) !important;
color: color-mix(in srgb, var(--ink-soft) 88%, transparent);
box-shadow: none;
transform: none;
}
.browse-page .browse-results-grid .skill-card-header .marketplace-icon-glyph {
width: 17px;
height: 17px;
}
.browse-page .browse-results-grid .skill-card-header .marketplace-icon-image {
filter: grayscale(1) brightness(1.18);
}
.browse-page .browse-results-grid .skill-card-title {
min-width: 0;
overflow: hidden;
font-family: inherit;
font-size: 15px;
font-weight: 600;
line-height: 1.25;
letter-spacing: -0.01em;
text-overflow: ellipsis;
white-space: nowrap;
-webkit-line-clamp: unset;
}
.browse-page .browse-results-grid .skill-card-identity,
.browse-page .browse-results-grid .skill-card-owner-row {
overflow: hidden;
}
.browse-page .browse-results-grid .official-badge svg {
width: 16px;
height: 16px;
}
.browse-page .browse-results-grid .skill-card-summary {
min-height: calc(1.5em * 2);
color: var(--ink-soft);
font-size: 13px;
line-height: 1.5;
}
.browse-page .browse-results-grid .skill-card-tags {
align-items: center;
gap: 7px;
min-height: 0;
}
.skill-card-tag-category {
display: inline-flex;
align-items: center;
gap: 5px;
color: color-mix(in srgb, var(--ink-soft) 82%, transparent);
font-size: 12px;
font-weight: 400;
line-height: 1.3;
white-space: nowrap;
}
.skill-card-tag-category svg {
flex: 0 0 auto;
}
.skill-card-tag-separator {
flex: 0 0 auto;
width: 1px;
height: 12px;
background: color-mix(in srgb, var(--line) 82%, transparent);
}
.browse-page .browse-results-grid .skill-card-footer {
margin-top: auto;
padding-top: 12px;
border-top: 1px solid color-mix(in srgb, var(--line) 65%, transparent);
}
.skill-card-bottom-row {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
gap: 12px;
min-width: 0;
}
.skill-card-bottom-meta {
min-width: 0;
}
.skill-card-category {
display: inline-flex;
align-items: center;
justify-self: end;
gap: 5px;
min-width: 0;
color: color-mix(in srgb, var(--ink-soft) 78%, transparent);
font-size: 12px;
font-weight: 400;
line-height: 1.25;
white-space: nowrap;
}
.skill-card-category svg {
flex: 0 0 auto;
}
.browse-page .browse-results-grid .skill-card-grid-meta {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 12px;
align-items: center;
min-width: 0;
}
.browse-page .browse-results-grid .skill-card-grid-meta > .user-badge {
grid-column: 1 / -1;
min-width: 0;
overflow: hidden;
color: var(--hv2-text-tertiary, var(--ink-soft));
font-size: 13px;
font-weight: 500;
line-height: 1.25;
}
.browse-page .browse-results-grid .skill-card-grid-meta .user-avatar {
width: 20px;
height: 20px;
}
.browse-page .browse-results-grid .skill-card-grid-meta .user-handle {
max-width: 24ch;
color: inherit;
font-family: inherit;
font-size: inherit;
}
.browse-page .browse-results-grid .skill-card-updated {
grid-column: 1;
grid-row: 1;
min-width: 0;
color: var(--hv2-text-tertiary, var(--ink-soft));
font-size: 12px;
line-height: 1.25;
}
.browse-page .browse-results-grid .skill-card-grid-meta .skill-stats-triplet {
grid-column: 2;
grid-row: 1;
justify-self: end;
gap: 16px;
color: var(--hv2-text-tertiary, var(--ink-soft));
font-size: 12px;
line-height: 1.25;
white-space: nowrap;
}
.browse-page .browse-results-grid .skill-card-footer-rows {
gap: 8px;
}
.browse-page .browse-results-grid .skill-list-item-meta {
justify-content: flex-start;
min-width: 0;
max-width: none;
margin-top: 0;
text-align: left;
}
@media (max-width: 960px) {
.browse-results-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 560px) {
.browse-results-grid {
grid-template-columns: 1fr;
}
}
.skill-card-spaced-footer .skill-card-footer {
margin-top: auto;
}
.skill-card-footer-inline {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
}
.skill-card-footer-rows {
display: grid;
grid-template-columns: 1fr;
gap: 6px;
align-items: start;
}
.skill-card-spaced-footer .skill-card-footer-rows {
display: flex;
flex-direction: column;
gap: 8px;
}
.skill-card-footer-rows .stat {
justify-self: end;
}
.skill-card-spaced-footer .skill-card-footer-rows .stat {
align-self: stretch;
margin-top: 0;
padding-top: 0;
}
.skill-card-statline,
.skill-stats-triplet,
.skill-stats-item {
display: inline-flex;
align-items: center;
}
.skill-card-statline {
width: 100%;
flex-wrap: wrap;
justify-content: space-between;
gap: 8px;
color: var(--ink-soft);
font-size: var(--fs-xs);
}
.skill-card-updated {
color: color-mix(in srgb, var(--ink-soft) 78%, var(--surface));
}
.skill-card-statline-dot,
.skill-stats-dot {
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
}
.skill-stats-triplet {
gap: 6px;
}
.skill-stats-item {
gap: 4px;
}
.user-badge {
display: inline-flex;
align-items: center;
gap: 8px;
min-width: 0;
}
.user-badge-prefix {
color: var(--ink-soft);
}
.user-avatar {
width: 22px;
height: 22px;
border-radius: 999px;
overflow: hidden;
display: grid;
place-items: center;
border: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
background: color-mix(in srgb, var(--accent) 10%, transparent);
flex: 0 0 auto;
}
.user-avatar-img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
.user-avatar-fallback {
font-family: var(--font-display);
font-size: 0.82rem;
font-weight: 680;
color: color-mix(in srgb, var(--ink) 86%, transparent);
}
.user-handle {
color: inherit;
text-decoration: none;
font-family: var(--font-mono);
font-size: 0.82rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
max-width: 18ch;
}
.user-name {
font-family: var(--font-display);
font-size: 0.88rem;
letter-spacing: -0.01em;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
max-width: 28ch;
min-width: 0;
}
.user-name-sep {
color: var(--ink-soft);
flex: 0 0 auto;
}
.user-handle-muted {
color: var(--ink-soft);
font-weight: 500;
}
.user-handle:hover {
text-decoration: underline;
}
.user-badge-link {
color: inherit;
text-decoration: none;
}
.user-badge-link:hover,
.user-badge-link:focus-visible {
text-decoration: none;
}
.user-badge-link:hover .user-name,
.user-badge-link:focus-visible .user-name,
.user-badge-link:hover .user-handle,
.user-badge-link:focus-visible .user-handle {
text-decoration: underline;
}
.user-badge-md .user-avatar {
width: 32px;
height: 32px;
}
.user-badge-md .user-handle {
font-size: 0.9rem;
}
.skill-hero-title > .section-subtitle,
.skill-summary-block > .section-subtitle {
font-size: 14px;
line-height: 1.4;
}
.hero-install {
display: grid;
gap: 10px;
}
.install-switcher {
display: grid;
gap: 10px;
}
.install-switcher-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 14px;
flex-wrap: wrap;
}
.install-switcher-toggle {
display: inline-flex;
border-radius: var(--r-pill);
padding: 4px;
border: 1px solid var(--border-ui);
background: color-mix(in srgb, var(--accent) 9%, transparent);
}
.install-switcher-pill {
appearance: none;
border: none;
background: transparent;
color: var(--ink-soft);
font: inherit;
font-weight: 650;
font-size: 0.85rem;
padding: 6px 10px;
border-radius: var(--r-pill);
cursor: pointer;
transition:
background 0.18s ease,
color 0.18s ease;
}
.install-switcher-pill:hover {
color: var(--ink);
}
.install-switcher-pill.is-active {
background: color-mix(in srgb, var(--accent) 22%, transparent);
color: var(--accent-deep);
}
.hero-install-code {
border: 1px solid var(--line);
background: var(--surface-muted);
border-radius: 12px;
padding: 12px 14px;
font-size: 0.9rem;
line-height: 1.55;
color: var(--ink);
font-family: var(--font-mono);
overflow-x: hidden;
margin: 0;
text-align: left;
font-variant-ligatures: none;
font-feature-settings:
"liga" 0,
"calt" 0;
white-space: pre-wrap;
overflow-wrap: anywhere;
word-break: break-word;
tab-size: 2;
box-shadow: inset 0 1px 0 color-mix(in srgb, var(--ink) 8%, transparent);
}
/* @deprecated — use <Badge> from components/ui/badge.tsx */
.tag {
display: inline-flex;
align-items: center;
gap: 4px;
padding: 4px 10px;
border-radius: var(--r-sm);
border: 1px solid var(--line);
background: var(--surface-muted);
color: var(--ink-soft);
font-size: var(--fs-xs);
font-weight: 500;
font-family: var(--font-body);
transition: all 0.15s ease;
}
.tag:hover {
border-color: var(--border-ui-hover);
color: var(--ink);
}
[data-theme-resolved="light"] .tag {
background: var(--surface);
color: var(--ink-soft);
}
.skill-actions {
display: flex;
gap: 10px;
flex-wrap: wrap;
align-items: center;
}
.report-dialog-backdrop {
position: fixed;
inset: 0;
z-index: 80;
display: grid;
place-items: center;
padding: 20px;
background: rgba(21, 24, 35, 0.42);
backdrop-filter: blur(3px);
}
.report-dialog {
width: min(100%, 560px);
display: grid;
gap: 12px;
padding: 20px;
border-radius: var(--r-md);
border: 1px solid var(--line);
background: var(--surface);
box-shadow: 0 24px 50px rgba(18, 22, 34, 0.24);
}
.report-dialog-form {
display: grid;
gap: 12px;
}
.report-dialog-textarea {
width: 100%;
resize: vertical;
min-height: 120px;
max-height: max(200px, 40vh);
border-radius: 12px;
border: 1px solid var(--line);
background: var(--surface-muted);
color: var(--ink);
font: inherit;
padding: 12px;
}
.report-dialog-textarea:focus-visible {
outline: 2px solid rgba(255, 255, 255, 0.35);
outline-offset: 2px;
}
.report-dialog-error {
margin: 0;
color: #b30000;
font-size: 0.9rem;
}
.report-dialog-actions {
display: flex;
justify-content: flex-end;
gap: 10px;
flex-wrap: wrap;
}
.star-toggle {
width: 44px;
height: 44px;
border-radius: 50%;
border: 1px solid rgba(255, 255, 255, 0.35);
background: rgba(255, 255, 255, 0.12);
color: var(--accent-deep);
display: grid;
place-items: center;
cursor: pointer;
transition:
transform 0.2s ease,
box-shadow 0.2s ease,
background 0.2s ease;
}
.star-toggle span {
font-size: 1.25rem;
}
.star-toggle:hover {
transform: translateY(-1px);
box-shadow: 0 10px 18px rgba(255, 255, 255, 0.2);
}
.star-toggle.is-active {
background: var(--accent);
color: var(--accent-fg);
border-color: var(--accent-deep);
}
.star-toggle:focus-visible {
outline: 3px solid rgba(255, 255, 255, 0.35);
outline-offset: 3px;
}
.highlight-toggle {
width: 36px;
height: 36px;
border-radius: 50%;
border: 1px solid rgba(43, 198, 164, 0.45);
background: rgba(43, 198, 164, 0.14);
color: #818181;
display: grid;
place-items: center;
cursor: pointer;
transition:
transform 0.2s ease,
box-shadow 0.2s ease,
background 0.2s ease;
}
.highlight-toggle span {
font-size: 1.05rem;
}
.highlight-toggle:hover {
transform: translateY(-1px);
box-shadow: 0 10px 18px rgba(43, 198, 164, 0.2);
}
.highlight-toggle.is-active {
background: rgba(43, 198, 164, 0.28);
border-color: rgba(43, 198, 164, 0.7);
}
.highlight-toggle:focus-visible {
outline: 3px solid rgba(43, 198, 164, 0.3);
outline-offset: 3px;
}
.stat {
display: flex;
gap: 10px;
align-items: center;
font-size: 0.9rem;
color: var(--ink-soft);
}
.search-bar {
display: flex;
gap: 12px;
padding: 14px 18px;
border-radius: var(--r-md);
border: 1px solid var(--line);
background: var(--surface);
align-items: center;
}
.hero.search-mode .search-bar {
padding: 18px 20px;
}
.hero.search-mode .search-input {
font-size: 1.1rem;
}
@media (max-width: 860px) {
.hero-inner {
grid-template-columns: 1fr;
transition: none;
}
.hero.search-mode .hero-inner {
grid-template-columns: 1fr;
gap: 24px;
}
}
.skill-detail-stack {
display: grid;
gap: 16px;
max-width: 100%;
overflow-x: clip;
}
.skill-settings-page {
gap: 28px;
}
.skill-settings-page-header {
display: grid;
gap: 16px;
padding: 8px 0 0;
}
.skill-settings-back-link {
display: inline-flex;
width: fit-content;
align-items: center;
gap: 8px;
color: var(--ink-soft);
font-size: 0.9rem;
font-weight: 700;
text-decoration: none;
transition:
color 0.15s ease,
transform 0.15s ease;
}
.skill-settings-back-link:hover {
color: var(--ink);
transform: translateX(-2px);
}
.skill-settings-page-title {
margin: 0;
color: var(--ink);
font-family: var(--font-display);
font-size: clamp(1.9rem, 3vw, 2.75rem);
font-weight: 800;
line-height: 1.05;
}
.skill-settings-page-title-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
flex-wrap: wrap;
}
.skill-settings-new-version-button {
width: fit-content;
}
.skill-settings-page-divider {
width: 100%;
margin: 0;
border: 0;
border-top: 1px solid var(--line);
}
.skill-hero {
display: grid;
gap: 16px;
min-width: 0;
}
.detail-layout {
display: grid;
gap: var(--space-4);
min-width: 0;
}
.detail-main,
.detail-sidebar {
display: flex;
min-width: 0;
flex-direction: column;
gap: var(--space-4);
}
.detail-sidebar {
align-self: start;
}
.detail-sidebar .detail-meta-bar {
flex-direction: column;
align-items: stretch;
}
.detail-sidebar .meta-bar-stats,
.detail-sidebar .meta-bar-details,
.detail-sidebar .meta-bar-footer {
flex: 0 1 auto;
padding: 0;
border: 0;
}
.detail-sidebar .meta-bar-details,
.detail-sidebar .meta-bar-footer {
padding-top: var(--space-3);
border-top: 1px solid var(--line);
}
.detail-sidebar .meta-bar-footer {
padding-left: 0;
}
.detail-sidebar .meta-bar-footer > .btn {
width: 100%;
margin-left: 0;
}
@media (min-width: 1080px) {
.detail-layout:has(.detail-sidebar) {
grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
align-items: start;
}
.detail-sidebar {
position: sticky;
top: 96px;
}
}
/* ── Plugin Detail Page ── */
.plugin-detail-header {
display: flex;
align-items: flex-start;
gap: 16px;
}
.plugin-detail-meta {
flex: 1;
min-width: 0;
}
.plugin-version-badge {
display: inline-block;
margin-left: 10px;
padding: 2px 10px;
font-size: 0.78rem;
font-weight: 600;
border-radius: 999px;
background: var(--surface-muted);
color: var(--ink-soft);
vertical-align: middle;
letter-spacing: 0.01em;
}
.plugin-meta-row {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 6px 10px;
margin-top: 4px;
}
.plugin-meta-link {
font-size: 0.85rem;
color: var(--accent);
text-decoration: none;
}
.plugin-meta-link:hover {
text-decoration: underline;
}
.plugin-install-section {
margin-top: 16px;
}
.plugin-install-stack {
display: grid;
gap: var(--space-4);
min-width: 0;
}
.plugin-detail-page .skill-hero-main-extra {
gap: var(--space-7);
overflow-x: clip;
}
.plugin-install-bar {
display: flex;
align-items: center;
gap: 8px;
padding: 10px 14px;
border-radius: 8px;
background: var(--surface-muted);
border: 1px solid var(--line);
}
.plugin-install-code {
flex: 1;
min-width: 0;
margin: 0;
padding: 0;
font-size: 0.88rem;
line-height: 1.5;
background: none;
border: none;
color: var(--ink);
overflow-x: auto;
white-space: pre;
}
.plugin-release-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
margin-top: 12px;
flex-wrap: wrap;
}
.plugin-section-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
margin-bottom: 12px;
}
.plugin-section-title {
font-size: 1rem;
font-weight: 600;
margin: 0;
color: var(--ink);
}
.plugin-sidebar-stack {
display: grid;
gap: 40px;
min-width: 0;
}
.plugin-tab-panel {
display: grid;
gap: 18px;
min-width: 0;
}
.plugin-validation-panel {
display: grid;
gap: var(--space-6);
margin-bottom: var(--space-4);
border: 1px solid color-mix(in srgb, var(--line) 92%, transparent);
border-radius: var(--radius-md);
background: var(--surface);
padding: var(--space-5);
scroll-margin-top: var(--space-6);
}
.plugin-validation-overview {
display: grid;
gap: var(--space-3);
}
.plugin-validation-panel-title-row {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
gap: var(--space-2) var(--space-3);
}
.plugin-validation-panel-title-actions {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: flex-end;
gap: var(--space-2) var(--space-3);
margin-left: auto;
}
.plugin-validation-panel-title {
margin: 0;
min-width: 0;
color: var(--ink);
font-size: 1.02rem;
font-weight: 750;
line-height: 1.3;
letter-spacing: -0.01em;
}
.plugin-validation-panel-stats {
display: inline-flex;
flex-wrap: wrap;
align-items: center;
gap: 4px;
white-space: nowrap;
padding: 2px 10px;
border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
border-radius: var(--radius-pill);
background: color-mix(in srgb, var(--surface-muted) 42%, transparent);
color: var(--ink-soft);
}
.plugin-validation-panel-stat {
font-size: 0.74rem;
font-weight: 600;
line-height: 1.35;
color: var(--ink-soft);
}
.plugin-validation-panel-stat.is-muted {
font-weight: 500;
opacity: 0.72;
}
.plugin-validation-panel-stats-sep {
color: var(--ink-soft);
opacity: 0.38;
font-size: 0.74rem;
line-height: 1;
user-select: none;
}
.plugin-validation-summary-hint {
margin: 0;
max-width: 62ch;
color: var(--ink-soft);
font-size: 0.84rem;
line-height: 1.5;
}
.plugin-validation-summary-hint strong {
color: var(--ink);
font-weight: 650;
}
.plugin-validation-actions {
min-width: 0;
}
.plugin-validation-summary-hint + .plugin-validation-actions {
margin-top: var(--space-3);
}
.plugin-validation-actions-row {
--plugin-validation-toolbar-height: 2.5rem;
display: flex;
flex-wrap: wrap;
align-items: flex-end;
gap: var(--space-3);
}
.plugin-validation-command-block {
display: flex;
flex: 1 1 16rem;
flex-direction: column;
gap: var(--space-2);
min-width: 0;
}
.plugin-validation-toolbar {
display: flex;
flex: 1 1 auto;
align-items: center;
min-width: 0;
height: var(--plugin-validation-toolbar-height);
min-height: var(--plugin-validation-toolbar-height);
border: 1px solid color-mix(in srgb, var(--line) 52%, transparent);
border-radius: var(--radius-sm);
background: color-mix(in srgb, var(--surface-muted) 14%, transparent);
padding: var(--space-2) var(--space-3);
}
[data-theme-resolved="light"] .plugin-validation-toolbar {
border-color: color-mix(in srgb, var(--line) 44%, transparent);
background: color-mix(in srgb, var(--surface-muted) 10%, var(--bg) 90%);
}
.plugin-validation-toolbar-label {
margin: 0;
color: var(--ink-soft);
font-size: 0.74rem;
font-weight: 500;
line-height: 1.3;
opacity: 0.82;
}
.plugin-validation-toolbar-cli {
display: flex;
align-items: center;
gap: var(--space-2);
min-width: 0;
width: 100%;
}
.plugin-validation-toolbar.is-multi-target {
height: auto;
align-items: flex-start;
}
.plugin-validation-toolbar.is-multi-target .plugin-validation-toolbar-cli {
align-items: flex-start;
}
.plugin-validation-toolbar.is-multi-target .plugin-validation-command {
white-space: pre-wrap;
line-height: 1.45;
}
.plugin-validation-toolbar-copy.skill-install-copy-button {
flex: 0 0 auto;
width: 2rem;
min-width: 2rem;
height: 2rem;
min-height: 2rem;
padding: 0;
justify-content: center;
border: 0 !important;
background: transparent;
color: color-mix(in srgb, var(--ink-soft) 88%, transparent);
box-shadow: none;
}
.plugin-validation-toolbar-copy.skill-install-copy-button:hover:not(:disabled),
.plugin-validation-toolbar-copy.skill-install-copy-button:hover:not(:disabled) {
border: 0 !important;
background: transparent;
color: var(--ink);
box-shadow: none;
}
[data-theme-resolved="light"]
.plugin-validation-toolbar-copy.skill-install-copy-button:hover:not(:disabled) {
border-color: transparent;
background: transparent;
}
.plugin-validation-toolbar-copy.skill-install-copy-button:focus-visible {
outline: 2px solid var(--oc-focus-ring);
outline-offset: 2px;
}
.plugin-validation-toolbar-agent {
display: flex;
flex: 0 0 auto;
align-self: flex-end;
align-items: center;
height: var(--plugin-validation-toolbar-height);
}
.plugin-validation-panel-agent.skill-install-copy-button {
flex: 0 0 auto;
height: var(--plugin-validation-toolbar-height);
min-height: var(--plugin-validation-toolbar-height);
max-height: var(--plugin-validation-toolbar-height);
padding-top: 0;
padding-bottom: 0;
white-space: nowrap;
border-color: color-mix(in srgb, var(--line) 78%, transparent);
background: color-mix(in srgb, var(--surface-muted) 34%, transparent);
color: var(--ink);
box-shadow: inset 0 1px 0 color-mix(in srgb, white 5%, transparent);
}
[data-theme-resolved="light"] .plugin-validation-panel-agent.skill-install-copy-button {
border-color: color-mix(in srgb, var(--line) 70%, transparent);
background: color-mix(in srgb, var(--surface-muted) 18%, var(--bg) 82%);
box-shadow: inset 0 1px 0 color-mix(in srgb, white 72%, transparent);
}
.plugin-validation-panel-agent.skill-install-copy-button:hover:not(:disabled),
.plugin-validation-panel-agent.skill-install-copy-button:focus-visible {
border-color: color-mix(in srgb, var(--line) 92%, var(--accent) 8%);
background: color-mix(in srgb, var(--surface-muted) 48%, transparent);
}
.plugin-validation-command {
flex: 1;
min-width: 0;
border: 0;
border-radius: 0;
background: transparent;
padding: 0;
color: var(--ink-soft);
font-family: var(--font-mono);
font-size: 0.74rem;
line-height: 1.45;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.plugin-validation-panel-findings {
display: grid;
gap: var(--space-6);
padding-top: var(--space-5);
border-top: 1px solid color-mix(in srgb, var(--line) 90%, transparent);
}
.plugin-validation-findings-group {
display: grid;
gap: var(--space-2);
}
.plugin-validation-group-label {
margin: 0;
padding: 0;
color: var(--ink-soft);
font-size: 0.68rem;
font-weight: 700;
letter-spacing: 0.07em;
line-height: 1.3;
text-transform: uppercase;
}
.plugin-validation-group-label.is-error {
color: color-mix(in srgb, var(--status-error-fg) 68%, var(--ink-soft));
}
.plugin-validation-group-label.is-warning {
color: color-mix(in srgb, var(--status-warning-fg) 68%, var(--ink-soft));
}
@media (max-width: 640px) {
.plugin-validation-panel-title-row {
flex-direction: column;
align-items: flex-start;
}
.plugin-validation-panel-title-actions {
margin-left: 0;
}
.plugin-validation-actions-row {
flex-direction: column;
align-items: stretch;
}
.plugin-validation-command-block {
flex: 1 1 100%;
}
.plugin-validation-toolbar-agent {
flex: 0 0 auto;
justify-content: flex-start;
}
.plugin-validation-panel-agent.skill-install-copy-button {
align-self: stretch;
width: 100%;
height: auto;
min-height: var(--plugin-validation-toolbar-height);
max-height: none;
padding-top: 0.375rem;
padding-bottom: 0.375rem;
justify-content: center;
}
.plugin-validation-command {
white-space: normal;
overflow-wrap: anywhere;
}
}
.plugin-validation-panel .plugin-warning-list {
gap: 0;
padding: 0;
overflow: hidden;
border-radius: var(--radius-sm);
}
.plugin-validation-panel-findings:has(.plugin-warning-item-details) .plugin-warning-list {
gap: 0;
}
.plugin-validation-panel .plugin-warning-item {
border: 0;
border-radius: 0;
background: transparent;
box-shadow: none;
padding: 0;
gap: 0;
}
.plugin-validation-panel .plugin-warning-list > :not(:first-child) {
border-top: 1px solid var(--line);
}
.plugin-validation-panel .plugin-warning-item.plugin-warning-item-details {
padding: 0;
gap: 0;
}
.plugin-validation-panel .plugin-warning-item.plugin-warning-item-details[open] {
background: color-mix(in srgb, var(--surface-muted) 42%, var(--bg-soft));
}
.plugin-validation-panel .plugin-warning-list > .plugin-warning-item-details[open],
.plugin-validation-panel .plugin-warning-list > .plugin-warning-item-details[open] + * {
border-top-color: transparent;
}
.plugin-warning-item-summary {
width: 100%;
padding: var(--space-3);
cursor: pointer;
list-style: none;
user-select: none;
background: transparent;
transition: background-color 120ms ease;
}
.plugin-warning-item-summary::-webkit-details-marker {
display: none;
}
.plugin-warning-item-summary::marker {
content: "";
}
.plugin-warning-item-summary:hover,
.plugin-warning-item-summary:focus-visible {
background: color-mix(in srgb, var(--surface-muted) 60%, transparent);
outline: none;
}
.plugin-validation-panel .plugin-warning-item-summary:hover,
.plugin-validation-panel .plugin-warning-item-summary:focus-visible {
background: color-mix(in srgb, var(--surface-muted) 34%, transparent);
}
.plugin-warning-item-details[open] > .plugin-warning-item-summary {
background: color-mix(in srgb, var(--surface-muted) 65%, transparent);
border-bottom: 1px solid var(--line);
}
.plugin-validation-panel .plugin-warning-item-details[open] > .plugin-warning-item-summary {
background: color-mix(in srgb, var(--surface-muted) 72%, var(--bg-soft));
border-bottom: none;
}
.plugin-validation-panel .plugin-warning-item-details[open] > .plugin-warning-item-summary:hover,
.plugin-validation-panel
.plugin-warning-item-details[open]
> .plugin-warning-item-summary:focus-visible {
background: color-mix(in srgb, var(--surface-muted) 78%, var(--bg-soft));
}
.plugin-validation-panel .plugin-warning-item-details[open] > .plugin-warning-item-body {
background: transparent;
}
.plugin-warning-item-expand-chevron {
flex-shrink: 0;
align-self: center;
color: var(--ink-soft);
transition:
transform 120ms ease,
color 120ms ease;
}
.plugin-warning-item-summary:hover .plugin-warning-item-expand-chevron,
.plugin-warning-item-summary:focus-visible .plugin-warning-item-expand-chevron {
color: color-mix(in srgb, var(--ink) 78%, var(--ink-soft));
}
.plugin-warning-item-details[open] .plugin-warning-item-expand-chevron {
transform: rotate(90deg);
}
.plugin-warning-item-body {
display: grid;
gap: var(--space-2);
padding: 0 var(--space-3) var(--space-3) calc(var(--space-3) + 18px);
}
.plugin-validation-panel .plugin-warning-item-body {
padding-top: var(--space-3);
}
.plugin-validation-panel .plugin-warning-item-main {
padding: var(--space-3);
}
.plugin-warning-item-lead {
display: flex;
align-items: flex-start;
gap: 10px;
min-width: 0;
}
.plugin-warning-severity-dot {
flex-shrink: 0;
align-self: flex-start;
width: 8px;
height: 8px;
margin-top: 0.38em;
border-radius: 50%;
}
.plugin-warning-severity-dot.is-error {
background: var(--status-error-fg);
}
.plugin-warning-severity-dot.is-destructive {
background: var(--status-error-fg);
}
.plugin-warning-severity-dot.is-warning {
background: var(--status-warning-fg);
}
.plugin-warning-severity-dot.is-pending {
background: var(--oc-text-muted);
}
.plugin-warning-item-copy {
display: grid;
flex: 1;
gap: 4px;
min-width: 0;
}
.plugin-warning-item-title-row {
display: flex;
align-items: center;
gap: var(--space-2);
min-width: 0;
width: 100%;
}
.plugin-warning-item-title-row > .plugin-warning-item-expand-chevron {
flex-shrink: 0;
align-self: center;
margin-inline-start: auto;
}
.plugin-validation-panel .plugin-warning-item-message {
margin: 0;
flex: 1 1 auto;
min-width: 0;
max-width: none;
color: var(--ink);
font-size: 0.84rem;
font-weight: 500;
line-height: 1.45;
}
.plugin-warning-priority-badge {
display: inline-flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
align-self: center;
padding: 1px 6px;
border-radius: 999px;
font-size: 0.64rem;
font-weight: 700;
letter-spacing: 0.02em;
line-height: 1;
}
.plugin-warning-priority-badge.is-error {
color: var(--status-error-fg);
background: color-mix(in srgb, var(--status-error-bg) 80%, transparent);
}
.plugin-warning-priority-badge.is-warning {
color: var(--status-warning-fg);
background: color-mix(in srgb, var(--status-warning-bg) 80%, transparent);
}
.plugin-validation-panel .plugin-warning-item-meta {
display: flex;
align-items: center;
gap: var(--space-2);
margin: 0;
min-width: 0;
color: var(--ink-soft);
font-size: 0.76rem;
font-weight: 400;
line-height: 1.35;
}
.plugin-warning-item-meta-text {
flex: 1;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.plugin-validation-panel .plugin-warning-item-code {
display: inline;
padding: 0;
overflow: hidden;
color: var(--ink-soft);
font-family: var(--font-mono);
font-size: 0.76rem;
font-weight: 400;
line-height: 1.35;
text-overflow: ellipsis;
vertical-align: baseline;
white-space: nowrap;
}
.plugin-validation-panel .plugin-warning-fix-guide {
display: flex;
align-items: center;
gap: var(--space-3);
width: 100%;
padding: 8px 10px;
border: 1px solid color-mix(in srgb, var(--status-success-fg) 30%, var(--line));
border-radius: var(--radius-sm);
background: color-mix(in srgb, var(--status-success-fg) 5%, transparent);
}
.plugin-validation-panel .plugin-warning-fix-guide-copy {
display: grid;
flex: 1;
gap: 4px;
min-width: 0;
}
.plugin-validation-panel .plugin-warning-fix-guide-label {
display: inline-flex;
align-items: center;
gap: 6px;
margin: 0;
color: color-mix(in srgb, var(--status-success-fg) 74%, var(--ink));
font-size: 0.78rem;
font-weight: 650;
line-height: 1.35;
}
.plugin-validation-panel .plugin-warning-fix-copy {
margin: 0;
max-width: none;
color: var(--ink-soft);
font-size: 0.8rem;
line-height: 1.5;
}
.plugin-validation-panel .plugin-warning-fix-link {
flex-shrink: 0;
color: var(--official-fg);
font-weight: 500;
text-decoration: none;
white-space: nowrap;
transition: color 120ms ease;
}
.plugin-validation-panel .plugin-warning-fix-link:hover,
.plugin-validation-panel .plugin-warning-fix-link:focus-visible {
color: color-mix(in srgb, var(--official-fg) 72%, var(--ink));
text-decoration: underline;
}
.plugin-validation-panel .plugin-warning-meta-group {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: var(--space-2) var(--space-3);
margin: var(--space-2) 0 0;
padding: 0;
}
.plugin-validation-panel .plugin-warning-meta-field {
display: inline-flex;
align-items: baseline;
gap: 0.35rem;
margin: 0;
}
.plugin-validation-panel .plugin-warning-meta-key {
margin: 0;
color: var(--ink-soft);
font-size: 0.76rem;
font-weight: 500;
line-height: 1.4;
}
.plugin-validation-panel .plugin-warning-meta-value {
margin: 0;
color: color-mix(in srgb, var(--ink-soft) 92%, var(--ink));
font-size: 0.76rem;
font-weight: 500;
line-height: 1.4;
}
.plugin-validation-panel .plugin-warning-evidence-block {
display: grid;
gap: 2px;
margin-top: var(--space-3);
padding-top: var(--space-2);
border-top: 1px solid color-mix(in srgb, var(--line) 90%, transparent);
color: var(--ink-soft);
font-family: var(--font-mono);
font-size: 0.72rem;
line-height: 1.35;
}
.plugin-validation-panel .plugin-warning-evidence-label {
margin: 0 0 2px;
color: var(--ink-soft);
font-family: var(--oc-font-body);
font-size: 0.76rem;
line-height: 1.25;
}
.plugin-validation-panel .plugin-warning-evidence-line + .plugin-warning-evidence-line {
margin-top: 0;
}
.plugin-validation-panel .plugin-warning-evidence-more {
margin: 2px 0 0;
color: var(--ink-soft);
font-family: var(--oc-font-body);
font-size: 0.7rem;
}
.plugin-manifest-section {
display: grid;
gap: var(--space-3);
}
.plugin-manifest-section h3 {
margin: 0;
color: var(--ink);
font-size: 0.95rem;
font-weight: 750;
}
.plugin-manifest-list {
display: grid;
gap: var(--space-2);
}
.plugin-manifest-row {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
gap: var(--space-3);
border: 1px solid var(--line);
border-radius: var(--radius-md);
background: var(--surface);
padding: var(--space-3);
}
.plugin-manifest-row-main {
display: grid;
gap: 0.2rem;
min-width: 0;
}
.plugin-manifest-row-main code {
width: fit-content;
max-width: 100%;
overflow-wrap: anywhere;
border-radius: 4px;
background: var(--surface-muted);
padding: 0.125rem 0.35rem;
color: var(--ink);
font-size: 0.82rem;
}
.plugin-manifest-row-main p,
.plugin-manifest-row-main span {
margin: 0;
color: var(--ink-soft);
font-size: 0.84rem;
}
.plugin-manifest-badges,
.plugin-manifest-chip-list {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: var(--space-2);
}
@media (max-width: 640px) {
.plugin-manifest-row {
grid-template-columns: 1fr;
align-items: start;
}
}
.plugin-warning-list {
display: grid;
gap: var(--space-3);
}
.plugin-warning-item {
display: grid;
gap: var(--space-2);
border: 1px solid color-mix(in srgb, var(--line) 92%, transparent);
border-radius: var(--radius-md);
background: color-mix(in srgb, var(--surface-muted) 18%, transparent);
padding: var(--space-3);
}
.plugin-warning-item.plugin-warning-item-details {
padding: 0;
gap: 0;
}
.plugin-warning-item.is-error,
.plugin-warning-item.is-warning {
background: color-mix(in srgb, var(--surface-muted) 18%, transparent);
}
.plugin-validation-panel .plugin-warning-item,
.plugin-validation-panel .plugin-warning-item.is-error,
.plugin-validation-panel .plugin-warning-item.is-warning {
background: transparent;
}
.plugin-warning-item-main {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: start;
gap: var(--space-4);
}
.plugin-warning-item-copy {
display: grid;
gap: 4px;
min-width: 0;
}
.plugin-warning-item-tags {
margin: 0;
color: var(--ink-soft);
font-size: 0.78rem;
font-weight: 500;
line-height: 1.35;
}
.plugin-warning-item-kicker {
margin: 0;
flex: 1 1 auto;
min-width: 0;
color: var(--ink-soft);
font-size: 0.76rem;
font-weight: 600;
line-height: 1.35;
}
.plugin-warning-item-kicker.is-error {
color: color-mix(in srgb, var(--status-error-fg) 72%, var(--ink-soft));
}
.plugin-warning-item-kicker.is-warning {
color: color-mix(in srgb, var(--status-warning-fg) 72%, var(--ink-soft));
}
.plugin-warning-item-code {
display: block;
flex: 0 0 auto;
max-width: 11rem;
overflow-wrap: anywhere;
color: var(--ink-soft);
font-family: var(--font-mono);
font-size: 0.72rem;
font-weight: 500;
line-height: 1.35;
text-align: right;
}
.plugin-warning-item-message {
margin: 0;
max-width: none;
color: var(--ink);
font-size: 0.9rem;
font-weight: 600;
line-height: 1.45;
}
.plugin-warning-fix-guide {
display: flex;
align-items: center;
gap: var(--space-3);
width: 100%;
padding: 8px 10px;
border: 1px solid color-mix(in srgb, var(--status-success-fg) 30%, var(--line));
border-radius: var(--radius-sm);
background: color-mix(in srgb, var(--status-success-fg) 5%, transparent);
}
.plugin-warning-fix-guide-copy {
display: grid;
flex: 1;
gap: 4px;
min-width: 0;
}
.plugin-warning-fix-guide-label {
display: inline-flex;
align-items: center;
gap: 6px;
margin: 0;
color: color-mix(in srgb, var(--status-success-fg) 74%, var(--ink));
font-size: 0.78rem;
font-weight: 650;
line-height: 1.35;
}
.plugin-warning-fix-copy {
margin: 0;
color: var(--ink-soft);
font-size: 0.8rem;
line-height: 1.5;
}
.plugin-warning-fix-lead {
color: var(--ink);
font-weight: 650;
}
.plugin-warning-meta-group {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: var(--space-2) var(--space-3);
margin: var(--space-2) 0 0;
padding: 0;
}
.plugin-warning-meta-field {
display: inline-flex;
align-items: baseline;
gap: 0.35rem;
margin: 0;
}
.plugin-warning-meta-key {
margin: 0;
color: var(--ink-soft);
font-size: 0.76rem;
font-weight: 500;
line-height: 1.4;
}
.plugin-warning-meta-value {
margin: 0;
color: color-mix(in srgb, var(--ink-soft) 92%, var(--ink));
font-size: 0.76rem;
font-weight: 500;
line-height: 1.4;
}
.plugin-warning-evidence-block {
display: grid;
gap: 4px;
margin-top: var(--space-3);
padding-top: var(--space-3);
border-top: 1px solid color-mix(in srgb, var(--line) 90%, transparent);
color: var(--ink-soft);
font-family: var(--font-mono);
font-size: 0.74rem;
line-height: 1.45;
}
.plugin-warning-evidence-label {
margin: 0 0 2px;
color: var(--ink-soft);
font-family: var(--oc-font-body);
font-size: 0.76rem;
font-weight: 500;
line-height: 1.4;
}
.plugin-warning-evidence-line + .plugin-warning-evidence-line {
margin-top: 2px;
}
.plugin-warning-evidence-more {
margin: 4px 0 0;
color: var(--ink-soft);
font-family: var(--oc-font-body);
font-size: 0.72rem;
}
.plugin-warning-fix {
display: grid;
gap: var(--space-2);
border-radius: var(--radius-sm);
padding: var(--space-3);
}
.plugin-warning-fix-heading {
margin: 0;
color: var(--ink);
font-size: 0.8rem;
font-weight: 700;
}
.plugin-warning-fix p {
margin: 0;
max-width: 68ch;
color: var(--ink);
font-size: 0.88rem;
line-height: 1.5;
}
.plugin-warning-fix-link {
flex-shrink: 0;
color: var(--official-fg);
font-size: 0.84rem;
font-weight: 650;
text-decoration: none;
white-space: nowrap;
transition: color 120ms ease;
}
.plugin-warning-fix-link:hover,
.plugin-warning-fix-link:focus-visible {
color: color-mix(in srgb, var(--official-fg) 72%, var(--ink));
text-decoration: underline;
}
.plugin-warning-fix a:not(.plugin-warning-fix-link) {
justify-self: start;
color: var(--accent);
font-size: 0.88rem;
font-weight: 700;
text-decoration: none;
}
.plugin-warning-fix a:not(.plugin-warning-fix-link):hover {
text-decoration: underline;
}
.plugin-publish-error-text {
color: var(--status-error-fg);
font-size: 0.9rem;
font-weight: 700;
}
.plugin-publish-error-panel {
display: grid;
gap: var(--space-3);
width: min(100%, 720px);
border: 1px solid color-mix(in srgb, var(--status-error-fg) 30%, var(--line));
border-radius: var(--radius-md);
background: var(--status-error-bg);
padding: var(--space-4);
color: var(--ink);
}
.plugin-publish-error-heading {
display: grid;
gap: var(--space-1);
}
.plugin-publish-error-heading strong {
color: var(--status-error-fg);
font-size: 0.92rem;
}
.plugin-publish-error-heading span {
color: var(--ink-soft);
font-size: 0.86rem;
}
.plugin-publish-error-table-wrap {
overflow-x: auto;
border: 1px solid color-mix(in srgb, var(--status-error-fg) 20%, var(--line));
border-radius: var(--radius-sm);
background: var(--surface);
}
.plugin-publish-error-table {
width: 100%;
min-width: 420px;
border-collapse: collapse;
font-size: 0.84rem;
}
.plugin-publish-error-table th,
.plugin-publish-error-table td {
border-bottom: 1px solid var(--line);
padding: 0.65rem 0.75rem;
text-align: left;
vertical-align: top;
}
.plugin-publish-error-table th {
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
font-size: 0.72rem;
font-weight: 800;
text-transform: uppercase;
}
.plugin-publish-error-table tr:last-child td {
border-bottom: 0;
}
.plugin-publish-error-table code {
border-radius: 4px;
background: var(--surface-muted);
padding: 0.125rem 0.35rem;
color: var(--ink);
font-size: 0.8rem;
}
.plugin-tab-panel-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
}
.plugin-tab-panel-header h2 {
margin: 0;
color: var(--ink);
font-size: 1rem;
font-weight: 700;
}
.plugin-sidebar-tag-list {
display: grid;
gap: 6px;
min-width: 0;
}
.plugin-kv-grid {
display: grid;
gap: 0;
margin: 0;
}
.plugin-kv-row {
display: grid;
grid-template-columns: minmax(132px, 0.34fr) minmax(0, 1fr);
gap: var(--space-3);
align-items: baseline;
padding: var(--space-3) 0;
border-bottom: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
}
.plugin-kv-row:last-child {
border-bottom: 0;
}
.plugin-kv-label {
margin: 0;
color: var(--ink-soft);
font-size: var(--fs-sm);
font-weight: 650;
line-height: 1.35;
}
.plugin-kv-label-inner {
display: inline-flex;
align-items: center;
gap: var(--space-2);
min-width: 0;
}
.plugin-kv-icon {
flex-shrink: 0;
color: color-mix(in srgb, var(--ink-soft) 90%, transparent);
}
.plugin-kv-value {
margin: 0;
min-width: 0;
color: var(--ink);
font-size: var(--fs-sm);
font-weight: 500;
line-height: 1.55;
overflow-wrap: anywhere;
word-break: break-word;
}
.plugin-kv-value--mono {
font-family: var(--font-mono);
font-size: var(--fs-xs);
font-weight: 500;
letter-spacing: -0.01em;
}
.plugin-kv-value--hash {
font-family: var(--font-mono);
font-size: var(--fs-xs);
font-weight: 500;
line-height: 1.45;
padding: var(--space-2) var(--space-3);
border: 1px solid color-mix(in srgb, var(--line) 90%, transparent);
border-radius: var(--r-sm);
background: color-mix(in srgb, var(--surface-muted) 82%, var(--bg-soft));
word-break: break-all;
}
.plugin-tag-list {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.plugin-external-link {
display: inline-flex;
align-items: center;
gap: 6px;
color: inherit;
text-decoration: none;
text-decoration-color: currentColor;
text-underline-offset: 0.18em;
word-break: break-all;
overflow-wrap: anywhere;
}
.plugin-external-link svg {
flex: 0 0 auto;
color: var(--ink-soft);
}
.plugin-external-link:hover,
.plugin-external-link:focus-visible {
text-decoration: underline;
}
.plugin-external-link:hover svg,
.plugin-external-link:focus-visible svg {
color: currentColor;
}
@media (max-width: 640px) {
.plugin-kv-row {
grid-template-columns: 1fr;
gap: var(--space-1);
align-items: start;
}
.plugin-install-bar {
flex-direction: column;
align-items: stretch;
}
.plugin-install-code {
font-size: 0.82rem;
}
.plugin-release-row {
flex-direction: column;
align-items: flex-start;
}
}
/* ── End Plugin Detail ── */
.skill-owner-tools {
display: grid;
gap: 14px;
}
.skill-owner-tools-grid {
display: grid;
gap: 14px;
grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr);
}
.skill-admin-panel {
display: grid;
width: 100%;
gap: 0;
}
.skill-admin-row {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(320px, 50%);
gap: clamp(32px, 5vw, 96px);
align-items: start;
padding: 34px 0;
border-bottom: 1px solid var(--line);
}
.skill-admin-row-copy {
display: grid;
gap: 8px;
min-width: 0;
}
.skill-admin-row-copy h3 {
margin: 0;
color: var(--ink);
font-size: 1rem;
font-weight: 700;
line-height: 1.3;
}
.skill-admin-row-copy p {
max-width: 560px;
margin: 0;
color: var(--ink-soft);
font-size: 0.95rem;
line-height: 1.5;
}
.skill-admin-row-controls {
display: grid;
gap: 10px;
min-width: 0;
justify-self: end;
width: 100%;
}
.skill-admin-control-line {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 10px;
align-items: center;
}
.skill-admin-row > [data-slot="button"],
.skill-admin-row-controls > [data-slot="button"] {
justify-self: start;
}
.skill-admin-row > [data-slot="button"] {
justify-self: end;
}
.summary-settings-editor {
display: grid;
gap: 8px;
min-width: 0;
justify-self: end;
width: 100%;
}
.summary-settings-editor textarea {
min-height: 96px;
}
.summary-settings-footer {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
}
.summary-settings-meta {
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
font-size: 0.78rem;
line-height: 1.3;
}
.summary-settings-error {
margin: 0;
color: var(--status-error-fg);
font-size: 0.86rem;
font-weight: 650;
line-height: 1.4;
}
@media (max-width: 820px) {
.skill-owner-tools-grid {
grid-template-columns: 1fr;
}
.skill-admin-panel {
max-width: none;
}
.skill-admin-row {
grid-template-columns: 1fr;
gap: 14px;
}
.skill-admin-row-controls {
justify-self: stretch;
width: 100%;
}
.skill-admin-control-line {
grid-template-columns: 1fr;
}
.summary-settings-editor {
justify-self: stretch;
width: 100%;
}
.summary-settings-footer {
align-items: flex-start;
flex-direction: column;
}
}
.skill-hero-layout {
display: grid;
grid-template-columns: minmax(0, 1fr);
align-items: start;
gap: 24px;
min-width: 0;
}
@media (min-width: 901px) {
.skill-hero-layout.has-sidebar {
grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
column-gap: clamp(56px, 7vw, 96px);
row-gap: 64px;
}
.skill-hero-layout.has-sidebar > .skill-hero-main {
grid-column: 1;
}
.skill-hero-layout.has-sidebar > .skill-hero-lower.has-sidebar {
grid-column: 1 / -1;
grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
column-gap: clamp(56px, 7vw, 96px);
}
.skill-hero-lower.has-sidebar > .skill-hero-main-extra {
grid-column: 1;
}
.skill-hero-lower.has-sidebar > .skill-hero-sidebar {
grid-column: 2;
}
}
.skill-hero-main {
display: grid;
gap: 20px;
min-width: 0;
}
.skill-hero-lower {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 40px;
align-items: start;
min-width: 0;
}
.skill-hero-lower.has-sidebar {
--detail-hero-summary-content-height: 40px;
--detail-hero-summary-row-padding-bottom: 12px;
--detail-hero-summary-row-block-size: calc(
var(--detail-hero-summary-content-height) + var(--detail-hero-summary-row-padding-bottom)
);
grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
gap: clamp(56px, 7vw, 96px);
}
.skill-hero-main-extra {
display: grid;
gap: 66px;
min-width: 0;
max-width: 100%;
overflow-x: clip;
overflow-y: visible;
}
.skill-hero-main-extra > * {
min-width: 0;
max-width: 100%;
}
.skill-hero-action-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(360px, 100%), 1fr));
gap: 16px;
align-items: stretch;
min-width: 0;
}
.skill-hero-action-grid > * {
min-width: 0;
}
.skill-hero-title {
display: grid;
gap: 18px;
min-width: 0;
flex: 1 1 min(360px, 100%);
}
.skill-hero-title-row {
display: flex;
width: 100%;
margin-bottom: -4px;
align-items: center;
gap: 12px;
flex-wrap: wrap;
}
.skill-hero-heading-stack {
display: grid;
width: 100%;
justify-items: start;
gap: 18px;
min-width: 0;
}
.skill-hero-breadcrumbs {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 8px;
min-width: 0;
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
font-size: 12px;
font-weight: 520;
}
:is(.skill-detail-page, .plugin-detail-page) .skill-hero-breadcrumbs {
display: none;
}
.skill-hero-breadcrumbs a,
.skill-hero-breadcrumbs span {
min-width: 0;
color: inherit;
text-decoration: none;
}
.skill-hero-breadcrumbs a:hover {
color: var(--ink);
text-decoration: underline;
}
.skill-hero-breadcrumbs a:last-child {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.skill-sidebar-star-band .skill-sidebar-star-action {
display: inline-flex;
width: fit-content;
max-width: 100%;
justify-content: flex-start;
min-height: var(--detail-hero-summary-content-height, 40px);
padding: 0;
color: var(--ink-soft);
font-weight: 620;
}
.detail-hero-summary-row {
display: flex;
align-items: center;
box-sizing: border-box;
width: 100%;
min-height: var(--detail-hero-summary-row-block-size, 52px);
padding-bottom: var(--detail-hero-summary-row-padding-bottom, 12px);
border-bottom: 1px solid var(--line);
}
.skill-sidebar-star-band.detail-hero-summary-row {
padding-inline: 2px;
}
.skill-sidebar-star-band .skill-sidebar-star-action:hover,
.skill-sidebar-star-band .skill-sidebar-star-action:focus-visible {
color: var(--ink);
text-decoration: none;
}
.plugin-install-card-header.detail-hero-summary-row {
flex-direction: row;
align-items: center;
gap: 12px;
}
.plugin-downloads-metric-value-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
width: 100%;
min-width: 0;
}
.plugin-downloads-metric-content {
flex: 1 1 auto;
min-width: 0;
}
.plugin-sidebar-download-actions {
display: flex;
flex: 0 0 auto;
flex-wrap: wrap;
align-items: center;
justify-content: flex-end;
gap: 8px;
}
.plugin-sidebar-download-actions .plugin-sidebar-download-button {
width: auto;
flex: 0 0 auto;
justify-content: center;
min-height: 32px;
padding: 5px 10px;
gap: 6px;
font-size: 0.78rem;
font-weight: 650;
}
.plugin-sidebar-download-actions .plugin-sidebar-download-button svg {
color: color-mix(in srgb, var(--ink-soft) 84%, transparent);
}
.sidebar-metadata-compact
> .sidebar-metadata-row:not(.sidebar-metadata-row-large):has(.plugin-sidebar-download-actions) {
gap: 0;
padding-block: 12px;
}
.sidebar-metadata-compact
> .sidebar-metadata-row:not(.sidebar-metadata-row-large):has(.plugin-sidebar-download-actions)
.sidebar-metadata-label {
display: none;
}
.sidebar-metadata-compact
> .sidebar-metadata-row:not(.sidebar-metadata-row-large):has(.plugin-sidebar-download-actions)
.plugin-sidebar-download-actions,
.sidebar-metadata-compact
> .sidebar-metadata-row:not(.sidebar-metadata-row-large):has(.plugin-sidebar-download-actions)
.plugin-sidebar-download-button {
width: 100%;
justify-content: center;
}
.sidebar-metadata-row-large:has(.plugin-downloads-metric-value-row) {
gap: 10px;
}
.sidebar-metadata-row-large:has(.plugin-downloads-metric-value-row) .sidebar-metadata-value {
width: 100%;
}
.sidebar-metadata-row-large:has(.metric-trend-card) .plugin-downloads-metric-value-row {
align-items: flex-start;
}
.skill-hero-creator {
display: inline-flex;
min-width: 0;
margin-top: 12px;
}
.skill-hero-title > .skill-summary-block:has(+ .skill-hero-creator) {
margin-bottom: 0;
}
.skill-hero-creator .user-badge,
.skill-hero-creator .user-badge-link {
display: inline-grid;
grid-template-columns: auto minmax(0, 1fr);
grid-template-rows: auto auto;
column-gap: 10px;
row-gap: 2px;
align-items: center;
min-width: 0;
color: var(--ink-soft);
text-decoration: none;
}
.skill-hero-creator .user-badge-link {
border-radius: var(--r-pill);
padding: 4px 10px 4px 4px;
margin-left: -4px;
transition:
background-color 0.18s ease,
color 0.18s ease;
}
.skill-hero-creator .user-badge-link .user-avatar {
transition:
border-color 0.18s ease,
box-shadow 0.18s ease;
}
.skill-hero-creator .user-badge-link .user-name,
.skill-hero-creator .user-badge-link .user-handle {
transition: color 0.18s ease;
}
.skill-hero-creator .user-avatar {
grid-column: 1;
grid-row: 1 / span 2;
align-self: center;
}
.skill-hero-creator .user-name-row {
display: inline-flex;
align-items: center;
gap: 6px;
grid-column: 2;
grid-row: 1;
align-self: center;
min-width: 0;
}
.skill-hero-creator .user-name {
color: var(--ink);
font-weight: 680;
font-size: 0.88rem;
line-height: 1.15;
}
.skill-hero-creator .official-badge-icon-only {
flex: 0 0 auto;
color: var(--official-fg);
}
.skill-hero-creator .user-name-sep {
display: none;
}
.skill-hero-creator .user-handle {
grid-column: 2;
grid-row: 2;
color: var(--ink-soft);
font-weight: 560;
font-size: 0.8rem;
line-height: 1.15;
}
.skill-hero-creator .user-badge-link:hover,
.skill-hero-creator .user-badge-link:focus-visible {
background: var(--hover-bg);
text-decoration: none;
outline: none;
}
.skill-hero-creator .user-badge-link:focus-visible {
box-shadow: 0 0 0 2px color-mix(in srgb, var(--ink) 14%, transparent);
}
.skill-hero-creator .user-badge-link:hover .user-avatar,
.skill-hero-creator .user-badge-link:focus-visible .user-avatar {
border-color: color-mix(in srgb, var(--ink-soft) 42%, var(--line));
box-shadow: 0 0 0 1px color-mix(in srgb, var(--ink) 6%, transparent);
}
.skill-hero-creator .user-badge-link:hover .user-name,
.skill-hero-creator .user-badge-link:focus-visible .user-name {
color: var(--ink);
text-decoration: none;
}
.skill-hero-creator .user-badge-link:hover .user-handle,
.skill-hero-creator .user-badge-link:focus-visible .user-handle {
color: color-mix(in srgb, var(--ink) 68%, var(--ink-soft));
text-decoration: none;
}
.plugin-catalog-empty-alert {
display: grid;
grid-template-columns: auto minmax(0, 1fr) auto;
align-items: center;
gap: 10px;
width: 100%;
max-width: 100%;
min-width: 0;
padding: 9px 10px;
border: 1px solid color-mix(in srgb, #f6c76a 24%, var(--line));
border-radius: var(--r-sm);
background: color-mix(in srgb, #f6c76a 8%, var(--surface));
color: var(--ink);
}
.plugin-catalog-empty-alert--hero {
display: flex;
flex-direction: column;
align-items: flex-start;
width: 100%;
max-width: 100%;
padding: 2px 0 0;
border: none;
background: transparent;
gap: 10px;
}
.plugin-detail-page .skill-hero-heading-stack:has(.plugin-catalog-empty-alert--hero) {
gap: 12px;
}
.plugin-catalog-empty-alert--hero .plugin-catalog-empty-alert-visibility {
width: fit-content;
padding: 0;
border: none;
color: var(--ink-soft);
font-size: 0.68rem;
font-weight: 600;
line-height: 1.2;
}
.plugin-catalog-empty-alert-row {
display: flex;
align-items: center;
gap: 8px;
min-width: 0;
}
.plugin-catalog-empty-alert--hero .plugin-catalog-empty-alert-row {
margin-top: 2px;
}
.plugin-catalog-empty-alert--hero .plugin-catalog-empty-alert-icon {
width: 18px;
height: 18px;
background: transparent;
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
}
.plugin-catalog-empty-alert--hero .plugin-catalog-empty-alert-icon svg {
width: 14px;
height: 14px;
}
.plugin-catalog-empty-alert-title {
min-width: 0;
color: var(--ink);
font-size: 0.8rem;
font-weight: 650;
line-height: 1.25;
}
.plugin-catalog-empty-alert--hero .plugin-catalog-empty-alert-cta {
height: auto;
min-height: 0;
margin-left: 0;
padding: 0;
gap: 4px;
border: none !important;
background: transparent !important;
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg)) !important;
font-size: 0.75rem;
font-weight: 600;
text-decoration: none;
text-underline-offset: 3px;
}
.plugin-catalog-empty-alert--hero .plugin-catalog-empty-alert-cta:hover,
.plugin-catalog-empty-alert--hero .plugin-catalog-empty-alert-cta:focus-visible {
border: none !important;
background: transparent !important;
color: var(--ink) !important;
text-decoration: underline;
}
@media (max-width: 640px) {
.plugin-catalog-empty-alert-row {
flex-wrap: wrap;
row-gap: 6px;
}
.plugin-catalog-empty-alert--hero .plugin-catalog-empty-alert-cta {
margin-left: 24px;
}
}
.plugin-catalog-empty-alert-icon {
display: grid;
width: 28px;
height: 28px;
place-items: center;
border-radius: 999px;
background: color-mix(in srgb, #f6c76a 12%, transparent);
color: color-mix(in srgb, #f6c76a 74%, var(--ink));
}
.plugin-catalog-empty-alert-copy {
display: grid;
gap: 2px;
min-width: 0;
}
.plugin-catalog-empty-alert-heading {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 6px;
min-width: 0;
font-size: 0.84rem;
font-weight: 700;
line-height: 1.25;
}
.plugin-catalog-empty-alert-visibility {
width: fit-content;
max-width: 100%;
padding: 2px 6px;
border: 1px solid color-mix(in srgb, var(--ink-soft) 14%, transparent);
border-radius: 999px;
color: var(--ink-soft);
font-size: 0.68rem;
font-weight: 650;
line-height: 1.2;
}
.plugin-catalog-empty-alert-copy p {
margin: 0;
color: var(--ink-soft);
font-size: 0.78rem;
line-height: 1.35;
}
.plugin-catalog-empty-alert-cta {
height: 30px;
padding-inline: 10px;
}
.plugin-catalog-empty-alert-cta:hover,
.plugin-catalog-empty-alert-cta:focus-visible {
border-color: color-mix(in srgb, #f6c76a 38%, var(--line));
background: color-mix(in srgb, #f6c76a 12%, var(--surface-muted));
color: var(--ink);
}
.plugin-catalog-metadata-dialog {
width: min(calc(100vw - 32px), 520px);
gap: 18px;
padding: 20px;
}
.plugin-catalog-metadata-dialog .catalog-metadata-settings-editor {
width: 100%;
min-width: 0;
}
.plugin-catalog-metadata-dialog .catalog-metadata-fields {
grid-template-columns: 1fr;
gap: 14px;
}
.plugin-catalog-metadata-dialog .summary-settings-footer {
align-items: center;
}
.skill-page-title {
margin: 0;
font-family: var(--font-display);
font-size: clamp(1.9rem, 3.45vw, 2.25rem);
line-height: 1.05;
font-weight: 700;
color: var(--ink);
text-wrap: balance;
}
.skill-title-actions {
display: flex;
flex: 0 0 auto;
gap: 10px;
margin-left: auto;
flex-wrap: wrap;
align-items: center;
justify-content: flex-end;
}
.skill-management-toolbar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
width: 100%;
min-height: 32px;
padding: 0 2px 8px;
border-bottom: 1px solid color-mix(in srgb, var(--line) 60%, transparent);
}
.skill-management-toolbar-alert {
display: flex;
align-items: center;
flex: 1 1 auto;
min-width: 0;
}
.skill-management-toolbar-inner {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 4px;
flex: 0 0 auto;
margin-left: auto;
}
.skill-management-toolbar-action {
display: inline-flex;
align-items: center;
gap: 6px;
min-height: 32px !important;
height: auto;
padding: 5px 10px !important;
border: 0;
border-radius: var(--r-btn);
background: transparent;
color: var(--ink-soft);
font: inherit;
font-size: 0.78rem !important;
font-weight: 650 !important;
line-height: 1;
cursor: pointer;
text-decoration: none;
white-space: nowrap;
transition:
color 0.15s,
background 0.15s;
}
.skill-management-toolbar-action svg {
color: color-mix(in srgb, var(--ink-soft) 84%, transparent);
}
.skill-management-toolbar-action:hover,
.skill-management-toolbar-action:focus-visible {
color: var(--ink);
background: color-mix(in srgb, var(--ink-soft) 10%, transparent);
text-decoration: none;
outline: none;
}
.skill-management-toolbar-action:hover svg,
.skill-management-toolbar-action:focus-visible svg {
color: color-mix(in srgb, var(--ink) 72%, var(--ink-soft));
}
.skill-management-toolbar-action-subtle {
color: color-mix(in srgb, var(--ink-soft) 64%, var(--bg));
}
.skill-title-badges {
display: inline-flex;
align-items: center;
gap: 6px;
align-self: center;
}
.skill-category-chip {
display: inline-flex;
align-items: center;
width: fit-content;
min-height: 28px;
border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
border-radius: var(--r-pill);
padding: 4px 10px;
background: color-mix(in srgb, var(--surface-muted) 76%, transparent);
color: var(--ink-soft);
font-family: var(--font-mono);
font-size: var(--fs-xs);
font-weight: 700;
line-height: 1;
letter-spacing: 0;
text-decoration: none;
text-transform: uppercase;
}
.skill-category-chip:hover {
border-color: color-mix(in srgb, var(--ink-soft) 36%, var(--line));
color: var(--ink);
text-decoration: none;
}
.skill-hero-taxonomy-row {
display: inline-flex;
align-items: center;
gap: var(--space-3);
min-width: 0;
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
font-size: 12px;
line-height: 1;
}
.skill-hero-taxonomy-prefix {
display: inline-flex;
align-items: center;
flex: 0 0 auto;
}
.skills-sh-sync-source-label {
color: inherit;
font-weight: 520;
}
.skills-sh-sync-source {
color: inherit;
text-decoration: underline;
text-underline-offset: 3px;
}
.skills-sh-sync-source:hover,
.skills-sh-sync-source:focus-visible {
color: var(--ink);
}
.skill-category-meta-list {
display: inline-flex;
align-items: center;
gap: var(--space-5);
min-width: 0;
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
}
.skill-category-meta-link {
display: inline-flex;
align-items: center;
gap: 6px;
min-width: 0;
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
font-size: 12px;
font-weight: 520;
text-decoration: none;
}
.skill-category-meta-link:hover,
.skill-category-meta-link:focus-visible {
color: var(--ink);
text-decoration: none;
}
.skill-category-icon {
width: 14px;
height: 14px;
flex: 0 0 auto;
}
.skill-hero-taxonomy-separator {
width: 1px;
height: 14px;
flex: 0 0 auto;
background: color-mix(in srgb, var(--ink-soft) 28%, transparent);
}
.skill-hero-topic-list {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 8px;
min-width: 0;
}
.skill-hero-topic {
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
font-size: 12px;
font-weight: 520;
line-height: 1;
white-space: nowrap;
text-decoration: none;
}
.skill-hero-topic:hover,
.skill-hero-topic:focus-visible {
color: var(--ink);
text-decoration: none;
}
@media (max-width: 600px) {
.skill-hero-taxonomy-row {
display: flex;
flex-wrap: wrap;
row-gap: 10px;
}
.skill-hero-taxonomy-separator {
display: none;
}
.skill-hero-topic-list {
flex-basis: 100%;
}
}
.skill-settings-link {
align-self: center;
}
.skill-hero-note {
font-size: 0.9rem;
color: var(--ink);
max-width: 560px;
padding: 8px 12px;
border-radius: 12px;
background: rgba(255, 255, 255, 0.08);
border: 1px solid rgba(255, 255, 255, 0.18);
}
.skill-visibility-alert {
display: inline-flex;
align-items: center;
gap: 7px;
margin: 0;
min-width: 0;
color: var(--status-error-fg);
font-size: 0.8125rem;
font-weight: 550;
line-height: 1.3;
}
.skill-visibility-alert > svg {
flex: 0 0 auto;
color: var(--status-error-fg);
}
.skill-visibility-alert > span {
min-width: 0;
}
.tag-accent {
background: rgba(255, 255, 255, 0.16);
color: var(--accent-deep);
}
.skill-hero-top {
display: grid;
gap: 16px;
}
/* Removed two-column layout for .skill-hero-top.has-plugin so that
<SkillInstallSurface /> and sibling panels span the full hero width
directly below the title/description instead of being squeezed into
a narrow right column. */
.skill-hero-content {
display: grid;
gap: 16px;
}
.bundle-card {
border: 1px solid var(--line);
border-radius: var(--r-md);
padding: 20px;
background: var(--surface);
box-shadow: 0 18px 30px rgba(37, 31, 26, 0.08);
}
.bundle-header {
display: grid;
gap: 6px;
}
.bundle-title {
font-family: var(--font-display);
font-size: 1.05rem;
letter-spacing: -0.015em;
}
.bundle-subtitle {
font-size: 0.88rem;
color: var(--ink-soft);
}
.bundle-includes {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.bundle-includes span {
padding: 6px 12px;
border-radius: var(--r-pill);
border: 1px solid var(--line);
background: var(--surface-muted);
color: var(--ink);
font-size: 0.76rem;
font-weight: 650;
letter-spacing: 0.01em;
}
.bundle-section {
display: grid;
gap: 8px;
padding: 10px 12px;
border-radius: 14px;
background: var(--surface-muted);
border: 1px solid var(--line);
}
.bundle-card .hero-install-code {
white-space: pre-wrap;
overflow-wrap: anywhere;
word-break: break-word;
text-align: left;
font-variant-ligatures: none;
font-feature-settings:
"liga" 0,
"calt" 0;
}
.bundle-section-title {
font-size: 0.9rem;
font-weight: 650;
}
.bundle-meta {
display: grid;
gap: 6px;
min-width: 0;
}
.bundle-meta .stat,
.bundle-meta strong,
.bundle-meta span {
min-width: 0;
overflow-wrap: anywhere;
}
.bundle-details summary {
cursor: pointer;
font-weight: 650;
list-style: none;
}
.bundle-details summary::-webkit-details-marker {
display: none;
}
.bundle-details summary::before {
content: "▸";
display: inline-block;
margin-right: 8px;
color: var(--accent-deep);
}
.bundle-details[open] summary::before {
content: "▾";
}
.skill-hero-sidebar {
display: flex;
flex-direction: column;
gap: 12px;
min-width: 0;
}
.skill-hero-sidebar-stack {
display: grid;
gap: 24px;
min-width: 0;
}
.skill-hero-sidebar > .card {
width: 100%;
}
.skill-hero-sidebar .skill-install-panel {
width: 100%;
padding: 18px;
}
.skill-hero-sidebar .skill-install-panel-copy {
font-size: 0.9rem;
}
.skill-hero-sidebar .skill-install-command {
font-size: 0.8rem;
}
.skills-sh-security-audits {
display: grid;
gap: 8px;
padding: 18px 0;
border-top: 1px solid var(--line);
border-bottom: 1px solid var(--line);
}
.skills-sh-security-audits h2 {
margin: 0;
color: var(--ink-soft);
font-family: inherit;
font-size: 0.86rem;
font-weight: 700;
line-height: 1.2;
}
.skills-sh-security-audit-list {
display: grid;
}
.skills-sh-security-audit-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
min-height: 36px;
padding: 8px 0;
color: var(--ink);
font-size: 0.8rem;
font-weight: 600;
text-decoration: none;
}
.skills-sh-security-audit-verdict {
flex: 0 0 auto;
border-radius: var(--oc-radius-control);
text-transform: uppercase;
}
a.skills-sh-security-audit-row:hover,
a.skills-sh-security-audit-row:focus-visible {
color: var(--ink);
text-decoration: none;
background: var(--hover-bg);
}
.skills-sh-content-note {
margin: 0;
padding-bottom: 14px;
color: var(--ink-soft);
font-size: 0.72rem;
}
.skill-sidebar-actions {
display: grid;
gap: 10px;
}
.skill-sidebar-actions-primary {
gap: 8px;
}
.skill-sidebar-actions-secondary {
margin-top: 0;
padding-top: 10px;
}
.skill-hero-sidebar-stack
> .sidebar-metadata:has(+ .skill-sidebar-actions-secondary)
> .sidebar-metadata-row:last-child,
.skill-hero-sidebar-stack
> .sidebar-metadata:has(+ .skill-sidebar-actions-secondary)
> .sidebar-metadata-grid:last-child
.sidebar-metadata-row {
padding-bottom: 10px;
}
.skill-sidebar-action-button {
width: 100%;
justify-content: center;
}
.skill-sidebar-actions-secondary .skill-sidebar-action-button {
justify-content: flex-start;
}
.skill-sidebar-actions-secondary .skill-sidebar-action-link {
color: color-mix(in srgb, var(--ink-soft) 72%, var(--bg));
font-weight: 560;
}
.skill-sidebar-actions-secondary .skill-sidebar-action-link:hover,
.skill-sidebar-actions-secondary .skill-sidebar-action-link:focus-visible {
color: var(--ink-soft);
}
.skill-sidebar-action-link {
display: inline-flex;
align-items: center;
gap: 8px;
width: fit-content;
padding: 0;
border: 0;
background: transparent;
color: var(--ink-soft);
font: inherit;
font-size: 0.875rem;
font-weight: 600;
line-height: 1.2;
cursor: pointer;
text-decoration: none;
}
.skill-sidebar-action-link:hover,
.skill-sidebar-action-link:focus-visible {
color: var(--ink);
text-decoration: underline;
text-underline-offset: 3px;
outline: none;
}
.skill-sidebar-action-button:hover:not(:disabled),
.skill-sidebar-action-button:focus-visible:not(:disabled) {
border-color: color-mix(in srgb, var(--ink-soft) 36%, var(--line)) !important;
}
.skill-sidebar-action-divider {
border: 0;
border-top: 1px solid var(--line);
margin: 6px 0;
width: 100%;
}
.detail-mobile-master-tabs,
.detail-mobile-master-panel-content {
display: contents;
}
.detail-sidebar-stats {
display: contents;
}
.detail-mobile-master-tab-list,
.detail-mobile-master-stats {
display: none;
}
.detail-mobile-master-tab-list[hidden],
.detail-mobile-master-panel[hidden],
.skill-hero-creator[hidden] {
display: none !important;
}
.security-audit-sidebar-label {
display: inline-flex;
align-items: center;
gap: 6px;
min-width: 0;
}
.security-audit-sidebar-info {
display: inline-flex;
align-items: center;
justify-content: center;
width: 18px;
height: 18px;
padding: 0;
border: 0;
background: transparent;
color: inherit;
}
.security-audit-sidebar-value {
display: block;
min-width: 0;
color: var(--ink);
text-decoration: none;
border-radius: var(--r-sm);
}
.security-audit-sidebar-value:hover,
.security-audit-sidebar-value:focus-visible {
color: var(--ink);
text-decoration: none;
outline: none;
}
.security-audit-sidebar-value-row {
display: grid;
align-items: center;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
min-width: 0;
border-radius: var(--r-sm);
padding: 8px 10px;
margin: -2px 0 -6px -10px;
transition:
background-color 0.16s ease,
box-shadow 0.16s ease;
}
.security-audit-sidebar-value:hover .security-audit-sidebar-value-row,
.security-audit-sidebar-value:focus-visible .security-audit-sidebar-value-row {
background: color-mix(in srgb, var(--surface-muted) 78%, transparent);
box-shadow: 0 0 0 1px color-mix(in srgb, var(--line) 58%, transparent);
}
.security-audit-sidebar-value-row .security-audit-meter {
min-width: 0;
}
.security-audit-sidebar-verdict {
min-width: 0;
color: var(--ink);
font-size: 1rem;
font-weight: 700;
line-height: 1.2;
}
.security-audit-meter {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 6px;
height: 6px;
}
.security-audit-meter span {
border-radius: var(--r-pill);
background: color-mix(in srgb, var(--ink-soft) 24%, var(--line));
}
.security-audit-meter[data-level="1"] span:first-child {
background: #ef7777;
}
.security-audit-meter[data-level="2"] span:nth-child(-n + 2) {
background: #f1b85a;
}
.security-audit-meter[data-level="3"] span {
background: #79e68e;
}
.skill-hero-sidebar-meta {
display: grid;
gap: 0;
}
.skill-sidebar-item {
display: grid;
gap: 2px;
padding: 8px 0;
border-bottom: 1px solid var(--line);
}
.skill-sidebar-item:last-child {
border-bottom: none;
}
.skill-sidebar-label {
font-size: 0.72rem;
font-weight: 600;
letter-spacing: 0.06em;
text-transform: uppercase;
color: var(--ink-soft);
}
.skill-sidebar-value {
font-size: 0.84rem;
color: var(--ink);
line-height: 1.4;
}
.sidebar-metadata,
.skill-sidebar-stats {
display: grid;
gap: 0;
min-width: 0;
margin: 0;
}
.sidebar-metadata-grid,
.skill-sidebar-stat-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0;
border-bottom: 1px solid var(--line);
}
.sidebar-metadata-row,
.skill-sidebar-stat-row {
display: grid;
gap: 8px;
min-width: 0;
padding: 18px 2px;
border-bottom: 1px solid var(--line);
}
.sidebar-metadata > .sidebar-metadata-row:last-child,
.sidebar-metadata > .sidebar-metadata-grid:last-child,
.skill-sidebar-stats > .skill-sidebar-stat-row:last-child {
border-bottom: 0;
}
.sidebar-metadata-grid .sidebar-metadata-row,
.skill-sidebar-stat-grid .skill-sidebar-stat-row {
border-bottom: 0;
}
.sidebar-metadata-grid .sidebar-metadata-row + .sidebar-metadata-row,
.skill-sidebar-stat-grid .skill-sidebar-stat-row + .skill-sidebar-stat-row {
padding-left: 20px;
}
.sidebar-metadata-row-large .sidebar-metadata-value,
.skill-sidebar-stat-row-large strong {
font-size: 1.65rem;
}
.sidebar-metadata-label,
.skill-sidebar-stat-label {
color: var(--ink-soft);
font-size: 0.92rem;
font-weight: 700;
line-height: 1.2;
}
.sidebar-metadata-value,
.skill-sidebar-stat-row strong {
min-width: 0;
margin: 0;
color: var(--ink);
font-size: 1.08rem;
font-weight: 700;
line-height: 1.2;
overflow-wrap: anywhere;
}
.sidebar-metadata-value .user-badge,
.sidebar-metadata-value .user-name,
.sidebar-metadata-value .user-handle {
font-size: inherit;
font-weight: inherit;
}
.sidebar-metadata-value .user-handle-muted {
font-size: 14px;
}
.sidebar-metadata-value .user-badge-link {
margin: -4px -8px;
padding: 4px 8px;
border-radius: var(--r-pill);
transition:
background-color 0.15s ease,
color 0.15s ease;
}
.sidebar-metadata-value .user-badge-link:hover,
.sidebar-metadata-value .user-badge-link:focus-visible {
background: color-mix(in srgb, var(--surface) 72%, transparent);
outline: none;
}
.sidebar-metadata-value .user-badge-link:hover .user-name,
.sidebar-metadata-value .user-badge-link:focus-visible .user-name,
.sidebar-metadata-value .user-badge-link:hover .user-handle,
.sidebar-metadata-value .user-badge-link:focus-visible .user-handle {
text-decoration: none;
}
.sidebar-metadata-compact .sidebar-metadata-row {
gap: 7px;
padding: 16px 2px;
}
.sidebar-metadata-compact > .sidebar-metadata-row:first-child {
box-sizing: border-box;
padding-top: 0;
}
.skill-hero-sidebar-stack:has(.skill-sidebar-star-band)
.sidebar-metadata-compact
> .sidebar-metadata-row:first-child,
.skill-hero-sidebar-stack:has(.skill-sidebar-star-band)
.sidebar-metadata-compact
> .sidebar-metadata-grid:first-child
.sidebar-metadata-row:first-child {
min-height: 0;
padding-top: var(--space-4);
}
.sidebar-metadata-compact .sidebar-metadata-label {
font-size: 0.86rem;
}
.sidebar-metadata-compact .sidebar-metadata-value {
font-size: 1rem;
line-height: 1.35;
}
.sidebar-metadata-value .official-badge {
width: auto;
height: auto;
border: 0;
background: transparent;
}
.sidebar-metadata-value .official-badge svg {
width: 16px;
height: 16px;
}
.sidebar-metadata-compact .sidebar-metadata-grid .sidebar-metadata-row + .sidebar-metadata-row {
padding-left: 18px;
}
.sidebar-metadata-row-inline {
display: flex;
align-items: center;
gap: 10px;
min-width: 0;
}
.sidebar-metadata-row-inline .sidebar-metadata-label {
flex: 0 0 auto;
margin: 0;
white-space: nowrap;
}
.sidebar-metadata-row-inline .sidebar-metadata-value {
flex: 1 1 auto;
min-width: 0;
font-size: 0.92rem;
font-weight: 600;
line-height: 1.2;
}
.sidebar-metadata-inline-text {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.sidebar-metadata-inline {
display: inline-flex;
min-width: 0;
align-items: center;
gap: 8px;
}
.activity-metric-label {
display: inline-flex;
min-width: 0;
align-items: center;
gap: 6px;
}
.activity-metric-tooltip {
max-width: 260px;
line-height: 1.4;
}
.downloads-metric-label-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
width: 100%;
min-width: 0;
}
.downloads-metric-tabs {
display: flex;
align-items: center;
flex: 0 0 auto;
gap: 14px;
margin-left: auto;
}
.detail-inline-tab {
border: none;
background: none;
padding: 0 2px 3px;
font-size: 12px;
font-weight: 600;
line-height: 1;
color: var(--ink-soft);
cursor: pointer;
white-space: nowrap;
border-bottom: 2px solid transparent;
transition:
color 0.15s ease,
border-color 0.15s ease;
}
.detail-inline-tab:hover,
.detail-inline-tab:focus-visible {
color: var(--ink);
outline: none;
}
.detail-inline-tab.is-active {
color: var(--ink);
border-bottom-color: var(--ink);
}
.sidebar-metadata-row-large .sidebar-metadata-label:has(.downloads-metric-label-row) {
width: 100%;
}
.sidebar-metadata-row-large:has(.metric-trend-card) {
gap: calc(var(--space-2) + 2px);
padding-block: calc(var(--space-4) + 2px);
}
.metric-trend-card {
display: grid;
gap: calc(var(--space-2) + 2px);
width: 100%;
min-width: 0;
}
.metric-trend-card-skeleton {
height: 58px;
}
.metric-trend-value-row {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 10px;
}
.metric-trend-value-row strong {
color: var(--ink);
font-size: inherit;
font-weight: inherit;
line-height: 1;
}
.metric-trend-point-label {
color: var(--ink-muted);
font-size: 0.8125rem;
font-weight: 500;
line-height: 1.2;
text-align: right;
white-space: nowrap;
}
.metric-trend-chart {
display: block;
width: 100%;
height: 34px;
color: var(--metric-trend-line, color-mix(in srgb, #6b9fd4 76%, var(--ink)));
outline: none;
touch-action: pan-y;
}
.metric-trend-chart:focus-visible {
outline: 2px solid var(--input-focus-border);
outline-offset: 3px;
}
.metric-trend-area {
fill: var(--metric-trend-area, color-mix(in srgb, #6b9fd4 18%, transparent));
}
.metric-trend-line {
fill: none;
stroke: currentColor;
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 2;
}
.metric-trend-marker-line {
stroke: var(--metric-trend-marker, color-mix(in srgb, #6b9fd4 36%, transparent));
stroke-width: 1.5;
}
.metric-trend-skeleton-total,
.metric-trend-skeleton-label,
.metric-trend-skeleton-chart {
display: block;
border-radius: 999px;
background: linear-gradient(
90deg,
color-mix(in srgb, var(--ink) 8%, transparent),
color-mix(in srgb, var(--ink) 14%, transparent),
color-mix(in srgb, var(--ink) 8%, transparent)
);
background-size: 200% 100%;
animation: skeleton-shimmer 1.15s ease-in-out infinite;
}
.metric-trend-skeleton-total {
width: 54px;
height: 18px;
}
.metric-trend-skeleton-label {
width: 112px;
height: 14px;
}
.metric-trend-skeleton-chart {
width: 100%;
height: 34px;
border-radius: 6px;
}
.security-audit-latest-time {
display: inline-flex;
align-items: center;
gap: 6px;
min-width: 0;
color: var(--ink-soft);
font-size: 0.95rem;
font-weight: 600;
line-height: 1.35;
}
.security-audit-latest-time svg {
color: var(--ink-muted);
}
.security-audit-latest-time > span:last-child {
min-width: 0;
overflow-wrap: anywhere;
}
.security-audit-action-icon,
.security-audit-rescan-icon {
width: 14px;
height: 14px;
flex: 0 0 auto;
}
.security-audit-rescan-error {
color: var(--oc-status-error-fg);
font-size: 0.78rem;
font-weight: 650;
line-height: 1.35;
}
.skill-action-count {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 1.75em;
height: 1.45em;
margin-left: 6px;
padding: 0 0.5em;
border-radius: var(--r-pill);
background: color-mix(in srgb, currentColor 12%, transparent);
font-size: 13px;
font-weight: 750;
line-height: 1;
font-variant-numeric: tabular-nums;
}
.skill-hero-inline-meta {
display: grid;
gap: 6px;
min-width: 0;
}
.skill-hero-stats-row {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 4px 8px;
min-width: 0;
}
.skill-hero-meta-row {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 8px 14px;
min-width: 0;
margin-top: 2px;
overflow-wrap: anywhere;
}
.skill-hero-meta-item {
display: inline-flex;
align-items: baseline;
flex-wrap: wrap;
gap: 4px;
min-width: 0;
font-size: 0.82rem;
line-height: 1.3;
}
.skill-hero-meta-label {
color: var(--ink-soft);
font-weight: 520;
}
.skill-hero-meta-link {
color: var(--accent);
font-weight: 560;
text-decoration: none;
}
.skill-hero-meta-link:hover,
.skill-hero-meta-link:focus-visible {
color: var(--accent);
text-decoration: underline;
}
.skill-hero-meta-version {
color: var(--ink-soft);
font-weight: 520;
}
.skill-hero-badges {
display: flex;
flex-wrap: wrap;
gap: 6px;
align-items: center;
}
.official-badge-icon {
color: currentColor;
}
.owner-official-icon {
display: inline-flex;
flex: 0 0 auto;
align-items: center;
justify-content: center;
color: var(--official-fg);
}
.official-badge {
flex: 0 0 auto;
display: inline-flex;
width: 18px;
height: 18px;
align-items: center;
justify-content: center;
border: 1px solid var(--line);
border-radius: var(--r-pill);
background: var(--official-bg);
color: var(--official-fg);
border-color: var(--official-border);
line-height: 1;
vertical-align: middle;
}
.official-badge svg {
width: 12px;
height: 12px;
}
.browse-page .official-badge {
width: auto;
height: auto;
border: 0;
border-radius: 0;
background: transparent;
color: var(--official-fg);
}
.browse-page .official-badge svg {
width: 18px;
height: 18px;
}
.browse-page .skill-list-item .official-badge svg {
width: 14px;
height: 14px;
}
.skill-hero-scan-row {
display: grid;
gap: 6px;
}
.skill-install-surface {
display: grid;
gap: 16px;
}
.skill-install-panel {
display: grid;
gap: 16px;
padding: 20px;
border-radius: var(--radius-md);
border: 1px solid var(--line);
background:
linear-gradient(180deg, color-mix(in srgb, var(--surface) 96%, white), var(--surface)),
var(--surface);
box-shadow: var(--shadow-card);
min-width: 0;
}
[data-theme-resolved="light"] .skill-install-panel {
border-color: var(--line);
background: var(--surface);
}
.skill-install-panel-header {
display: grid;
gap: 6px;
min-width: 0;
}
.skill-install-kicker {
margin: 0;
font-size: 0.72rem;
font-weight: 700;
letter-spacing: 0.16em;
text-transform: uppercase;
color: var(--ink-soft);
}
.skill-install-panel-title {
margin: 0;
font-size: 1.08rem;
font-weight: 700;
color: var(--ink);
text-wrap: balance;
}
.skill-install-panel-copy {
margin: 0;
max-width: 52ch;
font-size: 0.92rem;
line-height: 1.55;
color: var(--ink-soft);
}
.skill-install-panel-copy code {
display: inline-block;
border-radius: 999px;
padding: 2px 8px;
background: rgba(255, 255, 255, 0.08);
color: var(--ink);
font-family: var(--font-mono);
font-size: 0.82rem;
overflow-wrap: anywhere;
}
[data-theme-resolved="light"] .skill-install-panel-copy code {
background: rgba(15, 12, 10, 0.08);
}
.skill-install-actions {
display: flex;
align-items: center;
gap: 12px;
flex-wrap: wrap;
}
.skill-install-prompt-trigger {
min-height: 46px;
border: 1px solid rgba(0, 0, 0, 0.7);
border-radius: 999px;
background: #0e0e10;
color: #f8f2e9;
padding-inline: 18px;
box-shadow: 0 12px 28px rgba(0, 0, 0, 0.16);
transition:
transform 0.18s ease,
box-shadow 0.18s ease,
border-color 0.18s ease,
background-color 0.18s ease;
touch-action: manipulation;
}
.skill-install-prompt-trigger:hover {
border-color: rgba(0, 0, 0, 0.82);
background: #161619;
}
.skill-install-copy-button:not(.skill-install-command-inline-button) {
border-color: rgba(255, 255, 255, 0.12);
background: rgba(255, 255, 255, 0.02);
color: var(--ink);
transition:
transform 0.18s ease,
border-color 0.18s ease,
background-color 0.18s ease,
box-shadow 0.18s ease;
touch-action: manipulation;
}
[data-theme-resolved="light"] .skill-install-copy-button:not(.skill-install-command-inline-button) {
border-color: rgba(15, 12, 10, 0.12);
background: rgba(255, 255, 255, 0.62);
}
.skill-install-copy-button:not(.skill-install-command-inline-button)[data-copy-state="copied"] {
border-color: rgba(34, 197, 94, 0.36);
color: var(--status-success-fg);
}
.skill-install-copy-button:not(.skill-install-command-inline-button)[data-copy-state="failed"] {
border-color: rgba(239, 68, 68, 0.32);
color: var(--status-error-fg);
}
.skill-install-menu {
max-width: 280px;
}
.skill-install-menu-copy {
display: grid;
gap: 2px;
}
.skill-install-menu-label {
font-size: 0.9rem;
}
.skill-install-menu-description {
font-size: 0.78rem;
font-weight: 500;
line-height: 1.4;
color: var(--ink-soft);
}
.skill-install-copy-feedback {
/*
* Force the feedback line onto its own row inside `.skill-install-actions`
* regardless of the current string length. The feedback text changes between
* short ("Previewing Install Only.") and longer ("Install & Setup prompt
* copied.") states; without `flex-basis: 100%` the long state can push past
* the container width and wrap below the trigger button, causing the whole
* panel to visibly reflow vertically every time the user picks a prompt mode.
* Pinning the row makes the layout stable — only the `<pre>` preview below
* is allowed to grow/shrink with content.
*/
flex-basis: 100%;
min-height: 1.25rem;
font-size: 0.82rem;
font-weight: 600;
color: var(--ink-soft);
}
.skill-install-preview-meta {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
flex-wrap: wrap;
}
.skill-install-preview-label,
.skill-install-command-label {
margin: 0;
font-size: 0.76rem;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--ink-soft);
}
.skill-install-preview-mode {
display: inline-flex;
align-items: center;
border-radius: 999px;
padding: 6px 10px;
background: rgba(255, 255, 255, 0.08);
color: var(--ink);
font-size: 0.82rem;
font-weight: 700;
}
[data-theme-resolved="light"] .skill-install-preview-mode {
background: rgba(15, 12, 10, 0.08);
}
.skill-install-prompt-preview,
.skill-install-command {
margin: 0;
min-width: 0;
overflow-x: auto;
border-radius: var(--radius-md);
border: 1px solid var(--line);
background: var(--surface-muted);
color: var(--ink);
padding: 16px 18px;
font-family: var(--font-mono);
font-size: 0.82rem;
line-height: 1.7;
white-space: pre-wrap;
overflow-wrap: anywhere;
word-break: break-word;
font-variant-numeric: tabular-nums;
box-shadow: none;
}
/*
* Keep the prompt preview at a stable height so that switching between
* "Install Only" and "Install & Setup" does not shift the surrounding
* layout. The setup prompt is noticeably longer than the install-only
* prompt; without a min-height the whole panel (and its neighbour CLI
* panel, since they share a grid row) visibly jumps on every toggle.
* Only applied to the prompt preview — the CLI `<pre>` blocks stay
* content-sized to avoid unnecessary blank space.
*/
.skill-install-prompt-preview {
min-height: 22em;
}
.skill-install-command-card {
display: grid;
gap: 18px;
min-width: 0;
padding: 0;
border: 0;
border-radius: 0;
background: transparent;
box-shadow: none;
}
.skill-install-command-header {
justify-content: space-between;
gap: 12px;
flex-wrap: wrap;
}
[data-theme-resolved="light"] .skill-install-command-card {
background: transparent;
}
.skill-install-command-copy {
display: grid;
gap: 4px;
min-width: 0;
}
.skill-install-command-wrap {
position: relative;
display: grid;
min-width: 0;
width: 100%;
}
.skill-install-command-shell {
position: relative;
display: flex;
align-items: flex-start;
gap: 8px;
width: 100%;
max-width: 100%;
min-width: 0;
box-sizing: border-box;
overflow-x: hidden;
overflow-y: visible;
border-radius: var(--radius-md);
border: 1px solid var(--line);
background: var(--surface-muted);
padding: 16px 62px 16px 18px;
}
.skill-install-command-shell-cli {
--install-command-line-height: 1.5;
align-items: center;
}
.skill-install-command-prompt {
flex: 0 0 auto;
align-self: center;
font-family: var(--font-mono);
font-size: 0.82rem;
line-height: var(--install-command-line-height, 1.5);
color: color-mix(in srgb, var(--ink-soft) 70%, transparent);
user-select: none;
pointer-events: none;
}
.skill-install-command-wrap .skill-install-command-verb {
color: color-mix(in srgb, var(--ink-soft) 70%, transparent);
}
.skill-install-command-wrap .skill-install-command-target {
color: var(--ink);
}
[data-theme-resolved="light"] .skill-install-command-shell {
border-color: var(--line);
background: var(--surface-muted);
}
.skill-install-command-wrap .skill-install-command {
display: flex;
flex: 1 1 auto;
align-items: center;
width: auto;
min-width: 0;
min-height: 0;
overflow-x: hidden;
overflow-y: visible;
border: 0;
border-radius: 0;
background: transparent;
padding: 0;
margin: 0;
font-size: 0.82rem;
line-height: var(--install-command-line-height, 1.5);
text-overflow: ellipsis;
white-space: nowrap;
}
.skill-install-command-wrap .skill-install-command code {
display: block;
overflow-x: hidden;
overflow-y: visible;
line-height: var(--install-command-line-height, 1.5);
text-overflow: ellipsis;
white-space: nowrap;
}
.skill-install-command-wrap .skill-install-prompt-compact {
display: block;
align-self: stretch;
line-height: 1.7;
}
.skill-install-command-wrap .skill-install-prompt-compact code {
line-height: 1.7;
}
.skill-install-command-reveal {
--install-command-enter-x: 10px;
transition:
opacity 170ms cubic-bezier(0.23, 1, 0.32, 1),
transform 170ms cubic-bezier(0.23, 1, 0.32, 1),
filter 170ms cubic-bezier(0.23, 1, 0.32, 1);
will-change: opacity, transform, filter;
}
.skill-install-command-reveal[data-direction="left"] {
--install-command-enter-x: -10px;
}
@starting-style {
.skill-install-command-reveal {
opacity: 0;
transform: translateX(var(--install-command-enter-x));
filter: blur(4px);
}
}
.skill-install-command-wrap .skill-install-prompt-compact {
overflow: visible;
text-overflow: clip;
white-space: pre-wrap;
overflow-wrap: break-word;
word-break: normal;
}
.skill-install-command-wrap .skill-install-prompt-compact code {
overflow: visible;
text-overflow: clip;
white-space: pre-wrap;
overflow-wrap: break-word;
word-break: normal;
}
.skill-install-command-inline-button.skill-install-copy-button {
position: absolute;
right: 10px;
border: 0 !important;
background: transparent !important;
color: color-mix(in srgb, var(--ink-soft) 88%, transparent);
box-shadow: none;
transition: color 0.18s ease !important;
}
.skill-install-command-shell-cli .skill-install-command-inline-button.skill-install-copy-button {
top: 50%;
transform: translateY(-50%);
}
.skill-install-command-shell:not(.skill-install-command-shell-cli)
.skill-install-command-inline-button.skill-install-copy-button {
top: 12px;
transform: none;
}
.skill-install-command-inline-button.skill-install-copy-button:hover:not(:disabled),
.skill-install-command-inline-button.skill-install-copy-button:focus-visible {
border: 0 !important;
background: transparent !important;
color: var(--ink);
box-shadow: none;
}
.skill-install-command-shell-cli
.skill-install-command-inline-button.skill-install-copy-button:hover:not(:disabled),
.skill-install-command-shell-cli
.skill-install-command-inline-button.skill-install-copy-button:focus-visible {
transform: translateY(-50%);
}
.skill-install-command-shell-cli
.skill-install-command-inline-button.skill-install-copy-button[data-copy-state="copied"],
.skill-install-command-shell-cli
.skill-install-command-inline-button.skill-install-copy-button[data-copy-state="failed"] {
transform: translateY(-50%);
}
.skill-install-command-inline-button.skill-install-copy-button[data-copy-state="copied"] {
border: 0 !important;
background: transparent !important;
color: var(--status-success-fg);
}
.skill-install-command-inline-button.skill-install-copy-button[data-copy-state="failed"] {
border: 0 !important;
background: transparent !important;
color: var(--status-error-fg);
}
.skill-install-command-caption {
margin: 0;
font-size: 0.84rem;
line-height: 1.45;
color: var(--ink-soft);
}
.skill-install-command-tooltip {
max-width: min(720px, calc(100vw - 32px));
padding: 10px 12px;
}
.skill-install-command-tooltip code {
display: block;
max-height: 320px;
overflow: auto;
white-space: pre-wrap;
overflow-wrap: anywhere;
font-family: var(--font-mono);
font-size: 0.78rem;
line-height: 1.45;
}
.install-switcher-toggle {
--install-switcher-active-index: 0;
position: relative;
display: inline-flex;
width: fit-content;
align-items: center;
gap: 4px;
border-radius: var(--r-btn);
border: 1px solid color-mix(in srgb, var(--line) 88%, transparent);
background: color-mix(in srgb, var(--surface-muted) 78%, var(--bg));
padding: 4px;
}
.install-switcher-toggle[data-active="prompt"] {
--install-switcher-active-index: 1;
}
.install-switcher-toggle::before {
position: absolute;
inset-block: 4px;
left: 4px;
width: calc((100% - 12px) / 2);
border-radius: calc(var(--r-btn) - 4px);
background: color-mix(in srgb, var(--surface-muted) 70%, var(--ink) 8%);
content: "";
transform: translateX(calc(var(--install-switcher-active-index) * (100% + 4px)));
transition: transform 190ms cubic-bezier(0.23, 1, 0.32, 1);
}
[data-theme-resolved="light"] .install-switcher-toggle {
border-color: color-mix(in srgb, var(--line) 92%, transparent);
background: color-mix(in srgb, var(--surface-muted) 72%, var(--bg));
}
.install-switcher-pill {
position: relative;
z-index: 1;
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 64px;
min-height: 32px;
border: none;
border-radius: calc(var(--r-btn) - 4px);
background: transparent;
color: var(--ink-soft);
cursor: pointer;
padding: 0 14px;
font-family: var(--font-body);
font-size: 0.78rem;
font-weight: 700;
line-height: 1;
text-transform: none;
transition: color 160ms ease;
touch-action: manipulation;
}
.install-switcher-pill:hover {
color: var(--ink);
}
.install-switcher-pill:focus-visible {
outline: 2px solid var(--accent);
outline-offset: 2px;
}
.install-switcher-pill.is-active,
.install-switcher-pill[aria-selected="true"] {
background: transparent;
color: var(--ink);
box-shadow: none;
}
/* Skill/plugin install card — flat CLI | Prompt text toggle */
.skill-install-command-card .skill-install-tab-toggle {
display: inline-flex;
align-items: center;
gap: 0;
padding: 0;
border: 0;
border-radius: 0;
background: none;
}
.skill-install-command-card .skill-install-tab {
appearance: none;
border: 0;
cursor: pointer;
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 24px;
padding: 4px 8px;
border-radius: 0;
background: none;
color: var(--ink-soft);
font-family: inherit;
font-size: 0.72rem;
font-weight: 650;
letter-spacing: -0.01em;
line-height: 1;
transition: color 0.15s ease;
}
.skill-install-command-card .skill-install-tab + .skill-install-tab {
position: relative;
}
.skill-install-command-card .skill-install-tab + .skill-install-tab::before {
content: "";
position: absolute;
left: 0;
top: 50%;
width: 1px;
height: 12px;
transform: translateY(-50%);
background: color-mix(in srgb, var(--ink-soft) 45%, transparent);
}
.skill-install-command-card .skill-install-tab:hover {
color: var(--ink);
}
.skill-install-command-card .skill-install-tab.is-active {
color: var(--ink);
}
.skill-install-command-card .skill-install-tab:focus-visible {
outline: 2px solid color-mix(in srgb, var(--ink) 35%, transparent);
outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
.skill-install-prompt-trigger,
.skill-install-copy-button,
.skill-install-command-reveal,
.skill-install-tab,
.install-switcher-toggle::before,
.install-switcher-pill {
transition: none;
transform: none;
filter: none;
}
}
/* Skill/plugin detail mobile stack — max-width 900px; desktop sidebar starts at 901px */
@media (max-width: 900px) {
.skill-detail-page,
.plugin-detail-page {
--detail-mobile-surface-radius: var(--r-md);
--detail-mobile-surface-padding: 14px;
--detail-mobile-surface-border: 1px solid var(--line);
--detail-mobile-surface-bg: color-mix(in srgb, var(--surface) 92%, transparent);
}
.skill-hero {
gap: 12px;
}
.skill-hero-layout.has-sidebar {
gap: 16px;
}
.skill-hero-main {
gap: 14px;
}
.skill-hero-title {
gap: 12px;
}
.skill-hero-heading-stack {
gap: 10px;
}
.skill-hero-layout.has-sidebar .skill-summary-block {
max-width: none;
margin-bottom: 0;
gap: 4px;
}
.skill-hero-lower {
grid-template-columns: 1fr;
}
.skill-hero-lower.has-sidebar {
grid-template-columns: minmax(0, 1fr);
gap: 12px;
display: flex;
flex-direction: column;
}
.skill-hero-sidebar,
.skill-hero-main-extra {
display: contents;
}
.skill-sidebar-mobile-priority {
display: grid;
gap: 8px;
}
.detail-sidebar-stats {
display: none;
}
.plugin-detail-page .skill-hero-sidebar-stack {
display: none;
}
.detail-mobile-install {
order: 1;
width: 100%;
min-width: 0;
}
.skill-detail-page .detail-mobile-install {
margin-top: 14px;
}
.detail-mobile-install .skill-install-command-card {
--detail-mobile-install-border: color-mix(in srgb, var(--ink-soft) 30%, transparent);
position: relative;
isolation: isolate;
gap: 12px;
padding: var(--detail-mobile-surface-padding);
border: 0;
border-radius: var(--detail-mobile-surface-radius) var(--detail-mobile-surface-radius) 0 0;
background: transparent;
}
.detail-mobile-install .skill-install-command-card::before {
position: absolute;
inset: 0;
z-index: 0;
border-radius: inherit;
background: linear-gradient(180deg, var(--detail-mobile-surface-bg) 0%, transparent 100%);
content: "";
pointer-events: none;
}
.detail-mobile-install .skill-install-command-card::after {
position: absolute;
inset: 0;
z-index: 0;
border: 1px solid var(--detail-mobile-install-border);
border-bottom: 0;
border-radius: inherit;
content: "";
pointer-events: none;
-webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 38%, transparent 100%);
mask-image: linear-gradient(to bottom, #000 0%, #000 38%, transparent 100%);
}
.detail-mobile-install .skill-install-command-card > * {
position: relative;
z-index: 1;
}
.detail-mobile-install .skill-install-command-header {
padding-bottom: 12px;
border-bottom-color: transparent;
background: linear-gradient(
90deg,
transparent,
color-mix(in srgb, var(--line) 62%, transparent) 12%,
color-mix(in srgb, var(--line) 62%, transparent) 88%,
transparent
)
bottom / 100% 1px no-repeat;
}
.detail-mobile-install .skill-install-command-shell {
border-color: color-mix(in srgb, var(--line) 72%, transparent);
background: color-mix(in srgb, var(--surface-muted) 76%, var(--bg));
padding: 12px 52px 12px 14px;
}
.detail-mobile-install .skill-install-command-shell-cli {
overflow-x: hidden;
}
.skills-sh-detail-page .detail-mobile-install .skill-install-command-shell-cli {
align-items: flex-start;
}
.skills-sh-detail-page .detail-mobile-install .skill-install-command-prompt {
align-self: flex-start;
}
.skills-sh-detail-page
.detail-mobile-install
.skill-install-command-shell-cli
.skill-install-command,
.skills-sh-detail-page
.detail-mobile-install
.skill-install-command-shell-cli
.skill-install-command
code {
white-space: pre-wrap;
overflow-wrap: anywhere;
word-break: break-word;
}
.detail-mobile-install .skill-install-command-shell-cli .skill-install-command,
.detail-mobile-install .skill-install-command-shell-cli .skill-install-command code {
white-space: nowrap;
overflow-wrap: normal;
word-break: normal;
}
.detail-mobile-install .skill-install-command-shell-cli .skill-install-command-inline-button {
top: 50%;
right: 10px;
margin-top: 0;
transform: translateY(-50%);
flex: none;
justify-content: center;
}
.detail-mobile-install .skill-install-command-shell:not(.skill-install-command-shell-cli) {
flex-direction: column;
align-items: stretch;
padding: 12px 48px 12px 14px;
}
.detail-mobile-install
.skill-install-command-shell:not(.skill-install-command-shell-cli)
.skill-install-command {
display: block;
flex: none;
width: 100%;
max-width: 100%;
min-width: 0;
white-space: pre-wrap;
overflow-wrap: break-word;
word-break: normal;
overflow-x: hidden;
}
.detail-mobile-install
.skill-install-command-shell:not(.skill-install-command-shell-cli)
.skill-install-command
code {
display: block;
width: 100%;
max-width: 100%;
white-space: pre-wrap;
overflow-wrap: break-word;
word-break: normal;
}
.detail-mobile-install
.skill-install-command-shell:not(.skill-install-command-shell-cli)
.skill-install-command-inline-button {
position: absolute;
top: 12px;
right: 10px;
align-self: auto;
width: auto;
margin-top: 0;
transform: none;
}
.skill-hero-main-extra
> :not(.detail-mobile-tabs):not(.detail-mobile-related):not(.detail-mobile-install):not(
.detail-mobile-master-tabs
) {
order: 0;
}
.detail-mobile-deferred {
order: 3;
margin-top: 0;
border: var(--detail-mobile-surface-border);
border-radius: var(--detail-mobile-surface-radius);
background: var(--detail-mobile-surface-bg);
}
.detail-mobile-tabs {
order: 4;
margin-top: 4px;
}
.detail-mobile-related {
order: 5;
margin-top: 4px;
}
.skill-hero-main-extra {
gap: 14px;
}
.plugin-detail-page .skill-hero-main-extra {
gap: var(--space-5);
}
.skill-hero-sidebar-stack {
order: 2;
width: 100%;
gap: 10px;
}
:is(.skill-detail-page, .plugin-detail-page) .skill-summary-block {
margin-top: 4px;
}
:is(.skill-detail-page, .plugin-detail-page) .skill-hero-creator {
margin-top: 18px;
}
.skill-detail-page .skill-hero-creator {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
gap: 12px;
}
.skill-detail-page .skill-hero-creator .user-badge,
.skill-detail-page .skill-hero-creator .user-badge-link {
flex: 1 1 auto;
min-width: 0;
}
.skill-detail-page .skill-hero-creator-star {
display: flex;
flex: 0 0 auto;
align-items: center;
margin-left: auto;
}
.skill-detail-page .skill-hero-creator-star .skill-sidebar-star-action {
min-height: 0;
justify-content: flex-end;
}
.skill-detail-page .skill-hero-creator-star .skill-sidebar-star-action:hover,
.skill-detail-page .skill-hero-creator-star .skill-sidebar-star-action:focus-visible {
text-decoration: none;
}
.skill-detail-page .skill-hero-lower.has-sidebar {
order: 3;
display: grid;
gap: 12px;
width: 100%;
min-width: 0;
}
.detail-mobile-master-tabs {
order: 3;
display: grid;
gap: 12px;
width: 100%;
min-width: 0;
}
.detail-mobile-master-tab-list {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0;
min-width: 0;
width: 100%;
border-bottom: 1px solid var(--line);
}
.detail-mobile-master-tab {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 0;
min-height: 44px;
margin-bottom: -1px;
border: 0;
border-bottom: 2px solid transparent;
border-radius: 0;
background: transparent;
color: var(--ink-soft);
cursor: pointer;
padding: 0 12px;
font: inherit;
font-size: 0.9rem;
font-weight: 700;
line-height: 1;
text-align: center;
transition:
border-color 150ms ease,
background-color 150ms ease,
color 150ms ease,
transform 150ms ease;
}
.detail-mobile-master-tab:hover,
.detail-mobile-master-tab:focus-visible {
color: var(--ink);
outline: none;
}
.detail-mobile-master-tab:focus-visible {
box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 38%, transparent);
}
.detail-mobile-master-tab:active {
transform: none;
}
.detail-mobile-master-tab.is-active {
border-bottom-color: var(--ink);
background: transparent;
color: var(--ink);
}
.detail-mobile-master-panel {
min-width: 0;
}
.detail-mobile-master-panel-content {
display: grid;
gap: 14px;
width: 100%;
min-width: 0;
}
.detail-mobile-master-stats {
display: grid;
gap: 0;
width: 100%;
min-width: 0;
padding: var(--detail-mobile-surface-padding);
border: var(--detail-mobile-surface-border);
border-radius: var(--detail-mobile-surface-radius);
background: var(--detail-mobile-surface-bg);
}
.skill-detail-page .skill-detail-tabs-card.detail-mobile-tabs .tab-header {
gap: 8px;
padding: 10px var(--detail-mobile-surface-padding);
border-bottom: 0;
overflow-x: auto;
background: transparent;
}
.skill-detail-page .skill-detail-tabs-card.detail-mobile-tabs .tab-button {
flex: 0 0 auto;
justify-content: center;
min-height: 32px;
margin: 0;
padding: 0 10px;
border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
border-radius: 999px;
background: transparent;
color: var(--ink-soft);
font-size: 0.82rem;
}
.skill-detail-page .skill-detail-tabs-card.detail-mobile-tabs .tab-button.is-active {
border-color: color-mix(in srgb, var(--ink-soft) 30%, var(--line));
background: color-mix(in srgb, var(--surface-muted) 82%, transparent);
color: var(--ink);
}
.skill-detail-page .skill-detail-tabs-card.detail-mobile-tabs .skill-diff-tab-body {
overflow: visible;
padding: 0;
border: 0;
background: transparent;
}
.skill-sidebar-creator-metadata .sidebar-metadata-row {
padding-block: 8px;
}
.detail-mobile-deferred-summary {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
padding: 12px var(--detail-mobile-surface-padding);
cursor: pointer;
color: var(--ink);
font-size: 0.92rem;
font-weight: 600;
list-style: none;
}
.detail-mobile-deferred-summary::-webkit-details-marker {
display: none;
}
.detail-mobile-deferred-summary::after {
content: "";
flex: 0 0 auto;
width: 7px;
height: 7px;
border-right: 1.5px solid currentColor;
border-bottom: 1.5px solid currentColor;
transform: rotate(45deg);
opacity: 0.55;
transition: transform 0.16s ease;
}
.detail-mobile-deferred[open] .detail-mobile-deferred-summary::after {
transform: rotate(-135deg) translateY(2px);
}
.detail-mobile-deferred-body {
padding: 0 var(--detail-mobile-surface-padding) var(--detail-mobile-surface-padding);
border-top: 1px solid var(--line);
}
.detail-mobile-deferred-body .skill-sidebar-deferred-metadata > .sidebar-metadata-row:first-child,
.detail-mobile-deferred-body
.skill-sidebar-deferred-metadata
> .sidebar-metadata-grid:first-child
.sidebar-metadata-row:first-child {
padding-top: 10px;
}
.detail-mobile-deferred-body .skill-sidebar-actions-secondary {
margin-top: 4px;
padding-top: 0;
border-top: 0;
}
.skill-sidebar-actions-primary {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 8px;
}
.skill-sidebar-actions-secondary {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 8px;
padding-top: 0;
border-top: 0;
}
.skill-sidebar-actions-secondary > :only-child {
grid-column: 1 / -1;
}
.skill-sidebar-action-button {
min-height: 40px !important;
padding-top: 8px !important;
padding-bottom: 8px !important;
justify-content: center;
}
.skill-action-count {
height: 1.35em;
margin-left: 4px;
padding: 0 0.45em;
font-size: 12px;
}
.sidebar-metadata-compact .sidebar-metadata-row,
.skill-hero-sidebar .sidebar-metadata-row {
gap: 4px;
padding: 10px 0;
}
.sidebar-metadata-compact > .sidebar-metadata-row:first-child {
min-height: auto;
}
.sidebar-metadata-compact .sidebar-metadata-grid .sidebar-metadata-row,
.skill-hero-sidebar .sidebar-metadata-grid .sidebar-metadata-row {
padding: 10px 0;
}
.sidebar-metadata-compact .sidebar-metadata-grid .sidebar-metadata-row + .sidebar-metadata-row {
padding-left: 14px;
}
.sidebar-metadata-row-large .sidebar-metadata-value {
font-size: 1.35rem;
line-height: 1.15;
}
.metric-trend-card {
gap: calc(var(--space-1) + 2px);
}
.sidebar-metadata-row-large:has(.metric-trend-card) {
gap: var(--space-2);
padding-block: var(--space-3);
}
.downloads-metric-tabs {
gap: 10px;
}
.detail-inline-tab {
font-size: 11px;
}
.metric-trend-chart {
height: 22px;
}
.metric-trend-card-skeleton {
height: 38px;
}
.metric-trend-point-label {
font-size: 0.75rem;
}
.security-audit-sidebar-value-row {
gap: 8px;
padding: 4px 8px;
margin: 0;
}
.security-audit-sidebar-verdict {
font-size: 0.92rem;
}
.security-audit-meter {
height: 5px;
gap: 4px;
}
}
@media (min-width: 901px) {
.detail-mobile-deferred,
.detail-mobile-deferred-desktop {
display: contents;
}
.detail-mobile-deferred-summary {
display: none;
}
.detail-mobile-deferred-body {
display: contents;
}
.detail-mobile-deferred:not([open]) > .detail-mobile-deferred-body {
display: contents !important;
}
.detail-mobile-master-panel-content[hidden] {
display: contents !important;
}
.skill-sidebar-mobile-priority {
display: contents;
}
.skill-hero-sidebar,
.skill-hero-main-extra {
display: revert;
}
.skill-hero-sidebar {
display: flex;
}
.skill-hero-main-extra {
display: grid;
}
.skill-hero-lower.has-sidebar {
display: grid;
flex-direction: unset;
}
.skill-hero-sidebar-stack {
gap: 0;
}
.skill-hero-lower.has-sidebar .detail-hero-summary-row {
height: var(--detail-hero-summary-row-block-size);
min-height: var(--detail-hero-summary-row-block-size);
}
.skill-install-command-header.detail-hero-summary-row {
flex-wrap: nowrap;
}
}
.detail-skeleton-mobile-creator {
display: none;
gap: 8px;
}
.detail-skeleton,
.detail-skeleton * {
min-width: 0;
}
.detail-skeleton .skill-hero-title-row {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 12px;
}
.detail-skeleton-install-tabs {
display: flex;
align-items: center;
gap: 8px;
}
.detail-skeleton-tabs {
width: 100%;
}
.detail-skeleton-tabs .tab-header {
flex-wrap: nowrap;
overflow: hidden;
}
.detail-skeleton-tabs .tab-body {
overflow: hidden;
}
.detail-skeleton .skill-install-command-inline-button {
width: auto;
}
.detail-skeleton-deferred-summary {
display: none;
}
@media (max-width: 900px) {
.detail-skeleton-mobile-creator {
display: inline-flex;
}
.detail-skeleton-deferred[data-kind="skill"] {
display: none;
}
.detail-skeleton-deferred[data-kind="plugin"] {
border: var(--detail-mobile-surface-border);
border-radius: var(--detail-mobile-surface-radius);
background: var(--detail-mobile-surface-bg);
}
.detail-skeleton-deferred[data-kind="plugin"] .detail-skeleton-deferred-summary {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
padding: 12px var(--detail-mobile-surface-padding);
}
.detail-skeleton-deferred[data-kind="plugin"] .detail-skeleton-deferred-body {
display: none;
}
.detail-skeleton .skill-hero-lower.has-sidebar {
display: flex;
flex-direction: column;
}
.detail-skeleton .skill-hero-main-extra,
.detail-skeleton .skill-hero-sidebar {
display: contents;
}
.detail-skeleton-tabs .tab-header {
overflow-x: auto;
}
.detail-skeleton .skill-install-command-header {
align-items: flex-start;
}
.detail-skeleton .skill-install-command-shell {
padding-right: 58px;
}
}
@media (max-width: 640px) {
.detail-skeleton .skill-hero-breadcrumbs {
gap: 6px;
}
.detail-skeleton .skill-hero-title-row {
gap: 10px;
}
.detail-skeleton-install-tabs {
width: 100%;
justify-content: flex-start;
}
.detail-skeleton-tabs .tab-header {
gap: 10px;
}
.detail-skeleton-tabs .tab-body {
padding-right: var(--detail-mobile-surface-padding);
padding-left: var(--detail-mobile-surface-padding);
}
}
/* Legacy compatibility — keep for any existing references */
.skill-hero-cta {
display: flex;
flex-direction: column;
align-items: flex-end;
gap: 10px;
}
.skill-hero-cta .btn {
width: 100%;
justify-content: center;
}
.skill-version-pill {
display: grid;
gap: 4px;
padding: 10px 14px;
border-radius: 16px;
border: 1px solid var(--line);
background: var(--surface-muted);
text-align: right;
min-width: 0;
}
.skill-version-label {
font-size: 0.68rem;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--ink-soft);
}
.skill-tag-row {
display: flex;
flex-wrap: wrap;
gap: 8px;
align-items: center;
min-width: 0;
}
.skill-tag-history {
display: grid;
gap: 8px;
}
.skill-tag-history-label {
font-size: var(--fs-xs);
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--ink-soft);
}
.tag-meta {
font-size: 0.72rem;
font-weight: 600;
color: inherit;
opacity: 0.7;
}
.tag-delete {
all: unset;
cursor: pointer;
font-size: 0.85rem;
line-height: 1;
opacity: 0.5;
padding: 0 2px;
margin-left: -2px;
border-radius: 3px;
transition: opacity 0.15s;
}
.tag-delete:hover {
opacity: 1;
}
.tag-form {
display: grid;
grid-template-columns: minmax(140px, 1fr) minmax(160px, 1fr) auto;
gap: 10px;
align-items: center;
}
.skill-hero-panels {
display: grid;
gap: 14px;
grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
}
.skill-panel {
display: grid;
gap: 10px;
padding: 14px;
border-radius: 16px;
border: 1px solid var(--line);
background: var(--surface-muted);
}
.skill-panel-body {
display: grid;
gap: 8px;
}
.related-skills-section {
display: grid;
gap: 16px;
min-width: 0;
}
.related-skills-section-compact {
gap: 10px;
}
.related-skills-section-compact .related-skills-header {
align-items: baseline;
gap: 12px;
padding-bottom: 4px;
border-bottom: 0;
}
.related-skills-section-compact .related-skills-title {
color: var(--ink-soft);
font-family: var(--font-body);
font-weight: 700;
letter-spacing: 0;
}
.related-skills-footer {
display: flex;
justify-content: center;
min-width: 0;
padding-top: 6px;
}
.related-skills-section-compact .related-skills-footer {
padding-top: 4px;
}
.related-skills-category-link {
width: auto;
min-height: 30px !important;
padding: 0 11px !important;
gap: 6px !important;
border: 1px solid color-mix(in srgb, var(--line) 88%, transparent) !important;
border-radius: var(--r-btn);
background: color-mix(in srgb, var(--surface-muted) 32%, transparent) !important;
color: var(--ink-soft) !important;
font-family: var(--font-body);
font-size: var(--fs-xs);
font-weight: 550 !important;
letter-spacing: -0.01em;
box-shadow: none;
transition:
border-color 160ms ease-out,
background-color 160ms ease-out,
color 160ms ease-out,
box-shadow 160ms ease-out,
transform 120ms ease-out;
}
.related-skills-category-link svg {
opacity: 0.72;
transition: opacity 160ms ease-out;
}
.related-skills-category-link:hover:not(:disabled),
.related-skills-category-link:focus-visible:not(:disabled) {
border-color: color-mix(in srgb, var(--ink-soft) 24%, var(--line)) !important;
background: color-mix(in srgb, var(--surface-muted) 68%, var(--hover-bg)) !important;
color: var(--ink) !important;
box-shadow: var(--shadow-card);
}
.related-skills-category-link:hover:not(:disabled) svg,
.related-skills-category-link:focus-visible:not(:disabled) svg {
opacity: 1;
}
.related-skills-category-link:active:not(:disabled) {
transform: scale(0.98);
}
.related-skills-header {
display: flex;
align-items: end;
justify-content: space-between;
gap: 16px;
padding-bottom: 14px;
border-bottom: 1px solid var(--line);
}
.related-skills-title {
margin: 0;
color: var(--ink);
font-family: var(--font-display);
font-size: var(--fs-2xl);
font-weight: 700;
line-height: 1.2;
letter-spacing: -0.01em;
}
.related-skills-list {
display: grid;
min-width: 0;
border-top: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
}
.related-skills-section-compact .related-skills-list {
border-top: 0;
}
.related-skill-row {
display: grid;
grid-template-columns: 34px minmax(0, 1fr) minmax(180px, 0.34fr);
gap: 16px;
align-items: center;
min-width: 0;
padding: 18px 0;
border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
color: inherit;
text-decoration: none;
}
.related-skills-section-compact .related-skill-row {
grid-template-columns: 34px minmax(0, 1fr) auto;
gap: 12px;
margin-inline: -10px;
padding: 14px 10px;
border-radius: var(--r-sm);
transition: background-color 120ms ease;
}
.related-skills-section-compact .related-skill-row:hover {
background: color-mix(in srgb, var(--surface-muted) 82%, transparent);
}
.related-skills-section-compact .related-skill-row:last-child {
border-bottom: 0;
}
.related-skill-row:hover .related-skill-name {
text-decoration: none;
}
.related-skill-row:hover {
text-decoration: none;
}
.related-skill-icon {
display: flex;
align-self: start;
}
.related-skill-icon .marketplace-icon,
.related-skill-icon .marketplace-icon:hover {
width: 34px;
height: 34px;
border: 1px solid color-mix(in srgb, var(--ink) 8%, transparent);
border-radius: var(--oc-radius-inset);
background: color-mix(in srgb, var(--ink) 4%, transparent) !important;
color: var(--ink-soft);
box-shadow: none;
pointer-events: none;
transform: none;
transition: none;
--marketplace-icon-accent: var(--ink-soft);
--marketplace-icon-wash: transparent;
}
.related-skill-icon .marketplace-icon-glyph,
.related-skill-icon .marketplace-icon-image {
width: 17px;
height: 17px;
filter: grayscale(1) brightness(1.18);
}
.related-skill-copy {
display: grid;
gap: 5px;
min-width: 0;
}
.related-skill-title-line {
display: flex;
align-items: baseline;
gap: 10px;
min-width: 0;
}
.related-skill-name {
min-width: 0;
overflow: hidden;
color: var(--ink);
font-family: var(--font-display);
font-size: var(--fs-md);
font-weight: 600;
line-height: 1.25;
letter-spacing: -0.01em;
text-overflow: ellipsis;
white-space: nowrap;
}
.related-skill-summary {
display: -webkit-box;
min-width: 0;
margin: 0;
overflow: hidden;
color: var(--ink-soft);
font-size: var(--fs-sm);
line-height: 1.45;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
}
.related-skills-section-compact .related-skill-summary {
font-size: 12px;
}
.related-skill-owner {
min-width: 0;
color: var(--ink-soft);
font-family: var(--font-mono);
font-size: var(--fs-xs);
line-height: 1.3;
text-align: right;
overflow-wrap: anywhere;
}
.related-skill-owner-inline {
overflow: hidden;
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
font-family: var(--font-mono);
font-size: 12px;
font-weight: 650;
line-height: 1.2;
text-overflow: ellipsis;
white-space: nowrap;
}
.related-skill-stats {
display: inline-flex;
align-items: center;
justify-content: flex-end;
gap: 12px;
color: var(--ink-soft);
white-space: nowrap;
}
.related-skill-stat {
display: inline-flex;
align-items: center;
justify-content: flex-end;
gap: 6px;
font-size: 12px;
font-weight: 650;
line-height: 1;
}
.related-skill-row-skeleton {
pointer-events: none;
}
.related-skill-icon-skeleton,
.related-skill-title-skeleton,
.related-skill-summary-skeleton,
.related-skill-owner-skeleton {
display: block;
overflow: hidden;
border-radius: var(--r-sm);
background: linear-gradient(
90deg,
color-mix(in srgb, var(--surface-muted) 70%, transparent),
color-mix(in srgb, var(--line) 72%, transparent),
color-mix(in srgb, var(--surface-muted) 70%, transparent)
);
background-size: 220% 100%;
animation: skeleton-shimmer 1.15s ease-in-out infinite;
}
.related-skill-icon-skeleton {
width: 34px;
height: 34px;
border-radius: var(--oc-radius-inset);
}
.related-skill-title-skeleton {
width: min(260px, 70%);
height: 20px;
}
.related-skill-summary-skeleton {
width: min(520px, 86%);
height: 16px;
}
.related-skill-owner-skeleton {
justify-self: end;
width: min(190px, 100%);
height: 18px;
}
.skill-install-tabs {
overflow: hidden;
}
.tab-body.skill-install-tabs {
color: var(--ink);
font-weight: 400;
overflow-x: visible;
}
.requirements-panel-title,
.file-list-header .section-title,
.skill-versions-header h2 {
margin: 0;
color: var(--ink);
font-family: var(--font-display);
font-size: 1.05rem;
font-weight: 650;
line-height: 1.25;
letter-spacing: 0;
}
.requirements-section h4,
.requirements-subsection h5 {
margin: 0;
color: var(--ink);
font-family: var(--font-display);
letter-spacing: 0;
}
.requirements-env-row p,
.requirements-muted {
margin: 0;
color: var(--ink-soft);
font-size: var(--fs-sm);
line-height: 1.5;
}
.requirements-section {
display: grid;
gap: 12px;
min-width: 0;
padding: 16px 0 0;
border-top: 1px solid color-mix(in srgb, var(--ink) 10%, transparent);
}
.requirements-panel-title + .requirements-section {
margin-top: -2px;
}
.requirements-section h4 {
font-size: var(--fs-sm);
font-weight: 650;
line-height: 1.3;
}
.requirements-subsection {
display: grid;
gap: 8px;
min-width: 0;
}
.requirements-subsection + .requirements-subsection {
margin-top: 6px;
}
.requirements-subsection h5 {
color: var(--ink-soft);
font-size: var(--fs-xs);
font-weight: 650;
line-height: 1.2;
}
.requirements-token-list {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 8px;
min-width: 0;
}
.requirements-token-list-alternatives {
gap: 6px;
}
.requirements-token-group {
display: inline-flex;
align-items: center;
gap: 6px;
min-width: 0;
}
.requirements-token,
.requirements-badge {
display: inline-flex;
align-items: center;
width: fit-content;
max-width: 100%;
min-height: 24px;
border: 1px solid color-mix(in srgb, var(--ink) 10%, transparent);
border-radius: 999px;
background: color-mix(in srgb, var(--ink) 5%, transparent);
color: var(--ink);
font-family: var(--font-mono);
font-size: 0.78rem;
font-weight: 600;
line-height: 1.2;
overflow-wrap: anywhere;
}
.requirements-token {
padding: 4px 9px;
}
.requirements-token-separator {
color: var(--ink-soft);
font-size: var(--fs-xs);
line-height: 1;
}
.requirements-path-list,
.requirements-install-row,
.requirements-env-list,
.requirements-link-list {
display: grid;
gap: 12px;
min-width: 0;
}
.requirements-path-token,
.requirements-code-block {
width: 100%;
min-width: 0;
overflow-wrap: anywhere;
word-break: break-word;
white-space: pre-wrap;
}
.requirements-path-token {
color: var(--ink);
font-family: var(--font-mono);
font-size: var(--fs-sm);
line-height: 1.55;
}
.requirements-code-block {
margin: 0;
padding: 14px 16px;
border: 1px solid color-mix(in srgb, var(--ink) 10%, transparent);
border-radius: var(--r-sm);
background: color-mix(in srgb, var(--ink) 6%, transparent);
color: var(--ink);
font-family: var(--font-mono);
font-size: var(--fs-sm);
line-height: 1.55;
}
.requirements-code-block code {
white-space: inherit;
}
.requirements-link-token {
display: grid;
gap: 4px;
min-width: 0;
width: fit-content;
max-width: 100%;
color: var(--ink-soft);
font-size: var(--fs-sm);
line-height: 1.45;
text-decoration: none;
overflow-wrap: anywhere;
}
.requirements-link-token:hover,
.requirements-link-token:focus-visible {
color: var(--ink);
}
.requirements-link-token span {
color: var(--ink-soft);
font-size: var(--fs-xs);
font-weight: 650;
line-height: 1.2;
}
.requirements-link-token code {
color: inherit;
font-family: var(--font-mono);
font-size: var(--fs-sm);
line-height: 1.45;
white-space: normal;
overflow-wrap: anywhere;
word-break: break-word;
}
.requirements-link-token:hover code,
.requirements-link-token:focus-visible code {
text-decoration: underline;
text-decoration-thickness: 1px;
text-underline-offset: 3px;
}
.requirements-dependency-meta {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 7px;
min-width: 0;
}
.requirements-env-row {
display: grid;
gap: 7px;
min-width: 0;
}
.requirements-env-main {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 7px;
min-width: 0;
}
.requirements-env-main code {
color: var(--ink);
font-family: var(--font-mono);
font-size: var(--fs-sm);
font-weight: 650;
line-height: 1.25;
overflow-wrap: anywhere;
}
.requirements-badge {
padding: 3px 8px;
color: var(--ink-soft);
font-family: var(--oc-font-body);
font-size: 0.72rem;
font-weight: 650;
}
.requirements-badge-required {
border-color: color-mix(in srgb, #f6c76a 28%, transparent);
background: color-mix(in srgb, #f6c76a 11%, transparent);
color: color-mix(in srgb, #f6c76a 78%, var(--ink));
}
.requirements-badge-optional,
.requirements-badge-not-declared {
border-color: color-mix(in srgb, var(--ink-soft) 14%, transparent);
background: color-mix(in srgb, var(--ink-soft) 7%, transparent);
}
.requirements-badge-primary {
border-color: color-mix(in srgb, #7dd3fc 26%, transparent);
background: color-mix(in srgb, #7dd3fc 10%, transparent);
color: color-mix(in srgb, #7dd3fc 72%, var(--ink));
}
.skill-install-command {
width: min(100%, 520px);
}
.skill-diff-skeleton {
container-type: inline-size;
container-name: diff-skeleton;
display: grid;
gap: var(--space-4);
min-height: 530px;
}
.diff-skeleton-toolbar {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: end;
gap: var(--space-3);
}
.diff-skeleton-version-row {
display: grid;
grid-template-columns: minmax(0, 1fr) 44px minmax(0, 1fr);
align-items: end;
gap: var(--space-2);
min-width: 0;
}
.diff-skeleton-field {
display: grid;
grid-template-rows: 12px 44px;
gap: 10px;
min-width: 0;
}
.diff-skeleton-label {
width: 76px;
height: 12px;
}
.diff-skeleton-label-short {
width: 32px;
}
.diff-skeleton-control,
.diff-skeleton-swap,
.diff-skeleton-toggle,
.diff-skeleton-file-select,
.diff-skeleton-arrow,
.diff-skeleton-badge,
.diff-skeleton-count {
border-radius: 12px;
}
.diff-skeleton-control,
.diff-skeleton-swap {
width: 100%;
height: 44px;
}
.diff-skeleton-view {
grid-template-rows: 12px 36px;
}
.diff-skeleton-toggle {
width: 170px;
height: 36px;
}
.diff-skeleton-file-bar {
display: grid;
grid-template-columns: 32px minmax(180px, 1fr) 32px 78px minmax(0, 1fr) auto;
align-items: center;
gap: 6px;
min-width: 0;
}
.diff-skeleton-arrow {
width: 32px;
height: 32px;
border-radius: 8px;
}
.diff-skeleton-file-select {
width: 100%;
height: 40px;
}
.diff-skeleton-badge {
width: 72px;
height: 22px;
border-radius: var(--r-pill);
}
.diff-skeleton-count {
grid-column: 6;
width: 78px;
height: 12px;
justify-self: end;
}
.diff-skeleton-editor {
display: grid;
grid-template-columns: 58px minmax(0, 1fr);
min-height: 420px;
overflow: hidden;
border: 1px solid var(--line);
border-radius: 14px;
background: color-mix(in srgb, var(--surface) 82%, transparent);
}
.diff-skeleton-gutter,
.diff-skeleton-code {
display: grid;
align-content: start;
gap: 13px;
padding-top: 18px;
}
.diff-skeleton-gutter {
justify-items: end;
padding-right: 12px;
border-right: 1px solid color-mix(in srgb, var(--line) 72%, transparent);
}
.diff-skeleton-gutter > div {
width: 16px;
height: 10px;
}
.diff-skeleton-code {
padding-inline: 18px;
}
.diff-skeleton-code > div {
max-width: 100%;
height: 10px;
}
@container diff-skeleton (max-width: 768px) {
.diff-skeleton-toolbar {
grid-template-columns: minmax(0, 1fr);
}
.diff-skeleton-view {
width: fit-content;
}
.diff-skeleton-file-bar {
grid-template-columns: 32px minmax(0, 1fr) 32px auto minmax(0, 1fr);
}
.diff-skeleton-count {
grid-column: 5;
}
}
.diff-card {
--diff-control-radius: 12px;
--diff-panel-radius: 14px;
--diff-segment-radius: 10px;
container-type: inline-size;
container-name: diff;
gap: var(--space-4);
}
.diff-card-embedded {
display: grid;
padding: 0;
background: transparent;
border: none;
gap: var(--space-4);
}
.diff-card-embedded .diff-toolbar {
padding-bottom: 0;
border-bottom: 0;
}
.diff-header {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 16px;
flex-wrap: wrap;
}
.diff-toolbar {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: end;
gap: var(--space-3);
padding: 0 0 var(--space-3);
border-bottom: 1px solid var(--line);
}
.diff-version-row {
display: grid;
grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
gap: var(--space-2);
align-items: end;
flex: 1 1 260px;
min-width: 0;
}
.diff-field {
display: grid;
gap: 6px;
min-width: 0;
}
.diff-version-row > .diff-field {
grid-template-rows: 16px 44px;
}
.diff-field-label {
color: var(--ink-soft);
font-size: var(--fs-xs);
font-weight: 650;
line-height: 1.2;
}
.diff-select-control {
position: relative;
display: flex;
align-items: center;
min-width: 0;
height: 44px;
border: 1px solid var(--line);
border-radius: var(--diff-control-radius);
background: color-mix(in srgb, var(--surface) 76%, transparent);
color: var(--ink-soft);
transition:
border-color 150ms ease,
background-color 150ms ease,
color 150ms ease;
}
.diff-select-control:hover {
border-color: var(--border-ui-hover);
color: var(--ink);
}
.diff-select-control:focus-within {
border-color: var(--border-ui-active);
color: var(--ink);
outline: 2px solid color-mix(in srgb, var(--ink) 18%, transparent);
outline-offset: 2px;
}
.diff-version-select,
.diff-file-select {
appearance: none;
min-width: 0;
width: 100%;
height: 100%;
min-height: 0;
padding: 0 42px 0 14px;
background: transparent;
color: currentColor;
font-size: 0.9375rem;
font-weight: 600;
line-height: 1.25;
cursor: pointer;
}
.diff-select-chevron {
position: absolute;
top: 50%;
right: 14px;
flex-shrink: 0;
opacity: 0.7;
pointer-events: none;
transform: translateY(-50%);
}
.diff-toggle-group {
position: relative;
display: inline-flex;
align-items: center;
gap: 4px;
padding: 4px;
border: 1px solid color-mix(in srgb, var(--line) 88%, transparent);
border-radius: 12px;
background: color-mix(in srgb, var(--surface-muted) 78%, var(--bg));
margin: 0;
min-inline-size: 0;
flex-shrink: 0;
}
.diff-toggle {
position: relative;
z-index: 1;
border: none;
background: transparent;
min-height: 28px;
padding: 0 10px;
border-radius: 8px;
font-weight: 700;
font-size: var(--fs-xs);
color: var(--ink-soft);
cursor: pointer;
white-space: nowrap;
display: inline-flex;
align-items: center;
gap: 6px;
transition:
color 0.15s ease,
background 0.15s ease;
}
.diff-toggle:hover {
color: var(--ink);
}
.diff-toggle.is-active {
background: color-mix(in srgb, var(--surface-muted) 70%, var(--ink) 8%);
color: var(--ink);
}
.diff-toggle:focus-visible {
outline: 2px solid var(--accent);
outline-offset: 2px;
}
.diff-swap {
align-self: end;
flex-shrink: 0;
width: 44px;
min-width: 44px;
height: 44px;
min-height: 44px;
border-radius: var(--diff-control-radius) !important;
}
.diff-view-field {
grid-template-rows: 16px 44px;
}
.diff-layout {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 10px;
align-items: start;
}
.diff-file-select-wrap {
position: sticky;
top: 64px;
z-index: 4;
display: block;
grid-column: 1 / -1;
padding: 4px 0;
background: color-mix(in srgb, var(--bg) 96%, transparent);
}
.diff-file-review-bar {
display: grid;
grid-template-columns: minmax(220px, 1fr) auto auto;
align-items: center;
gap: 10px;
}
.diff-file-navigation {
display: grid;
grid-template-columns: minmax(0, 1fr);
align-items: center;
gap: 6px;
min-width: 0;
}
.diff-file-navigation.has-multiple-files {
grid-template-columns: 32px minmax(0, 1fr) 32px;
}
.diff-file-select-control {
height: 40px;
}
.diff-file-review-context,
.diff-file-review-actions,
.diff-hunk-navigation,
.diff-line-stats {
display: inline-flex;
align-items: center;
}
.diff-file-review-context {
gap: 8px;
}
.diff-file-review-context .diff-pill {
align-self: center;
}
.diff-line-stats {
gap: 6px;
font-family: var(--font-mono);
font-size: 0.72rem;
font-weight: 700;
font-variant-numeric: tabular-nums;
white-space: nowrap;
}
.diff-line-additions {
color: var(--status-success-fg);
}
.diff-line-deletions {
color: var(--status-error-fg);
}
.diff-file-review-actions {
justify-content: flex-end;
gap: 10px;
min-width: 0;
}
.diff-file-count {
color: var(--ink-soft);
font-size: var(--fs-xs);
font-variant-numeric: tabular-nums;
white-space: nowrap;
}
.diff-hunk-navigation {
gap: 4px;
}
.diff-review-icon-button {
display: inline-flex;
align-items: center;
justify-content: center;
width: 32px;
min-width: 32px;
height: 32px;
min-height: 32px;
padding: 0;
border: 1px solid color-mix(in srgb, var(--line) 88%, transparent);
border-radius: 8px;
background: transparent;
color: var(--ink-soft);
cursor: pointer;
transition:
border-color 150ms ease,
background-color 150ms ease,
color 150ms ease;
}
.diff-review-icon-button:hover:not(:disabled) {
border-color: var(--border-ui-hover);
background: color-mix(in srgb, var(--ink) 5%, transparent);
color: var(--ink);
}
.diff-review-icon-button:focus-visible {
outline: 2px solid var(--accent);
outline-offset: 2px;
}
.diff-review-icon-button:disabled {
opacity: 0.34;
cursor: default;
}
.diff-file-select {
font-family: var(--font-mono);
}
@container diff (max-width: 768px) {
.diff-toolbar {
grid-template-columns: 1fr;
align-items: start;
}
.diff-version-row {
flex-basis: auto;
width: 100%;
}
.diff-toggle-group {
justify-self: start;
}
.diff-layout {
grid-template-columns: 1fr;
gap: 10px;
}
.diff-file-review-bar {
grid-template-columns: minmax(0, 1fr) auto;
}
.diff-file-navigation {
grid-column: 1 / -1;
}
.diff-monaco {
min-height: 280px;
max-height: min(52vh, 420px);
}
}
@media (max-width: 920px) {
.diff-layout {
grid-template-columns: 1fr;
}
.diff-monaco {
max-height: 300px;
}
}
.diff-pill {
display: inline-flex;
align-items: center;
gap: 6px;
font-size: 0.7rem;
text-transform: uppercase;
letter-spacing: 0.08em;
font-weight: 700;
padding: 4px 8px;
border-radius: var(--r-pill);
align-self: start;
}
.diff-pill-added {
background: var(--status-success-bg);
color: var(--status-success-fg);
}
.diff-pill-removed {
background: var(--status-error-bg);
color: var(--status-error-fg);
}
.diff-pill-changed {
background: var(--status-warning-bg);
color: var(--status-warning-fg);
}
.diff-pill-same {
background: color-mix(in srgb, var(--surface-muted) 84%, transparent);
color: var(--ink-soft);
}
.diff-view {
position: relative;
min-height: 360px;
}
.diff-monaco {
height: 420px;
border-radius: var(--diff-panel-radius);
border: 1px solid var(--line);
overflow: hidden;
background: var(--surface);
}
.diff-monaco .monaco-editor .line-insert,
.diff-monaco .monaco-editor .char-insert,
.diff-monaco .monaco-editor .line-delete,
.diff-monaco .monaco-editor .char-delete,
.diff-monaco .monaco-diff-editor .line-insert,
.diff-monaco .monaco-diff-editor .char-insert,
.diff-monaco .monaco-diff-editor .line-delete,
.diff-monaco .monaco-diff-editor .char-delete {
border: none !important;
box-shadow: none !important;
}
.diff-monaco .monaco-diff-editor .monaco-sash,
.diff-monaco .monaco-diff-editor .sash {
background: var(--diff-border) !important;
}
.diff-monaco .monaco-diff-editor .monaco-sash:hover,
.diff-monaco .monaco-diff-editor .sash:hover {
background: var(--border-ui) !important;
}
.diff-monaco .monaco-diff-editor .diffOverview {
background: rgba(var(--diff-scrollbar-rgb), 0.08) !important;
}
.diff-monaco .monaco-diff-editor .diffOverview .diffViewport,
.diff-monaco .monaco-diff-editor .diffViewport {
background: rgba(var(--diff-scrollbar-rgb), 0.2) !important;
background-color: rgba(var(--diff-scrollbar-rgb), 0.2) !important;
}
.diff-monaco .monaco-diff-editor .diffOverview .diffViewport:hover,
.diff-monaco .monaco-diff-editor .diffViewport:hover {
background: rgba(var(--diff-scrollbar-rgb), 0.28) !important;
background-color: rgba(var(--diff-scrollbar-rgb), 0.28) !important;
}
.diff-monaco .monaco-diff-editor .diffOverview .diffViewport:active,
.diff-monaco .monaco-diff-editor .diffViewport:active {
background: rgba(var(--diff-scrollbar-rgb), 0.36) !important;
background-color: rgba(var(--diff-scrollbar-rgb), 0.36) !important;
}
.diff-monaco .monaco-scrollable-element.modified-in-monaco-diff-editor .slider,
.diff-monaco .monaco-scrollable-element.modified-in-monaco-diff-editor .slider.active {
background: rgba(var(--diff-scrollbar-rgb), 0.22) !important;
background-color: rgba(var(--diff-scrollbar-rgb), 0.22) !important;
}
.diff-monaco .monaco-scrollable-element.modified-in-monaco-diff-editor .slider:hover {
background: rgba(var(--diff-scrollbar-rgb), 0.3) !important;
background-color: rgba(var(--diff-scrollbar-rgb), 0.3) !important;
}
.diff-monaco .scrollbar.vertical,
.diff-monaco .monaco-scrollable-element .scrollbar.vertical,
.diff-monaco .invisible.scrollbar.vertical.fade {
background: transparent !important;
}
.diff-monaco .scrollbar.vertical > .slider,
.diff-monaco .monaco-scrollable-element .scrollbar.vertical > .slider,
.diff-monaco .invisible.scrollbar.vertical.fade > .slider,
.diff-monaco .scrollbar.vertical > .slider:hover,
.diff-monaco .monaco-scrollable-element .scrollbar.vertical > .slider:hover,
.diff-monaco .invisible.scrollbar.vertical.fade > .slider:hover,
.diff-monaco .scrollbar.vertical > .slider.active,
.diff-monaco .monaco-scrollable-element .scrollbar.vertical > .slider.active,
.diff-monaco .invisible.scrollbar.vertical.fade > .slider.active {
background: rgba(var(--diff-scrollbar-rgb), 0.24) !important;
background-color: rgba(var(--diff-scrollbar-rgb), 0.24) !important;
}
.diff-monaco .monaco-diff-editor .diffOverview canvas.diffOverviewRuler,
.diff-monaco .monaco-diff-editor .diffOverview canvas.original.diffOverviewRuler,
.diff-monaco .monaco-diff-editor .diffOverview canvas.modified.diffOverviewRuler {
opacity: 1 !important;
}
[data-theme-resolved="dark"] .diff-monaco .monaco-diff-editor .diffOverview {
background: rgba(var(--diff-scrollbar-rgb), 0.12) !important;
}
[data-theme-resolved="dark"] .diff-monaco .monaco-diff-editor .diffOverview .diffViewport,
[data-theme-resolved="dark"] .diff-monaco .monaco-diff-editor .diffViewport {
background: rgba(var(--diff-scrollbar-rgb), 0.28) !important;
background-color: rgba(var(--diff-scrollbar-rgb), 0.28) !important;
}
[data-theme-resolved="dark"] .diff-monaco .monaco-diff-editor .diffOverview .diffViewport:hover,
[data-theme-resolved="dark"] .diff-monaco .monaco-diff-editor .diffViewport:hover {
background: rgba(var(--diff-scrollbar-rgb), 0.36) !important;
background-color: rgba(var(--diff-scrollbar-rgb), 0.36) !important;
}
[data-theme-resolved="dark"] .diff-monaco .scrollbar.vertical > .slider,
[data-theme-resolved="dark"] .diff-monaco .monaco-scrollable-element .scrollbar.vertical > .slider,
[data-theme-resolved="dark"] .diff-monaco .invisible.scrollbar.vertical.fade > .slider,
[data-theme-resolved="dark"] .diff-monaco .scrollbar.vertical > .slider:hover,
[data-theme-resolved="dark"]
.diff-monaco
.monaco-scrollable-element
.scrollbar.vertical
> .slider:hover,
[data-theme-resolved="dark"] .diff-monaco .invisible.scrollbar.vertical.fade > .slider:hover,
[data-theme-resolved="dark"] .diff-monaco .scrollbar.vertical > .slider.active,
[data-theme-resolved="dark"]
.diff-monaco
.monaco-scrollable-element
.scrollbar.vertical
> .slider.active,
[data-theme-resolved="dark"] .diff-monaco .invisible.scrollbar.vertical.fade > .slider.active {
background: rgba(var(--diff-scrollbar-rgb), 0.32) !important;
background-color: rgba(var(--diff-scrollbar-rgb), 0.32) !important;
}
[data-theme-resolved="dark"]
.diff-monaco
.monaco-scrollable-element.modified-in-monaco-diff-editor
.slider,
[data-theme-resolved="dark"]
.diff-monaco
.monaco-scrollable-element.modified-in-monaco-diff-editor
.slider.active {
background: rgba(var(--diff-scrollbar-rgb), 0.3) !important;
background-color: rgba(var(--diff-scrollbar-rgb), 0.3) !important;
}
[data-theme-resolved="dark"]
.diff-monaco
.monaco-scrollable-element.modified-in-monaco-diff-editor
.slider:hover {
background: rgba(var(--diff-scrollbar-rgb), 0.38) !important;
background-color: rgba(var(--diff-scrollbar-rgb), 0.38) !important;
}
.diff-empty {
border-radius: var(--diff-panel-radius);
border: 1px dashed var(--line);
padding: 20px;
color: var(--ink-soft);
background: var(--surface-muted);
font-size: 0.9rem;
}
.diff-loading {
position: absolute;
bottom: 12px;
right: 16px;
font-size: var(--fs-xs);
color: var(--ink-soft);
background: color-mix(in srgb, var(--surface) 92%, transparent);
border-radius: var(--r-pill);
padding: 6px 10px;
border: 1px solid var(--line);
}
.tab-card {
display: grid;
gap: 18px;
max-width: 100%;
overflow: visible;
}
.tab-header {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 22px;
padding: 0;
border-bottom: 1px solid var(--line);
background: var(--bg);
overflow: visible;
scrollbar-width: none;
max-width: 100%;
}
.tab-header::-webkit-scrollbar {
display: none;
}
.tab-button {
border: none;
border-bottom: 2px solid transparent;
background: transparent;
padding: 10px 0;
margin-bottom: -1px;
border-radius: 0;
font-weight: 600;
color: var(--ink-soft);
cursor: pointer;
min-height: 44px;
white-space: nowrap;
flex-shrink: 0;
}
.tab-button.is-active {
color: var(--ink);
border-bottom-color: currentColor;
}
.tab-body {
display: grid;
gap: 20px;
min-width: 0;
max-width: 100%;
overflow-x: hidden;
border: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
border-radius: var(--r-lg);
padding: 22px;
background: color-mix(in srgb, var(--surface-muted) 58%, var(--bg));
}
.tab-body.skill-diff-tab-body {
gap: 0;
overflow: visible;
padding: 0;
border: 0;
border-radius: 0;
background: transparent;
}
.tab-body .markdown {
line-height: 1.75;
min-width: 0;
max-width: 100%;
}
.skill-readme-body .markdown p {
font-size: 14px;
line-height: 1.68;
}
.skill-card-info-callout {
margin: 0;
padding: 0 0 var(--space-3);
border-bottom: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
color: var(--ink-soft);
font-size: var(--fs-xs);
line-height: 1.5;
}
.skill-card-info-callout summary {
width: fit-content;
color: var(--ink-soft);
font-weight: 650;
cursor: pointer;
}
.skill-card-info-callout p {
max-width: 76ch;
margin: var(--space-2) 0 0;
}
.skill-card-info-callout a {
color: var(--ink);
font-weight: 650;
text-decoration: underline;
text-underline-offset: 2px;
}
.skill-card-info-callout a:hover,
.skill-card-info-callout a:focus-visible {
color: var(--ink);
text-decoration-thickness: 2px;
}
.skill-card-tab-body {
gap: var(--space-5);
}
.skill-card-document {
display: grid;
gap: var(--space-5);
min-width: 0;
}
.skill-card-document-title-markdown h1 {
margin: 0;
padding: 0;
border: 0;
font-size: var(--fs-xl);
}
.skill-card-document-title-markdown > :not(h1) {
margin-top: var(--space-2);
}
.skill-card-meta-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
gap: var(--space-4);
margin: 0;
padding: var(--space-4) 0;
border-top: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
}
.skill-card-meta-row {
display: grid;
gap: 5px;
align-content: start;
min-width: 0;
}
.skill-card-meta-label {
margin: 0;
color: var(--ink-soft);
font-size: var(--fs-xs);
font-weight: 650;
line-height: 1.2;
}
.skill-card-meta-value {
margin: 0;
min-width: 0;
color: var(--ink);
font-size: var(--fs-sm);
font-weight: 600;
line-height: 1.4;
}
.skill-card-meta-markdown > :first-child,
.skill-card-section-markdown > :first-child {
margin-top: 0;
}
.skill-card-meta-markdown > :last-child,
.skill-card-section-markdown > :last-child {
margin-bottom: 0;
}
.skill-card-meta-markdown p,
.skill-card-section-markdown p {
margin-block: var(--space-2);
}
.skill-card-overview,
.skill-card-section,
.skill-card-review,
.skill-card-output,
.skill-card-references {
display: grid;
gap: var(--space-3);
min-width: 0;
}
.skill-card-section,
.skill-card-review,
.skill-card-output,
.skill-card-references {
padding-top: var(--space-5);
border-top: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
}
.skill-card-section-header {
margin: 0;
padding: 0;
border: 0;
color: var(--ink);
font-family: var(--font-display);
font-size: var(--fs-md);
font-weight: 750;
letter-spacing: 0;
line-height: 1.3;
}
.skill-card-section-markdown {
width: min(100%, 80ch);
color: var(--ink);
font-size: var(--fs-sm);
line-height: 1.65;
}
.skill-card-section-markdown :is(h2, h3, h4) {
display: none;
}
.skill-card-section-markdown hr {
display: none;
}
.skill-card-tab-body .skill-card-document-title-markdown hr,
.skill-card-tab-body .skill-card-meta-markdown hr,
.skill-card-tab-body .skill-card-section-markdown hr {
display: none;
}
.skill-card-risk-list {
display: grid;
gap: var(--space-4);
width: min(100%, 88ch);
}
.skill-card-risk-pair {
display: grid;
gap: 0;
padding-left: var(--space-3);
}
.skill-card-risk-row {
position: relative;
display: grid;
grid-template-columns: 76px minmax(0, 1fr);
gap: var(--space-3);
align-items: start;
}
.skill-card-risk-row::before {
position: absolute;
top: 0;
bottom: 0;
left: calc(-1 * var(--space-3));
width: 2px;
content: "";
}
.skill-card-risk-row-risk {
padding-bottom: var(--space-2);
}
.skill-card-risk-row-risk::before {
border-radius: 999px 999px 0 0;
background: color-mix(in srgb, var(--ink-soft) 58%, var(--line));
}
.skill-card-risk-row-risk:last-child {
padding-bottom: 0;
}
.skill-card-risk-row-risk:last-child::before {
border-radius: 999px;
}
.skill-card-risk-row-mitigation::before {
border-radius: 0 0 999px 999px;
background: color-mix(in srgb, var(--ink-soft) 26%, var(--line));
}
.skill-card-risk-copy {
max-width: 80ch;
color: var(--ink);
font-size: var(--fs-sm);
line-height: 1.6;
}
.skill-card-risk-copy p {
margin: 0;
}
.skill-card-review-label {
padding-top: 2px;
color: var(--ink-soft);
font-size: var(--fs-xs);
font-weight: 700;
line-height: 1.3;
text-transform: uppercase;
}
.skill-card-risk-row-risk .skill-card-review-label {
color: color-mix(in srgb, var(--ink) 64%, var(--ink-soft));
}
.skill-card-risk-row-mitigation .skill-card-review-label {
color: color-mix(in srgb, var(--ink-soft) 82%, transparent);
}
.skill-card-risk-row-mitigation .skill-card-risk-copy {
color: color-mix(in srgb, var(--ink) 86%, var(--ink-soft));
}
.skill-card-ethics {
display: grid;
gap: var(--space-2);
width: min(100%, 88ch);
padding-top: var(--space-4);
border-top: 1px solid color-mix(in srgb, var(--line) 64%, transparent);
}
.skill-card-ethics h3 {
margin: 0;
color: var(--ink);
font-size: var(--fs-sm);
font-weight: 700;
line-height: 1.35;
}
.skill-card-output-grid {
display: grid;
gap: 0;
width: min(100%, 88ch);
margin: 0;
}
.skill-card-output-row {
display: grid;
grid-template-columns: 112px minmax(0, 1fr);
gap: var(--space-4);
align-items: start;
padding: var(--space-3) 0;
border-bottom: 1px solid color-mix(in srgb, var(--line) 62%, transparent);
}
.skill-card-output-row:last-child {
border-bottom: 0;
}
.skill-card-output-row dt {
color: var(--ink-soft);
font-size: var(--fs-xs);
font-weight: 650;
}
.skill-card-output-row dd {
margin: 0;
color: var(--ink);
font-size: var(--fs-sm);
line-height: 1.55;
}
.skill-card-output-types {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.skill-card-output-types > span {
display: inline-flex;
align-items: center;
min-height: 24px;
padding: 3px 8px;
border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
border-radius: var(--r-pill);
background: color-mix(in srgb, var(--ink) 3.5%, transparent);
color: var(--ink-soft);
font-size: var(--fs-xs);
line-height: 1;
}
.skill-card-document a {
color: var(--ink);
text-decoration-color: color-mix(in srgb, var(--ink-soft) 58%, transparent);
text-underline-offset: 3px;
}
.skill-card-document a:hover,
.skill-card-document a:focus-visible {
color: var(--ink);
text-decoration-color: currentColor;
}
@media (max-width: 640px) {
.skill-card-meta-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.skill-card-risk-row,
.skill-card-output-row {
grid-template-columns: minmax(0, 1fr);
gap: var(--space-1);
}
}
@media (max-width: 420px) {
.skill-card-meta-grid {
grid-template-columns: minmax(0, 1fr);
}
}
.skill-files-panel {
padding: 18px;
}
.file-list {
position: relative;
display: grid;
gap: 10px;
max-width: 100%;
}
.file-list-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
box-sizing: border-box;
min-height: 34px;
padding: 0 2px;
}
.file-list-count {
color: var(--ink-soft);
font-size: 0.78rem;
line-height: 1;
white-space: nowrap;
}
.file-list-body {
display: grid;
gap: 1px;
max-width: 100%;
border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
border-radius: var(--r-md);
background: color-mix(in srgb, var(--surface-muted) 42%, transparent);
padding: 6px;
}
.file-browser {
display: grid;
gap: 18px;
}
.file-tree-group {
display: grid;
gap: 1px;
}
.file-tree-directory,
.file-tree-file {
--file-tree-indent: calc(var(--file-tree-level, 0) * 18px);
display: grid;
grid-template-columns: 16px minmax(0, 1fr) auto;
align-items: center;
gap: 8px;
min-height: 32px;
padding: 5px 8px 5px calc(8px + var(--file-tree-indent));
border-radius: 8px;
color: var(--ink-soft);
font-size: 0.86rem;
line-height: 1.25;
}
.file-tree-directory {
color: color-mix(in srgb, var(--ink-soft) 88%, var(--ink));
font-weight: 650;
}
.file-tree-directory svg,
.file-tree-file svg {
color: color-mix(in srgb, var(--ink-soft) 78%, transparent);
}
.file-tree-file {
width: 100%;
border: 0;
background: transparent;
text-align: left;
cursor: pointer;
}
.file-tree-file:hover,
.file-tree-file:focus-visible {
background: color-mix(in srgb, var(--ink) 5%, transparent);
color: var(--ink);
outline: none;
}
.file-tree-file.is-primary {
color: var(--ink);
}
.file-tree-file.is-primary svg {
color: color-mix(in srgb, var(--ink-soft) 42%, var(--ink));
}
.file-tree-file.is-primary .file-tree-name {
font-weight: 600;
}
.file-tree-name {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.file-tree-name-wrap {
display: flex;
align-items: center;
gap: 8px;
min-width: 0;
}
.file-tree-main-badge {
flex: 0 0 auto;
padding: 2px 6px;
border: 1px solid color-mix(in srgb, var(--line) 86%, transparent);
border-radius: var(--r-pill);
background: color-mix(in srgb, var(--ink) 3.5%, transparent);
color: color-mix(in srgb, var(--ink-soft) 88%, var(--ink));
font-size: 0.68rem;
font-weight: 600;
line-height: 1;
}
.file-row-button {
width: 100%;
border: 1px solid var(--line);
background: var(--surface-muted);
text-align: left;
cursor: pointer;
}
.file-row-button:focus-visible {
outline: 3px solid rgba(255, 255, 255, 0.25);
outline-offset: 2px;
}
.file-row-button.is-active {
border-color: var(--ink);
box-shadow: 0 8px 18px rgba(29, 26, 23, 0.12);
}
.file-viewer {
border-radius: 16px;
border: 1px solid var(--line);
background: var(--surface);
display: grid;
grid-template-rows: auto auto auto;
overflow: hidden;
}
.file-viewer.is-loading {
grid-template-rows: auto 1fr auto;
}
.file-viewer.is-loading .file-viewer-body-loading {
display: flex;
flex-direction: column;
max-height: none;
min-height: 0;
}
.file-viewer-skeleton {
display: flex;
flex: 1;
flex-direction: column;
gap: 10px;
min-height: 100%;
}
.file-viewer-skeleton-line,
.file-viewer-skeleton-fill,
.file-viewer-skeleton-hash {
border-radius: var(--r-xs);
background: linear-gradient(
90deg,
color-mix(in srgb, var(--ink) 7%, transparent),
color-mix(in srgb, var(--ink) 14%, transparent),
color-mix(in srgb, var(--ink) 7%, transparent)
);
background-size: 200% 100%;
animation: skeleton-shimmer 1.15s ease-in-out infinite;
}
.file-viewer-skeleton-line {
display: block;
height: 11px;
}
.file-viewer-skeleton-line:nth-child(3n + 1) {
width: 96%;
}
.file-viewer-skeleton-line:nth-child(3n + 2) {
width: 88%;
}
.file-viewer-skeleton-line:nth-child(3n) {
width: 72%;
}
.file-viewer-skeleton-fill {
flex: 1;
min-height: 12px;
width: 100%;
}
.file-viewer-meta-skeleton {
min-height: 42px;
}
.file-viewer-skeleton-hash {
display: block;
width: min(100%, 420px);
height: 12px;
}
.file-viewer-header {
display: grid;
grid-template-columns: 1fr auto 1fr;
align-items: center;
gap: 12px;
border-bottom: 1px solid var(--line);
box-sizing: border-box;
min-height: 54px;
padding: 10px 12px;
}
.file-viewer-back {
display: inline-flex;
justify-self: start;
align-items: center;
gap: 5px;
min-height: 32px;
padding: 6px 8px;
border: 1px solid var(--line);
border-radius: var(--r-btn);
background: var(--surface-muted);
color: var(--ink);
font-size: 0.8rem;
font-weight: 650;
cursor: pointer;
white-space: nowrap;
}
.file-viewer-back:hover {
background: color-mix(in srgb, var(--ink) 6%, var(--surface-muted));
}
.file-viewer-title {
justify-self: center;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 0.35em;
min-width: 0;
max-width: 100%;
font-size: 0.95rem;
line-height: 1.25;
text-align: center;
}
.file-viewer-filename {
min-width: 0;
overflow: hidden;
font-family: inherit;
color: var(--ink);
text-overflow: ellipsis;
white-space: nowrap;
}
.file-viewer-title-sep {
flex-shrink: 0;
color: var(--ink-soft);
}
.file-viewer-size {
flex-shrink: 0;
font-size: 0.8rem;
color: var(--ink-soft);
white-space: nowrap;
}
.file-viewer-header-end {
justify-self: end;
display: inline-flex;
align-items: center;
gap: 4px;
}
.file-viewer-download {
display: inline-grid;
width: 30px;
height: 30px;
place-items: center;
border-radius: var(--r-btn);
color: var(--ink-soft);
}
.file-viewer-download:hover,
.file-viewer-download:focus-visible {
background: color-mix(in srgb, var(--ink) 6%, transparent);
color: var(--ink);
outline: none;
}
.file-viewer-body {
min-height: 0;
max-height: min(66vh, 720px);
background: color-mix(in srgb, var(--surface) 82%, var(--bg) 18%);
overflow: auto;
padding: 12px 16px 16px;
scrollbar-color: var(--ink-soft) transparent;
scrollbar-width: thin;
}
.file-viewer-code {
margin: 0;
padding: 0;
white-space: pre;
word-break: normal;
font-family: var(--font-mono);
font-size: 0.84rem;
line-height: 1.65;
color: var(--ink);
tab-size: 2;
}
.file-viewer-code[data-wrap="true"] {
white-space: pre-wrap;
overflow-wrap: anywhere;
word-break: break-word;
overflow-x: hidden;
}
.file-viewer-body::-webkit-scrollbar {
width: 10px;
height: 10px;
}
.file-viewer-body::-webkit-scrollbar-thumb {
border: 2px solid transparent;
border-radius: var(--r-btn);
background: var(--ink-soft);
background-clip: padding-box;
}
.file-viewer-body::-webkit-scrollbar-track {
background: transparent;
}
.file-viewer-empty {
min-height: 178px;
border: 1px dashed var(--line);
border-radius: 12px;
background: var(--surface-muted);
display: grid;
place-content: center;
gap: 10px;
text-align: center;
padding: 20px;
}
.file-viewer-empty-icon {
color: var(--ink-soft);
justify-self: center;
}
.file-viewer-empty-text {
margin: 0;
color: var(--ink-soft);
font-size: 0.96rem;
}
.file-viewer-meta {
display: flex;
align-items: center;
gap: 8px;
border-top: 1px solid var(--line);
margin-top: 0;
min-width: 0;
padding: 10px 16px;
}
.file-viewer-hash-icon {
flex-shrink: 0;
color: var(--ink-soft);
}
.file-viewer-hash {
min-width: 0;
overflow: hidden;
font-family: var(--font-mono);
font-size: 0.8rem;
color: var(--ink-soft);
text-overflow: ellipsis;
white-space: nowrap;
}
.version-scroll {
max-height: 320px;
overflow: auto;
padding-right: 4px;
}
.file-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
max-width: 100%;
padding: 10px 12px;
border-radius: 12px;
border: 1px solid var(--line);
background: var(--surface-muted);
}
.file-row-path {
display: grid;
gap: 2px;
min-width: 0;
overflow: hidden;
font-family: var(--font-mono);
font-size: 0.9rem;
}
.file-path-dir {
color: var(--ink-soft);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.file-path-name {
color: var(--ink);
font-weight: 600;
overflow-wrap: anywhere;
}
.file-path {
font-family: var(--font-mono);
font-size: 0.9rem;
color: var(--ink);
word-break: break-all;
}
.file-meta {
flex-shrink: 0;
font-size: 0.8rem;
color: var(--ink-soft);
white-space: nowrap;
}
.sidebar-card {
gap: 20px;
}
.sidebar-section {
display: grid;
gap: 12px;
}
.sidebar-stack {
display: grid;
gap: 8px;
}
.sidebar-divider {
height: 1px;
background: var(--line);
opacity: 0.6;
}
.sidebar-scroll {
max-height: 260px;
overflow: auto;
padding-right: 4px;
}
.sidebar-form {
display: grid;
gap: 10px;
margin-top: 12px;
}
.version-list {
display: grid;
gap: 14px;
}
.version-row {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 16px;
align-items: center;
padding: 6px 0;
}
.version-info {
display: grid;
gap: 6px;
color: var(--ink-soft);
font-size: 0.9rem;
}
.version-actions {
display: grid;
align-items: center;
}
.version-zip {
justify-self: end;
}
.skill-versions-panel {
display: grid;
gap: 18px;
container-type: inline-size;
container-name: versions-panel;
}
.skill-versions-header {
display: flex;
align-items: baseline;
gap: 12px;
min-width: 0;
}
.skill-versions-suppressed-message {
min-width: 0;
color: var(--ink-soft);
font-size: 0.86rem;
line-height: 1.4;
}
.skill-versions-suppressed-message {
margin: 0;
}
.skill-versions-scroll {
overflow: visible;
}
.skill-versions-list {
display: grid;
gap: 0;
border: 1px solid color-mix(in srgb, var(--line) 92%, transparent);
border-radius: var(--r-md);
overflow: hidden;
background: color-mix(in srgb, var(--surface) 28%, transparent);
}
.skill-versions-list-skills {
--skill-versions-grid-columns: minmax(0, 1fr) max-content max-content 36px;
grid-template-columns: var(--skill-versions-grid-columns);
}
.skill-versions-list-plugins {
--skill-versions-grid-columns: minmax(0, 1fr) minmax(88px, max-content) max-content max-content
36px;
grid-template-columns: var(--skill-versions-grid-columns);
}
.skill-versions-column-header {
grid-column: 1 / -1;
display: grid;
grid-template-columns: subgrid;
column-gap: 16px;
align-items: center;
padding: 10px 16px;
border-bottom: 1px solid color-mix(in srgb, var(--line) 66%, transparent);
color: color-mix(in srgb, var(--ink-soft) 72%, transparent);
font-size: 0.68rem;
font-weight: 700;
letter-spacing: 0.08em;
line-height: 1;
text-transform: uppercase;
}
.skill-versions-col-version {
grid-column: 1;
justify-self: start;
}
.skill-versions-col-tags {
grid-column: 2;
justify-self: start;
}
.skill-versions-col-release {
justify-self: start;
}
.skill-versions-column-header-skills .skill-versions-col-release {
grid-column: 2;
}
.skill-versions-column-header-plugins .skill-versions-col-release {
grid-column: 3;
}
.skill-versions-col-download {
display: inline-flex;
align-items: center;
justify-content: flex-end;
justify-self: end;
min-height: 22px;
color: color-mix(in srgb, var(--ink-soft) 72%, transparent);
}
.skill-versions-column-header-skills .skill-versions-col-download {
grid-column: 3;
}
.skill-versions-column-header-plugins .skill-versions-col-download {
grid-column: 4;
width: 28px;
}
.skill-versions-col-expand {
justify-self: end;
}
.skill-versions-column-header-skills .skill-versions-col-expand {
grid-column: 4;
}
.skill-versions-column-header-plugins .skill-versions-col-expand {
grid-column: 5;
}
.skill-version-release {
grid-column: 1 / -1;
display: grid;
grid-template-columns: subgrid;
gap: 0;
min-width: 0;
border: 0;
border-bottom: 1px solid color-mix(in srgb, var(--line) 68%, transparent);
background: color-mix(in srgb, var(--surface) 20%, transparent);
transition: background-color 160ms ease;
}
.skill-version-release:last-child {
border-bottom: 0;
}
.skill-version-release.is-latest {
background: color-mix(in srgb, var(--ink) 2.2%, var(--surface) 28%);
}
.skill-version-release-summary {
grid-column: 1 / -1;
display: grid;
grid-template-columns: subgrid;
column-gap: 16px;
align-items: center;
min-width: 0;
min-height: 64px;
padding: 12px 16px;
transition: background-color 160ms ease;
}
.skill-version-release:not([data-expanded="true"])
.skill-version-release-summary:has(.skill-version-release-toggle:hover),
.skill-version-release:not([data-expanded="true"])
.skill-version-release-summary:has(.skill-version-release-chevron-button:hover) {
background: color-mix(in srgb, var(--ink) 4%, transparent);
}
.skill-version-release[data-expanded="true"] .skill-version-release-summary {
background: transparent;
}
.skill-version-release-toggle {
grid-column: 1;
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 4px;
min-width: 0;
border: 0;
background: transparent;
color: inherit;
padding: 0;
text-align: left;
cursor: pointer;
}
.skill-version-release-toggle:hover {
color: inherit;
}
.skill-version-release-toggle:focus-visible,
.skill-version-release-chevron-button:focus-visible {
outline: 2px solid color-mix(in srgb, var(--ink) 20%, transparent);
outline-offset: 2px;
}
.skill-version-release-version {
color: var(--ink);
font-size: 0.98rem;
font-weight: 700;
line-height: 1.2;
overflow-wrap: anywhere;
}
.skill-version-release-meta {
display: flex;
flex-wrap: wrap;
gap: 4px 8px;
min-width: 0;
color: var(--ink-soft);
font-size: 0.82rem;
font-variant-numeric: tabular-nums;
line-height: 1.35;
}
.skill-version-release-cell {
min-width: 0;
}
.skill-version-release-cell:empty {
min-height: 22px;
}
.skill-version-release-chevron-button {
display: inline-flex;
align-items: center;
justify-content: center;
justify-self: end;
align-self: center;
width: 28px;
height: 28px;
padding: 0;
border: 0;
border-radius: var(--r-sm);
background: transparent;
color: inherit;
cursor: pointer;
}
.skill-version-release-chevron-button:hover {
background: color-mix(in srgb, var(--ink) 6%, transparent);
}
.skill-version-release-chevron {
display: block;
width: 10px;
height: 10px;
border-right: 2px solid color-mix(in srgb, var(--ink-soft) 74%, transparent);
border-bottom: 2px solid color-mix(in srgb, var(--ink-soft) 74%, transparent);
transform: rotate(45deg);
transition:
border-color 160ms ease,
transform 160ms ease;
}
.skill-version-release[data-expanded="true"] .skill-version-release-chevron {
border-color: color-mix(in srgb, var(--ink) 88%, transparent);
transform: rotate(225deg) translate(-2px, -2px);
}
.skill-version-release-changelog {
grid-column: 1 / -1;
margin: 0 16px 16px;
padding: 14px 16px;
border-top: 1px solid color-mix(in srgb, var(--line) 58%, transparent);
border-radius: 0 0 var(--r-sm) var(--r-sm);
background: color-mix(in srgb, var(--ink) 4.5%, transparent);
color: color-mix(in srgb, var(--ink) 72%, transparent);
font-size: 0.84rem;
line-height: 1.45;
overflow-wrap: anywhere;
}
.version-changelog-list {
display: grid;
gap: 5px;
margin: 0;
padding: 0;
list-style: none;
}
.version-changelog-list li {
position: relative;
padding-left: 14px;
}
.version-changelog-list li::before {
position: absolute;
top: 0.7em;
left: 0;
width: 4px;
height: 4px;
border-radius: 999px;
background: color-mix(in srgb, var(--ink-soft) 58%, transparent);
content: "";
}
.version-changelog-text {
display: grid;
gap: 6px;
}
.version-changelog-text p {
margin: 0;
white-space: pre-wrap;
}
.version-changelog-empty {
margin: 0;
color: color-mix(in srgb, var(--ink-soft) 72%, transparent);
font-size: 0.84rem;
font-style: italic;
}
.skill-version-release-scan {
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-items: center;
justify-content: flex-start;
gap: 6px;
width: 100%;
min-width: 0;
min-height: 22px;
}
.skill-versions-list-plugins .skill-version-release-scan {
grid-column: 2;
}
.skill-version-release-tags {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: flex-start;
gap: 6px;
width: 100%;
min-width: 0;
min-height: 22px;
}
.skill-versions-list-skills .skill-version-release-tags {
grid-column: 2;
}
.skill-versions-list-plugins .skill-version-release-tags {
grid-column: 3;
}
.skill-version-release-actions {
display: flex;
flex-wrap: nowrap;
align-items: center;
justify-content: flex-end;
gap: 8px;
width: 100%;
min-width: 0;
justify-self: end;
}
.skill-versions-list-skills .skill-version-release-actions {
grid-column: 3;
}
.skill-versions-list-plugins .skill-version-release-actions {
grid-column: 4;
}
.skill-version-release-download {
display: inline-flex;
align-items: center;
justify-content: center;
width: 28px;
min-width: 28px;
height: 28px;
min-height: 28px;
padding: 0;
border: 1px solid var(--line);
border-radius: var(--r-pill);
background: var(--surface);
color: var(--ink);
line-height: 1;
text-decoration: none;
}
.skill-version-release-download:hover {
text-decoration: none;
}
.skill-version-release-download-icon {
flex: 0 0 auto;
color: color-mix(in srgb, var(--ink-soft) 72%, transparent);
}
.skill-version-release-download-labeled {
width: auto;
padding: 0 10px;
gap: 6px;
font-size: 0.76rem;
font-weight: 650;
white-space: nowrap;
}
.skill-versions-list-skills .skill-version-release-chevron-button {
grid-column: 4;
}
.skill-versions-list-plugins .skill-version-release-chevron-button {
grid-column: 5;
}
.version-channel-badge,
.version-release-channel-badge {
display: inline-flex;
align-items: center;
justify-content: center;
box-sizing: border-box;
min-width: 0;
min-height: 22px;
line-height: 1;
}
.version-channel-badge {
padding: 2px 8px;
border: 1px solid color-mix(in srgb, var(--line) 76%, transparent);
border-radius: var(--r-pill);
background: color-mix(in srgb, var(--ink) 3%, transparent);
color: color-mix(in srgb, var(--ink-soft) 82%, transparent);
font-size: 0.72rem;
font-weight: 650;
}
.skill-version-release .version-scan-badge-row {
display: inline-flex;
flex-wrap: nowrap;
align-items: center;
gap: 8px;
width: 100%;
min-width: 0;
}
.skill-version-release .version-scan-badge {
display: inline-grid;
grid-template-columns: 14px 58px 12px;
align-items: center;
column-gap: 4px;
flex: 0 0 88px;
width: 88px;
min-width: 88px;
max-width: 88px;
}
.skill-version-release .version-scan-icon {
width: 14px;
height: 14px;
flex: 0 0 auto;
font-size: 0.82rem;
line-height: 1;
}
.skill-version-release .version-scan-status-badge,
.skill-version-release .version-scan-badge > span {
display: inline-flex;
align-items: center;
justify-content: center;
box-sizing: border-box;
width: 58px;
min-width: 58px;
max-width: 58px;
min-height: 22px;
padding: 2px 4px;
border-radius: var(--r-pill);
font-size: 0.72rem;
font-weight: 650;
line-height: 1;
text-align: center;
white-space: nowrap;
}
.skill-version-release .version-scan-link {
display: inline-flex;
align-items: center;
justify-content: center;
width: 12px;
min-width: 12px;
color: var(--ink-soft);
font-size: 0.72rem;
line-height: 1;
text-decoration: none;
}
.skill-version-release .version-scan-link:hover {
color: var(--accent);
}
.skill-version-release .version-scan-badge .scan-result-status.scan-status-clean {
width: 22px;
min-width: 22px;
height: 22px;
min-height: 22px;
justify-content: center;
gap: 0;
padding: 0;
border-color: color-mix(in srgb, var(--status-success-fg) 24%, var(--line));
border-radius: var(--r-pill);
font-size: 0;
}
.skill-version-release .version-scan-badge .scan-result-status.scan-status-clean::before {
content: "✓";
font-size: 0.74rem;
line-height: 1;
}
.skill-version-release .version-scan-badge .scan-status-pending {
border-color: color-mix(in srgb, var(--ink-soft) 34%, var(--line));
background: color-mix(in srgb, var(--ink-soft) 10%, transparent);
color: color-mix(in srgb, var(--ink) 68%, transparent);
}
.skill-version-release .version-scan-badge .scan-status-warn,
.skill-version-release .version-scan-badge .scan-status-suspicious {
border-color: color-mix(in srgb, var(--status-warning-fg) 34%, var(--line));
background: var(--status-warning-bg);
color: var(--status-warning-fg);
}
@media (max-width: 760px) {
.skill-versions-header {
align-items: flex-start;
flex-direction: column;
gap: 6px;
}
.skill-versions-list {
grid-template-columns: minmax(0, 1fr);
}
.skill-versions-column-header {
display: none;
}
.skill-version-release {
grid-template-columns: minmax(0, 1fr);
}
.skill-version-release-summary {
grid-template-columns: minmax(0, 1fr) auto;
gap: 10px;
padding: 14px;
}
.skill-version-release-toggle {
grid-column: 1;
}
.skill-version-release-scan,
.skill-version-release-tags {
grid-column: 1 / -1;
display: flex;
flex-wrap: wrap;
gap: 8px 10px;
align-items: center;
min-height: 0;
}
.skill-version-release-scan:empty,
.skill-version-release-tags:empty {
display: none;
}
.skill-version-release-scan::before,
.skill-version-release-tags::before {
flex: 0 0 64px;
content: attr(data-label);
color: color-mix(in srgb, var(--ink-soft) 74%, transparent);
font-size: 0.68rem;
font-weight: 700;
letter-spacing: 0.08em;
line-height: 1;
text-transform: uppercase;
}
.skill-version-release-actions {
grid-column: 1 / -1;
}
.skill-version-release-actions {
justify-content: flex-start;
padding-left: 74px;
}
.skill-version-release-actions:empty {
display: none;
}
.skill-version-release-scan .version-scan-badge-row {
width: auto;
}
.skill-version-release-tags .version-release-channel-badge {
flex: 0 0 auto;
width: fit-content;
}
.skill-version-release-chevron-button {
grid-column: 2;
grid-row: 1;
justify-self: end;
}
.navbar-inner {
padding: 0;
}
.navbar-top {
display: grid;
grid-template-columns: 40px minmax(0, 1fr) 40px;
align-items: center;
padding: 8px 10px;
gap: 6px;
min-height: 0;
}
.navbar-search-wrap {
display: block;
width: 100%;
max-width: 100%;
min-width: 0;
}
.navbar-search {
display: flex;
min-width: 0;
height: 40px;
gap: 8px;
padding: 0 10px;
}
.navbar-search-icon {
width: 17px;
height: 17px;
}
.navbar-search-mobile-trigger {
display: none;
}
.navbar-search-mobile {
display: none;
}
.navbar-top-links {
display: none;
}
.navbar-tabs {
display: none;
}
.navbar-tabs-primary,
.navbar-tabs-secondary {
display: inline-flex;
flex: 0 0 auto;
align-items: center;
}
.navbar-tab {
min-height: 54px;
padding: 14px 18px;
font-size: 1rem;
}
.navbar-tab-secondary {
display: inline-flex;
}
.nav-links {
display: none;
}
.nav-mobile {
display: inline-flex;
flex: 0 0 auto;
}
.nav-mobile-trigger {
width: 40px;
height: 40px;
border-radius: var(--r-md);
}
.nav-mobile-trigger::after {
border-radius: var(--r-md);
}
.nav-mobile-trigger svg {
width: 18px;
height: 18px;
}
.brand {
display: none;
}
.nav-actions {
justify-self: end;
margin-left: 0;
flex: 0 0 auto;
gap: 0;
}
.nav-actions .btn {
width: 36px;
min-width: 36px;
height: 36px;
min-height: 36px;
padding: 0;
border-radius: var(--r-pill);
}
.sign-in-label,
.sign-in-provider {
display: none;
}
.github-sign-in-button {
width: 40px !important;
min-width: 40px !important;
height: 40px !important;
min-height: 40px !important;
padding: 0 !important;
gap: 0 !important;
border-radius: var(--r-md) !important;
}
.github-sign-in-button .github-sign-in-logo {
width: 18px;
height: 18px;
}
.sign-in-full-copy {
display: none;
}
.sign-in-compact-copy {
display: none;
}
.user-trigger {
width: 40px;
min-width: 40px;
height: 40px;
min-height: 40px;
padding: 0;
justify-content: center;
border-radius: var(--r-md);
}
.user-trigger img,
.user-menu-fallback {
width: 18px;
height: 18px;
}
.user-trigger .mono,
.user-trigger-handle,
.user-menu-chevron {
display: none;
}
.hero {
padding: 58px 18px 44px;
}
.section {
padding: 30px 18px 62px;
}
.security-scanner-layout {
grid-template-columns: 1fr;
}
.security-report-layout,
.security-report-panel-body .clawscan-risk-buckets {
grid-template-columns: 1fr;
}
.security-report-sidebar {
position: static;
padding: 22px 0;
border-top: 1px solid var(--line);
}
.section-cta {
justify-content: flex-start;
}
.skill-hero-lower {
grid-template-columns: 1fr;
}
.skill-hero-lower.has-sidebar {
grid-template-columns: minmax(0, 1fr);
gap: 16px;
}
.skill-hero-main-extra {
gap: 24px;
}
.plugin-detail-page .skill-hero-main-extra {
gap: 20px;
}
.related-skills-header {
align-items: start;
flex-direction: column;
gap: 8px;
}
.related-skill-row {
grid-template-columns: 34px minmax(0, 1fr);
gap: 12px;
padding: 16px 0;
}
.related-skills-section-compact .related-skill-row {
grid-template-columns: 34px minmax(0, 1fr) auto;
padding: 14px 10px;
}
.related-skills-section:not(.related-skills-section-compact) .related-skill-owner,
.related-skills-section:not(.related-skills-section-compact) .related-skill-owner-skeleton {
grid-column: 2;
text-align: left;
}
.related-skills-section:not(.related-skills-section-compact) .related-skill-owner-skeleton {
justify-self: start;
}
.skill-hero-layout.has-sidebar .skill-summary-block {
max-width: none;
}
.skill-hero-sidebar {
order: -1;
flex-direction: column;
align-items: stretch;
width: 100%;
}
.skill-hero-sidebar-stack {
gap: 10px;
}
.skill-hero-sidebar .sidebar-metadata-row {
padding: 8px 0;
}
.skill-hero-sidebar .sidebar-metadata-label {
font-size: 0.78rem;
}
.skill-hero-sidebar .sidebar-metadata-value {
font-size: 0.9rem;
}
.skill-hero-sidebar .sidebar-metadata-row-large .sidebar-metadata-value {
font-size: 1.2rem;
}
.skill-sidebar-action-button {
min-height: 38px !important;
padding-top: 7px !important;
padding-bottom: 7px !important;
font-size: 0.8125rem;
}
.skill-page-title {
font-size: clamp(1.55rem, 6.8vw, 1.85rem);
line-height: 1.1;
}
.skill-hero-sidebar-meta {
flex: 1;
min-width: 200px;
}
.skill-install-panel {
padding: 18px;
}
.skill-install-command-card {
padding: 14px;
}
.skill-hero-cta {
flex-direction: row;
flex-wrap: wrap;
gap: 8px;
align-items: flex-start;
}
.skill-hero-cta .btn {
width: auto;
flex: 1 1 auto;
min-width: 0;
}
.tag-form {
grid-template-columns: 1fr;
align-items: stretch;
}
.diff-layout {
grid-template-columns: 1fr;
}
.diff-view {
overflow-x: auto;
}
.diff-files {
grid-auto-flow: column;
grid-auto-columns: minmax(160px, 1fr);
overflow-x: auto;
padding-bottom: 6px;
max-height: none;
}
.diff-monaco.diff-monaco-split {
min-width: 0;
}
.skills-row {
grid-template-columns: 1fr;
gap: 10px;
}
.skills-row-metrics {
justify-content: flex-start;
white-space: normal;
flex-wrap: wrap;
row-gap: 8px;
}
.browse-search-input {
font-size: 16px;
}
.navbar-search-input {
font-size: 16px;
}
.navbar-search-input::placeholder {
font-size: 16px;
}
}
@media (max-width: 520px) {
.nav-actions {
gap: 0;
}
.navbar .btn {
padding: 10px 12px;
font-size: 0.95rem;
min-height: 44px;
}
.nav-actions .btn,
.user-trigger {
width: 36px;
min-width: 36px;
height: 36px;
min-height: 36px;
padding: 0;
}
.user-trigger {
width: 40px;
min-width: 40px;
height: 40px;
min-height: 40px;
border-radius: var(--r-md);
}
.search-bar {
flex-wrap: wrap;
gap: 10px;
}
.search-bar > .mono {
display: none;
}
.search-input {
flex: 1 1 180px;
min-width: 0;
}
.search-filter-button {
flex: 1;
justify-content: center;
}
.plugins-toolbar-top {
flex-direction: column;
}
.plugins-type-tabs {
width: 100%;
justify-content: center;
}
.install-switcher-row {
align-items: flex-start;
flex-direction: column;
gap: 10px;
}
.report-dialog-backdrop {
padding: 12px;
}
.report-dialog {
padding: 16px;
}
.site-footer {
padding: 0 18px 18px;
}
}
@media (max-width: 639px) {
.brand-mark-image {
display: none;
}
}
.search-filter-button {
position: relative;
display: inline-flex;
align-items: center;
gap: 6px;
border-radius: var(--r-pill);
border: 1px solid var(--border-ui);
padding: 7px 14px;
background: linear-gradient(180deg, rgba(255, 255, 255, 0.72), rgba(255, 246, 241, 0.92));
color: var(--ink-soft);
font-weight: 600;
font-size: 0.88rem;
cursor: pointer;
transition:
border 0.15s ease,
box-shadow 0.15s ease,
background 0.15s ease,
color 0.15s ease;
}
.search-filter-button:hover {
border-color: var(--border-ui-hover);
color: var(--ink);
}
.search-filter-button[aria-pressed="true"] {
background: linear-gradient(180deg, rgba(255, 142, 111, 0.28), rgba(255, 255, 255, 0.2));
border-color: var(--border-ui-active);
color: var(--ink);
box-shadow: inset 0 1px 0 rgba(255, 244, 240, 0.75);
}
.search-filter-button:focus-visible {
outline: 3px solid rgba(255, 255, 255, 0.3);
outline-offset: 3px;
}
.search-filter {
display: inline-flex;
align-items: center;
gap: 12px;
padding: 10px 14px;
border-radius: var(--r-pill);
border: 1px solid var(--border-ui);
background: var(--surface-muted);
color: var(--ink);
font-weight: 600;
}
.search-filter-input {
appearance: none;
width: 20px;
height: 20px;
border-radius: 6px;
border: 2px solid var(--border-ui-hover);
display: grid;
place-items: center;
background: transparent;
transition:
border 0.2s ease,
box-shadow 0.2s ease,
background 0.2s ease;
}
.search-filter-input::after {
content: "";
width: 10px;
height: 10px;
border-radius: 3px;
background: white;
transform: scale(0);
transition: transform 0.15s ease;
}
.search-filter-input:checked {
background: var(--accent);
border-color: var(--accent-deep);
box-shadow: 0 8px 16px rgba(255, 255, 255, 0.3);
}
.search-filter-input:checked::after {
transform: scale(1);
}
.search-filter-input:focus-visible {
outline: 3px solid rgba(255, 255, 255, 0.3);
outline-offset: 3px;
}
.search-input {
border: none;
outline: none;
flex: 1;
font-size: 1rem;
background: transparent;
}
.settings-shell {
display: grid;
gap: 20px;
}
.settings-profile {
display: flex;
align-items: center;
gap: 14px;
background: linear-gradient(135deg, var(--surface), var(--surface-muted));
}
.settings-avatar {
width: 72px;
height: 72px;
border-radius: 22px;
background: rgba(255, 255, 255, 0.14);
border: 1px solid rgba(255, 255, 255, 0.3);
display: grid;
place-items: center;
font-weight: 700;
color: var(--accent-deep);
overflow: hidden;
}
.settings-avatar img {
width: 100%;
height: 100%;
object-fit: cover;
}
.settings-profile-body {
display: grid;
gap: 4px;
}
.settings-name {
font-size: 1.25rem;
font-weight: 700;
}
.settings-handle {
color: var(--ink-soft);
}
.settings-email {
font-size: 0.95rem;
color: var(--ink-soft);
}
.profile-tabs {
display: flex;
align-items: center;
gap: 10px;
flex-wrap: wrap;
margin: 0 0 18px;
}
.profile-tab {
border: 1px solid rgba(255, 255, 255, 0.2);
background: rgba(255, 255, 255, 0.45);
color: var(--ink-soft);
padding: 10px 14px;
border-radius: var(--r-pill);
font-weight: 650;
cursor: pointer;
transition:
transform 0.18s ease,
background 0.18s ease,
border-color 0.18s ease,
color 0.18s ease;
}
.profile-tab:hover {
transform: translateY(-1px);
color: var(--ink);
}
.profile-tab.is-active {
background: rgba(255, 255, 255, 0.16);
border-color: rgba(255, 255, 255, 0.32);
color: var(--accent-deep);
}
.profile-actions {
display: flex;
align-items: center;
gap: 10px;
flex-wrap: wrap;
margin-bottom: 18px;
}
.telemetry-root-header {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 12px;
flex-wrap: wrap;
}
.telemetry-root-title {
font-weight: 750;
letter-spacing: -0.01em;
}
.telemetry-root-meta {
font-size: 0.9rem;
color: var(--ink-soft);
margin-top: 4px;
}
.telemetry-skill-list {
display: grid;
gap: 10px;
margin-top: 10px;
}
.telemetry-skill-row {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 12px;
flex-wrap: wrap;
}
.telemetry-skill-link {
display: inline-flex;
align-items: baseline;
gap: 10px;
min-width: 0;
}
.telemetry-skill-slug {
font-family: var(--font-mono);
font-size: 0.85rem;
color: var(--ink-soft);
}
.telemetry-skill-meta {
color: var(--ink-soft);
white-space: nowrap;
}
.settings-card {
display: grid;
gap: 16px;
}
.settings-field {
display: grid;
gap: 8px;
font-weight: 600;
color: var(--ink);
}
.settings-input {
width: 100%;
border-radius: 14px;
border: 1px solid rgba(255, 255, 255, 0.2);
background: var(--surface-muted);
padding: 12px 14px;
font-size: 1rem;
color: var(--ink);
outline: none;
transition:
border 0.2s ease,
box-shadow 0.2s ease;
}
.settings-input:focus {
border-color: rgba(255, 255, 255, 0.5);
box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.15);
}
.settings-actions {
display: flex;
align-items: center;
gap: 12px;
}
.settings-save {
padding: 10px 22px;
}
.danger-card {
margin-top: 8px;
border: 1px solid rgba(255, 255, 255, 0.28);
background: linear-gradient(135deg, rgba(255, 255, 255, 0.08), transparent);
}
.danger-title {
margin: 0 0 6px;
font-size: 1.2rem;
}
.btn-danger {
background: linear-gradient(135deg, #ff4444, #cc0000);
border: none;
color: #fff;
}
@media (max-width: 900px) {
.upload-header {
flex-direction: column;
align-items: flex-start;
}
.upload-grid {
grid-template-columns: 1fr;
}
.upload-page .upload-grid {
gap: 14px;
}
.upload-submit-row {
align-items: stretch;
flex-direction: column;
}
.upload-submit-btn {
width: 100%;
min-width: 0;
}
.upload-dropzone-title-row {
flex-direction: column;
align-items: flex-start;
gap: 4px;
}
}
.mono {
font-family: var(--font-mono);
}
.markdown {
line-height: 1.7;
max-width: 100%;
color: var(--ink);
font-size: var(--fs-base);
overflow-wrap: break-word;
word-wrap: break-word;
}
.markdown > :first-child {
margin-top: 0;
}
.markdown h1 {
font-family: var(--font-display);
font-size: var(--fs-2xl);
font-weight: 700;
margin: var(--space-6) 0 var(--space-4);
padding-bottom: var(--space-2);
border-bottom: 1px solid var(--line);
}
.markdown h2 {
font-family: var(--font-display);
font-size: var(--fs-xl);
font-weight: 700;
margin: var(--space-5) 0 var(--space-3);
padding-bottom: var(--space-1);
border-bottom: 1px solid var(--line);
}
.markdown h3 {
font-family: var(--font-display);
font-size: var(--fs-lg);
font-weight: 600;
margin: var(--space-5) 0 var(--space-2);
}
.markdown h4 {
font-size: var(--fs-md);
font-weight: 600;
margin: var(--space-4) 0 var(--space-2);
}
.markdown h5,
.markdown h6 {
font-size: var(--fs-base);
font-weight: 600;
margin: var(--space-4) 0 var(--space-2);
}
.markdown h6 {
color: var(--ink-soft);
}
.markdown p {
margin: var(--space-3) 0;
}
.markdown a {
color: var(--accent-deep);
text-decoration: underline;
text-underline-offset: 2px;
overflow-wrap: break-word;
word-wrap: break-word;
word-break: break-word;
}
.markdown a:hover {
color: inherit;
}
.markdown ul,
.markdown ol {
padding-left: 1.4em;
margin: var(--space-3) 0;
}
.markdown ul {
list-style-type: disc;
}
.markdown ol {
list-style-type: decimal;
}
.markdown li {
padding-left: 0.2em;
margin-bottom: 0.4em;
}
.markdown li::marker {
color: var(--ink-soft);
font-size: 0.82em;
font-variant-numeric: tabular-nums;
}
.markdown li > ul,
.markdown li > ol {
margin-top: var(--space-1);
margin-bottom: 0;
}
.markdown blockquote {
border-left: 3px solid var(--line);
padding: var(--space-2) var(--space-4);
margin: var(--space-4) 0;
color: var(--ink-soft);
}
.markdown blockquote p {
margin: 0;
}
.markdown table {
width: 100%;
max-width: 100%;
border: 1px solid var(--line);
border-collapse: separate;
border-spacing: 0;
font-size: var(--fs-sm);
margin: var(--space-4) 0;
overflow-x: auto;
display: block;
table-layout: fixed;
border-radius: var(--r-md);
}
.markdown td,
.markdown th {
overflow-wrap: break-word;
word-wrap: break-word;
word-break: break-word;
}
.markdown th,
.markdown td {
padding: var(--space-2) var(--space-3);
border-right: 1px solid var(--line);
border-bottom: 1px solid var(--line);
text-align: left;
}
.markdown tr > :last-child {
border-right: 0;
}
.markdown tbody tr:last-child > td {
border-bottom: 0;
}
.markdown th {
background: var(--surface-muted);
font-weight: 600;
}
.markdown img {
max-width: 100%;
height: auto;
border-radius: var(--r-sm);
margin: var(--space-3) 0;
}
.markdown hr {
border: none;
border-top: 1px solid var(--line);
margin: var(--space-5) 0;
}
.skill-readme-body {
--skill-readme-line-height: 28px;
overflow-x: hidden;
}
.skill-readme-preview {
position: relative;
min-width: 0;
}
.skill-readme-preview.is-collapsed {
max-height: calc(var(--skill-readme-line-height) * 32);
overflow: hidden;
}
.skill-readme-preview.is-collapsed::after {
content: "";
position: absolute;
right: 0;
bottom: 0;
left: 0;
height: 112px;
pointer-events: none;
background: linear-gradient(
to bottom,
transparent,
color-mix(in srgb, var(--surface-muted) 58%, var(--bg)) 88%
);
}
.skill-readme-toggle {
justify-self: start;
appearance: none;
border: 1px solid var(--line);
border-radius: var(--r-pill);
padding: 8px 12px;
background: transparent;
color: var(--ink);
font: inherit;
font-size: 12px;
font-weight: 650;
line-height: 1;
cursor: pointer;
}
.skill-readme-toggle:hover,
.skill-readme-toggle:focus-visible {
background: color-mix(in srgb, var(--surface-muted) 82%, transparent);
}
.skill-readme-body .markdown {
font-size: 16px;
line-height: 1.75;
min-width: 0;
max-width: 100%;
}
.skill-readme-body .markdown img {
display: block;
width: auto;
max-width: 100%;
height: auto;
}
.skill-readme-body .markdown > p {
opacity: 0.82;
}
.skill-readme-body .markdown :is(h1, h2, h3, h4, h5, h6) {
color: var(--ink);
font-family: var(--font-display);
font-weight: 700;
line-height: 1.25;
padding-bottom: 0;
border-bottom: 0;
}
.skill-readme-body .markdown h1 {
margin: 0 0 var(--space-2);
font-size: 28px;
}
.skill-readme-body .markdown h2 {
margin: var(--space-5) 0 var(--space-1);
font-size: 22px;
}
.skill-readme-body .markdown h3 {
margin: var(--space-5) 0 var(--space-1);
font-size: 18px;
}
.skill-readme-body .markdown h4 {
margin: var(--space-5) 0 var(--space-2);
font-size: 16px;
}
.skill-readme-body .markdown h5,
.skill-readme-body .markdown h6 {
margin: var(--space-4) 0 var(--space-2);
font-size: 14px;
}
.skill-readme-body .markdown p > strong:only-child {
font-weight: 650;
}
.skill-readme-body .markdown pre {
margin: var(--space-3) 0 var(--space-5);
}
.skill-readme-body .markdown hr {
display: none;
}
.markdown :not(pre) > code {
padding: 0.12em 0.35em;
border-radius: var(--r-xs);
background: color-mix(in srgb, var(--surface-muted) 78%, transparent);
box-decoration-break: clone;
-webkit-box-decoration-break: clone;
font-size: 0.88em;
font-family: var(--font-mono);
overflow-wrap: anywhere;
word-break: normal;
}
.markdown pre {
white-space: pre;
max-width: 100%;
overflow-x: auto;
background: var(--surface-muted);
border: 1px solid var(--line);
border-radius: var(--r-sm);
padding: var(--space-3) var(--space-4);
font-family: var(--font-mono);
font-size: var(--fs-sm);
line-height: 1.55;
tab-size: 2;
color: var(--ink);
overflow-wrap: normal;
word-break: normal;
}
.markdown pre code {
background: transparent;
padding: 0;
border-radius: 0;
white-space: inherit;
font-family: inherit;
color: inherit;
font-size: inherit;
}
.tab-body .markdown :not(pre) > code {
background: color-mix(in srgb, var(--surface-muted) 74%, var(--ink) 6%);
box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--line) 56%, transparent);
}
.tab-body .markdown pre {
border-color: color-mix(in srgb, var(--line) 88%, var(--ink) 8%);
background: color-mix(in srgb, var(--surface-muted) 82%, var(--ink) 4%);
}
.markdown-code-block {
margin: var(--space-3) 0 var(--space-5);
overflow: hidden;
border: 1px solid color-mix(in srgb, var(--line) 88%, var(--ink) 8%);
border-radius: var(--r-md);
background: color-mix(in srgb, var(--surface-muted) 82%, var(--ink) 4%);
}
.markdown-code-block-toolbar {
display: flex;
min-height: 30px;
align-items: center;
justify-content: space-between;
gap: 12px;
border-bottom: 1px solid color-mix(in srgb, var(--line) 72%, transparent);
padding: 3px 8px 3px 12px;
background: color-mix(in srgb, var(--surface-muted) 74%, var(--bg));
}
.markdown-code-block-language {
min-width: 0;
color: var(--ink-soft);
font-family: var(--font-body);
font-size: 0.74rem;
font-weight: 650;
line-height: 1;
}
.markdown-code-block-actions {
display: inline-flex;
align-items: center;
gap: 2px;
color: var(--ink-soft);
}
.markdown-code-block-action {
display: inline-flex;
width: 24px;
height: 24px;
align-items: center;
justify-content: center;
border: 0;
border-radius: var(--r-xs);
background: transparent;
color: inherit;
cursor: pointer;
transition:
background 140ms ease,
color 140ms ease,
transform 120ms cubic-bezier(0.23, 1, 0.32, 1);
}
.markdown-code-block-action:hover,
.markdown-code-block-action[aria-pressed="true"] {
background: color-mix(in srgb, var(--ink) 8%, transparent);
color: var(--ink);
}
.markdown-code-block-action:active {
transform: scale(0.96);
}
.markdown-code-block-action:focus-visible {
outline: none;
}
.markdown .markdown-code-block pre,
.tab-body .markdown .markdown-code-block pre {
margin: 0;
border: 0;
border-radius: 0;
background: transparent;
box-shadow: none;
}
.markdown .markdown-code-block pre.shiki,
.tab-body .markdown .markdown-code-block pre.shiki {
background-color: transparent !important;
color: var(--ink);
}
.markdown .markdown-code-block pre.shiki code,
.tab-body .markdown .markdown-code-block pre.shiki code {
background: transparent;
color: inherit;
}
.markdown .markdown-code-block pre[data-wrap="true"],
.markdown .markdown-code-block pre[data-wrap="true"] code {
white-space: pre-wrap;
overflow-wrap: anywhere;
word-break: break-word;
}
.markdown .markdown-code-block pre[data-wrap="true"] {
overflow-x: hidden;
}
.markdown .markdown-code-block pre::-webkit-scrollbar {
height: 8px;
}
.markdown .markdown-code-block pre::-webkit-scrollbar-track {
background: color-mix(in srgb, var(--surface-muted) 72%, var(--bg));
}
.markdown .markdown-code-block pre::-webkit-scrollbar-thumb {
border-radius: var(--r-pill);
background: color-mix(in srgb, var(--ink-soft) 38%, transparent);
}
.tab-body .markdown table {
border-color: color-mix(in srgb, var(--line) 88%, var(--ink) 8%);
background: color-mix(in srgb, var(--surface-muted) 48%, transparent);
}
.tab-body .markdown th {
background: color-mix(in srgb, var(--surface-muted) 78%, var(--ink) 4%);
}
.tab-body .markdown td {
background: color-mix(in srgb, var(--surface-muted) 26%, transparent);
}
.markdown .mermaid-diagram {
width: 100%;
max-width: 100%;
overflow-x: auto;
margin: var(--space-4) 0;
padding: var(--space-3);
background: var(--surface);
border: 1px solid var(--line);
border-radius: var(--r-sm);
}
.markdown .mermaid-diagram__svg {
min-width: max-content;
}
.markdown .mermaid-diagram svg {
display: block;
max-width: 100%;
height: auto;
margin: 0 auto;
}
.markdown .mermaid-diagram__loading {
color: var(--ink-soft);
font-size: var(--fs-sm);
}
.markdown .mermaid-diagram-error {
border-color: color-mix(in srgb, var(--oc-status-error-fg) 45%, var(--oc-border-subtle));
}
.fade-up {
animation: fadeUp 0.6s ease forwards;
opacity: 0;
transform: translateY(12px);
}
.fade-up[data-delay="1"] {
animation-delay: 0.1s;
}
.fade-up[data-delay="2"] {
animation-delay: 0.2s;
}
.fade-up[data-delay="3"] {
animation-delay: 0.3s;
}
@keyframes fadeUp {
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes spin {
to {
transform: rotate(360deg);
}
}
.clawhub-import-spinner {
display: inline-flex;
width: 42px;
height: 42px;
flex: 0 0 auto;
align-items: center;
justify-content: center;
border: 1px solid color-mix(in srgb, var(--accent) 36%, var(--line));
border-radius: 999px;
background:
radial-gradient(circle at 32% 28%, rgba(255, 255, 255, 0.18), transparent 28%),
color-mix(in srgb, var(--surface-muted) 82%, var(--accent) 18%);
box-shadow:
inset 0 0 0 1px rgba(255, 255, 255, 0.04),
0 10px 32px color-mix(in srgb, var(--accent) 18%, transparent);
transform-style: preserve-3d;
animation: clawhub-import-orbit 2.8s linear infinite;
}
.clawhub-import-spinner-emoji::before {
content: "🦑";
display: block;
font-size: 22px;
line-height: 1;
transform: translateZ(8px);
transform-style: preserve-3d;
animation:
clawhub-import-emoji 2.8s steps(1, end) infinite,
clawhub-import-emoji-spin 2.8s linear infinite;
}
@keyframes clawhub-import-orbit {
0% {
transform: rotateY(0deg);
}
12.49% {
transform: rotateY(89deg);
}
12.5% {
transform: rotateY(90deg);
}
25% {
transform: rotateY(180deg);
}
37.49% {
transform: rotateY(269deg);
}
37.5% {
transform: rotateY(270deg);
}
50% {
transform: rotateY(360deg);
}
62.49% {
transform: rotateY(449deg);
}
62.5% {
transform: rotateY(450deg);
}
75% {
transform: rotateY(540deg);
}
87.49% {
transform: rotateY(629deg);
}
87.5% {
transform: rotateY(630deg);
}
100% {
transform: rotateY(720deg);
}
}
@keyframes clawhub-import-emoji-spin {
0% {
transform: translateZ(8px) rotateY(0deg);
}
12.49% {
transform: translateZ(8px) rotateY(-89deg);
}
12.5% {
transform: translateZ(8px) rotateY(-90deg);
}
25% {
transform: translateZ(8px) rotateY(-180deg);
}
37.49% {
transform: translateZ(8px) rotateY(-269deg);
}
37.5% {
transform: translateZ(8px) rotateY(-270deg);
}
50% {
transform: translateZ(8px) rotateY(-360deg);
}
62.49% {
transform: translateZ(8px) rotateY(-449deg);
}
62.5% {
transform: translateZ(8px) rotateY(-450deg);
}
75% {
transform: translateZ(8px) rotateY(-540deg);
}
87.49% {
transform: translateZ(8px) rotateY(-629deg);
}
87.5% {
transform: translateZ(8px) rotateY(-630deg);
}
100% {
transform: translateZ(8px) rotateY(-720deg);
}
}
@keyframes clawhub-import-emoji {
0%,
12.49% {
content: "🦑";
}
12.5%,
37.49% {
content: "🦞";
}
37.5%,
62.49% {
content: "🦐";
}
62.5%,
87.49% {
content: "🦀";
}
87.5%,
100% {
content: "🦑";
}
}
.github-import-review-card {
background: linear-gradient(
180deg,
color-mix(in srgb, var(--surface-muted) 72%, var(--surface)) 0%,
var(--surface) 46%,
color-mix(in srgb, var(--surface) 92%, var(--bg)) 100%
);
}
.github-import-success-panel {
position: relative;
border: 1px solid color-mix(in srgb, var(--status-success-fg) 6%, var(--line));
background:
radial-gradient(
circle at 88% 16%,
color-mix(in srgb, var(--status-success-fg) 5%, transparent),
transparent 42%
),
radial-gradient(
circle at 8% 76%,
color-mix(in srgb, var(--status-success-fg) 3%, transparent),
transparent 38%
),
linear-gradient(
180deg,
color-mix(in srgb, var(--surface-muted) 70%, transparent) 0%,
color-mix(in srgb, var(--surface) 96%, var(--bg)) 42%,
color-mix(in srgb, var(--surface) 72%, var(--bg)) 100%
);
box-shadow:
0 0 0 1px color-mix(in srgb, white 2%, transparent) inset,
0 16px 44px color-mix(in srgb, black 22%, transparent);
}
.github-import-success-panel::before {
position: absolute;
inset: 0;
pointer-events: none;
content: "";
background: linear-gradient(
90deg,
transparent,
color-mix(in srgb, var(--status-success-fg) 8%, transparent),
transparent
);
height: 1px;
}
.github-import-success-mark {
color: color-mix(in srgb, var(--status-success-fg) 74%, var(--ink));
border: 1px solid color-mix(in srgb, var(--status-success-fg) 18%, var(--line));
background:
radial-gradient(
circle at 50% 42%,
color-mix(in srgb, var(--status-success-fg) 5%, transparent),
transparent 56%
),
color-mix(in srgb, var(--surface-muted) 86%, transparent);
box-shadow:
0 0 0 6px color-mix(in srgb, var(--status-success-fg) 1.5%, transparent),
0 10px 20px color-mix(in srgb, black 14%, transparent);
}
.github-import-publish-result-row {
display: flex;
gap: 12px;
padding: 16px 18px;
border-bottom: 1px solid var(--line);
}
.github-import-publish-result-row:last-child {
border-bottom: 0;
}
.github-import-input:focus,
.github-import-input:focus-visible {
border-color: var(--oc-input-focus-border) !important;
box-shadow: 0 0 0 3px var(--oc-input-focus-ring) !important;
outline: none !important;
}
.github-import-share-action,
.github-import-share-action:hover,
.github-import-share-action:focus-visible {
text-decoration: none;
}
.github-import-share-action:hover,
.github-import-share-action:focus-visible {
background: color-mix(in srgb, white 4%, transparent);
}
@keyframes upload-decor-jiggle {
0%,
100% {
rotate: var(--upload-decor-base-rotate, 0deg);
}
25% {
rotate: calc(var(--upload-decor-base-rotate, 0deg) - 3deg);
}
50% {
rotate: calc(var(--upload-decor-base-rotate, 0deg) + 3deg);
}
75% {
rotate: calc(var(--upload-decor-base-rotate, 0deg) - 2deg);
}
}
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
/* biome-ignore lint/complexity/noImportantStyles: reduce-motion override */
animation-duration: 0.01ms !important;
/* biome-ignore lint/complexity/noImportantStyles: reduce-motion override */
animation-iteration-count: 1 !important;
/* biome-ignore lint/complexity/noImportantStyles: reduce-motion override */
transition-duration: 0.01ms !important;
}
}
/* Dashboard styles */
.dashboard-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 24px;
}
.dashboard-header h1 {
font-size: 1.5rem;
font-weight: 600;
margin: 0;
}
.dashboard-owner-panel {
padding: 20px;
}
.dashboard-owner-grid {
display: grid;
gap: 24px;
}
.dashboard-collection-block {
display: grid;
gap: 12px;
}
.dashboard-collection-title {
font-size: 1.6rem;
line-height: 1.1;
margin: 0;
}
.dashboard-section-header {
display: flex;
justify-content: space-between;
align-items: center;
gap: 12px;
}
.dashboard-section-action {
display: inline-flex;
width: fit-content;
margin-left: auto;
align-items: center;
justify-content: center;
gap: 6px;
font-size: 0.92rem;
line-height: 1;
white-space: nowrap;
}
.dashboard-section-action svg {
width: 16px;
height: 16px;
flex: none;
}
.dashboard-inline-empty {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
padding: 16px 18px;
border: 1px dashed var(--oc-border-subtle);
border-radius: var(--oc-radius-surface);
}
.dashboard-inline-empty-copy {
color: var(--oc-text-muted);
}
.dashboard-inline-empty-copy strong {
color: var(--oc-text-primary);
}
.dashboard-list {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 14px;
}
.dashboard-skill-name {
font-weight: 600;
font-size: 1rem;
line-height: 1.25;
color: var(--oc-text-primary);
text-decoration: none;
}
.dashboard-skill-name:hover {
color: var(--oc-text-primary);
text-decoration: underline;
text-underline-offset: 2px;
}
.dashboard-status-chip {
gap: 6px;
min-width: 0;
width: fit-content;
white-space: nowrap;
}
.dashboard-status-info {
display: inline-flex;
align-items: center;
justify-content: center;
width: 16px;
height: 16px;
border: 0;
border-radius: var(--radius-pill);
background: transparent;
color: currentColor;
cursor: default;
opacity: 0.78;
}
.dashboard-status-info:hover,
.dashboard-status-info:focus-visible {
opacity: 1;
background: color-mix(in srgb, currentColor 10%, transparent);
}
.dashboard-status-info:focus-visible {
outline: 2px solid var(--oc-focus-ring);
outline-offset: 2px;
}
.dashboard-artifact-card {
position: relative;
display: grid;
gap: 14px;
padding: 18px;
border: 1px solid var(--oc-border-subtle);
border-radius: var(--oc-radius-surface);
background: linear-gradient(
135deg,
color-mix(in srgb, var(--surface) 96%, transparent),
color-mix(in srgb, var(--surface-muted) 82%, transparent)
);
box-shadow: var(--oc-shadow-md);
transition:
border-color var(--oc-duration-fast) var(--oc-ease-out),
transform var(--oc-duration-fast) var(--oc-ease-out),
box-shadow var(--oc-duration-fast) var(--oc-ease-out);
}
.dashboard-artifact-card:has(.dashboard-artifact-link:hover) {
cursor: pointer;
}
.dashboard-artifact-card:hover {
border-color: color-mix(in srgb, var(--oc-accent-primary) 34%, var(--oc-border-subtle));
box-shadow: var(--oc-shadow-lg);
transform: translateY(-1px);
}
.dashboard-artifact-link {
position: absolute;
inset: 0;
z-index: 1;
border-radius: inherit;
}
.dashboard-artifact-link:focus-visible {
outline: 2px solid var(--oc-focus-ring);
outline-offset: 4px;
}
.dashboard-artifact-card-body {
display: flex;
min-width: 0;
gap: 12px;
align-items: center;
color: inherit;
text-decoration: none;
}
.dashboard-artifact-main {
display: flex;
min-width: 0;
gap: 12px;
align-items: flex-start;
}
.dashboard-artifact-icon {
display: inline-flex;
width: 42px;
height: 42px;
flex: none;
align-items: center;
justify-content: center;
border: 1px solid var(--oc-border-subtle);
border-radius: var(--oc-radius-inset);
background: color-mix(in srgb, var(--surface-muted) 72%, transparent);
color: var(--oc-text-primary);
}
.dashboard-artifact-heading {
display: grid;
min-width: 0;
gap: 6px;
}
.dashboard-artifact-title-row {
display: flex;
min-width: 0;
align-items: center;
gap: 10px;
flex-wrap: wrap;
padding-right: 36px;
}
.dashboard-artifact-meta {
display: flex;
min-width: 0;
gap: 8px;
align-items: center;
flex-wrap: wrap;
color: var(--oc-text-muted);
font-size: 0.82rem;
line-height: 1.35;
}
.dashboard-artifact-meta span {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.dashboard-artifact-meta span:not(:last-child)::after {
content: "·";
margin-left: 8px;
color: color-mix(in srgb, var(--oc-text-muted) 60%, transparent);
}
.dashboard-artifact-summary {
margin: 0;
color: var(--oc-text-muted);
font-size: 0.94rem;
line-height: 1.5;
}
.dashboard-artifact-rescan {
margin-left: auto;
color: var(--oc-text-muted);
font-size: 0.82rem;
line-height: 1.2;
white-space: nowrap;
}
.dashboard-scan-strip {
display: flex;
gap: 8px;
align-items: center;
flex-wrap: wrap;
}
.dashboard-scan-signal {
display: inline-flex;
min-height: 28px;
align-items: center;
gap: 6px;
padding: 5px 8px;
border: 1px solid var(--oc-border-subtle);
border-radius: var(--oc-radius-control);
color: var(--oc-text-muted);
font-size: 0.78rem;
line-height: 1;
}
.dashboard-scan-label {
color: var(--oc-text-primary);
font-weight: 650;
}
.dashboard-artifact-stats {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 8px;
margin: 0;
}
.dashboard-artifact-stat {
min-width: 0;
padding: 10px;
border: 1px solid var(--oc-border-subtle);
border-radius: var(--oc-radius-inset);
background: color-mix(in srgb, var(--surface) 70%, transparent);
}
.dashboard-artifact-stat dt {
color: var(--oc-text-muted);
font-size: 0.75rem;
line-height: 1.2;
}
.dashboard-artifact-stat dd {
margin: 4px 0 0;
color: var(--oc-text-primary);
font-size: 0.95rem;
font-weight: 650;
line-height: 1.2;
}
.dashboard-scan-result-kv {
display: inline-flex;
align-items: center;
gap: 7px;
color: var(--oc-text-muted);
font-size: 0.82rem;
line-height: 1.2;
}
.dashboard-scan-result-value {
display: inline-flex;
align-items: center;
}
.dashboard-row-action {
display: flex;
justify-content: flex-end;
align-items: center;
min-width: 32px;
position: absolute;
top: 14px;
right: 14px;
z-index: 2;
}
.dashboard-row-action [data-slot="button"] {
width: 32px;
height: 32px;
min-height: 32px;
padding: 0;
}
.dashboard-row-action [data-slot="button"] svg {
width: 16px;
height: 16px;
}
.btn-sm {
padding: 6px 12px;
font-size: 0.85rem;
gap: 4px;
min-height: unset;
}
.btn-ghost {
background: transparent;
border-color: var(--border-ui);
color: var(--ink);
}
.btn-ghost:hover {
background: color-mix(in srgb, var(--accent) 8%, transparent);
border-color: var(--border-ui-hover);
}
@media (min-width: 1024px) {
.dashboard-list {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (min-width: 1536px) {
.dashboard-list {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
}
@media (max-width: 640px) {
.dashboard-header,
.dashboard-section-header {
flex-direction: column;
align-items: stretch;
}
.dashboard-section-action {
justify-self: start;
}
.dashboard-inline-empty {
flex-direction: column;
align-items: stretch;
}
.dashboard-artifact-card {
gap: 10px;
padding: 14px;
}
.dashboard-artifact-stats {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.dashboard-artifact-title-row {
padding-right: 34px;
}
.dashboard-artifact-rescan {
width: 100%;
margin-left: 0;
}
.dashboard-owner-grid {
gap: 16px;
}
.dashboard-collection-title {
font-size: 1.3rem;
}
.skills-table-header {
display: none;
}
.skills-table-row {
grid-template-columns: 1fr;
gap: 4px;
padding: 14px 16px;
}
.skills-table-summary {
-webkit-line-clamp: 2;
}
.skills-table-author {
display: none;
}
}
.management-shell {
display: grid;
grid-template-columns: 244px minmax(0, 1fr);
width: min(100%, 1800px);
margin: 0 auto;
padding: 0;
color: var(--ink);
/* Paint the sidebar rail + divider on the shell so they span the full
height down to the footer, even when the content column is short and the
sticky sidebar is shorter than the shell. */
background:
linear-gradient(var(--oc-bg-surface), var(--oc-bg-surface)) 0 0 / 244px 100% no-repeat,
linear-gradient(
color-mix(in srgb, var(--line) 72%, transparent),
color-mix(in srgb, var(--line) 72%, transparent)
)
244px 0 / 1px 100% no-repeat;
}
.management-sidebar {
position: sticky;
top: 0;
align-self: start;
display: flex;
flex-direction: column;
justify-content: space-between;
min-height: calc(100vh - 80px);
padding: 22px 12px 18px;
background: linear-gradient(
180deg,
color-mix(in srgb, var(--oc-text-primary) 2.5%, transparent),
transparent 28%
);
}
.management-sidebar nav {
display: grid;
gap: 12px;
}
.management-sidebar-heading,
.management-sidebar-section-title {
padding: 0 12px;
color: var(--ink-soft);
font-size: 0.72rem;
font-weight: 800;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.management-sidebar-section-title {
margin-top: 8px;
}
.management-sidebar-group {
display: grid;
gap: 5px;
}
.management-sidebar-link {
position: relative;
display: grid;
grid-template-columns: 18px minmax(0, 1fr) minmax(20px, auto);
align-items: center;
gap: 9px;
min-height: 44px;
padding: 9px 10px 9px 12px;
border: 1px solid transparent;
border-radius: var(--oc-radius-control);
color: var(--ink);
font-size: 0.86rem;
text-decoration: none;
}
.management-sidebar-link:hover {
border-color: color-mix(in srgb, var(--line) 86%, transparent);
background: color-mix(in srgb, var(--surface) 70%, transparent);
}
.management-sidebar-link:focus-visible {
outline: 2px solid var(--oc-focus-ring);
outline-offset: 2px;
}
.management-sidebar-link.is-active {
border-color: color-mix(in srgb, var(--accent) 45%, var(--line));
background: color-mix(in srgb, var(--accent) 18%, transparent);
box-shadow: inset 3px 0 0 var(--accent);
}
.management-sidebar-link.is-active span {
color: var(--ink);
font-weight: 600;
}
.management-sidebar-link svg {
color: var(--ink-soft);
}
.management-sidebar-link.is-active svg {
color: var(--accent);
}
.management-sidebar-link span {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.management-sidebar-link small {
min-width: 20px;
padding: 1px 6px;
border: 1px solid color-mix(in srgb, var(--line) 86%, transparent);
border-radius: var(--oc-radius-control);
background: color-mix(in srgb, var(--surface) 68%, transparent);
color: var(--ink-soft);
font-size: 0.72rem;
text-align: center;
}
.management-main {
display: grid;
align-content: start;
gap: 12px;
min-width: 0;
padding: 14px 12px 24px;
}
.management-breadcrumb {
display: flex;
align-items: center;
gap: 6px;
padding: 2px 2px 0;
color: var(--ink-soft);
font-size: 0.8rem;
}
.management-breadcrumb svg {
color: var(--ink-soft);
}
.management-breadcrumb strong {
color: var(--ink);
font-weight: 600;
}
.management-placeholder {
min-height: 220px;
}
/* Management views render their title + content directly on the console (like the
abuse view) instead of inside an outer card. */
.management-view {
min-width: 0;
}
/* Publisher abuse review — native ClawHub styling (theme tokens + Card/Badge/Button). */
.pa {
display: grid;
gap: var(--space-4);
}
.pa-head {
display: grid;
gap: var(--space-4);
}
.pa-title {
margin: 0;
}
.pa-subtitle {
margin: 4px 0 0;
}
.pa-run {
display: grid;
grid-template-columns: minmax(140px, auto) minmax(140px, auto) 1fr auto;
align-items: stretch;
border: 1px solid var(--line);
background: color-mix(in srgb, var(--panel) 70%, transparent);
}
.pa-run-state,
.pa-run-meta,
.pa-scan-policy,
.pa-autoban,
.pa-rescan {
padding: var(--space-3) var(--space-4);
}
.pa-run-state {
display: grid;
align-content: center;
gap: 4px;
}
.pa-run-eyebrow,
.pa-run-meta dt {
color: var(--ink-soft);
font-size: var(--fs-xs);
font-weight: 600;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.pa-run-status {
display: inline-flex;
align-items: center;
gap: 7px;
font-size: var(--fs-md);
font-weight: 650;
}
.pa-run-status-dot {
width: 7px;
height: 7px;
border-radius: 999px;
background: var(--ink-soft);
}
.pa-run-status.is-complete {
color: var(--status-success-fg);
}
.pa-run-status.is-complete .pa-run-status-dot {
background: currentColor;
}
.pa-run-status.is-running {
color: var(--oc-status-warning-fg);
}
.pa-run-status.is-running .pa-run-status-dot {
background: currentColor;
box-shadow: 0 0 0 4px color-mix(in srgb, currentColor 14%, transparent);
}
.pa-run-status.is-failed {
color: var(--status-error-fg);
}
.pa-run-status.is-failed .pa-run-status-dot {
background: currentColor;
}
.pa-autoban {
display: grid;
align-content: center;
justify-items: start;
gap: 4px;
border-left: 1px solid var(--line);
}
.pa-autoban-status {
display: inline-flex;
align-items: center;
gap: 5px;
color: var(--status-error-fg);
font-size: var(--fs-xs);
font-weight: 650;
white-space: nowrap;
}
.pa-autoban-status.is-on {
color: var(--status-success-fg);
}
.pa-rescan {
display: grid;
align-content: center;
justify-items: start;
gap: 4px;
border-left: 1px solid var(--line);
}
.pa-rescan-hint {
font-size: var(--fs-xs);
color: var(--ink-soft);
}
.pa-run-meta {
display: flex;
align-items: center;
gap: var(--space-4);
margin: 0;
border-left: 1px solid var(--line);
}
.pa-run-meta > div {
display: grid;
gap: 2px;
}
.pa-run-meta dd {
margin: 0;
font-size: var(--fs-sm);
font-weight: 650;
font-variant-numeric: tabular-nums;
}
.pa-scan-policy {
display: grid;
align-content: center;
gap: 2px;
border-left: 1px solid var(--line);
}
.pa-scan-policy strong {
font-size: var(--fs-sm);
font-weight: 650;
}
.pa-scan-policy span {
color: var(--ink-soft);
font-size: var(--fs-xs);
}
.pa-scan-spin {
animation: pa-scan-spin 1.1s linear infinite;
}
@keyframes pa-scan-spin {
to {
transform: rotate(360deg);
}
}
@media (prefers-reduced-motion: reduce) {
.pa-scan-spin {
animation: none;
}
}
.pa-scan-failure,
.pa-scan-retrying {
display: flex;
align-items: flex-start;
gap: var(--space-2);
padding: var(--space-3) var(--space-4);
border: 1px solid color-mix(in srgb, var(--status-error-fg) 30%, var(--line));
background: var(--status-error-bg);
color: var(--status-error-fg);
}
.pa-scan-failure > div,
.pa-scan-retrying > div {
display: grid;
gap: 2px;
min-width: 0;
}
.pa-scan-failure span,
.pa-scan-retrying span {
overflow-wrap: anywhere;
color: var(--ink-soft);
font-size: var(--fs-sm);
}
.pa-scan-retrying {
border-color: color-mix(in srgb, var(--oc-status-warning-fg) 30%, var(--line));
background: var(--oc-status-warning-bg);
color: var(--oc-status-warning-fg);
}
.pa-tabs {
display: flex;
flex-wrap: wrap;
gap: var(--space-1);
border-bottom: 1px solid var(--line);
}
.pa-tab {
display: inline-flex;
align-items: center;
gap: 6px;
margin-bottom: -1px;
padding: 8px 12px;
border: 0;
border-bottom: 2px solid transparent;
background: transparent;
color: var(--ink-soft);
font-family: inherit;
font-size: var(--fs-sm);
font-weight: 600;
cursor: pointer;
}
.pa-tab:hover {
color: var(--ink);
}
.pa-tab.is-active {
color: var(--ink);
border-bottom-color: var(--accent);
}
.pa-tab-count {
font-size: var(--fs-xs);
color: var(--ink-soft);
font-variant-numeric: tabular-nums;
}
/* Loading placeholder for a count that hasn't resolved yet — a pulsing pill,
so an unloaded tab reads as "loading" rather than "0". */
.pa-count-loading {
display: inline-block;
width: 1.6em;
height: 0.85em;
border-radius: 999px;
background: color-mix(in srgb, var(--ink-soft) 30%, transparent);
vertical-align: baseline;
animation: pa-count-pulse 1.2s ease-in-out infinite;
}
@keyframes pa-count-pulse {
0%,
100% {
opacity: 0.35;
}
50% {
opacity: 0.85;
}
}
.pa-tab.is-active .pa-tab-count {
color: var(--accent-deep);
}
.pa-queue {
min-width: 0;
gap: var(--space-3);
padding: var(--space-4);
}
.pa-search {
display: flex;
align-items: center;
gap: 8px;
min-height: 40px;
padding: 0 12px;
border: 1px solid var(--input-border);
border-radius: var(--r-md);
background: var(--input-bg);
color: var(--ink-soft);
}
.pa-search input {
flex: 1;
min-width: 0;
border: 0;
background: transparent;
color: var(--ink);
font: inherit;
outline: none;
}
.pa-signal-status-tabs {
display: inline-flex;
align-self: flex-start;
gap: 2px;
padding: 3px;
border: 1px solid var(--line);
border-radius: var(--r-md);
background: var(--surface);
}
.pa-signal-status-tabs button {
min-height: 30px;
padding: 0 10px;
border: 0;
border-radius: calc(var(--r-md) - 3px);
background: transparent;
color: var(--ink-soft);
font: inherit;
font-size: var(--fs-sm);
cursor: pointer;
}
.pa-signal-status-tabs button:hover,
.pa-signal-status-tabs button.active {
background: var(--hover-bg);
color: var(--ink);
}
.pa-signal-bulk-bar {
display: flex;
min-height: 42px;
margin: 0 calc(-1 * var(--space-4));
padding: 6px var(--space-4);
align-items: center;
justify-content: space-between;
gap: var(--space-3);
border-top: 1px solid var(--oc-border-subtle);
border-bottom: 1px solid var(--oc-border-subtle);
background: color-mix(in srgb, var(--oc-bg-surface) 78%, var(--oc-bg-page));
}
.pa-signal-bulk-count {
color: var(--oc-text-secondary);
font-size: var(--fs-xs);
font-weight: 650;
font-variant-numeric: tabular-nums;
white-space: nowrap;
}
.pa-signal-bulk-actions {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 6px;
}
.pa-table-wrap {
min-width: 0;
margin: 0 calc(-1 * var(--space-4));
overflow-x: auto;
}
.pa-table {
width: 100%;
min-width: 540px;
border-collapse: collapse;
font-size: var(--fs-sm);
}
.pa-table th {
padding: 8px var(--space-4);
border-bottom: 1px solid var(--line);
color: var(--ink-soft);
font-size: var(--fs-xs);
font-weight: 600;
letter-spacing: 0.03em;
text-align: left;
text-transform: uppercase;
white-space: nowrap;
}
.pa-table td {
padding: 10px var(--space-4);
border-bottom: 1px solid var(--line);
vertical-align: middle;
}
.pa-table tbody tr:last-child td {
border-bottom: 0;
}
.pa-table tbody tr {
cursor: pointer;
transition: background 120ms ease;
}
.pa-table tbody tr:hover {
background: var(--hover-bg);
}
.pa-table tbody tr.pa-skeleton-row {
cursor: default;
}
.pa-table tbody tr.pa-skeleton-row:hover {
background: transparent;
}
.pa-table-skeleton-bar {
display: block;
max-width: 100%;
height: 14px;
border-radius: 4px;
background: linear-gradient(
90deg,
color-mix(in srgb, var(--line) 70%, transparent),
color-mix(in srgb, var(--ink-soft) 18%, transparent),
color-mix(in srgb, var(--line) 70%, transparent)
);
background-size: 220% 100%;
animation: skeleton-shimmer 1.15s ease-in-out infinite;
}
.pa-table tbody tr.is-selected {
background: var(--accent-subtle);
}
.pa-table tbody tr.is-selected td:first-child {
box-shadow: inset 2px 0 0 var(--accent);
}
.pa-signals-table {
min-width: 680px;
}
.pa-signals-table tbody tr {
cursor: pointer;
}
.pa-signals-table tbody tr:hover {
background: var(--hover-bg);
}
.pa-signals-table tbody tr.is-bulk-selected {
background: color-mix(in srgb, var(--oc-accent-primary) 9%, transparent);
}
.pa-signals-table .pa-signal-select-cell {
width: 42px;
padding-right: 0;
text-align: center;
}
.pa-signal-select-cell input[type="checkbox"] {
appearance: none;
width: 16px;
height: 16px;
margin: 0;
border: 1px solid var(--oc-border-subtle);
border-radius: var(--oc-radius-inset);
background-color: var(--oc-bg-surface);
cursor: pointer;
}
.pa-signal-select-cell input[type="checkbox"]:checked {
border-color: var(--oc-accent-primary);
background-color: var(--oc-accent-primary);
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3.5 8 3 3 6-6' fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'/%3E%3C/svg%3E");
background-position: center;
background-repeat: no-repeat;
background-size: 14px;
}
.pa-signal-select-cell input[type="checkbox"]:disabled {
cursor: not-allowed;
opacity: 0.45;
}
.pa-signal-select-cell input[type="checkbox"]:focus-visible {
outline: 2px solid var(--oc-focus-ring);
outline-offset: 2px;
}
.pa-num {
text-align: right;
font-variant-numeric: tabular-nums;
}
.pa-muted {
color: var(--ink-soft);
}
.pa-signal-repeat,
.pa-ratio-subtext {
display: block;
margin-top: 3px;
color: var(--ink-soft);
font-family: var(--font-mono);
font-size: var(--fs-xs);
white-space: nowrap;
}
.pa-signal-repeat.is-recurring {
color: var(--oc-status-warning-fg);
font-family: inherit;
font-weight: 650;
}
.pa-signal-name {
font-weight: 600;
}
.pa-signal-summary {
display: grid;
gap: 3px;
}
.pa-signal-summary span {
color: var(--ink-soft);
font-family: var(--font-mono);
font-size: var(--fs-xs);
}
.pa-signal-subject {
display: grid;
gap: 2px;
}
.pa-signal-subject strong {
font-weight: 600;
}
.pa-signal-subject span {
color: var(--ink-soft);
font-family: var(--font-mono);
font-size: var(--fs-xs);
}
.pa-handle {
display: grid;
gap: 2px;
}
.pa-row-button {
width: 100%;
border: 0;
background: transparent;
color: inherit;
cursor: pointer;
font: inherit;
padding: 0;
text-align: left;
}
.pa-row-button:focus-visible {
border-radius: 6px;
outline: 2px solid var(--accent);
outline-offset: 2px;
}
.pa-handle strong {
font-weight: 600;
}
.pa-handle span {
color: var(--ink-soft);
font-family: var(--font-mono);
font-size: var(--fs-xs);
}
.pa-reasons {
display: flex;
flex-wrap: wrap;
gap: 4px;
}
.pa-z-danger {
color: var(--status-error-fg);
font-weight: 600;
}
.pa-z-warn {
color: var(--status-warning-fg);
font-weight: 600;
}
.pa-z-ok {
color: var(--ink-soft);
}
.pa-foot {
color: var(--ink-soft);
font-size: var(--fs-sm);
}
.pa-empty-row td {
padding: var(--space-7) var(--space-4);
color: var(--ink-soft);
text-align: center;
}
.pa-empty-row strong {
display: block;
margin-bottom: 4px;
color: var(--ink);
font-size: var(--fs-md);
}
.pa-sheet {
width: 600px;
max-width: 92vw;
}
.pa-sheet-head {
gap: var(--space-2);
padding-right: var(--space-6);
}
.pa-sheet-body {
flex: 1;
display: flex;
flex-direction: column;
gap: var(--space-4);
min-height: 0;
overflow-y: auto;
/* Reserve the scrollbar gutter so it never overlaps the content. */
scrollbar-gutter: stable;
padding-right: var(--space-2);
}
.pa-pills {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
/* Compact identity line under the header pills — demoted technical detail. */
.pa-idline {
display: flex;
flex-wrap: wrap;
align-items: baseline;
gap: 4px var(--space-4);
}
.pa-id {
display: inline-flex;
align-items: baseline;
gap: 6px;
min-width: 0;
}
.pa-id-label {
color: var(--ink-soft);
font-size: var(--fs-xs);
}
.pa-id button {
display: inline-flex;
align-items: center;
gap: 4px;
min-width: 0;
padding: 0;
border: 0;
background: transparent;
color: var(--ink);
font-family: var(--font-mono);
font-size: var(--fs-xs);
overflow: hidden;
text-overflow: ellipsis;
cursor: pointer;
}
.pa-id button:hover {
color: var(--accent-deep);
}
.pa-profile-link {
display: inline-flex;
align-items: center;
gap: 4px;
color: var(--accent-deep);
font-size: var(--fs-xs);
text-decoration: none;
}
.pa-profile-link:hover {
text-decoration: underline;
}
/* Calm zones: one hairline between major groups, none within. */
.pa-zone {
display: flex;
flex-direction: column;
gap: var(--space-3);
}
.pa-sheet-body > .pa-zone {
padding-top: var(--space-4);
border-top: 1px solid var(--line);
}
.pa-score {
display: grid;
grid-template-columns: repeat(3, 1fr);
flex-shrink: 0;
border: 1px solid var(--line);
border-radius: var(--r-md);
overflow: hidden;
background: var(--surface-muted);
}
.pa-score > div {
display: grid;
gap: 4px;
padding: var(--space-3);
border-left: 1px solid var(--line);
}
.pa-score > div:first-child {
border-left: 0;
}
.pa-score span {
color: var(--ink-soft);
font-size: var(--fs-xs);
letter-spacing: 0.04em;
text-transform: uppercase;
}
.pa-score strong {
font-size: var(--fs-lg);
font-weight: 700;
font-variant-numeric: tabular-nums;
}
.pa-score small {
color: var(--ink-soft);
font-size: var(--fs-xs);
}
.pa-metrics {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 2px var(--space-5);
}
/* Per-skill ratios read as a distinct group via spacing, not another label. */
.pa-metrics-ratios {
margin-top: var(--space-3);
}
.pa-metric {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: var(--space-2);
min-width: 0;
padding: 3px 0;
}
.pa-metric > * {
min-width: 0;
}
.pa-metric span {
flex-shrink: 0;
color: var(--ink-soft);
font-size: var(--fs-sm);
}
.pa-metric strong {
font-size: var(--fs-sm);
font-weight: 600;
font-variant-numeric: tabular-nums;
overflow-wrap: anywhere;
text-align: right;
}
.pa-metric small {
color: var(--ink-soft);
font-size: var(--fs-xs);
line-height: 1.35;
overflow-wrap: anywhere;
}
.pa-signal-evidence-grid {
grid-template-columns: 1fr;
gap: 4px;
}
.pa-signal-evidence-grid .pa-metric {
display: grid;
grid-template-columns: minmax(58px, 0.5fr) minmax(56px, auto) minmax(0, 1fr);
align-items: baseline;
column-gap: var(--space-2);
}
.pa-signal-evidence-grid .pa-metric strong {
text-align: right;
}
.pa-signal-trends {
display: grid;
gap: var(--space-4);
padding-top: var(--space-2);
}
.pa-signal-trend {
display: grid;
gap: var(--space-2);
}
.pa-signal-trend + .pa-signal-trend {
padding-top: var(--space-3);
border-top: 1px solid var(--line);
}
.pa-signal-trend-label {
color: var(--ink-soft);
font-size: var(--fs-xs);
font-weight: 600;
}
.pa-signal-trend-installs {
--metric-trend-line: color-mix(in srgb, var(--status-success-fg) 76%, var(--ink));
--metric-trend-area: color-mix(in srgb, var(--status-success-fg) 18%, transparent);
--metric-trend-marker: color-mix(in srgb, var(--status-success-fg) 36%, transparent);
}
.pa-section-label {
margin: 0;
color: var(--ink-soft);
font-size: var(--fs-xs);
font-weight: 600;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.pa-subsection-label {
margin: 0;
color: var(--ink-soft);
font-size: var(--fs-xs);
font-weight: 600;
}
.pa-reason-list {
display: flex;
flex-direction: column;
gap: var(--space-3);
}
.pa-reason {
display: grid;
gap: 2px;
}
.pa-reason strong {
font-size: var(--fs-sm);
font-weight: 600;
}
.pa-reason small {
color: var(--ink-soft);
font-size: var(--fs-xs);
line-height: 1.45;
}
.pa-activity-evidence {
display: grid;
gap: var(--space-3);
margin-top: var(--space-3);
padding-top: var(--space-3);
border-top: 1px solid var(--line);
}
.pa-temporal-list {
display: flex;
flex-direction: column;
gap: var(--space-3);
}
.pa-temporal-card {
display: grid;
gap: var(--space-3);
padding: var(--space-3);
border: 1px solid var(--line);
border-radius: var(--r-md);
background: var(--surface-muted);
}
.pa-temporal-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: var(--space-3);
}
.pa-temporal-head > div:first-child {
display: grid;
gap: 2px;
min-width: 0;
}
.pa-temporal-head strong {
overflow: hidden;
font-size: var(--fs-sm);
font-weight: 600;
text-overflow: ellipsis;
white-space: nowrap;
}
.pa-temporal-head small {
overflow: hidden;
color: var(--ink-soft);
font-size: var(--fs-xs);
text-overflow: ellipsis;
white-space: nowrap;
}
.pa-temporal-badges {
display: flex;
flex-shrink: 0;
flex-wrap: wrap;
justify-content: flex-end;
gap: 4px;
}
.pa-temporal-metrics {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 2px var(--space-4);
}
.pa-history {
display: flex;
flex-direction: column;
gap: var(--space-2);
}
.pa-history-item {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: var(--space-2);
}
.pa-history-item span {
color: var(--ink-soft);
font-size: var(--fs-xs);
}
.pa-history-item strong {
font-size: var(--fs-sm);
font-weight: 600;
font-variant-numeric: tabular-nums;
}
.pa-ban {
width: 100%;
}
.pa-actions {
display: flex;
flex-wrap: wrap;
gap: var(--space-2);
}
.pa-hint {
margin: 0;
color: var(--ink-soft);
font-size: var(--fs-xs);
}
@media (max-width: 980px) {
.management-shell {
grid-template-columns: 1fr;
background: none;
}
.management-sidebar {
position: static;
min-height: 0;
border-bottom: 1px solid color-mix(in srgb, var(--line) 72%, transparent);
}
.management-sidebar nav {
gap: 10px;
}
.management-sidebar-group {
grid-template-columns: repeat(auto-fit, minmax(176px, 1fr));
}
.pa-run {
grid-template-columns: 1fr 1fr;
}
.pa-scan-policy,
.pa-autoban {
border-top: 1px solid var(--line);
border-left: 0;
}
.pa-rescan {
border-top: 1px solid var(--line);
}
}
@media (max-width: 720px) {
.management-main {
padding: 10px;
}
.pa-run {
grid-template-columns: 1fr;
width: 100%;
}
.pa-run-meta,
.pa-scan-policy,
.pa-autoban,
.pa-rescan {
border-top: 1px solid var(--line);
border-left: 0;
}
.pa-rescan [data-slot="button"] {
width: 100%;
}
.pa-score,
.pa-metrics {
grid-template-columns: 1fr;
}
.pa-signal-evidence-grid {
grid-template-columns: 1fr;
}
.pa-signal-bulk-bar {
align-items: flex-start;
flex-direction: column;
}
.pa-signal-bulk-actions {
width: 100%;
justify-content: flex-start;
flex-wrap: wrap;
}
.pa-score > div {
border-left: 0;
border-top: 1px solid var(--line);
}
.pa-score > div:first-child {
border-top: 0;
}
}
@media (max-width: 480px) {
.management-sidebar-group {
grid-template-columns: 1fr;
}
}
/* Match the publisher-abuse console: one bordered panel with dense,
divided rows instead of floating cards. */
.management-list {
display: grid;
gap: 0;
margin-top: 12px;
border: 1px solid var(--line);
border-radius: var(--r-md);
background: var(--surface);
overflow: hidden;
}
.management-item {
display: grid;
gap: 12px;
padding: 10px 14px;
border-bottom: 1px solid var(--line);
background: transparent;
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
transition: background 120ms ease;
}
.management-item:last-child {
border-bottom: 0;
}
.management-item:hover {
background: var(--hover-bg);
}
/* Duplicate-candidate row: a single-column stack (skill header + indented
matches) instead of the 2-column grid, so action buttons don't float. */
.management-dupe {
grid-template-columns: minmax(0, 1fr);
gap: 12px;
align-items: stretch;
}
.management-dupe:hover {
background: transparent;
}
.management-dupe-head,
.management-dupe-match {
display: flex;
justify-content: space-between;
align-items: center;
gap: 12px;
}
.management-dupe-matches {
display: grid;
gap: 8px;
padding-left: 12px;
border-left: 1px solid var(--line);
}
.management-dupe-label {
font-size: var(--fs-xs);
font-weight: 600;
letter-spacing: 0.04em;
text-transform: uppercase;
color: var(--ink-soft);
}
.management-fingerprint {
font-family: var(--font-mono);
font-size: var(--fs-xs);
color: var(--ink-soft);
}
.management-empty {
padding: var(--space-7) var(--space-4);
text-align: center;
color: var(--ink-soft);
font-size: 0.9rem;
}
.management-empty strong {
display: block;
margin-bottom: 4px;
color: var(--ink);
font-size: var(--fs-md);
}
.management-confirm-field {
display: grid;
gap: 6px;
font-size: 0.85rem;
color: var(--ink-soft);
}
.management-item-detail {
grid-template-columns: minmax(0, 1fr);
align-items: start;
}
.management-item-main {
display: grid;
gap: 6px;
min-width: 0;
}
.management-actions {
display: flex;
flex-wrap: wrap;
gap: 10px;
justify-content: flex-end;
}
.management-tags {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.management-controls {
display: flex;
flex-wrap: wrap;
gap: 10px;
align-items: center;
margin-top: 12px;
}
/* Management promotions form */
.promotion-form-grid {
display: grid;
gap: 16px;
margin-top: 12px;
grid-template-columns: 1fr;
}
@media (min-width: 900px) {
.promotion-form-grid {
grid-template-columns: repeat(3, 1fr);
}
}
.promotion-form-field {
display: flex;
flex-direction: column;
gap: 6px;
min-width: 0;
align-self: start;
}
.promotion-form-field-wide {
grid-column: 1 / -1;
}
.promotion-form-hint {
margin: 0;
font-size: 12px;
color: var(--ink-soft);
}
.management-control {
display: flex;
flex-wrap: wrap;
gap: 8px;
align-items: center;
}
.management-control-stack {
display: grid;
gap: 6px;
align-items: stretch;
min-width: 0;
}
.management-control .mono {
font-size: 12px;
color: var(--ink-soft);
}
.management-control input,
.management-control select {
min-width: min(180px, 100%);
}
.management-control-stack input,
.management-control-stack select {
width: 100%;
min-width: 0;
}
/* Search control styled as the abuse console's bordered search pill. */
.management-control.management-search {
flex: 1;
flex-wrap: nowrap;
min-width: min(280px, 100%);
min-height: 40px;
gap: 8px;
padding: 0 12px;
border: 1px solid var(--input-border);
border-radius: var(--r-md);
background: var(--input-bg);
}
.management-search input {
flex: 1;
min-width: 0;
border: 0;
background: transparent;
color: var(--ink);
font: inherit;
outline: none;
}
.management-count {
margin-left: auto;
font-size: 0.85rem;
color: var(--ink-soft);
}
.management-sublist {
display: grid;
gap: 8px;
margin-top: 10px;
padding-left: 12px;
border-left: 1px solid var(--line);
}
.management-override-panel {
display: grid;
gap: 12px;
min-width: 0;
padding: 14px;
border-radius: var(--oc-radius-surface);
border: 1px solid var(--line);
background: color-mix(in srgb, var(--surface) 72%, transparent);
}
.management-audit-panel {
gap: 10px;
}
.management-audit-list {
display: grid;
gap: 10px;
}
.management-audit-item {
display: grid;
gap: 8px;
padding-top: 10px;
border-top: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
}
.management-audit-item:first-child {
padding-top: 0;
border-top: 0;
}
.management-audit-summary {
margin: 0;
}
.management-audit-details {
color: var(--ink-soft);
}
.management-audit-details summary {
cursor: pointer;
font-size: 0.85rem;
}
.management-audit-json {
margin: 8px 0 0;
padding: 10px 12px;
overflow-x: auto;
border-radius: var(--oc-radius-inset);
border: 1px solid var(--line);
background: var(--oc-bg-surface);
color: var(--ink);
font-size: 0.78rem;
line-height: 1.4;
}
.management-tool-grid {
display: grid;
gap: 12px;
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
align-items: end;
}
.management-field {
width: 100%;
min-width: 0;
min-height: 44px;
box-sizing: border-box;
border: 1px solid var(--oc-input-border);
border-radius: var(--oc-radius-control);
padding: 10px 12px;
color: var(--ink);
background: var(--oc-input-bg);
}
.management-field:focus {
outline: none;
border-color: var(--oc-input-focus-border);
box-shadow: 0 0 0 3px var(--oc-input-focus-ring);
}
.management-action-grid {
display: grid;
gap: 10px;
grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
justify-content: stretch;
}
.management-action-btn {
justify-content: center;
min-height: 42px;
width: 100%;
box-sizing: border-box;
}
.management-textarea {
min-height: 104px;
resize: vertical;
}
.management-actions-start {
justify-content: flex-start;
}
.management-subitem {
display: flex;
flex-wrap: wrap;
gap: 10px;
align-items: center;
justify-content: space-between;
}
.management-report-item {
display: grid;
gap: 4px;
font-size: 0.95rem;
color: var(--ink);
}
.management-report-meta {
font-size: 0.8rem;
color: var(--ink-soft);
}
.management-item-meta {
font-size: 0.82rem;
color: var(--ink-soft);
}
.management-item.is-removed {
border-left: 3px solid color-mix(in srgb, var(--status-error-fg) 70%, var(--line));
}
@media (max-width: 900px) {
.management-item {
grid-template-columns: 1fr;
}
.management-actions {
justify-content: flex-start;
}
.management-subitem {
justify-content: flex-start;
}
}
/* Security Scan Results */
.scan-results-panel {
margin-top: 16px;
padding: 14px 16px;
border-radius: var(--oc-radius-surface);
border: 1px solid var(--line);
background: var(--oc-surface-card);
text-align: left;
}
.scan-results-title {
font-size: 0.72rem;
font-weight: 700;
color: var(--ink-soft);
margin-bottom: 10px;
text-transform: uppercase;
letter-spacing: 0.06em;
}
.scan-results-list {
display: grid;
gap: 0;
}
.scan-result-row {
display: grid;
grid-template-columns: minmax(120px, auto) auto 1fr;
align-items: center;
gap: 10px;
padding: 8px 0;
border-bottom: 1px solid color-mix(in srgb, var(--line) 50%, transparent);
}
.scan-result-row:last-child {
border-bottom: none;
}
.scan-result-row:first-child {
padding-top: 0;
}
.scan-result-scanner {
display: flex;
align-items: center;
gap: 6px;
font-weight: 600;
font-size: 0.9rem;
}
.scan-result-icon {
font-size: 1rem;
}
.scan-result-icon-vt {
color: var(--accent-deep);
}
.scan-result-icon-oc {
color: var(--accent);
}
.scan-result-status {
padding: 2px 10px;
border-radius: var(--r-pill);
font-size: 0.78rem;
font-weight: 600;
text-transform: capitalize;
}
.scan-status-clean {
background: var(--oc-status-success-bg);
color: var(--oc-status-success-fg);
}
.scan-status-malicious {
background: var(--oc-status-error-bg);
color: var(--oc-status-error-fg);
}
.scan-status-warn,
.scan-status-suspicious {
background: var(--status-warning-bg);
color: var(--status-warning-fg);
}
.scan-status-pending {
background: var(--status-pending-bg);
color: var(--status-pending-fg);
}
.scan-status-error {
background: var(--oc-status-error-bg);
color: var(--oc-status-error-fg);
}
.scan-result-link {
font-size: 0.82rem;
color: var(--accent);
text-decoration: none;
justify-self: end;
}
.scan-result-link:hover {
text-decoration: underline;
}
.version-scan-results {
display: flex;
gap: 8px;
margin-top: 4px;
}
.version-scan-toggle {
border: 1px solid var(--line);
background: transparent;
color: var(--ink-soft);
border-radius: var(--r-pill);
padding: 2px 8px;
font-size: 0.75rem;
cursor: pointer;
}
.version-scan-toggle:hover {
color: var(--accent);
border-color: var(--accent);
}
.version-scan-badge {
display: inline-flex;
flex: 0 0 auto;
align-items: center;
gap: 4px;
font-size: 0.75rem;
}
.version-scan-badge-row {
display: inline-flex;
flex-wrap: nowrap;
align-items: center;
gap: 10px;
min-width: 0;
}
.version-scan-badge .scan-result-status {
padding: 1px 6px;
font-size: 0.7rem;
}
.version-scan-icon {
font-size: 0.9rem;
}
.version-scan-icon-vt {
color: var(--accent-deep);
}
.version-scan-icon-oc {
color: var(--accent);
}
.version-scan-link {
color: var(--ink-soft);
text-decoration: none;
}
.version-scan-link:hover {
color: var(--accent);
}
.scan-disclaimer {
font-size: 0.8rem;
color: var(--ink-soft);
opacity: 0.8;
margin: 8px 0 0;
font-style: italic;
}
/* LLM Analysis Detail */
.analysis-detail {
margin-top: 10px;
border-radius: 12px;
overflow: hidden;
overflow-wrap: anywhere;
}
.analysis-detail-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
padding: 10px 14px;
cursor: pointer;
user-select: text;
border-radius: 12px;
transition: background 0.15s ease;
}
.analysis-detail-header:hover {
background: rgba(0, 0, 0, 0.03);
}
.analysis-detail-toggle {
font-size: 0.82rem;
color: var(--accent);
font-weight: 600;
display: flex;
align-items: center;
gap: 4px;
white-space: nowrap;
user-select: none;
}
.analysis-detail-toggle .chevron {
transition: transform 0.2s;
}
.analysis-detail.is-open .analysis-detail-toggle .chevron {
transform: rotate(180deg);
}
.analysis-summary-text {
font-size: 0.86rem;
color: var(--ink-soft);
line-height: 1.5;
flex: 1;
min-width: 0;
cursor: text;
user-select: text;
text-align: left;
overflow-wrap: anywhere;
}
.analysis-body {
display: none;
padding: 0 14px 14px;
}
.analysis-detail.is-open .analysis-body {
display: block;
}
.analysis-dimensions {
display: grid;
gap: 8px;
margin-top: 8px;
}
.dimension-row {
display: grid;
grid-template-columns: 20px 1fr;
gap: 10px;
padding: 10px 12px;
border-radius: 10px;
border: 1px solid var(--line);
background: var(--surface-muted);
align-items: start;
}
.dimension-icon {
width: 20px;
height: 20px;
border-radius: 50%;
display: grid;
place-items: center;
font-size: 0.65rem;
font-weight: 700;
flex-shrink: 0;
margin-top: 1px;
}
.dimension-icon-ok {
background: var(--oc-status-success-bg);
color: var(--oc-status-success-fg);
}
.dimension-icon-note {
background: var(--oc-surface-interactive);
color: var(--oc-text-muted);
}
.dimension-icon-concern {
background: var(--oc-status-warning-bg);
color: var(--oc-status-warning-fg);
}
.dimension-icon-danger {
background: var(--oc-status-error-bg);
color: var(--oc-status-error-fg);
}
.dimension-content {
min-width: 0;
overflow-wrap: anywhere;
}
.dimension-label {
font-size: 0.78rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.04em;
color: var(--ink);
margin-bottom: 3px;
}
.dimension-detail {
font-size: 0.84rem;
color: var(--ink-soft);
line-height: 1.5;
overflow-wrap: anywhere;
word-break: break-word;
}
.dimension-detail code {
font-size: 0.78rem;
background: rgba(0, 0, 0, 0.06);
padding: 1px 5px;
border-radius: 4px;
}
/* Analysis guidance panel */
.analysis-guidance {
margin-top: 12px;
padding: 10px 14px;
border-radius: 10px;
font-size: 0.84rem;
line-height: 1.55;
color: var(--ink);
}
.analysis-guidance.benign {
background: var(--oc-status-success-bg);
border-left: 3px solid var(--oc-status-success-fg);
}
.analysis-guidance.suspicious {
background: var(--oc-status-warning-bg);
border-left: 3px solid var(--oc-status-warning-fg);
}
.analysis-guidance.malicious {
background: var(--oc-status-error-bg);
border-left: 3px solid var(--oc-status-error-fg);
}
.analysis-guidance-label {
font-size: 0.68rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.08em;
margin-bottom: 4px;
}
.analysis-guidance.benign .analysis-guidance-label {
color: var(--oc-status-success-fg);
}
.analysis-guidance.suspicious .analysis-guidance-label {
color: var(--oc-status-warning-fg);
}
.analysis-guidance.malicious .analysis-guidance-label {
color: var(--oc-status-error-fg);
}
/* Scan findings section */
.scan-findings-section {
margin-top: 10px;
padding: 10px 14px;
border-radius: 10px;
background: var(--surface-muted);
border: 1px solid var(--line);
}
.scan-findings-title {
margin: 0 0 6px;
font-size: 0.72rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.06em;
color: var(--ink-soft);
}
.scan-finding-row {
display: flex;
align-items: baseline;
gap: 8px;
font-size: 0.82rem;
color: var(--ink-soft);
padding: 4px 0;
}
.clawscan-risk-review {
display: grid;
gap: 12px;
margin-top: 10px;
}
.clawscan-scope-note {
margin: 0;
font-size: 0.82rem;
line-height: 1.5;
color: var(--ink-soft);
}
.clawscan-risk-buckets {
display: grid;
gap: 10px;
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}
.clawscan-risk-bucket,
.agentic-risk-finding {
min-width: 0;
border: 1px solid var(--line);
border-radius: 10px;
background: var(--surface-muted);
}
.clawscan-risk-bucket {
display: grid;
gap: 7px;
padding: 10px 12px;
}
.clawscan-risk-bucket-header,
.agentic-risk-finding-header {
display: grid;
min-width: 0;
gap: 14px;
}
.clawscan-risk-bucket-label {
min-width: 0;
font-size: 0.84rem;
font-weight: 700;
line-height: 1.35;
color: var(--ink);
}
.agentic-risk-finding-title {
min-width: 0;
width: fit-content;
max-width: 100%;
font-size: 1rem;
font-weight: 750;
line-height: 1.25;
color: var(--ink);
}
.agentic-risk-finding-title-row {
position: relative;
display: inline-flex;
align-items: baseline;
width: fit-content;
max-width: 100%;
}
.agentic-risk-finding-anchor {
position: absolute;
right: calc(100% + 8px);
top: 0.15em;
color: color-mix(in srgb, var(--ink-soft) 58%, transparent);
font-size: 0.95rem;
font-weight: 750;
line-height: 1;
opacity: 0;
text-decoration: none;
transition:
color 0.15s ease,
opacity 0.15s ease;
}
.agentic-risk-finding-title-row:hover .agentic-risk-finding-anchor,
.agentic-risk-finding-title-row:focus-within .agentic-risk-finding-anchor {
opacity: 1;
}
.agentic-risk-finding-anchor:hover,
.agentic-risk-finding-anchor:focus-visible {
color: var(--accent);
}
.agentic-risk-finding {
scroll-margin-top: 132px;
}
a.agentic-risk-finding-title {
color: inherit;
text-decoration: underline;
text-decoration-color: color-mix(in srgb, var(--ink-soft) 56%, transparent);
text-underline-offset: 3px;
}
a.agentic-risk-finding-title:hover,
a.agentic-risk-finding-title:focus-visible {
color: var(--accent);
text-decoration-color: currentColor;
}
.clawscan-risk-bucket-label {
display: inline-flex;
align-items: center;
gap: 6px;
}
.clawscan-risk-severity {
font-size: 0.72rem;
font-weight: 700;
letter-spacing: 0.05em;
text-transform: uppercase;
color: var(--ink-soft);
}
.clawscan-risk-summary-text {
margin: 0;
font-size: 0.82rem;
line-height: 1.5;
color: var(--ink-soft);
}
.agentic-risk-findings {
display: grid;
gap: 28px;
}
.agentic-risk-finding {
display: grid;
gap: 18px;
padding: 28px 0 0;
border: 0;
border-radius: 0;
background: transparent;
}
.agentic-risk-finding:first-child {
padding-top: 0;
}
.agentic-risk-finding-header {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 10px 12px;
}
.agentic-risk-finding-badges {
display: inline-flex;
flex: 0 0 auto;
align-items: center;
gap: 8px;
white-space: nowrap;
}
.agentic-risk-finding-badges > .inline-flex {
min-height: 0;
border-radius: 4px;
padding: 0.25rem 0.55rem;
font-size: 0.78rem;
line-height: 1.2;
}
.agentic-risk-report-rows {
display: grid;
gap: 0;
}
.agentic-risk-report-row {
display: grid;
grid-template-columns: minmax(140px, 190px) minmax(0, 1fr);
gap: clamp(18px, 3.5vw, 52px);
padding: 12px 0;
border-top: 1px solid var(--line);
}
.agentic-risk-report-row:first-child {
padding-top: 0;
border-top: 0;
}
.agentic-risk-report-row-secondary {
padding-top: 12px;
border-top: 1px solid var(--line);
}
.agentic-risk-finding > .agentic-risk-report-row:last-child,
.agentic-risk-report-rows .agentic-risk-report-row:last-child {
padding-bottom: 0;
}
.agentic-risk-report-label {
color: var(--ink);
font-size: 0.86rem;
font-weight: 680;
line-height: 1.35;
}
.agentic-risk-report-row p {
margin: 0;
color: var(--ink-soft);
font-size: 0.88rem;
line-height: 1.55;
}
.agentic-risk-report-content {
display: grid;
gap: 10px;
min-width: 0;
}
.agentic-risk-evidence-path {
width: fit-content;
max-width: 100%;
border-radius: var(--r-pill);
background: rgba(0, 0, 0, 0.05);
padding: 3px 8px;
font-family: var(--font-mono);
font-size: 0.72rem;
color: var(--ink-soft);
overflow-wrap: anywhere;
}
.agentic-risk-evidence-snippet {
margin: 0;
max-width: 100%;
overflow-x: auto;
white-space: pre-wrap;
overflow-wrap: anywhere;
border-radius: 8px;
background: var(--surface);
padding: 8px 10px 8px 0;
font-family: var(--font-mono);
font-size: 0.76rem;
line-height: 1.45;
color: var(--ink);
}
.agentic-risk-evidence-explanation {
margin: 0;
font-size: 0.82rem;
line-height: 1.5;
color: var(--ink-soft);
}
.agentic-risk-impact,
.agentic-risk-recommendation {
display: grid;
gap: 6px;
font-size: 0.82rem;
line-height: 1.5;
color: var(--ink);
}
@media (max-width: 720px) {
.agentic-risk-finding-header {
gap: 14px;
}
.agentic-risk-report-row {
grid-template-columns: 1fr;
gap: 8px;
}
}
.agentic-risk-impact span,
.agentic-risk-recommendation span {
font-size: 0.68rem;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--ink-soft);
}
/* Pending Review Banner */
.pending-banner {
font-size: 0.9rem;
color: var(--ink);
padding: 12px 16px;
border-radius: var(--oc-radius-surface);
background: var(--oc-status-warning-bg);
border: 1px solid color-mix(in srgb, var(--oc-status-warning-fg) 40%, var(--oc-border-subtle));
display: flex;
align-items: flex-start;
gap: 12px;
}
.pending-banner-content strong {
display: block;
font-weight: 650;
margin-bottom: 2px;
}
.pending-banner-content p {
color: var(--ink-soft);
font-size: 0.85rem;
line-height: 1.5;
margin: 0;
}
/* Blocked/removed banner variant */
.pending-banner-blocked {
background: var(--oc-status-error-bg);
border-color: color-mix(in srgb, var(--oc-status-error-fg) 40%, var(--oc-border-subtle));
}
/* Warning banner variant */
.pending-banner-warning {
background: var(--oc-status-warning-bg);
border-color: color-mix(in srgb, var(--oc-status-warning-fg) 40%, var(--oc-border-subtle));
}
/* Pending tag for dashboard */
.tag-pending {
background: var(--status-pending-bg);
color: var(--status-pending-fg);
gap: 4px;
}
@media (max-width: 480px) {
.hero {
padding: 44px 14px 36px;
}
.section {
padding: 24px 14px 48px;
}
.navbar-inner {
padding: 10px 14px;
gap: 10px;
}
.brand {
font-size: 1.15rem;
}
.skill-page-title {
font-size: 1.8rem;
line-height: 1.12;
}
.skill-hero-note {
font-size: 0.82rem;
}
.skill-hero-title-row {
align-items: flex-start;
}
.skill-title-actions {
width: 100%;
margin-left: 0;
justify-content: flex-start;
}
.skill-title-actions .btn,
.skill-title-actions [data-slot="button"] {
flex: 1 1 0;
justify-content: center;
}
.skill-install-actions,
.skill-install-preview-meta,
.skill-install-command-header {
align-items: stretch;
min-height: 0;
}
.skill-install-copy-feedback {
width: 100%;
}
.skill-install-command-shell-cli {
flex-wrap: nowrap;
align-items: center;
overflow-x: hidden;
padding: 12px 52px 12px 14px;
}
.skill-install-command-shell-cli .skill-install-command-prompt {
flex: 0 0 auto;
}
.skill-install-command-shell-cli .skill-install-command {
display: block;
flex: 1 1 auto;
width: auto;
min-width: 0;
max-width: none;
padding-right: 0;
overflow-x: auto;
overflow-y: hidden;
text-overflow: clip;
white-space: nowrap;
-webkit-overflow-scrolling: touch;
}
.skill-install-command-shell-cli .skill-install-command code {
display: inline;
overflow: visible;
text-overflow: clip;
white-space: nowrap;
overflow-wrap: normal;
word-break: normal;
}
.skill-install-command-shell-cli .skill-install-command-inline-button {
top: 50%;
right: 10px;
margin-top: 0;
transform: translateY(-50%);
flex: none;
justify-content: center;
}
.skill-install-command-shell:not(.skill-install-command-shell-cli) .skill-install-command {
padding-right: 0;
overflow: visible;
text-overflow: clip;
white-space: pre-wrap;
overflow-wrap: break-word;
word-break: normal;
}
.skill-install-command-shell:not(.skill-install-command-shell-cli) .skill-install-command code {
overflow: visible;
text-overflow: clip;
white-space: pre-wrap;
overflow-wrap: break-word;
word-break: normal;
}
.skill-install-command-shell:not(.skill-install-command-shell-cli) {
flex-direction: column;
align-items: stretch;
padding-right: 48px;
}
.skill-install-command-shell:not(.skill-install-command-shell-cli)
.skill-install-command-inline-button {
position: absolute;
top: 12px;
right: 10px;
width: auto;
align-self: auto;
margin-top: 0;
transform: none;
justify-content: center;
}
.skill-install-prompt-trigger,
.skill-install-copy-button:not(.skill-install-command-inline-button) {
width: 100%;
justify-content: center;
}
.install-switcher-toggle {
width: 100%;
justify-content: space-between;
}
.install-switcher-pill {
flex: 1 1 0;
justify-content: center;
}
.card {
padding: 16px;
}
.skill-card {
padding: 16px;
}
.detail-meta-bar {
padding: var(--space-3);
}
.meta-bar-stats {
gap: var(--space-3);
}
.skill-hero-sidebar-meta {
min-width: 0;
}
.file-viewer-body {
max-height: 260px;
}
.file-viewer-back {
position: relative;
padding: 6px;
gap: 0;
}
.file-viewer-back-label {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
.file-viewer-code {
white-space: pre-wrap;
word-break: break-word;
}
.file-list.has-hidden-files .file-list-body {
max-height: 360px;
overflow: hidden;
}
.file-list.has-hidden-files .file-list-see-all-wrap {
display: grid;
}
.file-list-body.is-expanded {
max-height: none;
overflow: visible;
}
.markdown pre {
font-size: 0.78rem;
}
.markdown img {
max-width: 100%;
height: auto;
}
.scan-result-row {
grid-template-columns: 1fr auto;
gap: 6px 10px;
}
.scan-result-link {
grid-column: 1 / -1;
justify-self: start;
}
}
/* ===== Home Page — Modern Utility Store ===== */
.home-hero {
position: relative;
padding: var(--space-7) var(--space-5) var(--space-6);
max-width: var(--page-max);
margin: 0 auto;
isolation: isolate;
overflow: clip;
}
.home-hero::before {
content: "";
position: absolute;
inset: 0;
background:
radial-gradient(
ellipse 80% 60% at 50% -20%,
color-mix(in oklab, var(--accent) 10%, transparent) 0,
transparent 70%
),
radial-gradient(
ellipse 60% 40% at 80% 20%,
color-mix(in oklab, var(--seafoam) 6%, transparent) 0,
transparent 50%
);
opacity: 1;
pointer-events: none;
z-index: -1;
}
.home-hero-inner {
max-width: var(--page-max);
}
.home-hero-grid {
display: flex;
flex-direction: column;
gap: var(--space-6);
align-items: center;
text-align: center;
}
.home-hero-copy {
display: flex;
flex-direction: column;
align-items: center;
max-width: 720px;
}
.home-hero-kicker {
display: inline-flex;
align-items: center;
gap: 6px;
width: fit-content;
padding: 6px 14px;
margin-bottom: 20px;
border-radius: var(--r-pill);
border: 1px solid var(--line);
background: var(--surface);
font-size: 0.8rem;
font-weight: 500;
color: var(--ink-soft);
font-family: var(--font-body);
}
.home-hero-kicker-icon {
color: var(--accent);
}
.home-hero-title {
font-family: var(--font-display);
font-size: clamp(2.4rem, 5vw, 3.5rem);
font-weight: 700;
line-height: 1.08;
letter-spacing: -0.035em;
margin-bottom: 16px;
text-wrap: balance;
}
.home-hero-title-accent {
background: linear-gradient(135deg, var(--accent) 0%, var(--accent-deep) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.home-hero-subtitle {
font-size: clamp(1rem, 1.4vw, 1.125rem);
color: var(--ink-soft);
line-height: 1.65;
margin-bottom: 32px;
max-width: 560px;
text-wrap: pretty;
}
.home-hero-search {
width: 100%;
max-width: 640px;
position: relative;
}
.home-hero-search-wrapper {
position: relative;
display: flex;
align-items: center;
}
.home-hero-search-icon {
position: absolute;
left: 18px;
color: var(--ink-soft);
pointer-events: none;
transition: color 0.15s ease;
}
.home-hero-search-wrapper:focus-within .home-hero-search-icon {
color: var(--accent);
}
.home-hero-search-input {
width: 100%;
height: 56px;
padding: 0 140px 0 52px;
border: 1px solid var(--border-ui);
border-radius: var(--r-md);
background: var(--surface);
font-size: var(--fs-base);
color: var(--ink);
transition:
border-color 0.2s ease,
box-shadow 0.2s ease;
box-shadow: var(--shadow-card);
}
.home-hero-search-input::placeholder {
color: var(--input-placeholder);
}
.home-hero-search-input:focus {
outline: none;
border-color: var(--input-focus-border);
box-shadow: 0 0 0 3px var(--input-focus-ring);
}
.home-hero-search-btn {
position: absolute;
right: 6px;
height: 44px;
padding: 0 20px;
border-radius: calc(var(--r-md) - 2px);
background: var(--accent);
color: var(--accent-fg);
font-weight: 600;
font-size: var(--fs-sm);
border: none;
cursor: pointer;
display: inline-flex;
align-items: center;
gap: 8px;
transition:
background 0.15s ease,
transform 0.15s ease;
}
.home-hero-search-btn:hover {
background: var(--accent-deep);
transform: translateY(-1px);
}
.home-hero-popular {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
gap: 8px;
margin-top: 16px;
}
.home-hero-popular-label {
font-size: var(--fs-sm);
color: var(--ink-soft);
}
.home-hero-popular-tag {
padding: 5px 12px;
border-radius: var(--r-pill);
border: 1px solid var(--line);
background: transparent;
font-size: var(--fs-sm);
color: var(--ink-soft);
cursor: pointer;
transition: all 0.15s ease;
}
.home-hero-popular-tag:hover {
border-color: var(--border-ui-hover);
color: var(--ink);
background: var(--hover-bg);
}
.home-hero-actions {
display: flex;
flex-wrap: wrap;
gap: var(--space-3);
justify-content: center;
margin-top: var(--space-4);
}
.home-hero-publish-btn {
background: var(--surface);
border: 1px solid var(--border-ui);
}
.home-hero-publish-btn:hover {
border-color: var(--border-ui-hover);
}
/* Discovery Panels Grid */
.home-hero-panels {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 12px;
width: 100%;
max-width: 900px;
margin-top: var(--space-4);
}
.home-hero-panel {
display: flex;
flex-direction: column;
gap: 10px;
padding: 20px;
text-decoration: none;
color: inherit;
border-radius: var(--r-md);
border: 1px solid var(--line);
background: var(--surface);
transition: all 0.2s ease;
}
.home-hero-panel:hover {
border-color: var(--border-ui-hover);
transform: translateY(-2px);
box-shadow: var(--shadow-hover);
}
.home-hero-panel-icon {
width: 40px;
height: 40px;
border-radius: var(--r-sm);
background: rgba(220, 38, 38, 0.1);
display: grid;
place-items: center;
color: var(--accent);
}
.home-hero-panel strong {
font-family: var(--font-display);
font-size: 0.95rem;
font-weight: 600;
line-height: 1.3;
}
.home-hero-panel span:last-child {
color: var(--ink-soft);
font-size: 0.82rem;
line-height: 1.5;
}
.home-hero-panel-label {
display: none;
}
/* Home sections — polished utility store */
.home-section {
max-width: var(--page-max);
margin: 0 auto;
padding: var(--space-6) var(--space-5);
}
.home-section + .home-section {
padding-top: 0;
}
.home-section-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: var(--space-4);
}
.home-section-title {
font-family: var(--font-display);
font-size: var(--fs-lg);
font-weight: 600;
letter-spacing: -0.01em;
color: var(--ink);
display: flex;
align-items: center;
gap: 10px;
}
.home-section-title-icon {
width: 28px;
height: 28px;
border-radius: var(--r-sm);
display: grid;
place-items: center;
}
.home-section-title-icon.trending {
background: rgba(220, 38, 38, 0.1);
color: var(--accent);
}
.home-section-title-icon.featured {
background: rgba(250, 250, 250, 0.1);
color: var(--ink);
}
.home-section-title-icon.recent {
background: rgba(220, 38, 38, 0.1);
color: var(--accent);
}
.home-section-link {
font-size: var(--fs-sm);
font-weight: 500;
color: var(--accent);
display: inline-flex;
align-items: center;
gap: 4px;
transition: opacity 0.15s ease;
}
.home-section-link:hover {
opacity: 0.8;
}
.home-section-link svg {
transition: transform 0.15s ease;
}
.home-section-link:hover svg {
transform: translateX(2px);
}
/* Skill list — polished utility cards */
.browse-list-stack {
display: flex;
flex-direction: column;
min-width: 0;
}
.results-list {
display: flex;
flex-direction: column;
gap: 2px;
overflow: visible;
border: 0;
border-radius: 0;
background: transparent;
}
.browse-list-head {
display: grid;
grid-template-columns: auto minmax(0, 1fr) 180px 190px;
gap: 16px 20px;
align-items: center;
padding: 0 4px 8px;
margin-bottom: 2px;
border-bottom: 1px solid color-mix(in srgb, var(--line) 76%, transparent);
}
.browse-list-head-icon-spacer {
width: 27px;
}
.browse-list-head-actions-spacer {
width: 34px;
}
.browse-list-head-no-icon {
grid-template-columns: minmax(0, 1fr) 180px 190px;
}
.browse-list-head-simple {
grid-template-columns: auto minmax(0, 1fr) 190px;
}
.browse-list-head-publishers {
grid-template-columns: minmax(0, 1fr) minmax(160px, auto);
}
.browse-list-head-label {
color: color-mix(in srgb, var(--ink-soft) 62%, transparent);
font-size: 11px;
font-weight: 600;
letter-spacing: 0.07em;
line-height: 1;
text-transform: uppercase;
}
.browse-list-head-stat {
justify-self: end;
}
.browse-page .browse-list-head.browse-list-head-trending {
grid-template-columns: minmax(0, 1fr) auto;
}
.browse-page .browse-list-head.browse-list-head-trending .browse-list-head-label,
.browse-page .browse-list-head.browse-list-head-trending .browse-list-head-stat {
grid-column: auto;
}
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(4px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
/* Skill list item — clean, scannable row */
.skill-list-item {
position: relative;
display: grid;
grid-template-columns: auto minmax(0, 1fr) auto;
gap: 16px 20px;
align-items: center;
min-width: 0;
padding: 13px 4px;
border-bottom: 1px solid color-mix(in srgb, var(--line) 76%, transparent);
text-decoration: none;
transition: background 0.15s ease;
}
.skill-list-item-has-creator,
.skill-list-item-with-taxonomy {
grid-template-columns: auto minmax(0, 1fr) 180px 190px;
}
.skill-list-item-no-icon {
grid-template-columns: minmax(0, 1fr) 180px 190px;
}
.skill-list-item:last-child {
border-bottom: none;
}
.skill-list-item:hover {
background: transparent;
}
.skill-list-item::before {
position: absolute;
inset: 8px -8px;
z-index: 0;
border-radius: var(--r-sm);
background: transparent;
content: "";
transition: background 0.15s ease;
}
.skill-list-item:hover::before {
background: var(--hover-bg);
}
.skill-list-item > * {
position: relative;
z-index: 1;
}
.browse-page .skill-list-item > .marketplace-icon {
--marketplace-icon-accent: var(--ink-soft) !important;
--marketplace-icon-wash: transparent !important;
width: 27px;
height: 27px;
border-radius: 7px;
border-color: color-mix(in srgb, var(--line) 78%, transparent);
background: color-mix(in srgb, var(--surface) 72%, transparent);
color: color-mix(in srgb, var(--ink-soft) 88%, transparent);
box-shadow: none;
}
.browse-page .skill-list-item > .marketplace-icon .marketplace-icon-glyph {
width: 14px;
height: 14px;
}
.skill-list-item-main {
display: flex;
align-items: center;
gap: 6px;
flex-wrap: wrap;
line-height: 1.25;
}
.skill-list-item-identity {
display: inline-flex;
align-items: center;
gap: 6px;
min-width: 0;
max-width: 100%;
}
.skill-list-item-identity .skill-list-item-name {
flex: 1 1 auto;
}
.skill-list-item-identity .skill-list-item-owner {
flex: 0 0 auto;
}
.skill-list-item-body {
display: grid;
gap: 5px;
min-width: 0;
}
.skill-list-item-owner {
font-size: 13px;
font-weight: 500;
color: var(--hv2-text-tertiary, var(--ink-soft));
line-height: 1.25;
white-space: nowrap;
}
.skill-list-item-name {
min-width: 0;
overflow: hidden;
font-size: 15px;
font-weight: 600;
line-height: 1.25;
color: var(--ink);
letter-spacing: -0.01em;
text-overflow: ellipsis;
white-space: nowrap;
}
.skill-list-item .tag {
font-size: var(--fs-xs);
padding: 2px 8px;
border-radius: var(--r-sm);
}
.skill-list-item-summary {
max-width: min(760px, 100%);
font-size: 13px;
color: var(--hv2-text-tertiary, var(--ink-soft));
line-height: 1.5;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
overflow: hidden;
margin: 0;
}
.skill-list-item-taxonomy {
display: flex;
align-items: center;
justify-content: flex-start;
flex-wrap: wrap;
gap: 5px;
justify-self: stretch;
min-width: 0;
}
.skill-list-item-category {
max-width: 100%;
overflow: hidden;
display: inline-flex;
align-items: center;
gap: 6px;
color: var(--ink-soft);
font-size: 12px;
font-weight: 400;
line-height: 1.35;
text-overflow: ellipsis;
white-space: nowrap;
}
.skill-list-item-category-icon {
flex: 0 0 auto;
color: color-mix(in srgb, var(--ink-soft) 82%, transparent);
}
.skill-list-item-meta {
display: flex;
align-items: center;
justify-content: flex-end;
justify-self: stretch;
gap: 12px;
min-width: 190px;
max-width: 260px;
font-size: var(--fs-xs);
color: var(--ink-soft);
margin-top: 2px;
text-align: right;
flex-wrap: wrap;
}
.skill-list-item-meta-item {
display: inline-flex;
align-items: center;
gap: 4px;
white-space: nowrap;
}
.skill-list-item-meta-item svg {
color: color-mix(in srgb, var(--ink-soft) 78%, transparent);
}
.skill-list-item-meta-item.is-updated {
flex-basis: 100%;
justify-content: flex-end;
color: var(--ink-muted);
}
.plugin-card-meta {
justify-content: flex-start;
gap: 16px;
color: var(--hv2-text-secondary, var(--ink-soft));
font-size: 13px;
font-weight: 500;
font-variant-numeric: tabular-nums;
}
.plugin-card-meta .skill-list-item-meta-item {
gap: 5px;
}
.plugin-card-meta svg,
.browse-results-grid .skill-stats-triplet svg {
opacity: 0.45;
}
.catalog-topics {
display: flex;
flex-wrap: wrap;
gap: 5px;
min-width: 0;
}
.skill-list-item-main > .catalog-topics {
flex: 0 1 auto;
flex-wrap: nowrap;
overflow: hidden;
}
.skill-list-item-body > .catalog-topics {
overflow: hidden;
max-height: 23px;
}
.catalog-topic {
max-width: 100%;
overflow: hidden;
padding: 0 2px;
border: 1px solid transparent;
border-radius: 0;
background: transparent;
color: color-mix(in srgb, var(--ink-soft) 58%, transparent);
font-size: 11px;
font-weight: 400;
line-height: 1.25;
text-overflow: ellipsis;
white-space: nowrap;
}
.catalog-metadata-fields {
display: grid;
grid-template-columns: 1fr;
gap: 12px;
align-items: start;
min-width: 0;
}
@media (min-width: 520px) {
.catalog-metadata-fields {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 16px;
}
}
.catalog-metadata-field {
min-width: 0;
}
.catalog-metadata-field-header {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
gap: 8px;
min-width: 0;
}
.catalog-metadata-field-actions {
flex-shrink: 0;
}
@media (max-width: 960px) {
.browse-page .skill-list-item,
.browse-page .skill-list-item-has-creator,
.browse-page .skill-list-item-with-taxonomy {
grid-template-columns: auto minmax(0, 1fr) auto;
}
.browse-page .skill-list-item-no-icon {
grid-template-columns: minmax(0, 1fr) auto;
}
.browse-page .skill-list-item-taxonomy,
.browse-page .browse-list-head-label:nth-of-type(3) {
display: none;
}
.browse-page .skill-list-item-meta {
grid-column: 3;
}
.browse-page .skill-list-item-no-icon .skill-list-item-meta {
grid-column: 2;
}
.browse-page .browse-list-head {
grid-template-columns: auto minmax(0, 1fr) auto;
}
.browse-page .browse-list-head-label:nth-of-type(2) {
grid-column: 2;
}
.browse-page .browse-list-head-stat {
grid-column: 3;
}
.browse-page .skill-list-item-main > .catalog-topics {
display: none;
}
}
.catalog-metadata-settings-editor {
display: grid;
gap: 16px;
min-width: 0;
width: 100%;
}
.user-list-item .skill-list-item-owner {
font-size: 0.82rem;
}
.publisher-highlights {
display: grid;
gap: 18px;
margin-bottom: 14px;
}
.publisher-section-heading {
display: flex;
align-items: baseline;
}
.publisher-section-heading h2 {
margin: 0;
color: var(--ink);
font-size: var(--fs-lg);
font-weight: 700;
}
.publisher-highlight-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
}
.publisher-filter-tabs {
display: inline-flex;
align-items: center;
gap: 4px;
min-height: 42px;
padding: 4px;
border: 1px solid var(--line);
border-radius: var(--r-md);
background: var(--surface);
}
.publisher-filter-tab {
display: inline-flex;
align-items: center;
gap: 6px;
min-height: 34px;
padding: 8px 12px;
border-radius: var(--r-sm);
color: var(--ink-soft);
font-size: var(--fs-xs);
font-weight: 600;
text-decoration: none;
line-height: 1;
transition:
background 0.15s ease,
color 0.15s ease;
}
.publisher-view-tabs .publisher-filter-tab {
width: 34px;
height: 34px;
justify-content: center;
padding: 0;
}
.publisher-filter-tab span {
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
font-weight: 600;
}
.publisher-filter-tab:hover,
.publisher-filter-tab.is-active {
color: var(--ink);
background: var(--surface-muted);
text-decoration: none;
}
.publisher-filter-tab.is-active span {
color: var(--ink-soft);
}
.publisher-directory-list {
display: grid;
gap: 10px;
margin-top: 0;
}
.publisher-directory-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
margin-top: 0;
}
.publisher-card {
min-width: 0;
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(160px, auto);
align-items: center;
gap: 18px;
padding: 16px 18px;
border: 1px solid var(--line);
border-radius: var(--r-md);
background: var(--surface);
color: var(--ink);
text-decoration: none;
transition:
background 0.15s ease,
border-color 0.15s ease,
transform 0.15s ease;
}
.publisher-card:hover {
background: var(--hover-bg);
border-color: var(--border-ui-hover);
text-decoration: none;
transform: translateY(-1px);
}
.publisher-card-highlight {
display: flex;
flex-direction: column;
align-items: stretch;
min-height: 206px;
gap: 16px;
padding: 20px 22px;
}
.publisher-card-highlight:hover,
.publisher-card-highlight:focus-visible {
border-color: color-mix(in srgb, var(--ink) 16%, var(--line));
background: var(--hover-bg);
outline: none;
}
.publisher-card-highlight .publisher-card-name {
font-size: var(--fs-lg);
}
.publisher-card-highlight .publisher-card-main {
width: 100%;
align-items: start;
}
.publisher-card-highlight .publisher-card-copy {
width: 100%;
gap: 6px;
}
.publisher-card-highlight .publisher-card-summary {
-webkit-line-clamp: 2;
}
.publisher-card-featured-items {
display: grid;
gap: 7px;
min-height: 76px;
margin-top: 8px;
}
.publisher-card-featured-items > span {
width: 100%;
display: grid;
grid-template-columns: 16px minmax(0, 1fr) auto;
align-items: center;
gap: 9px;
max-width: 100%;
overflow: hidden;
padding: 4px 6px;
margin-inline: -6px;
border-radius: var(--r-sm);
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
font-size: var(--fs-xs);
line-height: 1.35;
text-overflow: ellipsis;
white-space: nowrap;
cursor: pointer;
transition:
background 0.15s ease,
color 0.15s ease;
}
.publisher-card-featured-items > span:hover {
background: color-mix(in srgb, var(--ink) 6%, transparent);
color: var(--ink-soft);
}
.publisher-card-featured-items .marketplace-icon {
width: 16px;
height: 16px;
border: 0;
border-radius: 0;
background: transparent;
}
.publisher-card-featured-label {
display: block;
min-width: 0;
overflow: hidden;
padding: 0;
border: 0;
background: transparent;
text-overflow: ellipsis;
white-space: nowrap;
}
.publisher-card-featured-downloads {
justify-self: end;
display: inline-flex;
align-items: center;
gap: 4px;
color: var(--oc-text-muted);
font-size: var(--fs-xs);
font-variant-numeric: tabular-nums;
font-feature-settings: "tnum" 1;
white-space: nowrap;
}
.publisher-card-featured-downloads svg {
flex: 0 0 auto;
color: var(--oc-text-muted);
}
.publisher-card-featured-downloads span {
display: block;
font-family: var(--font-mono);
text-align: right;
}
.publisher-card-highlight .publisher-card-stats {
width: 100%;
margin-top: auto;
padding-top: 14px;
border-top: 1px solid var(--line);
grid-template-columns: minmax(0, 1fr) auto;
justify-content: stretch;
}
.publisher-card-highlight .publisher-card-stat {
justify-content: flex-start;
text-align: left;
}
.publisher-card-highlight .publisher-card-stat.is-primary {
justify-content: flex-end;
text-align: right;
}
.publisher-card-grid {
display: flex;
flex-direction: column;
align-items: stretch;
min-height: 164px;
gap: 16px;
padding: 20px;
}
.publisher-card-grid .publisher-card-main {
align-items: start;
}
.publisher-card-grid .publisher-card-summary {
-webkit-line-clamp: 2;
}
.publisher-card-grid .publisher-card-stats {
width: 100%;
margin-top: auto;
padding-top: 16px;
border-top: 1px solid var(--line);
grid-template-columns: minmax(0, 1fr) auto;
justify-content: stretch;
}
.publisher-card-grid .publisher-card-stat {
justify-content: flex-start;
text-align: left;
}
.publisher-card-grid .publisher-card-stat.is-primary {
justify-content: flex-end;
text-align: right;
}
.publisher-card-main {
min-width: 0;
display: grid;
grid-template-columns: auto minmax(0, 1fr);
align-items: center;
gap: 12px;
}
.publisher-card-copy {
min-width: 0;
display: grid;
gap: 5px;
}
.publisher-card-identity {
display: grid;
gap: 1px;
min-width: 0;
align-content: start;
}
.publisher-card-title-row {
min-width: 0;
display: flex;
align-items: center;
gap: 8px;
}
.publisher-card-name {
overflow: hidden;
color: var(--ink);
font-size: var(--fs-md);
font-weight: 700;
text-overflow: ellipsis;
white-space: nowrap;
}
.publisher-card-handle {
flex: 0 1 auto;
overflow: hidden;
color: var(--ink-soft);
font-size: var(--fs-xs);
line-height: 1.2;
text-overflow: ellipsis;
white-space: nowrap;
}
.publisher-card-kind {
flex: 0 0 auto;
padding: 4px 8px;
border: 1px solid var(--line);
border-radius: var(--r-sm);
color: var(--ink-soft);
font-size: var(--fs-xs);
font-weight: 600;
}
.publisher-card-summary {
display: -webkit-box;
margin: 0;
overflow: hidden;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
color: var(--ink-soft);
font-size: var(--fs-sm);
line-height: 1.45;
}
.publisher-card-stats {
display: grid;
grid-template-columns: repeat(2, minmax(0, auto));
justify-content: end;
gap: 20px;
}
.publisher-card-stat {
min-width: 0;
display: flex;
align-items: center;
justify-content: flex-end;
gap: 5px;
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
font-size: var(--fs-xs);
text-align: right;
}
.publisher-card-list .publisher-card-stat.is-primary::before {
content: "·";
margin-right: 6px;
color: var(--oc-text-muted);
}
.publisher-card-stat svg {
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
}
.publisher-card-stat strong {
overflow: hidden;
color: color-mix(in srgb, var(--ink-soft) 76%, var(--bg));
font-size: var(--fs-sm);
font-weight: 700;
text-overflow: ellipsis;
white-space: nowrap;
}
.publisher-card-stat.is-primary strong {
color: var(--ink);
}
.publisher-card-stat.is-primary svg {
color: var(--oc-text-muted);
}
.publisher-published-rail {
display: inline-flex;
align-items: center;
padding-left: 10px;
}
.publisher-published-rail-item {
position: relative;
display: inline-flex;
margin-left: -10px;
}
.publisher-published-rail-item:nth-child(1) {
z-index: 3;
}
.publisher-published-rail-item:nth-child(2) {
z-index: 2;
}
.publisher-published-rail-item:nth-child(3) {
z-index: 1;
}
.publisher-published-rail .marketplace-icon {
box-shadow: 0 0 0 2px var(--surface);
}
.browse-page .publisher-directory-list {
display: flex;
flex-direction: column;
gap: 0;
}
.browse-page .publisher-directory-list.publisher-directory-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
}
.browse-page .publisher-directory-list .publisher-card-list {
position: relative;
grid-template-columns: minmax(0, 1fr) auto;
gap: 16px 20px;
padding: 13px 4px;
border: 0;
border-bottom: 1px solid color-mix(in srgb, var(--line) 76%, transparent);
border-radius: 0;
background: transparent;
transform: none;
}
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-copy {
gap: 3px;
}
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-identity {
display: flex;
align-items: baseline;
gap: 6px;
}
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-title-row {
flex: 0 1 auto;
overflow: hidden;
}
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-handle {
min-width: 0;
}
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-name {
font-size: 15px;
line-height: 1.25;
}
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-handle,
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-summary {
font-size: 13px;
}
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-summary {
line-height: 1.35;
-webkit-line-clamp: 1;
}
.browse-page .publisher-directory-list .publisher-card-list:hover {
border-color: color-mix(in srgb, var(--line) 76%, transparent);
background: transparent;
transform: none;
}
.browse-page .publisher-directory-list .publisher-card-list::before {
position: absolute;
inset: 8px -8px;
z-index: 0;
border-radius: var(--r-sm);
background: transparent;
content: "";
transition: background 0.15s ease;
}
.browse-page .publisher-directory-list .publisher-card-list:hover::before {
background: var(--hover-bg);
}
.browse-page .publisher-directory-list .publisher-card-list > * {
position: relative;
z-index: 1;
}
.browse-page .publisher-card .marketplace-icon {
--marketplace-icon-accent: var(--ink-soft) !important;
--marketplace-icon-wash: transparent !important;
border-color: color-mix(in srgb, var(--line) 78%, transparent);
background: color-mix(in srgb, var(--surface) 72%, transparent);
color: color-mix(in srgb, var(--ink-soft) 88%, transparent);
box-shadow: none;
}
.browse-page .publisher-card-featured-items .marketplace-icon {
border-color: transparent;
border-radius: 0;
background: transparent;
box-shadow: none;
}
.browse-page .publisher-published-rail .marketplace-icon {
background: var(--surface);
box-shadow: 0 0 0 2px var(--surface);
}
.browse-page .publisher-directory-list .publisher-card .marketplace-icon {
width: 36px;
height: 36px;
}
.browse-page .publisher-directory-list .publisher-card .marketplace-icon-glyph {
width: 18px;
height: 18px;
}
@media (max-width: 860px) {
.publisher-highlight-grid {
grid-template-columns: 1fr;
}
.publisher-card {
grid-template-columns: minmax(0, 1fr);
align-items: start;
}
.publisher-directory-grid {
grid-template-columns: 1fr;
}
.publisher-card-list {
gap: 16px;
padding: 20px;
}
.publisher-card-list .publisher-card-main {
align-items: start;
}
.publisher-card-summary,
.publisher-card-stats {
grid-column: 1;
}
.publisher-card-stats {
width: 100%;
justify-content: stretch;
padding-top: 16px;
border-top: 1px solid var(--line);
grid-template-columns: minmax(0, 1fr) auto;
}
.publisher-card-stat {
justify-content: flex-start;
text-align: left;
}
.publisher-card-stat.is-primary {
justify-content: flex-end;
text-align: right;
}
.publisher-card-list .publisher-card-stat.is-primary::before {
content: none;
}
.publisher-published-rail {
padding-left: 7px;
}
.publisher-published-rail-item {
margin-left: -7px;
}
.publisher-published-rail .marketplace-icon {
width: 22px;
height: 22px;
}
.publisher-published-rail .marketplace-icon-glyph {
width: 12px;
height: 12px;
}
}
@media (max-width: 1100px) {
.browse-page .publisher-directory-list.publisher-directory-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 640px) {
.browse-page .publisher-directory-list.publisher-directory-grid {
grid-template-columns: 1fr;
}
}
/* Quick links — category pills */
.home-quick-links {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.home-quick-link {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 10px 16px;
border: 1px solid var(--line);
border-radius: var(--r-md);
background: var(--surface);
font-size: var(--fs-sm);
font-weight: 500;
color: var(--ink-soft);
text-decoration: none;
transition: all 0.15s ease;
}
.home-quick-link:hover {
border-color: var(--border-ui-hover);
color: var(--ink);
background: var(--hover-bg);
transform: translateY(-1px);
}
.home-quick-link-icon {
color: var(--accent);
opacity: 0.7;
}
/* Categories grid */
.home-categories {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
gap: 12px;
margin-top: var(--space-5);
}
.home-category-card {
display: flex;
flex-direction: column;
gap: 12px;
padding: 18px;
border: 1px solid var(--line);
border-radius: var(--r-md);
background: var(--surface);
text-decoration: none;
color: inherit;
transition: all 0.2s ease;
}
.home-category-card:hover {
border-color: var(--border-ui-hover);
transform: translateY(-2px);
box-shadow: var(--shadow-hover);
}
.home-category-icon {
width: 40px;
height: 40px;
border-radius: var(--r-sm);
display: grid;
place-items: center;
font-size: 1.25rem;
}
.home-category-icon.productivity {
background: rgba(161, 161, 161, 0.1);
}
.home-category-icon.ai {
background: rgba(220, 38, 38, 0.1);
}
.home-category-icon.developer {
background: rgba(161, 161, 161, 0.1);
}
.home-category-icon.design {
background: rgba(220, 38, 38, 0.1);
}
.home-category-icon.analytics {
background: rgba(161, 161, 161, 0.1);
}
.home-category-icon.security {
background: rgba(220, 38, 38, 0.1);
}
.home-category-icon.automation {
background: rgba(161, 161, 161, 0.1);
}
.home-category-icon.media {
background: rgba(220, 38, 38, 0.1);
}
.home-category-content {
display: flex;
flex-direction: column;
gap: 4px;
}
.home-category-name {
font-weight: 600;
font-size: var(--fs-base);
color: var(--ink);
}
.home-category-count {
font-size: var(--fs-xs);
color: var(--ink-soft);
}
/* Stats bar */
.home-stats {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 24px;
padding: var(--space-5) var(--space-6);
background: var(--surface);
border: 1px solid var(--line);
border-radius: var(--r-md);
margin-top: var(--space-6);
}
.home-staff-picks-grid {
display: grid;
grid-template-columns: repeat(var(--staff-picks-cols-lg, 6), minmax(0, 1fr));
gap: 16px;
}
.home-stat {
text-align: center;
}
.home-stat-value {
font-family: var(--font-display);
font-size: var(--fs-2xl);
font-weight: 700;
color: var(--ink);
letter-spacing: -0.02em;
}
.home-stat-label {
font-size: var(--fs-sm);
color: var(--ink-soft);
margin-top: 4px;
}
@media (max-width: 900px) {
.home-hero-panels {
grid-template-columns: repeat(2, 1fr);
}
.home-stats {
grid-template-columns: repeat(2, 1fr);
}
.home-staff-picks-grid {
grid-template-columns: repeat(var(--staff-picks-cols-md, 3), minmax(0, 1fr));
}
}
@media (max-width: 760px) {
.home-hero {
padding: var(--space-5) var(--space-4);
}
.home-hero-grid {
gap: var(--space-5);
}
.home-hero-panels {
grid-template-columns: 1fr 1fr;
}
.home-hero-search-btn {
padding: 0 14px;
}
.home-hero-search-btn span {
display: none;
}
.home-section {
padding: var(--space-5) var(--space-4);
}
.home-categories {
grid-template-columns: repeat(2, 1fr);
}
.home-staff-picks-grid {
grid-template-columns: repeat(var(--staff-picks-cols-sm, 2), minmax(0, 1fr));
}
}
@media (max-width: 560px) {
.skill-list-item,
.skill-list-item-has-creator,
.skill-list-item-with-taxonomy {
grid-template-columns: minmax(0, 1fr);
padding: 14px 16px;
gap: 12px;
}
.browse-list-head {
display: none;
}
.skill-list-item-meta {
grid-column: 1;
justify-content: flex-start;
min-width: 0;
max-width: none;
text-align: left;
}
.skill-list-item-taxonomy {
grid-column: 1;
}
.skill-list-item-meta-item.is-updated {
justify-content: flex-start;
}
.skill-list-item-skill .skill-list-item-owner {
flex-basis: 100%;
}
.skill-list-item-skill .skill-list-item-summary {
display: none;
}
.browse-page .skill-list-item > .marketplace-icon {
display: none;
}
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-main {
grid-template-columns: minmax(0, 1fr);
}
.browse-page
.publisher-directory-list
.publisher-card-list
.publisher-card-main
> .marketplace-icon {
display: none;
}
.home-hero-panels {
grid-template-columns: 1fr;
}
.home-stats {
grid-template-columns: 1fr 1fr;
padding: var(--space-4);
gap: 16px;
}
.home-staff-picks-grid {
grid-template-columns: repeat(var(--staff-picks-cols-xs, 1), minmax(0, 1fr));
}
}
/* ===== Browse Pages ===== */
.browse-page {
width: 100%;
max-width: 1296px;
margin: 0 auto;
padding: 48px 48px 80px;
--browse-sticky-top: calc(128px + var(--space-4));
}
body:has(.browse-page-borderless-header) .navbar {
border-bottom: 0;
}
.browse-page-narrow {
width: 100%;
max-width: var(--page-narrow);
margin: 0 auto;
}
.browse-page-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--space-3);
margin-bottom: 18px;
}
.browse-page-header-main {
display: grid;
gap: 12px;
width: 100%;
min-width: 0;
}
.official-page-header {
margin-bottom: 28px;
}
.official-page-description {
max-width: 760px;
color: var(--ink-muted);
font-size: 18px;
line-height: 1.5;
}
.browse-page-search {
display: flex;
align-items: center;
gap: var(--space-2);
background: var(--surface);
border: 1px solid var(--line);
border-radius: var(--r-sm);
padding: 0 var(--space-3);
height: 38px;
width: 100%;
box-sizing: border-box;
margin-bottom: var(--space-4);
}
.browse-page-search:focus-within {
border-color: var(--border-ui-active);
}
.browse-search-clear {
display: inline-flex;
align-items: center;
justify-content: center;
width: 30px;
height: 30px;
flex: 0 0 30px;
border: none;
border-radius: 7px;
background: transparent;
color: color-mix(in srgb, var(--accent) 70%, var(--ink-soft));
cursor: pointer;
transition:
color 0.15s ease,
background 0.15s ease;
}
.browse-search-clear:hover,
.browse-search-clear:focus-visible {
color: var(--accent);
background: var(--accent-subtle);
outline: none;
}
.browse-controls {
display: flex;
flex-direction: column;
gap: 10px;
margin-bottom: 28px;
}
.browse-controls-row {
display: flex;
align-items: center;
gap: 20px;
min-height: 44px;
flex-wrap: wrap;
}
.browse-controls-divider {
width: 1px;
height: 18px;
flex-shrink: 0;
background: var(--line);
}
.browse-tabs {
display: flex;
align-items: stretch;
align-self: stretch;
gap: 28px;
min-width: 0;
overflow-x: auto;
scrollbar-width: none;
-webkit-overflow-scrolling: touch;
}
.browse-tabs::-webkit-scrollbar {
display: none;
}
.browse-tab {
display: inline-flex;
align-items: center;
align-self: stretch;
padding: 0 2px;
border: none;
border-bottom: 2px solid transparent;
background: transparent;
color: var(--ink-soft);
cursor: pointer;
font: inherit;
font-size: 14px;
font-weight: 600;
line-height: 1;
white-space: nowrap;
transition:
color 0.15s ease,
border-color 0.15s ease;
}
.browse-tab > svg {
flex-shrink: 0;
margin-right: 6px;
}
.browse-tab:hover,
.browse-tab:focus-visible {
color: var(--ink);
outline: none;
}
.browse-tab.is-active {
border-bottom-color: var(--ink);
color: var(--ink);
}
.browse-tab-count {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 1.25rem;
margin-left: 6px;
padding: 2px 6px;
border-radius: var(--r-pill);
background: color-mix(in srgb, var(--ink) 8%, transparent);
color: var(--ink-soft);
font-size: 11px;
font-weight: 600;
font-variant-numeric: tabular-nums;
line-height: 1;
}
.browse-tab.is-active .browse-tab-count {
background: color-mix(in srgb, var(--ink) 12%, transparent);
color: var(--ink);
}
.browse-sort-select {
position: relative;
flex: 0 0 auto;
min-width: 0;
max-width: min(220px, 34vw);
}
.browse-sort-trigger {
display: inline-flex;
align-items: center;
justify-content: space-between;
gap: 8px;
box-sizing: border-box;
min-height: 36px;
padding: 7px 4px 7px 2px;
border: none;
border-radius: var(--r-sm);
background: transparent;
flex-shrink: 0;
color: var(--ink-soft);
cursor: pointer;
font: inherit;
font-size: 14px;
font-weight: 600;
line-height: 1.25;
transition: color 0.15s ease;
}
.browse-sort-trigger:hover,
.browse-sort-trigger[aria-expanded="true"] {
color: var(--ink);
}
.browse-sort-trigger:focus-visible {
outline: 2px solid var(--oc-focus-ring);
outline-offset: 2px;
}
.browse-sort-label {
min-width: 0;
overflow: hidden;
font-size: 14px;
text-align: left;
text-overflow: ellipsis;
white-space: nowrap;
}
.browse-sort-chevron {
flex-shrink: 0;
color: color-mix(in srgb, var(--ink-soft) 80%, transparent);
opacity: 0.74;
transition: transform 0.15s ease;
}
.browse-sort-chevron.is-open {
transform: rotate(180deg);
}
.browse-sort-panel {
position: absolute;
top: calc(100% + 6px);
left: 0;
z-index: 50;
width: max-content;
min-width: 190px;
max-width: min(260px, calc(100vw - 32px));
overflow: hidden;
border: 1px solid var(--line);
border-radius: var(--oc-radius-surface);
background: var(--surface);
box-shadow: var(--oc-shadow-lg);
}
[data-theme-resolved="light"] .browse-sort-panel {
box-shadow: var(--oc-shadow-lg);
}
.browse-sort-options {
display: flex;
flex-direction: column;
gap: 6px;
margin: 0;
padding: 8px;
list-style: none;
}
.browse-sort-option-wrap {
display: block;
}
.browse-sort-option {
display: flex;
align-items: center;
gap: 10px;
width: 100%;
padding: 9px 10px;
border: none;
border-radius: var(--oc-radius-inset);
background: transparent;
color: var(--ink);
cursor: pointer;
font: inherit;
font-size: 14px;
font-weight: 600;
line-height: 1.3;
text-align: left;
transition: background 0.12s ease;
}
.browse-sort-option:hover,
.browse-sort-option:focus-visible {
background: color-mix(in srgb, var(--ink) 7%, transparent);
outline: none;
}
.browse-sort-option.is-selected {
background: color-mix(in srgb, var(--ink) 6%, transparent);
}
.browse-sort-option-mark {
margin-left: auto;
display: inline-flex;
align-items: center;
justify-content: center;
width: 16px;
height: 16px;
flex-shrink: 0;
color: var(--ink);
}
.browse-sort-option-label {
white-space: nowrap;
}
.browse-actions {
display: inline-flex;
align-items: center;
justify-content: flex-end;
gap: 12px;
flex-shrink: 0;
margin-left: auto;
}
.browse-search-trigger {
display: inline-flex;
align-items: center;
justify-content: center;
width: 36px;
height: 36px;
flex: 0 0 36px;
padding: 0;
border: 0;
border-radius: var(--r-sm);
background: transparent;
color: var(--ink-soft);
cursor: pointer;
transition: color 0.15s ease;
}
.browse-search-trigger:hover,
.browse-search-trigger:focus-visible,
.browse-search-trigger.is-active {
color: var(--ink);
}
.browse-search-trigger:focus-visible {
outline: 2px solid var(--oc-focus-ring);
outline-offset: 2px;
}
.browse-search-trigger:disabled {
cursor: default;
opacity: 0.5;
}
.browse-search-panel {
display: none;
}
.browse-search-panel.is-open {
display: block;
order: 10;
flex: 1 1 100%;
width: 100%;
}
.browse-search-panel .browse-search-control {
width: 100%;
min-height: 40px;
}
.browse-search-control {
display: flex;
align-items: center;
gap: 10px;
box-sizing: border-box;
width: min(280px, 28vw);
min-height: 40px;
padding: 4px 6px 4px 14px;
border: 1px solid var(--border-ui);
border-radius: var(--oc-radius-control);
background: color-mix(in srgb, var(--surface) 95%, var(--bg));
transition:
border-color 0.15s ease,
box-shadow 0.15s ease;
}
.browse-search-control:focus-within {
border-color: color-mix(in srgb, var(--accent) 30%, transparent);
box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 6%, transparent);
}
.browse-search-icon {
flex-shrink: 0;
color: var(--ink-soft);
}
.browse-search-input::-webkit-search-cancel-button,
.browse-search-input::-webkit-search-decoration {
display: none;
-webkit-appearance: none;
}
.browse-filter-toggle {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 36px;
padding: 0 2px;
border: none;
border-bottom: 2px solid transparent;
background: transparent;
color: var(--ink-soft);
cursor: pointer;
font: inherit;
font-size: 14px;
font-weight: 560;
white-space: nowrap;
}
.browse-filter-toggle:hover,
.browse-filter-toggle:focus-visible,
.browse-filter-toggle.is-active {
color: var(--ink);
outline: none;
}
.browse-filter-toggle.is-active {
border-bottom-color: var(--ink);
}
.browse-category-select {
position: relative;
flex: 0 1 auto;
min-width: 0;
max-width: min(220px, 34vw);
}
.browse-category-trigger {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
box-sizing: border-box;
width: 100%;
min-height: 36px;
padding: 7px 4px 7px 2px;
border: none;
border-radius: var(--r-sm);
background: transparent;
color: var(--ink-soft);
cursor: pointer;
font: inherit;
font-size: 14px;
font-weight: 600;
line-height: 1.25;
transition: color 0.15s ease;
}
.browse-category-trigger:hover,
.browse-category-trigger[aria-expanded="true"] {
color: var(--ink);
}
.browse-category-trigger:focus-visible {
outline: 2px solid var(--oc-focus-ring);
outline-offset: 2px;
}
.browse-category-trigger-main {
display: inline-flex;
align-items: center;
gap: 8px;
min-width: 0;
flex: 1;
}
.browse-category-icon,
.browse-category-chevron {
flex-shrink: 0;
color: color-mix(in srgb, var(--ink-soft) 80%, transparent);
}
.browse-category-chevron {
opacity: 0.74;
transition: transform 0.15s ease;
}
.browse-category-chevron.is-open {
transform: rotate(180deg);
}
.browse-category-label {
min-width: 0;
overflow: hidden;
text-align: left;
text-overflow: ellipsis;
white-space: nowrap;
}
.browse-category-panel {
position: absolute;
top: calc(100% + 6px);
right: 0;
z-index: 50;
display: flex;
flex-direction: column;
width: min(320px, calc(100vw - 32px));
max-height: min(400px, 58vh);
overflow: hidden;
border: 1px solid var(--line);
border-radius: var(--oc-radius-surface);
background: var(--surface);
box-shadow: var(--oc-shadow-lg);
}
[data-theme-resolved="light"] .browse-category-panel {
box-shadow: var(--oc-shadow-lg);
}
.browse-category-search-wrap {
display: flex;
align-items: center;
gap: 8px;
padding: 10px 12px;
border-bottom: 1px solid var(--line);
background: var(--surface);
}
.browse-category-search-icon {
flex-shrink: 0;
color: var(--ink-soft);
}
.browse-category-search {
all: unset;
box-sizing: border-box;
flex: 1;
min-width: 0;
color: var(--ink);
font-size: 14px;
}
.browse-category-search::placeholder {
color: var(--ink-soft);
}
.browse-category-options {
display: flex;
flex-direction: column;
gap: 6px;
margin: 0;
padding: 8px;
list-style: none;
overflow-y: auto;
overscroll-behavior: contain;
scrollbar-color: color-mix(in srgb, var(--ink-soft) 60%, transparent) transparent;
scrollbar-width: thin;
}
.browse-category-options::-webkit-scrollbar {
width: 8px;
}
.browse-category-options::-webkit-scrollbar-track {
background: transparent;
}
.browse-category-options::-webkit-scrollbar-thumb {
border: 2px solid transparent;
border-radius: 999px;
background: color-mix(in srgb, var(--ink-soft) 56%, transparent);
background-clip: content-box;
}
.browse-category-option-wrap {
display: block;
}
.browse-category-option-wrap.is-reset {
margin-bottom: 4px;
padding-bottom: 8px;
border-bottom: 1px solid var(--line);
}
.browse-category-option {
display: flex;
align-items: center;
gap: 10px;
width: 100%;
padding: 9px 10px;
border: none;
border-radius: 10px;
background: transparent;
color: var(--ink);
cursor: pointer;
font: inherit;
font-size: 14px;
font-weight: 600;
line-height: 1.3;
text-align: left;
transition: background 0.12s ease;
}
.browse-category-option:hover,
.browse-category-option:focus-visible {
background: color-mix(in srgb, var(--ink) 7%, transparent);
outline: none;
}
.browse-category-option.is-selected {
background: color-mix(in srgb, var(--ink) 9%, transparent);
}
.browse-category-option-icon {
flex-shrink: 0;
color: var(--ink-soft);
}
.browse-category-option-mark {
display: inline-flex;
align-items: center;
justify-content: center;
width: 18px;
height: 18px;
flex-shrink: 0;
border: 1px solid var(--line);
border-radius: 50%;
background: color-mix(in srgb, var(--surface) 70%, transparent);
color: var(--ink);
}
.browse-category-option-dot {
width: 8px;
height: 8px;
border-radius: 50%;
background: currentColor;
}
.browse-category-empty {
padding: 12px 10px;
color: var(--ink-soft);
font-size: 13px;
}
.browse-topic-chips {
display: flex;
gap: 8px;
overflow-x: auto;
padding-bottom: 2px;
scrollbar-width: none;
-webkit-overflow-scrolling: touch;
}
.browse-topic-chips::-webkit-scrollbar {
display: none;
}
.browse-topic-chip-skeleton {
width: 86px;
height: 30px;
flex: 0 0 auto;
border-radius: var(--r-pill);
}
.browse-topic-chip-skeleton:nth-child(3n + 1) {
width: 104px;
}
.browse-topic-chip-skeleton:nth-child(3n) {
width: 72px;
}
.browse-topic-chip {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 4px;
min-height: 30px;
padding: 0 10px;
border: 1px solid var(--line);
border-radius: var(--r-pill);
background: color-mix(in srgb, var(--surface) 72%, transparent);
color: var(--ink-soft);
cursor: pointer;
font-family: var(--font-mono);
font-size: 12px;
font-weight: 600;
white-space: nowrap;
}
.browse-topic-chip-label {
line-height: 1;
}
.browse-topic-chip-clear {
display: inline-flex;
align-items: center;
justify-content: center;
width: 18px;
height: 18px;
padding: 0;
border: 0;
border-radius: var(--r-pill);
background: transparent;
color: color-mix(in srgb, var(--ink-soft) 82%, transparent);
cursor: pointer;
transition:
background-color 0.14s ease,
color 0.14s ease;
}
.browse-topic-chip-clear:hover,
.browse-topic-chip-clear:focus-visible {
background: color-mix(in srgb, var(--ink) 8%, transparent);
color: var(--ink);
outline: none;
}
.browse-topic-chip.is-active {
padding-right: 6px;
cursor: default;
}
.browse-topic-chip:hover,
.browse-topic-chip:focus-visible,
.browse-topic-chip.is-active {
border-color: color-mix(in srgb, var(--ink-soft) 45%, var(--line));
color: var(--ink);
outline: none;
}
.browse-chip-tabs {
display: flex;
flex-wrap: nowrap;
align-items: center;
gap: 8px;
min-width: 0;
max-width: 100%;
overflow-x: auto;
padding-bottom: 2px;
scrollbar-width: none;
-webkit-overflow-scrolling: touch;
}
.browse-chip-tabs::-webkit-scrollbar {
display: none;
}
.browse-chip-tab {
display: inline-flex;
flex-shrink: 0;
align-items: center;
justify-content: center;
gap: 6px;
min-height: 28px;
padding: 0 10px;
border: 1px solid var(--line);
border-radius: 999px;
background: color-mix(in srgb, var(--surface) 72%, transparent);
color: var(--ink-soft);
cursor: pointer;
font: inherit;
font-size: 12px;
font-weight: 650;
line-height: 1;
white-space: nowrap;
transition:
background 0.14s ease,
border-color 0.14s ease,
color 0.14s ease;
}
.browse-chip-tab:hover,
.browse-chip-tab:focus-visible {
border-color: color-mix(in srgb, var(--ink-soft) 45%, var(--line));
background: color-mix(in srgb, var(--ink) 6%, transparent);
color: var(--ink);
outline: none;
}
.browse-chip-tab.is-active {
border-color: color-mix(in srgb, var(--ink-soft) 50%, var(--line));
background: color-mix(in srgb, var(--ink) 8%, transparent);
color: var(--ink);
}
.browse-chip-tab-count {
color: color-mix(in srgb, var(--ink-soft) 88%, transparent);
font-size: 12px;
font-weight: 650;
font-variant-numeric: tabular-nums;
}
.browse-chip-tab.is-active .browse-chip-tab-count {
color: color-mix(in srgb, var(--ink) 72%, var(--ink-soft));
}
.audits-page {
max-width: 1180px;
}
.audits-page-header {
align-items: flex-start;
}
.audits-title {
margin: 0;
color: var(--ink);
font-size: var(--fs-3xl);
font-weight: 760;
line-height: 1.1;
}
.audits-subtitle {
margin: 8px 0 0;
max-width: 620px;
color: var(--ink-soft);
font-size: var(--fs-sm);
line-height: 1.5;
}
.audits-tabs {
display: inline-flex;
gap: 4px;
padding: 4px;
border: 1px solid var(--line);
border-radius: var(--r-md);
background: var(--surface);
}
.audits-tab {
display: inline-flex;
align-items: center;
gap: 8px;
min-height: 34px;
padding: 0 14px;
border: 0;
border-radius: calc(var(--r-md) - 4px);
background: transparent;
color: var(--ink-soft);
font: inherit;
font-size: var(--fs-sm);
font-weight: 680;
cursor: pointer;
}
.audits-tab[data-active="true"] {
background: var(--surface-muted);
color: var(--ink);
}
[data-theme-resolved="light"] .stars-view-tabs .publisher-filter-tab.is-active,
[data-theme-resolved="light"] .audits-tab[data-active="true"] {
background: var(--hover-bg);
}
.audits-table-shell {
overflow: hidden;
border: 1px solid var(--line);
border-radius: var(--r-sm);
background: var(--surface);
}
.audits-table-toolbar {
display: flex;
justify-content: flex-end;
margin: 0 0 12px;
}
.audits-table {
display: grid;
min-width: 0;
}
.audits-table-row {
display: grid;
grid-template-columns:
minmax(460px, 1.9fr) minmax(132px, 0.55fr) minmax(132px, 0.55fr)
minmax(108px, 0.35fr);
column-gap: 32px;
row-gap: 16px;
align-items: center;
min-width: 0;
padding: 16px 18px;
border-bottom: 1px solid color-mix(in srgb, var(--line) 72%, transparent);
}
.audits-table-row:last-child {
border-bottom: 0;
}
.audits-table-head {
padding-top: 10px;
padding-bottom: 10px;
color: var(--ink-soft);
font-size: var(--fs-xs);
font-weight: 780;
text-transform: uppercase;
letter-spacing: 0.02em;
background: color-mix(in srgb, var(--surface-muted) 50%, transparent);
}
.audits-table-head > div:nth-child(2),
.audits-table-head > div:nth-child(3) {
text-align: right;
}
.audits-downloads-header,
.audits-downloads-cell {
justify-content: flex-end;
text-align: right;
}
.audits-item-cell {
display: flex;
align-items: center;
gap: 14px;
min-width: 0;
}
.audits-item-copy {
display: grid;
gap: 6px;
min-width: 0;
}
.audits-item-name {
min-width: 0;
overflow: hidden;
color: var(--ink);
font-weight: 760;
text-overflow: ellipsis;
white-space: nowrap;
}
.audits-item-name span {
color: var(--ink-soft);
font-family: var(--font-mono);
font-weight: 520;
}
.audits-item-copy p {
margin: 0;
overflow: hidden;
color: var(--ink-soft);
font-size: var(--fs-sm);
line-height: 1.35;
text-overflow: ellipsis;
white-space: nowrap;
}
.audits-signal-cell {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 8px;
min-width: 0;
}
.audits-downloads-cell {
display: flex;
align-items: center;
gap: 8px;
color: var(--ink);
font-family: var(--font-mono);
font-weight: 680;
}
.audits-load-more {
display: flex;
margin: 16px auto;
}
.audits-error {
margin: 14px 18px 0;
color: var(--oc-status-error-fg);
font-size: var(--fs-sm);
}
.audits-sentinel {
height: 1px;
}
.audits-skeleton-row {
min-height: 82px;
}
.audits-skeleton-icon,
.audits-skeleton-copy,
.audits-skeleton-pill,
.audits-skeleton-stat {
display: block;
overflow: hidden;
border-radius: var(--r-sm);
background: linear-gradient(
90deg,
color-mix(in srgb, var(--surface-muted) 70%, transparent),
color-mix(in srgb, var(--line) 72%, transparent),
color-mix(in srgb, var(--surface-muted) 70%, transparent)
);
background-size: 220% 100%;
animation: skeleton-shimmer 1.15s ease-in-out infinite;
}
.audits-skeleton-icon {
width: 42px;
height: 42px;
}
.audits-skeleton-copy {
width: min(340px, 70%);
height: 42px;
}
.audits-skeleton-pill {
width: 82px;
height: 28px;
}
.audits-skeleton-stat {
justify-self: end;
width: 64px;
height: 18px;
}
@keyframes skeleton-shimmer {
from {
background-position: 120% 0;
}
to {
background-position: -120% 0;
}
}
@media (max-width: 900px) {
.audits-table-head {
display: none;
}
.audits-table-row {
grid-template-columns: 1fr;
gap: 12px;
align-items: start;
}
.audits-signal-cell {
justify-content: flex-start;
}
.audits-signal-cell::before,
.audits-downloads-cell::before {
min-width: 112px;
color: var(--ink-soft);
font-size: var(--fs-xs);
font-weight: 760;
text-transform: uppercase;
letter-spacing: 0.02em;
}
.audits-table-row > .audits-signal-cell:nth-child(2)::before {
content: "ClawScan";
}
.audits-table-row > .audits-signal-cell:nth-child(3)::before {
content: "VirusTotal";
}
.audits-downloads-cell {
justify-content: flex-start;
text-align: left;
}
.audits-downloads-cell::before {
content: "Downloads";
}
}
.browse-title {
font-family: var(--font-display);
font-size: 42px;
font-weight: 600;
line-height: 1.05;
letter-spacing: -0.035em;
display: flex;
align-items: baseline;
gap: 12px;
}
.browse-count {
display: inline-flex;
align-items: center;
font-size: 14px;
font-weight: 500;
line-height: 1;
color: var(--ink-muted);
font-family: var(--font-mono);
letter-spacing: 0;
}
@media (max-width: 760px) {
.browse-title {
font-size: 32px;
}
.official-page-description {
font-size: 16px;
}
}
.browse-sidebar-toggle {
display: none;
align-items: center;
padding: var(--space-2) var(--space-3);
font-size: var(--fs-sm);
border: 1px solid var(--line);
border-radius: var(--r-sm);
background: var(--surface);
cursor: pointer;
min-height: 44px;
color: var(--ink-soft);
}
.browse-sidebar-toggle:hover {
border-color: var(--border-ui-hover);
}
.browse-search-bar {
display: flex;
align-items: center;
gap: var(--space-2);
background: var(--surface);
border: 1px solid var(--line);
border-radius: var(--r-sm);
padding: 0 var(--space-3);
height: 36px;
}
.browse-search-bar:focus-within {
border-color: var(--border-ui-active);
}
.browse-search-full {
width: 100%;
max-width: none;
box-sizing: border-box;
flex-shrink: 0;
}
.browse-search-input {
all: unset;
box-sizing: border-box;
flex: 1;
min-width: 0;
color: var(--ink);
font-size: 14px;
font-weight: 500;
line-height: 1.35;
}
.browse-search-input::placeholder {
color: var(--ink-soft);
}
.browse-layout {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 0;
align-items: start;
}
.browse-layout-with-sidebar {
grid-template-columns: minmax(168px, 188px) minmax(0, 1fr);
gap: 28px;
}
.browse-sidebar {
position: sticky;
top: var(--browse-sticky-top);
display: flex;
flex-direction: column;
gap: var(--space-3);
padding-top: 4px;
padding-right: 16px;
border-right: 1px solid var(--line);
max-height: calc(100vh - var(--browse-sticky-top) - var(--space-4));
overflow-y: auto;
scrollbar-width: thin;
}
.sidebar-section {
display: flex;
flex-direction: column;
gap: 0;
border: none;
padding: 0;
margin: 0;
}
.sidebar-section + .sidebar-section {
margin-top: var(--space-3);
}
.sidebar-title {
font-size: 0.68rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--ink-soft);
opacity: 0.78;
padding: 2px 0 1px;
}
.sidebar-option {
all: unset;
display: flex;
align-items: center;
gap: var(--space-2);
padding: 5px 0;
font-size: var(--fs-sm);
font-weight: 500;
line-height: 1.25;
color: color-mix(in srgb, var(--ink-soft) 82%, var(--ink));
cursor: pointer;
min-height: 28px;
}
.sidebar-option:hover {
color: var(--ink);
}
.sidebar-option:focus-visible {
color: var(--ink);
outline: 2px solid color-mix(in srgb, var(--ink) 35%, transparent);
outline-offset: 2px;
}
.sidebar-option:disabled {
cursor: default;
opacity: 0.62;
}
.sidebar-option.is-active {
color: var(--accent);
font-weight: 600;
}
.sidebar-option-icon {
display: flex;
align-items: center;
color: var(--ink-soft);
opacity: 0.6;
}
.sidebar-option.is-active .sidebar-option-icon {
color: var(--accent);
opacity: 1;
}
.sidebar-category {
display: flex;
flex-direction: column;
min-width: 0;
}
.sidebar-category-topics {
display: flex;
flex-wrap: wrap;
gap: 5px;
padding: 1px 0 8px 23px;
}
.sidebar-topic-chip {
all: unset;
box-sizing: border-box;
max-width: 100%;
padding: 3px 6px;
border: 1px solid color-mix(in srgb, var(--line) 84%, transparent);
border-radius: var(--r-pill);
background: color-mix(in srgb, var(--surface-muted) 72%, transparent);
color: var(--ink-soft);
cursor: pointer;
font-family: var(--font-mono);
font-size: 0.66rem;
font-weight: 550;
line-height: 1.25;
overflow-wrap: anywhere;
}
.sidebar-topic-chip:hover {
border-color: color-mix(in srgb, var(--ink-soft) 40%, var(--line));
color: var(--ink);
}
.sidebar-topic-chip.is-active {
border-color: color-mix(in srgb, var(--accent) 55%, var(--line));
background: color-mix(in srgb, var(--accent) 12%, transparent);
color: var(--accent);
font-weight: 650;
}
.sidebar-checkbox {
display: flex;
align-items: center;
gap: var(--space-2);
padding: 5px 0;
font-size: var(--fs-sm);
line-height: 1.25;
color: var(--ink-soft);
cursor: pointer;
min-height: 28px;
}
.sidebar-checkbox:hover {
color: var(--ink);
}
.sidebar-checkbox input[type="checkbox"] {
accent-color: var(--accent);
}
@media (min-width: 1081px) {
.browse-category-select-responsive {
display: none;
}
}
@media (max-width: 1080px) {
.browse-layout-with-sidebar {
grid-template-columns: minmax(0, 1fr);
gap: 0;
}
.browse-category-sidebar {
display: none;
}
}
.browse-results {
min-width: 0;
display: flex;
flex-direction: column;
gap: 12px;
}
.browse-results-toolbar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
}
.browse-results-actions {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 12px;
flex-wrap: wrap;
}
.browse-results-count {
display: flex;
align-items: center;
gap: var(--space-2);
font-size: var(--fs-sm);
color: var(--ink-soft);
}
.browse-clear-btn {
all: unset;
font-size: var(--fs-xs);
color: var(--ink-soft);
cursor: pointer;
text-decoration: underline;
}
.browse-clear-btn:hover {
text-decoration: underline;
}
.browse-toolbar-checkbox {
display: inline-flex;
align-items: center;
gap: var(--space-2);
min-height: 30px;
color: var(--ink-soft);
cursor: pointer;
font-size: var(--fs-sm);
}
.browse-toolbar-checkbox:hover {
color: var(--ink);
}
.browse-toolbar-checkbox input[type="checkbox"] {
accent-color: var(--accent);
}
@media (max-width: 760px) {
.browse-page .skill-list-item,
.browse-page .skill-list-item-has-creator,
.browse-page .skill-list-item-with-taxonomy {
grid-template-columns: minmax(0, 1fr) auto;
gap: 12px;
padding: 10px 8px;
}
.browse-page .browse-list-head {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 12px;
padding: 0 8px 8px;
margin-bottom: 0;
}
.browse-page .browse-list-head-icon-spacer,
.browse-page .browse-list-head-label:nth-of-type(3) {
display: none;
}
.browse-page .browse-list-head-label:nth-of-type(2) {
grid-column: 1;
}
.browse-page .browse-list-head-stat {
grid-column: 2;
justify-self: end;
}
.browse-page .skill-list-item > .marketplace-icon {
display: none;
}
.browse-page .browse-results-skeleton-icon {
display: none;
}
.browse-page .skill-list-item-body {
grid-column: 1;
max-width: none;
gap: 4px;
overflow: hidden;
}
.browse-page .skill-list-item-main {
flex-wrap: nowrap;
gap: 6px 10px;
min-width: 0;
overflow: hidden;
}
.browse-page .skill-list-item-name,
.browse-page .skill-list-item-skill .skill-list-item-owner,
.browse-page .skill-list-item-owner {
min-width: 0;
overflow: hidden;
flex-basis: auto;
text-overflow: ellipsis;
}
.browse-page .skill-list-item-taxonomy {
display: none;
}
.browse-page .skill-list-item-summary {
display: -webkit-box;
-webkit-line-clamp: 1;
}
.browse-page .skill-list-item-meta {
grid-column: 2;
justify-content: flex-end;
align-self: center;
gap: 10px;
min-width: 0;
max-width: none;
margin-top: 0;
font-size: 12px;
text-align: right;
flex-wrap: nowrap;
}
.browse-page .skill-list-item-meta-item.is-updated {
display: none;
}
.browse-page .browse-results-skeleton-updated {
display: none;
}
.skill-list-item-summary {
-webkit-line-clamp: 2;
}
:is(.skill-detail-page, .plugin-detail-page) .detail-mobile-tabs.tab-card {
gap: 0;
overflow: hidden;
border: var(--detail-mobile-surface-border);
border-radius: var(--detail-mobile-surface-radius);
background: var(--detail-mobile-surface-bg);
}
:is(.skill-detail-page, .plugin-detail-page) .tab-card {
overflow: visible;
}
:is(.skill-detail-page, .plugin-detail-page) .detail-mobile-tabs .tab-header {
gap: 16px;
padding: 0 var(--detail-mobile-surface-padding);
overflow-x: auto;
background: transparent;
}
:is(.skill-detail-page, .plugin-detail-page) .tab-header {
gap: 16px;
padding: 0;
overflow-x: auto;
}
:is(.skill-detail-page, .plugin-detail-page) .tab-button {
flex: 0 0 auto;
justify-content: center;
}
:is(.skill-detail-page, .plugin-detail-page) .detail-mobile-tabs .tab-body {
gap: 16px;
padding: var(--detail-mobile-surface-padding);
border: 0;
border-radius: 0;
background: transparent;
}
.plugin-detail-page
.detail-mobile-master-panel-content
.detail-mobile-tabs
.tab-body.skill-readme-body {
padding-top: calc(var(--detail-mobile-surface-padding) + 2px);
}
:is(.skill-detail-page, .plugin-detail-page) .tab-body {
padding: 18px 14px;
}
.browse-page {
padding: 16px 16px 40px;
--browse-sticky-top: calc(76px + var(--space-4));
}
.browse-page-search {
height: 44px;
}
.browse-search-input {
font-size: 1rem;
}
.browse-controls {
gap: 16px;
margin-bottom: 24px;
}
.browse-controls-row {
flex-wrap: wrap;
align-items: center;
gap: 14px 12px;
}
.browse-tabs {
order: 4;
width: 100%;
justify-content: space-between;
gap: 16px;
}
.browse-tab {
flex: 1 1 0;
justify-content: center;
min-width: max-content;
min-height: 44px;
padding: 0;
text-align: center;
}
.browse-sort-select {
order: 1;
max-width: calc(100% - 56px);
}
.browse-actions {
display: contents;
}
.browse-search-trigger {
order: 2;
width: 44px;
height: 44px;
margin-left: auto;
}
.browse-search-control {
width: 100%;
min-height: 44px;
flex: 1 1 100%;
}
.browse-category-select {
order: 3;
flex: 1 1 100%;
width: 100%;
max-width: none;
}
.browse-category-trigger {
width: 100%;
min-height: 48px;
justify-content: space-between;
padding: 0 16px;
border-radius: 18px;
}
.browse-controls-divider {
display: none;
}
.browse-results-toolbar {
flex-wrap: wrap;
gap: 8px;
}
.browse-view-btn {
width: 38px;
height: 38px;
}
.browse-view-toggle {
display: none;
}
.publisher-card-highlight {
min-height: 0;
}
.publisher-card-highlight .publisher-card-featured-items {
display: none;
}
.browse-layout {
grid-template-columns: 1fr;
}
.browse-sidebar {
display: none;
position: static;
max-height: none;
border-right: none;
border-bottom: 1px solid var(--line);
padding-top: 0;
padding-right: 0;
padding-bottom: 16px;
flex-direction: column;
gap: 8px;
}
.browse-layout.sidebar-open .browse-sidebar {
display: flex;
}
.browse-sidebar-toggle {
display: inline-flex;
}
.browse-page-header {
justify-content: flex-start;
flex-wrap: wrap;
}
.browse-page-header .browse-sidebar-toggle {
order: -1;
margin-right: auto;
}
.sidebar-section {
width: 100%;
flex-direction: column;
gap: 0;
}
.sidebar-title {
width: 100%;
}
.sidebar-option,
.sidebar-checkbox {
box-sizing: border-box;
width: 100%;
padding: 8px 0;
}
}
/* ===== Detail Page Layout — Full Width ===== */
.detail-content-full {
min-width: 0;
display: flex;
flex-direction: column;
gap: var(--space-4);
overflow-x: hidden;
overflow-wrap: break-word;
word-wrap: break-word;
}
/* Horizontal Metadata Bar */
.detail-meta-bar {
display: flex;
flex-direction: column;
gap: var(--space-3);
padding: var(--space-4);
background: var(--surface);
border: 1px solid var(--line);
border-radius: var(--r-md);
overflow: hidden;
overflow-wrap: break-word;
word-wrap: break-word;
}
.meta-bar-stats {
display: flex;
flex-wrap: wrap;
gap: var(--space-4);
}
.meta-stat {
display: inline-flex;
align-items: center;
gap: 6px;
color: var(--ink-soft);
font-size: var(--fs-sm);
}
.meta-stat-value {
font-weight: 600;
color: var(--ink);
}
.meta-stat-label {
color: var(--ink-soft);
}
.meta-bar-details {
display: flex;
flex-wrap: wrap;
gap: var(--space-3);
padding-top: var(--space-3);
border-top: 1px solid var(--line);
min-width: 0;
}
.meta-detail {
display: inline-flex;
align-items: center;
gap: 6px;
font-size: var(--fs-xs);
color: var(--ink-soft);
min-width: 0;
overflow-wrap: anywhere;
}
.meta-bar-footer {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: var(--space-3);
padding-top: var(--space-3);
border-top: 1px solid var(--line);
min-width: 0;
}
.meta-bar-publisher {
flex-shrink: 0;
}
.meta-bar-tags {
display: flex;
flex-wrap: wrap;
gap: 6px;
flex: 1;
min-width: 0;
}
.plugin-detail-code-block {
margin: 0;
white-space: pre-wrap;
overflow-wrap: anywhere;
word-break: break-word;
overflow-x: hidden;
}
.meta-bar-footer > .btn {
margin-left: auto;
}
@media (min-width: 640px) {
.detail-meta-bar {
flex-direction: row;
flex-wrap: wrap;
align-items: center;
gap: var(--space-4);
}
.meta-bar-stats {
flex: 0 0 auto;
padding-right: var(--space-4);
border-right: 1px solid var(--line);
}
.meta-bar-details {
flex: 1;
padding-top: 0;
border-top: none;
}
.meta-bar-footer {
flex: 0 0 100%;
padding-top: var(--space-3);
border-top: 1px solid var(--line);
}
}
@media (min-width: 900px) {
.detail-meta-bar {
flex-wrap: nowrap;
}
.meta-bar-footer {
flex: 0 0 auto;
padding-top: 0;
padding-left: var(--space-4);
border-top: none;
border-left: 1px solid var(--line);
}
}
/* ===== Unified Search Page ===== */
.search-page-form {
display: flex;
gap: var(--space-2);
max-width: 640px;
margin-bottom: var(--space-5);
}
.search-page-field {
padding-right: var(--space-2);
}
.search-clear-button {
all: unset;
display: inline-flex;
align-items: center;
justify-content: center;
width: 26px;
height: 26px;
border-radius: var(--r-sm);
color: var(--ink-soft);
cursor: pointer;
transition:
color var(--oc-duration-fast) var(--oc-ease-out),
background-color var(--oc-duration-fast) var(--oc-ease-out);
}
.search-clear-button:hover {
background: var(--surface-muted);
color: var(--ink);
}
.search-clear-button:focus-visible {
outline: 2px solid var(--input-focus-border);
outline-offset: 2px;
}
.search-tabs {
display: flex;
gap: 0;
margin-bottom: var(--space-4);
border-bottom: 1px solid var(--line);
}
.search-tab {
all: unset;
display: inline-flex;
align-items: center;
gap: var(--space-2);
padding: var(--space-2) var(--space-4);
font-size: var(--fs-sm);
color: var(--ink-soft);
border-bottom: 2px solid transparent;
margin-bottom: -1px;
cursor: pointer;
}
.search-tab:hover {
color: var(--ink);
}
.search-tab.is-active {
color: var(--ink);
font-weight: 600;
border-bottom-color: var(--ink);
}
.search-tab-count {
font-size: var(--fs-xs);
font-weight: 600;
color: var(--ink-soft);
}
.search-results-sections {
display: grid;
gap: var(--space-5);
}
.search-results-section {
display: grid;
gap: var(--space-3);
}
.search-results-section-header {
display: flex;
align-items: baseline;
gap: var(--space-2);
}
.search-results-section-title {
margin: 0;
font-size: var(--fs-sm);
font-weight: 700;
color: var(--ink);
}
.search-results-section-count {
font-size: var(--fs-xs);
font-weight: 600;
color: var(--ink-soft);
}
.search-empty-state {
display: grid;
justify-items: center;
gap: var(--space-3);
padding: var(--space-8);
text-align: center;
}
.search-empty-title {
margin: 0;
color: var(--ink-soft);
}
.search-empty-actions {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: var(--space-2);
}
.search-empty-action {
min-height: 34px;
border: 1px solid var(--line);
border-radius: var(--radius-pill);
background: var(--surface);
color: var(--ink);
cursor: pointer;
font-size: var(--fs-xs);
font-weight: 700;
padding: 0 var(--space-3);
}
.search-empty-action:hover {
border-color: color-mix(in srgb, var(--ink) 18%, var(--line));
background: var(--oc-surface-interactive-hover);
}
a.search-empty-action {
display: inline-flex;
align-items: center;
text-decoration: none;
}
.search-load-more {
display: flex;
justify-content: center;
margin-top: var(--space-4);
}
.search-load-more-button {
min-height: 38px;
border: 1px solid var(--line);
border-radius: var(--radius-pill);
background: var(--surface);
color: var(--ink);
cursor: pointer;
font-size: var(--fs-sm);
font-weight: 700;
padding: 0 var(--space-4);
transition:
background-color 0.15s ease,
border-color 0.15s ease;
}
.search-load-more-button:hover {
border-color: color-mix(in srgb, var(--ink) 18%, var(--line));
background: var(--oc-surface-interactive-hover);
}
@media (max-width: 760px) {
.search-page-form {
flex-direction: column;
}
}
/* ===== Footer Grid ===== */
.footer-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: var(--space-3);
padding: var(--space-3) 0 var(--space-2);
text-align: center;
}
.footer-col {
display: flex;
flex-direction: column;
align-items: center;
gap: var(--space-1);
}
.footer-col-title {
font-size: var(--fs-xs);
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.05em;
color: var(--ink-soft);
margin: 0 0 2px;
}
.footer-col-toggle {
appearance: none;
border: 0;
background: transparent;
color: inherit;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 6px;
padding: 0;
font: inherit;
letter-spacing: inherit;
text-transform: inherit;
cursor: default;
}
.footer-col-toggle-icon {
display: none;
transition: transform 0.16s ease;
}
.footer-col-links {
display: flex;
flex-direction: column;
align-items: center;
gap: var(--space-1);
}
.footer-col-links a,
.footer-col-links span {
font-size: var(--fs-sm);
color: var(--ink-soft);
}
.footer-col-links a:hover {
color: var(--ink);
}
.footer-bottom {
border-top: 1px solid var(--line);
padding: var(--space-2) 0;
text-align: center;
font-size: var(--fs-sm);
letter-spacing: 0.015em;
color: var(--ink-soft);
}
.footer-bottom a {
color: var(--ink-soft);
text-decoration: none;
border-bottom: 1px solid color-mix(in srgb, var(--ink-soft) 30%, transparent);
transition:
color 0.15s ease,
border-color 0.15s ease;
}
.footer-bottom a:hover {
color: inherit;
border-color: currentColor;
}
@media (max-width: 760px) {
.footer-grid {
grid-template-columns: 1fr;
gap: 0;
padding: 0;
text-align: left;
}
.footer-col {
align-items: stretch;
gap: 0;
border-top: 1px solid var(--line);
}
.footer-col:first-child {
border-top: 0;
}
.footer-col-title {
margin: 0;
}
.footer-col-toggle {
width: 100%;
justify-content: space-between;
padding: 14px 0;
cursor: pointer;
}
.footer-col-toggle:focus-visible {
outline: 2px solid var(--accent);
outline-offset: 2px;
}
.footer-col-toggle-icon {
display: block;
flex: 0 0 auto;
}
.footer-col-toggle[aria-expanded="true"] .footer-col-toggle-icon {
transform: rotate(180deg);
}
.footer-col-links {
display: none;
align-items: flex-start;
gap: 10px;
padding: 0 0 14px;
}
.footer-col-links[data-open="true"] {
display: flex;
}
}
@media (max-width: 520px) {
.footer-grid {
grid-template-columns: 1fr;
}
}
.profile-header {
display: flex;
align-items: center;
gap: var(--space-4);
margin-bottom: var(--space-5);
padding-bottom: var(--space-5);
border-bottom: 1px solid var(--line);
}
.profile-avatar-lg {
width: 72px;
height: 72px;
border-radius: 50%;
background: var(--surface-muted);
border: 1px solid var(--line);
display: grid;
place-items: center;
overflow: hidden;
flex-shrink: 0;
}
.profile-avatar-lg img {
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 50%;
}
.profile-avatar-lg span {
font-size: 1.8rem;
font-weight: 700;
color: var(--accent);
}
.profile-info {
display: flex;
flex-direction: column;
gap: 3px;
}
.profile-display-name {
font-family: var(--font-mono);
font-size: var(--fs-xl);
font-weight: 600;
}
.profile-handle {
font-size: 0.88rem;
color: var(--ink-soft);
font-family: var(--font-mono);
}
.profile-stats-row {
display: flex;
gap: 16px;
margin-top: 6px;
}
.profile-stat {
font-size: 0.82rem;
color: var(--ink-soft);
font-weight: 500;
}
.about-page {
display: grid;
gap: 24px;
}
.about-bento {
display: grid;
grid-template-columns: 1fr;
gap: var(--space-5);
}
.about-panel {
display: grid;
gap: var(--space-4);
padding: var(--space-5);
border: 1px solid var(--line);
border-radius: var(--r-lg);
background:
linear-gradient(180deg, color-mix(in srgb, var(--surface) 88%, transparent), transparent),
color-mix(in srgb, var(--surface-muted) 58%, transparent);
}
.about-panel-hero,
.about-panel-enforcement,
.about-panel-actions {
align-content: start;
}
.about-panel-copy {
margin: 0;
color: var(--ink-soft);
line-height: 1.65;
}
.about-hero-copy {
display: flex;
flex-direction: column;
gap: var(--space-3);
}
.about-title {
margin: 0;
font-family: var(--font-display);
font-size: 3.5rem;
line-height: 0.98;
letter-spacing: 0;
}
.about-lead {
margin: 14px 0 0;
max-width: 62ch;
color: var(--ink-soft);
line-height: 1.7;
font-size: 1rem;
}
.about-callout {
display: grid;
gap: 12px;
padding: 18px;
border-radius: var(--r-lg);
border: 1px solid color-mix(in srgb, var(--line) 84%, transparent);
background: color-mix(in srgb, var(--surface) 80%, transparent);
}
.about-callout p {
margin: 0;
color: var(--ink-soft);
line-height: 1.6;
}
.about-callout-label {
font-size: 0.72rem;
font-family: var(--font-mono);
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--ink-soft);
}
.about-panel .home-section-title {
font-size: var(--fs-lg);
font-weight: 600;
color: var(--ink);
}
.about-categories-header {
justify-items: center;
text-align: center;
margin-bottom: 10px;
}
.about-categories-header .home-section-title {
max-width: 18ch;
font-size: 2.35rem;
line-height: 1.02;
letter-spacing: 0;
}
.about-grid,
.about-patterns {
display: grid;
grid-template-columns: 1fr;
gap: 20px;
}
.about-panel-categories {
overflow: visible;
}
.about-panel-categories .about-grid {
grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}
.about-rule-card {
display: flex;
flex-direction: column;
gap: 16px;
min-height: 220px;
padding: 28px 26px 24px;
border: 1px solid var(--line);
border-radius: var(--r-lg);
background: color-mix(in srgb, var(--surface) 88%, transparent);
transition:
border-color 0.25s,
box-shadow 0.3s,
transform 0.25s,
background 0.25s;
}
.about-rule-card:hover {
border-color: var(--border-ui-hover);
transform: translateY(-3px);
box-shadow:
0 8px 24px rgba(0, 0, 0, 0.2),
0 0 0 1px rgba(220, 38, 38, 0.06);
background: color-mix(in srgb, var(--surface) 95%, transparent);
}
.about-rule-card-header {
display: flex;
align-items: center;
gap: 14px;
}
.about-rule-card-icon {
width: 36px;
height: 36px;
border-radius: var(--r-sm);
display: flex;
align-items: center;
justify-content: center;
background: var(--accent-subtle);
border: 1.5px solid color-mix(in srgb, var(--status-error-fg) 25%, var(--line));
flex-shrink: 0;
transition:
background 0.2s,
box-shadow 0.2s;
}
.about-rule-card-icon svg {
width: 18px;
height: 18px;
color: var(--accent);
}
.about-rule-card:hover .about-rule-card-icon {
background: var(--status-error-bg);
box-shadow: 0 0 14px color-mix(in srgb, var(--status-error-fg) 8%, transparent);
}
.about-rule-card :is(h2, h3) {
margin: 0;
font-size: 1.22rem;
font-family: var(--font-display);
font-weight: 600;
line-height: 1.08;
letter-spacing: 0;
color: var(--ink);
}
.about-rule-card p {
margin: 0;
flex: 1;
color: color-mix(in srgb, var(--ink) 75%, transparent);
line-height: 1.72;
font-size: 0.98rem;
max-width: 30ch;
}
.about-inline-code {
background: var(--surface-muted);
padding: 2px 6px;
border-radius: var(--r-xs);
font-size: 0.88em;
font-family: var(--font-mono);
}
.about-pattern {
margin: 0;
display: grid;
grid-template-columns: auto 1fr;
align-items: start;
gap: 12px;
padding: 14px;
border: 1px solid var(--line);
border-radius: var(--r-md);
background: color-mix(in srgb, var(--surface) 82%, transparent);
color: var(--ink-soft);
line-height: 1.6;
font-size: var(--fs-sm);
}
.about-pattern svg {
width: 16px;
height: 16px;
margin-top: 3px;
flex-shrink: 0;
}
.about-pattern-accepted svg {
color: var(--status-success-fg);
}
.about-pattern-rejected svg {
color: var(--status-error-fg);
}
.about-pattern-lanes {
display: grid;
grid-template-columns: 1fr;
gap: var(--space-4);
}
.about-patterns-header {
display: grid;
gap: var(--space-3);
max-width: 76ch;
}
.about-pattern-lane {
min-height: 100%;
padding: var(--space-5);
border-radius: var(--r-lg);
background: color-mix(in srgb, var(--surface) 88%, transparent);
}
.about-pattern-lane-header {
flex-direction: row;
align-items: flex-start;
gap: 14px;
}
.about-pattern-lane-header > div:last-child {
display: grid;
gap: 10px;
}
.about-pattern-lane-accepted {
border-color: color-mix(in srgb, var(--status-success-fg) 30%, var(--line));
}
.about-pattern-lane-accepted .about-rule-card-icon {
background: var(--status-success-bg);
border-color: color-mix(in srgb, var(--status-success-fg) 35%, var(--line));
}
.about-pattern-lane-accepted .about-rule-card-icon svg {
color: var(--status-success-fg);
}
.about-pattern-lane-rejected {
border-color: color-mix(in srgb, var(--status-error-fg) 30%, var(--line));
}
.about-pattern-lane-rejected .about-rule-card-icon {
background: var(--status-error-bg);
border-color: color-mix(in srgb, var(--status-error-fg) 35%, var(--line));
}
.about-pattern-lane-rejected .about-rule-card-icon svg {
color: var(--status-error-fg);
}
.about-pattern-lane .about-patterns {
grid-template-columns: 1fr;
gap: 12px;
}
@media (min-width: 641px) {
.about-bento {
grid-template-columns: repeat(6, minmax(0, 1fr));
}
.about-panel-hero {
grid-column: span 4;
}
.about-panel-callout {
grid-column: span 2;
}
.about-panel-categories,
.about-panel-patterns {
grid-column: 1 / -1;
}
.about-panel-enforcement,
.about-panel-actions {
grid-column: span 3;
}
.about-grid,
.about-panel-categories .about-grid {
grid-template-columns: repeat(2, 1fr);
gap: 22px;
}
.about-patterns {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (min-width: 1024px) {
.about-bento {
grid-template-columns: repeat(12, minmax(0, 1fr));
}
.about-panel-hero {
grid-column: span 8;
}
.about-panel-callout {
grid-column: span 4;
}
.about-panel-enforcement {
grid-column: span 7;
}
.about-panel-actions {
grid-column: span 5;
}
.about-grid,
.about-panel-categories .about-grid {
grid-template-columns: repeat(3, 1fr);
gap: 24px;
}
.about-patterns {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.about-pattern-lanes {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 860px) {
.publisher-profile-hero {
grid-template-columns: 1fr;
gap: 24px;
}
.publisher-profile-hero-stats {
justify-content: flex-start;
flex-wrap: wrap;
}
.publisher-profile-stat + .publisher-profile-stat {
padding-left: 0;
border-left: 0;
}
.publisher-profile-layout {
grid-template-columns: 1fr;
gap: 24px;
}
.publisher-profile-section-header {
align-items: flex-start;
flex-direction: column;
gap: 12px;
}
}
@media (max-width: 640px) {
.publisher-profile-hero,
.publisher-profile-layout {
grid-template-columns: 1fr;
}
.publisher-profile-hero {
align-items: start;
padding: 26px var(--space-4);
}
.publisher-profile-hero-main {
align-items: start;
}
.publisher-profile-avatar .marketplace-icon-md {
width: 64px;
height: 64px;
}
.publisher-profile-avatar .marketplace-icon-md .marketplace-icon-glyph {
width: 30px;
height: 30px;
}
.publisher-profile-title-row {
align-items: flex-start;
}
.publisher-profile-title-text {
white-space: normal;
}
.publisher-profile-hero-stats {
justify-content: flex-start;
flex-wrap: wrap;
}
.publisher-profile-section-header {
align-items: flex-start;
flex-direction: column;
}
.publisher-published-row {
grid-template-columns: auto minmax(0, 1fr);
}
.publisher-published-row-stats {
grid-column: 2;
justify-self: start;
margin-top: 2px;
flex-wrap: wrap;
}
.about-bento,
.about-grid,
.about-patterns,
.about-pattern-lanes,
.about-panel-categories .about-grid {
grid-template-columns: 1fr;
}
.about-title {
font-size: 2.4rem;
}
}
@media (max-width: 520px) {
.profile-header {
flex-direction: column;
text-align: center;
}
.profile-stats-row {
justify-content: center;
}
}
/* Empty states */
.empty-state {
text-align: center;
padding: var(--space-7) var(--space-5);
border: 1px solid var(--line);
border-radius: var(--r-sm);
}
.empty-state-icon {
display: block;
margin: 0 auto var(--space-3);
color: var(--ink-soft);
}
.empty-state-title {
font-weight: 600;
font-size: var(--fs-md);
margin-bottom: var(--space-1);
}
.empty-state-body {
color: var(--ink-soft);
font-size: var(--fs-sm);
margin-bottom: var(--space-4);
margin-top: 0;
}
/* Dark mode: only where CSS variables don't suffice */
.mobile-nav-meta {
margin-left: auto;
font-size: 0.75rem;
color: var(--ink-soft);
}
@media (max-width: 1100px) and (min-width: 761px) {
.navbar-top {
grid-template-columns: max-content max-content minmax(180px, 1fr) auto;
gap: 10px;
}
.brand-name-responsive {
display: none;
}
.navbar-top-links {
gap: 0;
}
.navbar-top-links .navbar-tab {
padding: 7px 8px;
}
.github-sign-in-button,
.auth-loading-placeholder {
width: 92px !important;
}
.sign-in-full-copy {
display: none;
}
.sign-in-compact-copy {
display: inline-block;
}
}
/* ═══════════════════════════════════════════════════════════════════════
HOME V2 — Redesigned homepage (mockup-14-carousel)
All classes prefixed home-v2- to avoid collisions with existing styles.
═══════════════════════════════════════════════════════════════════════ */
/* --- Variables (home v2 shell: main + proof + FAQ + footer share tokens) --- */
.app-shell:has(.home-v2-main) {
--hv2-bg: #060608;
--hv2-surface: rgba(255, 255, 255, 0.02);
--hv2-surface-hover: rgba(255, 255, 255, 0.045);
--hv2-border: rgba(255, 255, 255, 0.07);
--hv2-border-hover: rgba(255, 255, 255, 0.14);
--hv2-border-strong: rgba(255, 255, 255, 0.1);
--hv2-text: #eaeaea;
--hv2-text-secondary: #b2b2b8;
--hv2-text-tertiary: #82828a;
--hv2-accent: #d4453a;
--hv2-accent-fill: rgba(212, 69, 58, 0.1);
--hv2-accent-fill-hover: rgba(212, 69, 58, 0.16);
--hv2-accent-glow: rgba(212, 69, 58, 0.06);
--hv2-accent-border: rgba(212, 69, 58, 0.3);
--hv2-accent-border-hover: rgba(212, 69, 58, 0.5);
--hv2-green: #3dab5e;
--hv2-green-fill: rgba(61, 171, 94, 0.08);
--hv2-green-border: rgba(61, 171, 94, 0.25);
--hv2-green-border-hover: rgba(61, 171, 94, 0.4);
--hv2-green-fill-hover: rgba(61, 171, 94, 0.14);
--home-v2-apps-icon-color: #fff;
--home-v2-apps-icon-image-filter: brightness(0) invert(1);
--hv2-radius-sm: 8px;
--hv2-radius-md: 12px;
--hv2-radius-lg: 16px;
--hv2-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
--hv2-duration-fast: 160ms;
--hv2-duration-ui: 180ms;
}
.home-v2-main {
position: relative;
isolation: isolate;
max-width: var(--page-max);
margin-inline: auto;
width: 100%;
min-width: 0;
overflow-x: visible;
background: var(--hv2-bg);
}
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) {
--home-v2-apps-icon-color: #000;
--home-v2-apps-icon-image-filter: brightness(0);
}
@media (prefers-color-scheme: light) {
[data-theme-family="claw"][data-theme-mode="system"] .app-shell:has(.home-v2-main) {
--home-v2-apps-icon-color: #000;
--home-v2-apps-icon-image-filter: brightness(0);
}
}
/* Ambient glow spans hero + listing so the page base color stays even */
[data-theme-resolved="dark"] .home-v2-main::before {
content: "";
position: absolute;
inset: 0;
z-index: 0;
pointer-events: none;
background:
radial-gradient(ellipse 90% 55% at 50% -8%, rgba(212, 69, 58, 0.07) 0%, transparent 58%),
radial-gradient(ellipse 70% 45% at 50% 18%, rgba(212, 69, 58, 0.04) 0%, transparent 62%);
}
.home-v2-fold-fade {
position: fixed;
left: 0;
right: 0;
bottom: 0;
z-index: 4;
height: clamp(72px, 14vh, 140px);
pointer-events: none;
background: linear-gradient(
to top,
var(--hv2-bg) 0%,
color-mix(in srgb, var(--hv2-bg) 88%, transparent) 42%,
transparent 100%
);
opacity: 1;
transition: opacity 0.22s var(--hv2-ease-out);
}
.home-v2-fold-fade.is-hidden {
opacity: 0;
}
@media (prefers-reduced-motion: reduce) {
.home-v2-fold-fade {
transition: none;
}
}
.home-v2-hero,
.home-v2-listing {
position: relative;
z-index: 1;
}
/* Home hero decor bleeds up behind the floating calm header */
.app-shell:has(.home-v2-main) main.home-v2-main {
margin-top: -64px;
/* Last section is the full-bleed CLI band; let it meet the footer flush. */
padding-bottom: 0;
}
.app-shell:has(.home-v2-main) .home-v2-hero {
padding-top: calc(64px + 64px);
}
.app-shell:has(.home-v2-main) .home-v2-hero-bg {
top: -112px;
bottom: -120px;
left: 50%;
width: 100vw;
margin-left: -50vw;
-webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 72%, transparent 100%);
mask-image: linear-gradient(to bottom, #000 0%, #000 72%, transparent 100%);
}
/* ═══ HERO ═══ */
.home-v2-hero {
position: relative;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
padding: 64px 48px 48px;
overflow: visible;
}
.home-v2-hero > *:not(.home-v2-hero-bg) {
position: relative;
z-index: 2;
}
/* Background layers */
.home-v2-hero-bg {
position: absolute;
inset: 0;
pointer-events: none;
overflow: hidden;
}
/* Headline */
.home-v2-headline {
font-family: "Inter", sans-serif;
font-weight: 700;
font-size: clamp(36px, 4.25vw, 54px);
line-height: 1.12;
letter-spacing: -0.035em;
margin-bottom: 14px;
max-width: 1060px;
width: 100%;
white-space: nowrap;
display: flex;
justify-content: center;
text-align: center;
color: var(--hv2-text);
cursor: default;
user-select: none;
}
.home-v2-headline-clear {
max-width: 960px;
white-space: normal;
}
.home-v2-headline-inner {
display: grid;
width: 100%;
grid-template-columns: minmax(0, 1fr) auto auto auto minmax(0, 1fr);
align-items: center;
}
.home-v2-headline-inner > :first-child {
justify-self: end;
}
.home-v2-headline-inner > :last-child {
justify-self: start;
}
.home-v2-action-word {
font-family: "JetBrains Mono", monospace;
font-weight: 800;
color: var(--hv2-accent);
}
.home-v2-sep {
display: inline-block;
width: 5px;
height: 5px;
border: 1.5px solid var(--hv2-accent);
border-radius: 50%;
margin: 0 12px;
vertical-align: middle;
opacity: 0.35;
background: transparent;
}
.home-v2-cycle-wrap {
display: inline-block;
position: relative;
height: 1.15em;
overflow: hidden;
vertical-align: bottom;
min-width: 280px;
text-align: center;
}
.home-v2-cycle-track {
display: flex;
flex-direction: column;
animation: home-v2-wordCycle 16s ease-in-out infinite;
}
.home-v2-cycle-word {
font-family: "JetBrains Mono", monospace;
font-weight: 800;
color: var(--hv2-accent);
height: 1.15em;
display: flex;
align-items: center;
justify-content: left;
flex-shrink: 0;
white-space: nowrap;
}
@keyframes home-v2-wordCycle {
0%,
18% {
transform: translateY(0);
}
20%,
38% {
transform: translateY(-20%);
}
40%,
58% {
transform: translateY(-40%);
}
60%,
78% {
transform: translateY(-60%);
}
80%,
98% {
transform: translateY(-80%);
}
100% {
transform: translateY(-80%);
}
}
/* Slot machine easter egg */
.home-v2-headline-slots {
min-height: 1.15em;
position: relative;
}
.home-v2-slot-reel {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 180px;
text-align: center;
font-family: "JetBrains Mono", monospace;
font-weight: 800;
color: var(--hv2-accent);
position: relative;
}
.home-v2-slot-reel.spinning .home-v2-slot-word {
animation: home-v2-slotBlur 0.12s steps(1) infinite;
}
.home-v2-slot-reel:not(.spinning) .home-v2-slot-word {
animation: home-v2-slotLand 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}
@keyframes home-v2-slotBlur {
0% {
filter: blur(0);
opacity: 1;
}
50% {
filter: blur(1px);
opacity: 0.7;
}
100% {
filter: blur(0);
opacity: 1;
}
}
@keyframes home-v2-slotLand {
0% {
transform: translateY(-8px) scale(1.1);
opacity: 0.5;
}
60% {
transform: translateY(2px) scale(0.98);
}
100% {
transform: translateY(0) scale(1);
opacity: 1;
}
}
.home-v2-headline-jackpot {
animation: home-v2-jackpot 0.5s ease-out;
}
@keyframes home-v2-jackpot {
0% {
transform: scale(1);
}
30% {
transform: scale(1.08);
}
60% {
transform: scale(0.97);
}
100% {
transform: scale(1);
}
}
.home-v2-headline-jackpot .home-v2-slot-word {
color: #ffd93d !important;
text-shadow:
0 0 20px rgba(255, 217, 61, 0.6),
0 0 40px rgba(255, 217, 61, 0.3);
}
.home-v2-headline-hack .home-v2-slot-word {
color: #22d3ee !important;
text-shadow:
0 0 24px rgba(34, 211, 238, 0.6),
0 0 48px rgba(6, 182, 212, 0.3),
0 2px 8px rgba(0, 0, 0, 0.4) !important;
}
.home-v2-headline-hack .home-v2-sep {
border-color: #22d3ee;
opacity: 0.8;
box-shadow: 0 0 8px rgba(34, 211, 238, 0.5);
}
.home-v2-hack-lobster {
position: absolute;
top: 50%;
left: 50%;
width: 280px;
height: 280px;
transform: translate(-50%, -50%) scale(0);
opacity: 0;
pointer-events: none;
filter: drop-shadow(0 0 40px rgba(34, 211, 238, 0.5))
drop-shadow(0 0 80px rgba(6, 182, 212, 0.25));
animation: home-v2-lobsterReveal 1.2s 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
z-index: -1;
}
@keyframes home-v2-lobsterReveal {
0% {
transform: translate(-50%, -50%) scale(0) rotate(-30deg);
opacity: 0;
}
50% {
opacity: 0.18;
}
100% {
transform: translate(-50%, -50%) scale(1) rotate(0deg);
opacity: 0.12;
}
}
.home-v2-confetti {
position: fixed;
inset: 0;
z-index: 9999;
pointer-events: none;
}
.home-v2-sub {
color: var(--hv2-text-tertiary);
font-size: 16px;
line-height: 1.5;
margin-bottom: 36px;
max-width: 580px;
font-weight: 400;
}
.home-v2-motto {
display: flex;
flex-direction: column;
align-items: center;
gap: 10px;
margin-bottom: 34px;
}
.home-v2-motto-label {
font-family: "JetBrains Mono", monospace;
font-size: 12px;
font-weight: 600;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--hv2-text-tertiary);
}
.home-v2-headline-motto {
margin-bottom: 0;
font-size: clamp(24px, 2.8vw, 34px);
letter-spacing: -0.03em;
}
/* Search bar */
.home-v2-search-container {
width: 100%;
max-width: 720px;
}
.home-v2-search-bar {
display: flex;
align-items: center;
background: var(--hv2-surface);
border: 1px solid var(--hv2-border-strong);
border-radius: 16px;
padding: 6px 6px 6px 22px;
gap: 12px;
transition:
border-color 0.25s,
box-shadow 0.3s,
background 0.2s;
box-shadow: 0 1px 20px rgba(0, 0, 0, 0.15);
}
.home-v2-search-bar:focus-within {
border-color: var(--hv2-accent-border);
box-shadow:
0 2px 36px rgba(0, 0, 0, 0.2),
0 0 0 3px var(--hv2-accent-glow);
background: rgba(255, 255, 255, 0.025);
}
.home-v2-search-bar .home-v2-search-icon {
flex-shrink: 0;
color: var(--hv2-text-tertiary);
}
.home-v2-search-bar input {
flex: 1;
background: none;
border: none;
outline: none;
color: var(--hv2-text);
font-size: 16px;
font-family: "Inter", sans-serif;
padding: 8px 0;
}
.home-v2-search-bar input::placeholder {
color: var(--hv2-text-tertiary);
}
.home-v2-search-go {
background: var(--hv2-accent-fill);
color: var(--hv2-accent);
border: 1.5px solid var(--hv2-accent-border);
border-radius: 12px;
padding: 13px 30px;
font-size: 15px;
font-weight: 700;
cursor: pointer;
white-space: nowrap;
transition:
background 0.15s,
border-color 0.2s,
box-shadow 0.2s;
display: flex;
align-items: center;
gap: 8px;
flex-shrink: 0;
}
.home-v2-search-go:hover {
background: var(--hv2-accent-fill-hover);
border-color: var(--hv2-accent-border-hover);
box-shadow: 0 0 24px var(--hv2-accent-glow);
}
.home-v2-search-go:active {
transform: scale(0.97);
}
/* Suggestions */
.home-v2-suggestions {
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
margin-top: 16px;
flex-wrap: wrap;
}
.home-v2-suggestion {
display: flex;
align-items: center;
gap: 5px;
color: var(--hv2-text-secondary);
font-size: 13px;
font-weight: 500;
padding: 6px 14px;
border-radius: 100px;
cursor: pointer;
transition:
color 0.15s,
background 0.15s,
border-color 0.15s;
border: 1px solid var(--hv2-border);
background: transparent;
}
.home-v2-suggestion:hover {
color: var(--hv2-text);
background: var(--hv2-surface-hover);
border-color: var(--hv2-border-hover);
}
.home-v2-suggestion svg {
color: var(--hv2-text-tertiary);
}
.home-v2-suggestion:hover svg {
color: var(--hv2-accent);
}
@media (max-width: 760px) {
.home-v2-suggestions {
gap: 6px;
margin-top: 12px;
}
.home-v2-suggestion {
font-size: 12px;
padding: 5px 10px;
gap: 4px;
}
}
/* ═══ CAROUSEL ═══ */
.home-v2-carousel-section {
padding: 48px 0 0;
border-top: 1px solid var(--hv2-border);
position: relative;
}
.home-v2-carousel-header {
display: flex;
align-items: flex-end;
justify-content: space-between;
margin-bottom: 20px;
padding: 0 48px;
gap: 20px;
}
.home-v2-carousel-header h2 {
font-size: 15px;
font-weight: 600;
color: var(--hv2-text-secondary);
letter-spacing: 0.02em;
text-transform: uppercase;
}
.home-v2-section-copy {
display: flex;
flex-direction: column;
gap: 10px;
max-width: 760px;
}
.home-v2-section-eyebrow {
font-family: "JetBrains Mono", monospace;
font-size: 12px;
font-weight: 700;
letter-spacing: 0.1em;
text-transform: uppercase;
color: var(--hv2-accent);
}
.home-v2-section-copy h2 {
font-size: clamp(22px, 2.1vw, 30px);
font-weight: 700;
line-height: 1.08;
letter-spacing: -0.03em;
color: var(--hv2-text);
}
.home-v2-section-copy p {
font-size: 14px;
line-height: 1.6;
color: var(--hv2-text-secondary);
max-width: 60ch;
}
.home-v2-carousel-controls {
display: flex;
gap: 6px;
}
.home-v2-carousel-btn {
background: transparent;
border: 1px solid var(--hv2-border);
border-radius: var(--hv2-radius-sm);
color: var(--hv2-text-tertiary);
width: 34px;
height: 34px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition:
border-color 0.15s,
color 0.15s,
background 0.15s;
}
.home-v2-carousel-btn:hover {
border-color: var(--hv2-border-hover);
color: var(--hv2-text-secondary);
background: var(--hv2-surface);
}
/* Fade edges */
.home-v2-carousel-wrap {
position: relative;
overflow: hidden;
}
.home-v2-carousel-wrap::before,
.home-v2-carousel-wrap::after {
content: "";
position: absolute;
top: 0;
bottom: 0;
width: 80px;
z-index: 3;
pointer-events: none;
}
.home-v2-carousel-wrap::before {
left: 0;
background: linear-gradient(to right, var(--hv2-bg), transparent);
}
.home-v2-carousel-wrap::after {
right: 0;
background: linear-gradient(to left, var(--hv2-bg), transparent);
}
.home-v2-carousel-track {
display: flex;
gap: 16px;
padding: 12px 48px 48px;
animation: home-v2-scroll 46s linear infinite;
width: max-content;
}
.home-v2-carousel-track:hover {
animation-play-state: paused;
}
@keyframes home-v2-scroll {
0% {
transform: translateX(0);
}
100% {
transform: translateX(calc(-50% - 8px));
}
}
/* Carousel cards */
.home-v2-c-card {
background: var(--hv2-surface);
border: 1px solid var(--hv2-border);
border-radius: var(--hv2-radius-lg);
padding: 24px;
min-width: 340px;
max-width: 340px;
flex-shrink: 0;
transition:
border-color 0.25s,
transform 0.25s,
box-shadow 0.3s,
background 0.25s;
cursor: pointer;
display: flex;
flex-direction: column;
text-decoration: none;
color: inherit;
}
.home-v2-c-card:hover {
border-color: var(--hv2-border-hover);
transform: translateY(-3px);
box-shadow: 0 6px 24px rgba(0, 0, 0, 0.22);
background: var(--hv2-surface-hover);
}
.home-v2-c-head {
display: flex;
align-items: center;
gap: 14px;
margin-bottom: 14px;
}
.home-v2-c-icon {
width: 40px;
height: 40px;
border-radius: 10px;
display: flex;
align-items: center;
justify-content: center;
background: var(--hv2-accent-fill);
border: 1.5px solid var(--hv2-accent-border);
flex-shrink: 0;
transition:
background 0.2s,
box-shadow 0.2s;
}
.home-v2-c-card:hover .home-v2-c-icon {
background: var(--hv2-accent-fill-hover);
box-shadow: 0 0 14px var(--hv2-accent-glow);
}
.home-v2-c-icon svg {
color: var(--hv2-accent);
}
.home-v2-c-meta {
flex: 1;
}
.home-v2-c-name {
font-weight: 600;
font-size: 15px;
color: var(--hv2-text);
}
.home-v2-c-by {
font-size: 13px;
color: var(--hv2-text-secondary);
}
.home-v2-c-tag {
display: inline-flex;
align-items: center;
gap: 4px;
font-size: 11px;
font-weight: 500;
color: var(--hv2-text-tertiary);
background: var(--hv2-surface);
border: 1px solid var(--hv2-border);
border-radius: 100px;
padding: 3px 10px 3px 7px;
margin-bottom: 10px;
width: fit-content;
}
.home-v2-c-tag svg {
color: var(--hv2-accent);
}
.home-v2-c-desc {
font-size: 13px;
color: var(--hv2-text-secondary);
line-height: 1.55;
flex: 1;
margin-bottom: 18px;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.home-v2-c-footer {
display: flex;
align-items: center;
justify-content: space-between;
}
.home-v2-c-stats {
display: flex;
gap: 14px;
font-size: 12px;
color: var(--hv2-text-tertiary);
font-weight: 500;
}
.home-v2-c-stats span {
display: flex;
align-items: center;
gap: 3px;
}
.home-v2-c-install {
background: var(--hv2-green-fill);
border: 1.5px solid var(--hv2-green-border);
border-radius: var(--hv2-radius-sm);
padding: 6px 14px;
font-size: 13px;
font-weight: 600;
color: var(--hv2-green);
cursor: pointer;
transition: all 0.15s;
display: flex;
align-items: center;
gap: 5px;
}
.home-v2-c-card:hover .home-v2-c-install {
background: var(--hv2-green-fill-hover);
border-color: var(--hv2-green-border-hover);
}
/* ═══ CATEGORIES ═══ */
.home-v2-categories {
padding: 40px 48px 0;
}
.home-v2-categories-copy {
display: flex;
flex-direction: column;
gap: 10px;
max-width: 720px;
margin: 0 auto 24px;
}
.home-v2-categories-copy h2 {
font-size: clamp(22px, 2vw, 28px);
font-weight: 700;
line-height: 1.1;
letter-spacing: -0.03em;
color: var(--hv2-text);
}
.home-v2-categories-copy p {
font-size: 14px;
line-height: 1.6;
color: var(--hv2-text-secondary);
}
.home-v2-categories-grid {
display: grid;
--home-v2-category-columns: 3;
grid-template-columns: repeat(var(--home-v2-category-columns), minmax(0, 1fr));
max-width: 1200px;
margin: 0 auto;
border-top: 1px solid var(--hv2-border);
}
.home-v2-cat-item {
display: flex;
align-items: center;
gap: 16px;
padding: 28px 24px;
cursor: pointer;
position: relative;
transition: background 0.2s;
text-decoration: none;
color: inherit;
}
.home-v2-cat-item:hover {
background: var(--hv2-surface);
}
.home-v2-cat-item + .home-v2-cat-item::before {
content: "";
position: absolute;
left: 0;
top: 24%;
bottom: 24%;
width: 1px;
background: var(--hv2-border);
}
.home-v2-cat-icon {
width: 44px;
height: 44px;
border-radius: 11px;
display: flex;
align-items: center;
justify-content: center;
background: var(--hv2-accent-fill);
border: 1.5px solid var(--hv2-accent-border);
flex-shrink: 0;
transition:
background 0.2s,
border-color 0.2s,
box-shadow 0.2s;
}
.home-v2-cat-item:hover .home-v2-cat-icon {
background: var(--hv2-accent-fill-hover);
border-color: var(--hv2-accent-border-hover);
box-shadow: 0 0 16px var(--hv2-accent-glow);
}
.home-v2-cat-icon svg {
color: var(--hv2-accent);
}
.home-v2-cat-text {
flex: 1;
}
.home-v2-cat-name {
font-weight: 600;
font-size: 15px;
margin-bottom: 2px;
color: var(--hv2-text);
}
.home-v2-cat-desc {
color: var(--hv2-text-secondary);
font-size: 13px;
}
.home-v2-cat-arrow {
color: var(--hv2-text-secondary);
opacity: 0;
transition:
opacity 0.2s,
transform 0.2s;
}
.home-v2-cat-item:hover .home-v2-cat-arrow {
opacity: 1;
transform: translateX(3px);
}
/* ═══ HOME LISTING (Mobbin-style toolbar) ═══ */
.home-v2-listing {
padding: 0 48px 80px;
max-width: 1296px;
margin: 0 auto;
width: 100%;
}
.home-v2-listing-controls {
display: flex;
flex-direction: column;
gap: 14px;
margin-bottom: 28px;
}
.home-v2-listing-search {
display: none;
}
.home-v2-listing-search.is-open {
display: block;
}
.home-v2-listing-search-bar {
display: flex;
align-items: center;
gap: 10px;
box-sizing: border-box;
width: 100%;
min-height: 40px;
padding: 4px 6px 4px 14px;
border: 1px solid var(--hv2-border-strong);
border-radius: var(--oc-radius-control);
background: color-mix(in srgb, var(--hv2-surface) 95%, var(--hv2-bg));
transition:
border-color 0.15s ease,
box-shadow 0.15s ease;
}
.home-v2-listing-search-bar:focus-within {
border-color: var(--hv2-accent-border);
box-shadow: 0 0 0 3px var(--hv2-accent-glow);
}
.home-v2-listing-search-icon {
flex-shrink: 0;
color: var(--hv2-text-tertiary);
}
.home-v2-listing-search-input {
all: unset;
box-sizing: border-box;
flex: 1;
min-width: 0;
font-size: 14px;
font-weight: 500;
line-height: 1.35;
color: var(--hv2-text);
}
.home-v2-listing-search-input::-webkit-search-cancel-button,
.home-v2-listing-search-input::-webkit-search-decoration {
display: none;
-webkit-appearance: none;
}
.home-v2-listing-search-input::placeholder {
color: var(--hv2-text-tertiary);
}
.home-v2-listing-search-close {
display: inline-flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
width: 30px;
height: 30px;
border: none;
border-radius: var(--oc-radius-control);
background: transparent;
color: color-mix(in srgb, var(--hv2-accent) 70%, var(--hv2-text-tertiary));
cursor: pointer;
transition:
color 0.15s ease,
background 0.15s ease;
}
.home-v2-listing-search-close:hover,
.home-v2-listing-search-close:focus-visible {
color: var(--hv2-accent);
background: var(--hv2-accent-fill);
outline: none;
}
.home-v2-listing-toolbar {
display: flex;
align-items: center;
gap: 20px;
min-height: 44px;
padding: 0;
}
.home-v2-listing-kind {
margin-left: auto;
}
.home-v2-listing-divider {
width: 1px;
align-self: center;
height: 18px;
flex-shrink: 0;
background: var(--hv2-border);
}
.home-v2-listing-actions {
display: inline-flex;
align-items: center;
flex-shrink: 0;
margin-left: auto;
}
/* Search + category are ghost controls; view toggle stays segmented. */
.home-v2-listing-actions-rail {
display: inline-flex;
align-items: center;
gap: 12px;
flex-shrink: 0;
max-width: min(100%, 520px);
}
.home-v2-listing-actions-rail .home-v2-listing-category-menu {
flex: 0 1 auto;
min-width: 0;
max-width: min(220px, 34vw);
}
.home-v2-listing-actions-rail .home-v2-listing-view {
margin-left: 4px;
}
.home-v2-listing-search-trigger {
display: inline-flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
box-sizing: border-box;
width: 36px;
height: 36px;
padding: 0;
border: none;
border-radius: 8px;
background: transparent;
color: var(--hv2-text-tertiary);
cursor: pointer;
transition: color 0.15s ease;
}
.home-v2-listing-search-trigger:hover,
.home-v2-listing-search-trigger:focus-visible {
color: var(--hv2-text-secondary);
background: transparent;
}
.home-v2-listing-search-trigger.is-active {
color: var(--hv2-text);
background: transparent;
}
.home-v2-listing-search-trigger:focus-visible {
outline: 2px solid color-mix(in srgb, var(--hv2-text) 35%, transparent);
outline-offset: 2px;
}
.home-v2-listing-active-filters {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 8px;
min-height: 24px;
}
.home-v2-listing-filter-chip,
.home-v2-listing-filter-clear {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 6px;
min-height: 28px;
padding: 0 10px;
border: 1px solid var(--hv2-border);
border-radius: 999px;
background: color-mix(in srgb, var(--hv2-surface) 78%, transparent);
color: var(--hv2-text-secondary);
font: inherit;
font-size: 12px;
font-weight: 650;
line-height: 1;
}
.home-v2-listing-filter-chip:not(.is-summary),
.home-v2-listing-filter-clear {
cursor: pointer;
transition:
background 0.14s ease,
border-color 0.14s ease,
color 0.14s ease;
}
.home-v2-listing-filter-chip:not(.is-summary):hover,
.home-v2-listing-filter-chip:not(.is-summary):focus-visible,
.home-v2-listing-filter-clear:hover,
.home-v2-listing-filter-clear:focus-visible {
border-color: var(--hv2-border-hover);
background: var(--hv2-surface-hover);
color: var(--hv2-text);
outline: none;
}
.home-v2-listing-filter-chip svg {
color: var(--hv2-text-tertiary);
}
.home-v2-listing-filter-clear {
background: transparent;
}
/* Segmented control — listing toolbar + search typeahead */
.clawhub-segmented,
.home-v2-listing-kind,
.home-v2-listing-view,
.browse-view-toggle {
--clawhub-segmented-seg-h: 30px;
--clawhub-segmented-h: calc(var(--clawhub-segmented-seg-h) + 8px);
--home-v2-listing-control-h: var(--clawhub-segmented-h);
--home-v2-listing-control-seg-h: var(--clawhub-segmented-seg-h);
--clawhub-segmented-border: color-mix(in srgb, var(--line) 58%, transparent);
--clawhub-segmented-bg: color-mix(in srgb, var(--surface) 95%, transparent);
--clawhub-segmented-fg: var(--ink-soft);
--clawhub-segmented-fg-hover: var(--ink);
--clawhub-segmented-fg-active: var(--ink);
--clawhub-segmented-active-bg: color-mix(in srgb, var(--ink) 10%, transparent);
display: inline-flex;
align-items: center;
flex-shrink: 0;
align-self: center;
gap: 2px;
box-sizing: border-box;
height: var(--clawhub-segmented-h);
padding: 3px;
border: 1px solid var(--clawhub-segmented-border);
border-radius: var(--oc-radius-control);
background: var(--clawhub-segmented-bg);
transition:
border-color 0.15s ease,
background 0.15s ease;
}
.clawhub-segmented-btn,
.home-v2-listing-kind-btn,
.home-v2-listing-view-btn,
.browse-view-btn {
display: inline-flex;
align-items: center;
justify-content: center;
height: var(--clawhub-segmented-seg-h);
border: none;
border-radius: var(--oc-radius-inset);
background: transparent;
color: var(--clawhub-segmented-fg);
font-size: 14px;
font-weight: 600;
line-height: 1;
cursor: pointer;
transition:
color 0.15s ease,
background 0.15s ease;
}
.clawhub-segmented-btn,
.home-v2-listing-kind-btn {
padding: 0 12px;
}
.clawhub-segmented-btn {
gap: 6px;
}
.clawhub-segmented-label,
.clawhub-segmented-count {
display: inline-flex;
align-items: center;
line-height: 1;
}
.clawhub-segmented-count {
font-size: 12px;
font-weight: 650;
font-variant-numeric: tabular-nums;
color: color-mix(in srgb, currentColor 62%, transparent);
}
.clawhub-segmented-btn.is-active .clawhub-segmented-count {
color: color-mix(in srgb, currentColor 76%, transparent);
}
.home-v2-listing-kind,
.home-v2-listing-view {
--clawhub-segmented-h: calc(var(--clawhub-segmented-seg-h) + 8px);
padding: 3px;
}
.home-v2-listing-view-btn,
.browse-view-btn {
width: var(--clawhub-segmented-seg-h);
padding: 0;
}
.clawhub-segmented-btn:hover,
.clawhub-segmented-btn:focus-visible,
.home-v2-listing-kind-btn:hover,
.home-v2-listing-view-btn:hover,
.browse-view-btn:hover,
.browse-view-btn:focus-visible {
color: var(--clawhub-segmented-fg-hover);
}
.clawhub-segmented-btn.is-active,
.home-v2-listing-kind-btn.is-active,
.home-v2-listing-view-btn.is-active,
.browse-view-btn.is-active {
background: var(--clawhub-segmented-active-bg);
color: var(--clawhub-segmented-fg-active);
}
.app-shell:has(.home-v2-main) .clawhub-segmented,
.app-shell:has(.home-v2-main) .home-v2-listing-kind,
.app-shell:has(.home-v2-main) .home-v2-listing-view,
.app-shell:has(.home-v2-main) .browse-view-toggle {
--clawhub-segmented-border: color-mix(in srgb, var(--hv2-border) 72%, transparent);
--clawhub-segmented-bg: color-mix(in srgb, var(--hv2-surface) 95%, transparent);
--clawhub-segmented-fg: var(--hv2-text-tertiary);
--clawhub-segmented-fg-hover: var(--hv2-text-secondary);
--clawhub-segmented-fg-active: var(--hv2-text);
--clawhub-segmented-active-bg: color-mix(in srgb, var(--hv2-text) 10%, transparent);
}
/* Category combobox (custom panel + search) */
.home-v2-listing-category-menu {
position: relative;
flex-shrink: 1;
min-width: 0;
max-width: min(240px, 40vw);
}
.home-v2-listing-category-trigger {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
box-sizing: border-box;
width: 100%;
min-height: 36px;
padding: 7px 4px 7px 2px;
border: none;
border-radius: var(--oc-radius-control);
background: transparent;
color: var(--hv2-text-secondary);
font-size: 14px;
font-weight: 600;
line-height: 1.25;
cursor: pointer;
transition: color 0.15s ease;
}
.home-v2-listing-category-trigger:hover,
.home-v2-listing-category-trigger[aria-expanded="true"] {
color: var(--hv2-text);
background: transparent;
}
.home-v2-listing-category-trigger:focus-visible {
outline: 2px solid var(--oc-focus-ring);
outline-offset: 2px;
}
.home-v2-listing-category-trigger-main {
display: inline-flex;
align-items: center;
gap: 8px;
min-width: 0;
flex: 1;
}
.home-v2-listing-category-trigger-category-icon {
flex-shrink: 0;
color: var(--hv2-text-tertiary);
}
.home-v2-listing-category-trigger-label {
min-width: 0;
line-height: 1.25;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
text-align: left;
}
.home-v2-listing-category-trigger-icon {
flex-shrink: 0;
opacity: 0.7;
transition: transform 0.15s ease;
}
.home-v2-listing-category-trigger-icon.is-open {
transform: rotate(180deg);
}
.home-v2-listing-category-panel {
position: absolute;
top: calc(100% + 6px);
right: 0;
z-index: 50;
display: flex;
flex-direction: column;
width: min(320px, calc(100vw - 32px));
max-height: min(400px, 58vh);
border: 1px solid var(--hv2-border-strong);
border-radius: var(--oc-radius-surface);
background: color-mix(in srgb, var(--hv2-bg) 82%, transparent);
-webkit-backdrop-filter: blur(14px) saturate(1.12);
backdrop-filter: blur(14px) saturate(1.12);
box-shadow: var(--oc-shadow-lg);
overflow: hidden;
}
[data-theme-resolved="light"] .home-v2-listing-category-panel {
background: color-mix(in srgb, var(--hv2-bg) 90%, transparent);
-webkit-backdrop-filter: blur(12px) saturate(1.06);
backdrop-filter: blur(12px) saturate(1.06);
box-shadow: var(--oc-shadow-lg);
}
.home-v2-listing-category-search-wrap {
display: flex;
align-items: center;
gap: 8px;
padding: 10px 12px;
border-bottom: 1px solid var(--hv2-border);
background: color-mix(in srgb, var(--hv2-bg) 55%, transparent);
}
.home-v2-listing-category-search-icon {
flex-shrink: 0;
color: var(--hv2-text-tertiary);
}
.home-v2-listing-category-search {
all: unset;
box-sizing: border-box;
flex: 1;
min-width: 0;
font-size: 14px;
color: var(--hv2-text);
}
.home-v2-listing-category-search::placeholder {
color: var(--hv2-text-tertiary);
}
.home-v2-listing-category-options {
display: flex;
flex-direction: column;
gap: 6px;
margin: 0;
padding: 8px;
list-style: none;
overflow-y: auto;
overscroll-behavior: contain;
scrollbar-color: color-mix(in srgb, var(--hv2-text-tertiary) 72%, transparent) transparent;
scrollbar-width: thin;
}
.home-v2-listing-category-options::-webkit-scrollbar {
width: 8px;
}
.home-v2-listing-category-options::-webkit-scrollbar-track {
background: transparent;
}
.home-v2-listing-category-options::-webkit-scrollbar-thumb {
background: color-mix(in srgb, var(--hv2-text-tertiary) 62%, transparent);
border: 2px solid transparent;
border-radius: 999px;
background-clip: content-box;
}
.home-v2-listing-category-option-wrap {
display: block;
}
.home-v2-listing-category-option-wrap.is-reset {
margin-bottom: 4px;
padding-bottom: 8px;
border-bottom: 1px solid var(--hv2-border);
}
.home-v2-listing-category-option-wrap.is-reset .home-v2-listing-category-option {
font-weight: 750;
}
.home-v2-listing-category-option {
display: flex;
align-items: center;
gap: 10px;
width: 100%;
padding: 9px 10px;
border: none;
border-radius: 10px;
background: transparent;
color: var(--hv2-text);
font-size: 14px;
font-weight: 600;
line-height: 1.3;
text-align: left;
cursor: pointer;
transition:
background 0.12s ease,
color 0.12s ease;
}
.home-v2-listing-category-option:hover,
.home-v2-listing-category-option:focus-visible {
background: color-mix(in srgb, var(--hv2-text) 7%, transparent);
outline: none;
}
.home-v2-listing-category-option.is-selected {
background: color-mix(in srgb, var(--hv2-text) 9%, transparent);
}
.home-v2-listing-category-option-icon {
flex-shrink: 0;
color: var(--hv2-text-tertiary);
}
.home-v2-listing-category-option.is-selected .home-v2-listing-category-option-icon {
color: var(--hv2-text-secondary);
}
.home-v2-listing-category-option-mark {
display: inline-flex;
align-items: center;
justify-content: center;
width: 18px;
height: 18px;
flex-shrink: 0;
border-radius: 5px;
border: 1px solid var(--hv2-border-strong);
background: color-mix(in srgb, var(--hv2-bg) 40%, transparent);
color: var(--hv2-text);
}
.home-v2-listing-category-option.is-selected .home-v2-listing-category-option-mark {
border-color: color-mix(in srgb, var(--hv2-accent) 45%, var(--hv2-border));
background: color-mix(in srgb, var(--hv2-accent) 14%, transparent);
color: var(--hv2-accent);
}
.home-v2-listing-category-option-label {
min-width: 0;
}
.home-v2-listing-category-empty {
padding: 12px 10px;
color: var(--hv2-text-tertiary);
font-size: 13px;
}
.home-v2-listing-sort {
display: flex;
align-items: center;
align-self: stretch;
flex: 1;
min-width: 0;
min-height: 40px;
}
.home-v2-listing-sort-tabs {
display: flex;
align-items: center;
align-self: stretch;
gap: 28px;
min-width: 0;
overflow-x: auto;
scrollbar-width: none;
-webkit-overflow-scrolling: touch;
}
.home-v2-listing-sort-tabs::-webkit-scrollbar {
display: none;
}
.home-v2-listing-tab {
display: inline-flex;
align-items: center;
gap: 5px;
align-self: stretch;
border: none;
background: none;
padding: 0 2px;
font-size: 14px;
font-weight: 400;
line-height: 1;
color: var(--hv2-text-tertiary);
cursor: pointer;
white-space: nowrap;
border-bottom: 2px solid transparent;
transition:
color 0.15s ease,
border-color 0.15s ease;
}
.home-v2-listing-tab-icon {
flex-shrink: 0;
color: color-mix(in srgb, var(--hv2-text-tertiary) 88%, transparent);
}
.home-v2-listing-tab:hover {
color: var(--hv2-text-secondary);
}
.home-v2-listing-tab:hover .home-v2-listing-tab-icon {
color: var(--hv2-text-secondary);
}
.home-v2-listing-tab.is-active {
color: var(--hv2-text);
border-bottom-color: var(--hv2-text);
font-weight: 600;
}
.home-v2-listing-tab.is-active .home-v2-listing-tab-icon {
color: var(--hv2-text);
}
.home-v2-listing-head {
--home-v2-listing-copy-max: min(54rem, 60vw);
display: grid;
grid-template-columns: minmax(0, var(--home-v2-listing-copy-max)) 1fr auto;
gap: 16px 20px;
align-items: center;
padding: 0 4px 8px;
margin-bottom: 2px;
border-bottom: 1px solid color-mix(in srgb, var(--hv2-border) 65%, transparent);
}
.home-v2-listing-head.has-no-stats {
grid-template-columns: minmax(0, var(--home-v2-listing-copy-max)) 1fr;
}
.home-v2-listing-head-icon-spacer {
grid-column: 1;
width: 34px;
flex-shrink: 0;
}
.home-v2-listing-head-label,
.home-v2-listing-head-stat {
font-size: 11px;
font-weight: 600;
letter-spacing: 0.07em;
text-transform: uppercase;
color: var(--hv2-text-tertiary);
}
.home-v2-listing-head-label {
grid-column: 1;
}
.home-v2-listing-head-stat {
grid-column: 3;
justify-self: end;
}
.home-v2-listing-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
}
.home-v2-listing-card {
display: grid;
gap: 12px;
align-content: start;
padding: 16px;
border-radius: var(--hv2-radius-lg);
border: 1px solid var(--hv2-border);
background: color-mix(in srgb, var(--hv2-surface) 95%, transparent);
text-decoration: none;
color: inherit;
box-shadow: none;
transition:
border-color var(--hv2-duration-ui) var(--hv2-ease-out),
background var(--hv2-duration-ui) var(--hv2-ease-out),
transform var(--hv2-duration-ui) var(--hv2-ease-out),
box-shadow var(--hv2-duration-ui) var(--hv2-ease-out);
}
.home-v2-listing-card:focus-visible {
border-color: color-mix(in srgb, var(--hv2-text) 14%, transparent);
background: var(--hv2-surface-hover);
text-decoration: none;
outline: none;
}
.home-v2-listing-card:active {
transform: scale(0.992);
transition-duration: 100ms;
}
.home-v2-listing-card-head {
display: grid;
grid-template-columns: auto minmax(0, 1fr);
align-items: center;
gap: 12px;
min-width: 0;
}
.home-v2-listing-card-icon {
display: flex;
flex-shrink: 0;
}
.home-v2-listing-card-icon .marketplace-icon {
width: 34px;
height: 34px;
border-radius: var(--oc-radius-inset);
opacity: 1;
filter: none;
transform: none;
box-shadow: none;
--marketplace-icon-wash: transparent;
--marketplace-icon-accent: var(--hv2-text-secondary);
background: color-mix(in srgb, var(--hv2-text) 4%, transparent) !important;
border: 1px solid color-mix(in srgb, var(--hv2-text) 7%, transparent) !important;
color: var(--hv2-text-secondary);
transition:
transform var(--hv2-duration-fast) var(--hv2-ease-out),
background var(--hv2-duration-fast) var(--hv2-ease-out),
border-color var(--hv2-duration-fast) var(--hv2-ease-out);
}
.home-v2-listing-card-icon .marketplace-icon-glyph,
.home-v2-listing-card-icon .marketplace-icon-image {
opacity: 1;
filter: grayscale(1) brightness(1.18);
}
.home-v2-listing-card-icon .marketplace-icon--brand .marketplace-icon-image {
filter: grayscale(1) brightness(1.18);
}
.home-v2-listing-card-icon .marketplace-icon-glyph {
width: 17px;
height: 17px;
}
.home-v2-listing-card-id {
display: grid;
gap: 2px;
min-width: 0;
}
.home-v2-listing-card-by-row {
display: inline-flex;
align-items: center;
gap: 6px;
min-width: 0;
}
.home-v2-listing-card-name {
font-size: 15px;
font-weight: 600;
line-height: 1.25;
letter-spacing: -0.01em;
color: var(--hv2-text);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.home-v2-listing-card-by {
font-family: var(--font-mono), ui-monospace, monospace;
font-size: 12px;
font-weight: 500;
color: var(--hv2-text-tertiary);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.home-v2-listing-card-summary {
margin: 0;
font-size: 13px;
line-height: 1.5;
color: var(--hv2-text-tertiary);
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
min-height: calc(1.5em * 2);
}
.home-v2-listing-card-stats {
display: flex;
align-items: center;
gap: 16px;
padding-top: 12px;
border-top: 1px solid color-mix(in srgb, var(--hv2-border) 60%, transparent);
font-size: 13px;
font-weight: 500;
font-variant-numeric: tabular-nums;
color: var(--hv2-text-secondary);
transition: color var(--hv2-duration-fast) var(--hv2-ease-out);
}
.home-v2-listing-card-stats span {
display: inline-flex;
align-items: center;
gap: 5px;
}
.home-v2-listing-card-stats svg {
opacity: 0.45;
transition: opacity var(--hv2-duration-fast) var(--hv2-ease-out);
}
.home-v2-listing-card:focus-visible .home-v2-listing-card-stats {
color: var(--hv2-text);
}
.home-v2-listing-card:focus-visible .home-v2-listing-card-stats svg {
opacity: 0.72;
}
@media (max-width: 960px) {
.home-v2-listing-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 560px) {
.home-v2-listing-grid {
grid-template-columns: 1fr;
}
}
.home-v2-listing-list {
display: flex;
flex-direction: column;
gap: 2px;
border: none;
border-radius: 0;
background: transparent;
}
.home-v2-listing-list > .home-v2-listing-row {
content-visibility: auto;
contain-intrinsic-size: auto 64px;
}
.home-v2-listing-results {
position: relative;
}
.home-v2-listing-results.is-collapsed.is-list .home-v2-listing-list {
padding-bottom: 4px;
}
.home-v2-listing-results.is-collapsed.is-grid .home-v2-listing-grid {
padding-bottom: 4px;
}
.home-v2-listing-more {
position: relative;
z-index: 2;
display: flex;
justify-content: center;
margin-top: -64px;
padding: 52px 0 8px;
pointer-events: none;
}
.home-v2-listing-more-fade {
position: absolute;
inset: 0 0 auto;
height: 100%;
pointer-events: none;
background: linear-gradient(
to bottom,
transparent 0%,
color-mix(in srgb, var(--hv2-bg) 55%, transparent) 42%,
var(--hv2-bg) 100%
);
}
.home-v2-listing-more-btn {
position: relative;
display: inline-flex;
align-items: center;
gap: 6px;
pointer-events: auto;
padding: 8px 18px;
border: 1px solid var(--hv2-border-strong);
border-radius: var(--r-pill);
background: var(--hv2-surface);
color: var(--hv2-text-secondary);
font-size: 13px;
font-weight: 600;
line-height: 1;
cursor: pointer;
box-shadow: 0 8px 24px color-mix(in srgb, var(--hv2-bg) 70%, transparent);
transition:
color 0.15s ease,
border-color 0.15s ease,
background 0.15s ease;
}
.home-v2-listing-more-btn:hover,
.home-v2-listing-more-btn:focus-visible {
color: var(--hv2-text);
border-color: var(--hv2-border-hover);
background: var(--hv2-surface-hover);
outline: none;
}
.home-v2-listing-list-loading {
pointer-events: none;
}
.home-v2-listing-row {
--home-v2-listing-copy-max: min(54rem, 60vw);
position: relative;
display: grid;
grid-template-columns: minmax(0, var(--home-v2-listing-copy-max)) 1fr auto;
gap: 16px 20px;
align-items: center;
padding: 13px 4px;
text-decoration: none;
color: inherit;
border-bottom: 1px solid color-mix(in srgb, var(--hv2-border) 65%, transparent);
contain: layout style;
}
.home-v2-listing-row.has-no-stats {
grid-template-columns: minmax(0, var(--home-v2-listing-copy-max)) 1fr;
}
.home-v2-listing-row::before {
content: "";
position: absolute;
inset: 0 0 2px;
border-radius: 0;
background: transparent;
pointer-events: none;
}
.home-v2-listing-row > * {
position: relative;
}
.home-v2-listing-row:last-child {
border-bottom: none;
}
.home-v2-listing-row:focus-visible {
text-decoration: none;
outline: none;
}
.home-v2-listing-row:focus-visible::before {
background: color-mix(in srgb, var(--hv2-text) 3%, transparent);
}
@media (hover: hover) and (pointer: fine) {
.home-v2-listing-row:hover {
text-decoration: none;
}
.home-v2-listing-row:hover::before {
background: color-mix(in srgb, var(--hv2-text) 3%, transparent);
}
}
.home-v2-listing-row-icon {
grid-column: 1;
display: flex;
flex-shrink: 0;
}
.home-v2-listing-row .marketplace-icon:hover {
transform: none;
box-shadow: none;
}
.home-v2-listing-row-icon .marketplace-icon {
width: 34px;
height: 34px;
border-radius: var(--oc-radius-inset);
pointer-events: none;
transform: none;
box-shadow: none;
transition: none;
--marketplace-icon-wash: transparent;
--marketplace-icon-accent: var(--hv2-text-secondary);
background: color-mix(in srgb, var(--hv2-text) 4%, transparent) !important;
border: 1px solid color-mix(in srgb, var(--hv2-text) 7%, transparent) !important;
color: var(--hv2-text-secondary);
}
.home-v2-listing-row-icon .marketplace-icon-glyph,
.home-v2-listing-row-icon .marketplace-icon-image {
filter: grayscale(1) brightness(1.18);
}
.home-v2-listing-row-icon .marketplace-icon--brand .marketplace-icon-image,
.home-v2-listing-card-icon .marketplace-icon--brand .marketplace-icon-image {
object-fit: contain;
padding: 6px;
}
.home-v2-listing-row-icon .marketplace-icon-glyph {
width: 17px;
height: 17px;
}
.home-v2-listing-row-stats svg {
opacity: 0.45;
}
.home-v2-listing-row-body {
grid-column: 1;
min-width: 0;
max-width: var(--home-v2-listing-copy-max);
display: grid;
gap: 4px;
overflow: hidden;
}
.home-v2-listing-row-title {
display: flex;
align-items: center;
flex-wrap: nowrap;
gap: 6px 10px;
min-width: 0;
}
.home-v2-listing .official-badge {
width: 14px;
height: 14px;
border: 0;
border-radius: 0;
background: transparent;
color: var(--official-fg);
}
.home-v2-listing .official-badge svg {
width: 14px;
height: 14px;
}
.home-v2-listing-row-name {
min-width: 0;
overflow: hidden;
font-size: 15px;
font-weight: 600;
line-height: 1.25;
color: var(--hv2-text);
letter-spacing: -0.01em;
text-overflow: ellipsis;
white-space: nowrap;
}
.home-v2-listing-row-by {
font-family: var(--font-mono), ui-monospace, monospace;
font-size: 12px;
font-weight: 500;
color: var(--hv2-text-tertiary);
white-space: nowrap;
}
.home-v2-listing-row-summary {
margin: 0;
font-size: 13px;
line-height: 1.5;
color: var(--hv2-text-tertiary);
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.home-v2-listing-more-spinner {
animation: home-v2-listing-more-spin 0.7s linear infinite;
}
@keyframes home-v2-listing-more-spin {
to {
transform: rotate(360deg);
}
}
.home-v2-listing-more-btn[data-loading="true"] {
cursor: progress;
opacity: 0.8;
}
.home-v2-listing-row-stats {
grid-column: 3;
display: flex;
align-items: center;
justify-content: flex-end;
gap: 14px;
flex-shrink: 0;
min-width: 5.5rem;
font-size: 13px;
font-weight: 500;
font-variant-numeric: tabular-nums;
color: var(--hv2-text-secondary);
white-space: nowrap;
}
.home-v2-listing-row-stats.is-skills-sh {
gap: 7px;
}
.home-v2-listing-row-stats span {
display: inline-flex;
align-items: center;
gap: 5px;
}
.home-v2-listing-row:focus-visible .home-v2-listing-row-stats {
color: var(--hv2-text);
}
@media (hover: hover) and (pointer: fine) {
.home-v2-listing-row:hover .home-v2-listing-row-stats {
color: var(--hv2-text);
}
}
@media (hover: hover) and (pointer: fine) {
.home-v2-listing-card:hover {
border-color: color-mix(in srgb, var(--hv2-text) 14%, transparent);
background: var(--hv2-surface-hover);
text-decoration: none;
transform: scale(1.006);
box-shadow:
inset 0 1px 0 color-mix(in srgb, var(--hv2-text) 5%, transparent),
0 8px 28px color-mix(in srgb, var(--hv2-bg) 55%, transparent);
}
.home-v2-listing-card:hover .home-v2-listing-card-icon .marketplace-icon {
transform: scale(1.04);
background: color-mix(in srgb, var(--hv2-text) 7%, transparent) !important;
border-color: color-mix(in srgb, var(--hv2-text) 11%, transparent) !important;
}
.home-v2-listing-card:hover .home-v2-listing-card-stats {
color: var(--hv2-text);
}
.home-v2-listing-card:hover .home-v2-listing-card-stats svg {
opacity: 0.72;
}
}
@media (prefers-reduced-motion: reduce) {
.home-v2-listing-card,
.home-v2-listing-card-icon .marketplace-icon,
.home-v2-listing-card-stats,
.home-v2-listing-card-stats svg {
transition-duration: 0.01ms;
}
.home-v2-listing-card:hover,
.home-v2-listing-card:active {
transform: none;
}
.home-v2-listing-card:hover .home-v2-listing-card-icon .marketplace-icon {
transform: none;
}
}
.home-v2-listing-skeleton {
min-height: 64px;
border: 1px solid color-mix(in srgb, var(--hv2-border) 56%, transparent);
border-radius: var(--hv2-radius-sm);
background: linear-gradient(
110deg,
color-mix(in srgb, var(--hv2-surface) 88%, transparent) 8%,
color-mix(in srgb, var(--hv2-text) 6%, transparent) 18%,
color-mix(in srgb, var(--hv2-surface) 88%, transparent) 33%
);
background-size: 200% 100%;
animation: home-v2-listing-shimmer 1.2s ease-in-out infinite;
}
.home-v2-listing-skeleton:last-child {
border-bottom: 1px solid color-mix(in srgb, var(--hv2-border) 56%, transparent);
}
@keyframes home-v2-listing-shimmer {
0% {
background-position: 100% 0;
}
100% {
background-position: -100% 0;
}
}
.home-v2-listing-empty {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 8px;
min-height: clamp(220px, 36vh, 360px);
margin: 8px 0 0;
padding: 52px 28px 60px;
text-align: center;
border: 1px dashed color-mix(in srgb, var(--hv2-border) 85%, transparent);
border-radius: 14px;
background: linear-gradient(
180deg,
color-mix(in srgb, var(--hv2-surface) 80%, transparent),
transparent 72%
);
}
.home-v2-listing-empty-icon {
display: inline-flex;
align-items: center;
justify-content: center;
width: 58px;
height: 58px;
margin-bottom: 6px;
border-radius: 999px;
border: 1px solid var(--hv2-border);
background: var(--hv2-accent-fill);
color: var(--hv2-text-secondary);
}
.home-v2-listing-empty-title {
margin: 0;
max-width: 28ch;
font-size: 18px;
font-weight: 650;
letter-spacing: -0.02em;
line-height: 1.25;
color: var(--hv2-text);
}
.home-v2-listing-empty-body {
margin: 0;
max-width: 40ch;
font-size: 14px;
font-weight: 500;
line-height: 1.55;
color: var(--hv2-text-tertiary);
}
.home-v2-listing-empty-action {
display: inline-flex;
align-items: center;
gap: 7px;
margin-top: 10px;
padding: 9px 18px;
border: 1px solid var(--hv2-accent-border);
border-radius: var(--r-pill);
background: var(--hv2-accent-fill);
color: var(--hv2-text);
font-size: 13px;
font-weight: 600;
line-height: 1;
cursor: pointer;
transition:
background 0.15s ease,
border-color 0.15s ease,
color 0.15s ease;
}
.home-v2-listing-empty-action:hover,
.home-v2-listing-empty-action:focus-visible {
border-color: var(--hv2-accent-border-hover);
background: var(--hv2-accent-fill-hover);
color: var(--hv2-text);
outline: none;
}
/* ═══ TRENDING ═══ */
.home-v2-trending-section {
padding: 48px 48px 80px;
}
.home-v2-discovery-section {
padding: 48px 48px 80px;
border-top: 1px solid var(--hv2-border);
}
.home-v2-discovery-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 32px;
}
.home-v2-column-section {
display: flex;
flex-direction: column;
gap: 20px;
}
.home-v2-section-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 24px;
max-width: 1200px;
margin-left: auto;
margin-right: auto;
}
.home-v2-section-header-stack {
align-items: flex-end;
gap: 20px;
margin-bottom: 0;
}
.home-v2-section-header h2 {
font-size: 15px;
font-weight: 600;
color: var(--hv2-text-secondary);
letter-spacing: 0.02em;
text-transform: uppercase;
}
.home-v2-section-header .home-v2-section-copy h2 {
font-size: clamp(22px, 2.1vw, 30px);
font-weight: 700;
line-height: 1.08;
letter-spacing: -0.03em;
color: var(--hv2-text);
text-transform: none;
}
.home-v2-section-link {
color: var(--hv2-text-secondary);
text-decoration: none;
font-size: 13px;
font-weight: 600;
display: flex;
align-items: center;
gap: 4px;
transition: color 0.15s;
white-space: nowrap;
}
.home-v2-section-link:hover {
color: var(--hv2-text);
}
.home-v2-trending-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 16px;
max-width: 1200px;
margin: 0 auto;
}
.home-v2-trending-grid-stack {
grid-template-columns: 1fr;
gap: 14px;
}
.home-v2-trend-card {
background: var(--hv2-surface);
border: 1px solid var(--hv2-border);
border-radius: var(--hv2-radius-lg);
padding: 24px;
transition:
border-color 0.2s,
transform 0.2s,
box-shadow 0.25s,
background 0.2s;
cursor: pointer;
display: flex;
flex-direction: column;
text-decoration: none;
color: inherit;
}
.home-v2-trend-card:hover {
border-color: var(--hv2-border-hover);
transform: translateY(-2px);
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
background: var(--hv2-surface-hover);
}
.home-v2-trend-head {
margin-bottom: 12px;
}
.home-v2-trend-title {
font-weight: 600;
font-size: 17px;
color: var(--hv2-text);
margin-bottom: 4px;
}
.home-v2-trend-creator {
font-size: 14px;
color: var(--hv2-text-secondary);
}
.home-v2-trend-desc {
font-size: 13px;
color: var(--hv2-text-secondary);
line-height: 1.55;
flex: 1;
margin-bottom: 20px;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.home-v2-trend-bottom {
display: flex;
align-items: center;
justify-content: space-between;
}
.home-v2-trend-signals {
display: flex;
gap: 14px;
font-size: 12px;
color: var(--hv2-text-secondary);
font-weight: 500;
}
.home-v2-trend-signals span {
display: flex;
align-items: center;
gap: 4px;
}
.home-v2-trend-install {
background: var(--hv2-green-fill);
border: 1.5px solid var(--hv2-green-border);
border-radius: var(--hv2-radius-sm);
padding: 6px 14px;
font-size: 13px;
font-weight: 600;
color: var(--hv2-green);
cursor: pointer;
transition: all 0.15s;
display: flex;
align-items: center;
gap: 5px;
}
.home-v2-trend-card:hover .home-v2-trend-install {
background: var(--hv2-green-fill-hover);
border-color: var(--hv2-green-border-hover);
}
.site-footer-v2 {
--hv2-bg: #060608;
--hv2-surface: rgba(255, 255, 255, 0.02);
--hv2-surface-hover: rgba(255, 255, 255, 0.045);
--hv2-border: rgba(255, 255, 255, 0.07);
--hv2-border-hover: rgba(255, 255, 255, 0.14);
--hv2-border-strong: rgba(255, 255, 255, 0.1);
--hv2-text: #eaeaea;
--hv2-text-secondary: #b2b2b8;
--hv2-text-tertiary: #82828a;
--hv2-accent: #d4453a;
/* Easter egg hidden for now — no reveal depth reserved below the footer. */
--footer-easter-depth: 0px;
position: relative;
isolation: isolate;
margin-bottom: var(--footer-easter-depth);
padding: 0;
border-radius: 0;
background: var(--hv2-bg);
border-top-color: var(--hv2-border);
box-shadow: 0 26px 46px rgb(0 0 0 / 0.34);
}
.site-footer-v2::after {
position: absolute;
z-index: 0;
inset: 0;
border-radius: inherit;
background: var(--hv2-bg);
content: "";
pointer-events: none;
}
.site-footer-v2::before {
content: none;
}
.footer-v2-easter {
display: none;
--footer-easter-x: 50%;
--footer-easter-y: 34%;
--footer-easter-intensity: 0;
--footer-easter-reveal: 0;
position: absolute;
z-index: -1;
top: calc(100% - 48px);
right: 0;
bottom: calc(var(--footer-easter-depth) * -1);
left: 0;
overflow: hidden;
background: #050505;
content: "";
pointer-events: auto;
}
.footer-v2-easter-image {
position: absolute;
inset: 0;
background-position: center center;
background-repeat: no-repeat;
background-size: 112% auto;
pointer-events: none;
will-change: transform, opacity;
}
.footer-v2-easter-image--base {
background-image: url("/footer-openclaw-easter-egg.webp");
transform: translate3d(0, calc((1 - var(--footer-easter-reveal, 0)) * 64px), 0);
opacity: calc(0.35 + 0.65 * var(--footer-easter-reveal, 0));
}
.footer-v2-easter-ascii {
position: absolute;
inset: -12% -14%;
z-index: 1;
margin: 0;
color: color-mix(in srgb, var(--hv2-accent) 72%, white 12%);
font-family: var(--font-mono);
font-size: 11px;
font-weight: 600;
line-height: 1.38;
letter-spacing: 0.08em;
white-space: pre;
opacity: calc(0.46 * var(--footer-easter-intensity));
mix-blend-mode: screen;
transform: translate3d(-1.5%, -1%, 0) rotate(-1deg);
mask-image:
radial-gradient(
ellipse 170px 142px at calc(var(--footer-easter-x) + 14%) calc(var(--footer-easter-y) + 12%),
#000 0 34%,
rgb(0 0 0 / 0.7) 52%,
transparent 80%
),
radial-gradient(
ellipse 82px 58px at calc(var(--footer-easter-x) + 14% - 78px)
calc(var(--footer-easter-y) + 12% + 24px),
rgb(0 0 0 / 0.78) 0 42%,
transparent 76%
),
radial-gradient(
ellipse 66px 92px at calc(var(--footer-easter-x) + 14% + 88px)
calc(var(--footer-easter-y) + 12% - 38px),
rgb(0 0 0 / 0.74) 0 38%,
transparent 78%
),
radial-gradient(
ellipse 52px 38px at calc(var(--footer-easter-x) + 14% + 28px)
calc(var(--footer-easter-y) + 12% + 92px),
rgb(0 0 0 / 0.55) 0 34%,
transparent 72%
);
transition: opacity 180ms ease;
pointer-events: none;
}
.footer-v2-easter-image--top {
z-index: 2;
background-image: url("/footer-openclaw-easter-egg-transparent.webp");
transform: translate3d(0, calc((1 - var(--footer-easter-reveal, 0)) * 128px), 0);
}
.site-footer-v2 .site-footer-inner {
position: relative;
z-index: 1;
width: 100%;
max-width: var(--page-max);
margin-inline: auto;
padding: 72px var(--space-6) 52px;
box-sizing: border-box;
}
.footer-v2-main {
display: grid;
grid-template-columns: minmax(220px, 0.85fr) minmax(0, 2fr);
gap: 44px 56px;
align-items: start;
}
.footer-v2-brand {
display: grid;
gap: 14px;
max-width: 280px;
}
.footer-v2-brand-lockup {
display: inline-flex;
align-items: center;
gap: 10px;
text-decoration: none;
color: inherit;
}
.footer-v2-brand-mark {
width: 22px;
height: 22px;
object-fit: contain;
opacity: 0.9;
}
.footer-v2-brand-name {
font-size: 16px;
font-weight: 650;
letter-spacing: -0.02em;
}
.footer-v2-brand-tagline {
margin: 0;
font-size: 14px;
line-height: 1.55;
color: var(--ink-soft);
}
.footer-v2-eco-link {
display: inline-flex;
align-items: center;
gap: 4px;
width: fit-content;
font-size: 13px;
font-weight: 600;
color: var(--ink);
text-decoration: none;
}
.footer-v2-eco-link:hover,
.footer-v2-eco-link:focus-visible {
color: var(--accent);
text-decoration: none;
}
.footer-v2-eco {
display: grid;
gap: 16px;
margin-top: 36px;
margin-bottom: 0;
padding: 32px 0 32px;
border-top: 1px solid var(--line);
}
.footer-v2-eco-label {
display: inline-flex;
align-items: center;
gap: 0.42em;
flex-wrap: wrap;
width: fit-content;
margin: 0;
font-size: 11px;
font-weight: 700;
line-height: 1;
letter-spacing: 0.1em;
text-transform: uppercase;
color: var(--ink-soft);
}
.footer-v2-eco-label-accent {
position: relative;
display: inline-flex;
align-items: center;
gap: 5px;
line-height: 1;
text-transform: uppercase;
letter-spacing: 0.1em;
color: color-mix(in srgb, var(--accent) 34%, var(--ink-soft) 66%);
background: linear-gradient(
110deg,
color-mix(in srgb, var(--accent) 24%, var(--ink-soft) 76%) 0%,
color-mix(in srgb, var(--ink-soft) 90%, var(--ink) 10%) 36%,
color-mix(in srgb, var(--accent) 48%, var(--ink) 52%) 50%,
color-mix(in srgb, var(--ink-soft) 90%, var(--ink) 10%) 64%,
color-mix(in srgb, var(--accent) 24%, var(--ink-soft) 76%) 100%
);
background-size: 320% 100%;
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
animation: footer-v2-eco-shimmer 18s ease-in-out infinite;
}
.footer-v2-eco-label-accent img {
width: 14px;
height: 14px;
flex-shrink: 0;
object-fit: contain;
opacity: 0.82;
transform: translateY(-1px);
}
@keyframes footer-v2-eco-shimmer {
0%,
28% {
background-position: 100% 50%;
}
58%,
100% {
background-position: 0% 50%;
}
}
@media (prefers-reduced-motion: reduce) {
.footer-v2-eco-label-accent {
animation: none;
background-position: 48% 50%;
}
}
.footer-v2-eco-marks {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 12px 24px;
row-gap: 12px;
}
.footer-v2-eco-sequence {
display: contents;
}
.footer-v2-eco-sequence-clone {
display: none;
}
.footer-v2-eco-mark {
display: inline-flex;
align-items: center;
gap: 7px;
padding: 0;
border: none;
border-radius: 0;
background: transparent;
font-size: 13px;
font-weight: 500;
color: var(--ink-soft);
text-decoration: none;
transition:
color 0.15s ease,
border-color 0.15s ease,
background 0.15s ease;
}
.footer-v2-eco-mark:hover,
.footer-v2-eco-mark:focus-visible {
border-color: transparent;
background: transparent;
color: var(--ink);
text-decoration: none;
}
.footer-v2-eco-mark-logo {
display: inline-flex;
align-items: center;
justify-content: center;
width: 22px;
height: 22px;
flex-shrink: 0;
border: none;
border-radius: 0;
background: transparent;
overflow: hidden;
}
.footer-v2-eco-mark-logo img {
display: block;
width: 100%;
height: 100%;
object-fit: contain;
}
.footer-v2-eco-mark-label {
white-space: nowrap;
}
.footer-v2-eco-all {
display: inline-flex;
align-items: center;
gap: 10px;
flex-shrink: 0;
}
.footer-v2-eco-all-intro {
font-size: 13px;
font-weight: 500;
color: var(--ink-soft);
white-space: nowrap;
}
.footer-v2-eco-all-sep {
width: 1px;
align-self: stretch;
min-height: 18px;
margin: 1px 0;
background: color-mix(in srgb, var(--ink) 16%, var(--line));
}
.footer-v2-eco-mark-all {
padding: 0;
border-color: transparent;
background: transparent;
color: var(--ink-soft);
}
.footer-v2-bottom {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
gap: 12px 24px;
margin-top: 0;
padding-top: 28px;
border-top: 1px solid var(--line);
font-size: 13px;
color: var(--ink-soft);
}
.footer-v2-copy,
.footer-v2-meta {
margin: 0;
}
.footer-v2-copy-link {
display: inline-flex;
align-items: center;
white-space: nowrap;
color: inherit;
text-decoration: none;
transition: color 0.15s ease;
}
.footer-v2-copy-link:hover,
.footer-v2-copy-link:focus-visible {
color: var(--ink);
text-decoration: none;
}
.footer-v2-meta a {
color: var(--ink-soft);
text-decoration: none;
}
.footer-v2-meta a:hover,
.footer-v2-meta a:focus-visible {
color: var(--ink);
}
.footer-v2-meta-sep {
margin: 0 8px;
opacity: 0.45;
}
.site-footer-v2 .footer-v2-brand-tagline,
.site-footer-v2 .footer-col-title,
.site-footer-v2 .footer-col-links a,
.site-footer-v2 .footer-col-links span,
.site-footer-v2 .footer-v2-eco-label,
.site-footer-v2 .footer-v2-eco-all-intro,
.site-footer-v2 .footer-v2-eco-mark,
.site-footer-v2 .footer-v2-bottom,
.site-footer-v2 .footer-v2-meta a {
color: var(--hv2-text-tertiary, #82828a);
}
.site-footer-v2 .footer-v2-brand-lockup,
.site-footer-v2 .footer-v2-eco-link,
.site-footer-v2 .footer-v2-eco-mark-all,
.site-footer-v2 .footer-col-links a:hover,
.site-footer-v2 .footer-col-links a:focus-visible {
color: var(--hv2-text, #eaeaea);
}
.site-footer-v2 .footer-v2-eco-link:hover,
.site-footer-v2 .footer-v2-eco-link:focus-visible {
color: var(--hv2-accent, #d4453a);
}
.site-footer-v2 .footer-v2-main {
gap: 56px 72px;
}
.site-footer-v2 .footer-v2-eco,
.site-footer-v2 .footer-v2-bottom {
border-top-color: var(--hv2-border);
}
.site-footer-v2 .footer-v2-eco {
margin-top: 44px;
margin-bottom: 0;
padding: 48px 0 40px;
gap: 20px;
}
.site-footer-v2 .footer-v2-bottom {
margin-top: 0;
padding-top: 32px;
}
.site-footer-v2 .footer-v2-eco-all-sep {
background: var(--hv2-border, #2a2a2e);
}
.footer-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 24px 28px;
text-align: left;
}
.footer-col {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: var(--space-1);
}
.footer-col-title {
font-size: 11px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.1em;
color: var(--ink-soft);
margin: 0 0 12px;
}
.footer-col-toggle {
appearance: none;
border: 0;
background: transparent;
color: inherit;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 6px;
padding: 0;
font: inherit;
letter-spacing: inherit;
text-transform: inherit;
cursor: default;
}
.footer-col-toggle-icon {
display: none;
transition: transform 0.16s ease;
}
.footer-col-links {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 10px;
}
.footer-col-links a,
.footer-col-links span {
font-size: 14px;
color: var(--ink-soft);
}
.footer-col-link-with-icon {
display: inline-flex;
align-items: center;
gap: 8px;
}
.footer-col-link-icon {
width: 16px;
height: 16px;
flex-shrink: 0;
opacity: 0.88;
}
.footer-col-link-external {
display: inline-flex;
align-items: center;
gap: 6px;
width: fit-content;
}
.footer-col-link-external-icon {
flex-shrink: 0;
opacity: 0.45;
transition:
opacity 0.15s ease,
transform 0.15s ease;
}
.footer-col-links a.footer-col-link-external:hover .footer-col-link-external-icon,
.footer-col-links a.footer-col-link-external:focus-visible .footer-col-link-external-icon,
.footer-v2-meta a.footer-col-link-external:hover .footer-col-link-external-icon,
.footer-v2-meta a.footer-col-link-external:focus-visible .footer-col-link-external-icon {
opacity: 0.9;
transform: translate(1px, -1px);
}
.footer-v2-meta a.footer-col-link-external {
display: inline-flex;
align-items: center;
gap: 5px;
}
.footer-v2-copy-link-icon {
margin-left: 3px;
vertical-align: -1px;
}
.footer-v2-copy-link:hover .footer-v2-copy-link-icon,
.footer-v2-copy-link:focus-visible .footer-v2-copy-link-icon {
opacity: 0.9;
transform: translate(1px, -1px);
}
.footer-col-links a:hover,
.footer-col-links a:focus-visible {
color: var(--ink);
}
.footer-col-links a.footer-col-link-with-icon:hover .footer-col-link-icon,
.footer-col-links a.footer-col-link-with-icon:focus-visible .footer-col-link-icon {
opacity: 1;
}
@media (max-width: 960px) {
.site-footer-v2 .site-footer-inner {
padding: 56px var(--space-6) 40px;
}
.footer-v2-main {
grid-template-columns: 1fr;
gap: 32px;
}
.footer-v2-brand {
max-width: none;
}
.footer-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 760px) {
.site-footer-v2 .site-footer-inner {
padding: 44px var(--space-4) 32px;
}
.site-footer-v2 .footer-v2-eco {
margin-top: 32px;
margin-bottom: 0;
padding: 36px 0 32px;
}
.footer-grid {
grid-template-columns: 1fr;
gap: 0;
}
.footer-col {
align-items: stretch;
gap: 0;
border-top: 1px solid var(--line);
}
.footer-col:first-child {
border-top: 0;
}
.footer-v2-eco-marks {
flex-wrap: nowrap;
gap: 24px;
width: max-content;
max-width: none;
overflow: visible;
padding-bottom: 4px;
animation: footer-v2-eco-marquee 34s linear infinite;
scrollbar-width: none;
will-change: transform;
}
.footer-v2-eco-marquee {
overflow: hidden;
mask-image: linear-gradient(
to right,
transparent,
#000 18px,
#000 calc(100% - 18px),
transparent
);
}
.footer-v2-eco-sequence,
.footer-v2-eco-sequence-clone {
display: flex;
flex: 0 0 auto;
align-items: center;
gap: 24px;
}
.footer-v2-eco-mark {
flex: 0 0 auto;
}
.footer-v2-bottom {
flex-direction: column;
align-items: flex-start;
}
.footer-col-title {
margin: 0;
}
.footer-col-toggle {
width: 100%;
justify-content: space-between;
padding: 14px 0;
cursor: pointer;
}
.footer-col-toggle:focus-visible {
outline: 2px solid var(--accent);
outline-offset: 2px;
}
.footer-col-toggle-icon {
display: block;
flex: 0 0 auto;
}
.footer-col-toggle[aria-expanded="true"] .footer-col-toggle-icon {
transform: rotate(180deg);
}
.footer-col-links {
display: none;
align-items: flex-start;
gap: 10px;
padding: 0 0 14px;
}
.footer-col-links[data-open="true"] {
display: flex;
}
}
@keyframes footer-v2-eco-marquee {
to {
transform: translateX(calc(-50% - 12px));
}
}
@media (max-width: 760px) and (prefers-reduced-motion: reduce) {
.footer-v2-eco-marquee {
overflow-x: auto;
mask-image: none;
scrollbar-width: none;
}
.footer-v2-eco-marquee::-webkit-scrollbar {
display: none;
}
.footer-v2-eco-marks {
animation: none;
will-change: auto;
}
.footer-v2-eco-sequence-clone {
display: none;
}
}
.about-page {
display: grid;
gap: 24px;
}
.about-bento {
display: grid;
grid-template-columns: 1fr;
gap: var(--space-5);
}
.about-panel {
display: grid;
gap: var(--space-4);
padding: var(--space-5);
border: 1px solid var(--line);
border-radius: var(--r-lg);
background:
linear-gradient(180deg, color-mix(in srgb, var(--surface) 88%, transparent), transparent),
color-mix(in srgb, var(--surface-muted) 58%, transparent);
}
.about-panel-hero,
.about-panel-enforcement,
.about-panel-actions {
align-content: start;
}
.about-panel-copy {
margin: 0;
color: var(--ink-soft);
line-height: 1.65;
}
.about-hero-copy {
display: flex;
flex-direction: column;
gap: var(--space-3);
}
.about-title {
margin: 0;
font-family: var(--font-display);
font-size: 3.5rem;
line-height: 0.98;
letter-spacing: 0;
}
.about-lead {
margin: 14px 0 0;
max-width: 62ch;
color: var(--ink-soft);
line-height: 1.7;
font-size: 1rem;
}
.about-callout {
display: grid;
gap: 12px;
padding: 18px;
border-radius: var(--r-lg);
border: 1px solid color-mix(in srgb, var(--line) 84%, transparent);
background: color-mix(in srgb, var(--surface) 80%, transparent);
}
.about-callout p {
margin: 0;
color: var(--ink-soft);
line-height: 1.6;
}
.about-callout-label {
font-size: 0.72rem;
font-family: var(--font-mono);
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--ink-soft);
}
.about-panel .home-section-title {
font-size: var(--fs-lg);
font-weight: 600;
color: var(--ink);
}
.about-categories-header {
justify-items: center;
text-align: center;
margin-bottom: 10px;
}
.about-categories-header .home-section-title {
max-width: 18ch;
font-size: 2.35rem;
line-height: 1.02;
letter-spacing: 0;
}
.about-grid,
.about-patterns,
.souls-coming-grid {
display: grid;
grid-template-columns: 1fr;
gap: 20px;
}
.about-panel-categories {
overflow: visible;
}
.about-panel-categories .about-grid {
grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}
.about-rule-card {
display: flex;
flex-direction: column;
gap: 16px;
min-height: 220px;
padding: 28px 26px 24px;
border: 1px solid var(--line);
border-radius: var(--r-lg);
background: color-mix(in srgb, var(--surface) 88%, transparent);
transition:
border-color 0.25s,
box-shadow 0.3s,
transform 0.25s,
background 0.25s;
}
.about-rule-card:hover {
border-color: var(--border-ui-hover);
transform: translateY(-3px);
box-shadow:
0 8px 24px rgba(0, 0, 0, 0.2),
0 0 0 1px rgba(220, 38, 38, 0.06);
background: color-mix(in srgb, var(--surface) 95%, transparent);
}
.about-rule-card-header {
display: flex;
align-items: center;
gap: 14px;
}
.about-rule-card-icon {
width: 36px;
height: 36px;
border-radius: var(--r-sm);
display: flex;
align-items: center;
justify-content: center;
background: var(--accent-subtle);
border: 1.5px solid color-mix(in srgb, var(--status-error-fg) 25%, var(--line));
flex-shrink: 0;
transition:
background 0.2s,
box-shadow 0.2s;
}
.about-rule-card-icon svg {
width: 18px;
height: 18px;
color: var(--accent);
}
.about-rule-card:hover .about-rule-card-icon {
background: var(--status-error-bg);
box-shadow: 0 0 14px color-mix(in srgb, var(--status-error-fg) 8%, transparent);
}
.about-rule-card :is(h2, h3) {
margin: 0;
font-size: 1.22rem;
font-family: var(--font-display);
font-weight: 600;
line-height: 1.08;
letter-spacing: 0;
color: var(--ink);
}
.about-rule-card p {
margin: 0;
flex: 1;
color: color-mix(in srgb, var(--ink) 75%, transparent);
line-height: 1.72;
font-size: 0.98rem;
max-width: 30ch;
}
.about-inline-code {
background: var(--surface-muted);
padding: 2px 6px;
border-radius: var(--r-xs);
font-size: 0.88em;
font-family: var(--font-mono);
}
.about-pattern {
margin: 0;
display: grid;
grid-template-columns: auto 1fr;
align-items: start;
gap: 12px;
padding: 14px;
border: 1px solid var(--line);
border-radius: var(--r-md);
background: color-mix(in srgb, var(--surface) 82%, transparent);
color: var(--ink-soft);
line-height: 1.6;
font-size: var(--fs-sm);
}
.about-pattern svg {
width: 16px;
height: 16px;
margin-top: 3px;
flex-shrink: 0;
}
.about-pattern-accepted svg {
color: var(--status-success-fg);
}
.about-pattern-rejected svg {
color: var(--status-error-fg);
}
.about-pattern-lanes {
display: grid;
grid-template-columns: 1fr;
gap: var(--space-4);
}
.about-patterns-header {
display: grid;
gap: var(--space-3);
max-width: 76ch;
}
.about-pattern-lane {
min-height: 100%;
padding: var(--space-5);
border-radius: var(--r-lg);
background: color-mix(in srgb, var(--surface) 88%, transparent);
}
.about-pattern-lane-header {
flex-direction: row;
align-items: flex-start;
gap: 14px;
}
.about-pattern-lane-header > div:last-child {
display: grid;
gap: 10px;
}
.about-pattern-lane-accepted {
border-color: color-mix(in srgb, var(--status-success-fg) 30%, var(--line));
}
.about-pattern-lane-accepted .about-rule-card-icon {
background: var(--status-success-bg);
border-color: color-mix(in srgb, var(--status-success-fg) 35%, var(--line));
}
.about-pattern-lane-accepted .about-rule-card-icon svg {
color: var(--status-success-fg);
}
.about-pattern-lane-rejected {
border-color: color-mix(in srgb, var(--status-error-fg) 30%, var(--line));
}
.about-pattern-lane-rejected .about-rule-card-icon {
background: var(--status-error-bg);
border-color: color-mix(in srgb, var(--status-error-fg) 35%, var(--line));
}
.about-pattern-lane-rejected .about-rule-card-icon svg {
color: var(--status-error-fg);
}
.about-pattern-lane .about-patterns {
grid-template-columns: 1fr;
gap: 12px;
}
.souls-coming-page {
display: grid;
gap: 24px;
}
.souls-coming-hero {
display: grid;
gap: 20px;
}
@media (min-width: 641px) {
.about-bento {
grid-template-columns: repeat(6, minmax(0, 1fr));
}
.about-panel-hero {
grid-column: span 4;
}
.about-panel-callout {
grid-column: span 2;
}
.about-panel-categories,
.about-panel-patterns {
grid-column: 1 / -1;
}
.about-panel-enforcement,
.about-panel-actions {
grid-column: span 3;
}
.about-grid,
.about-panel-categories .about-grid {
grid-template-columns: repeat(2, 1fr);
gap: 22px;
}
.about-patterns {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (min-width: 1024px) {
.about-bento {
grid-template-columns: repeat(12, minmax(0, 1fr));
}
.about-panel-hero {
grid-column: span 8;
}
.about-panel-callout {
grid-column: span 4;
}
.about-panel-enforcement {
grid-column: span 7;
}
.about-panel-actions {
grid-column: span 5;
}
.about-grid,
.about-panel-categories .about-grid {
grid-template-columns: repeat(3, 1fr);
gap: 24px;
}
.about-patterns {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.about-pattern-lanes {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 860px) {
.publisher-profile-hero {
grid-template-columns: 1fr;
gap: 24px;
}
.publisher-profile-hero-stats {
justify-content: flex-start;
flex-wrap: wrap;
}
.publisher-profile-stat + .publisher-profile-stat {
padding-left: 0;
border-left: 0;
}
.publisher-profile-layout {
grid-template-columns: 1fr;
gap: 24px;
}
.publisher-profile-section-header {
align-items: flex-start;
flex-direction: column;
gap: 12px;
}
.publisher-profile-section-controls {
width: 100%;
align-items: flex-start;
justify-content: flex-start;
flex-wrap: wrap;
}
}
@media (max-width: 640px) {
.publisher-profile-hero,
.publisher-profile-layout {
grid-template-columns: 1fr;
}
.publisher-profile-hero {
align-items: start;
padding: 26px var(--space-4);
}
.publisher-profile-hero-main {
align-items: start;
}
.publisher-profile-avatar .marketplace-icon-md {
width: 64px;
height: 64px;
}
.publisher-profile-avatar .marketplace-icon-md .marketplace-icon-glyph {
width: 30px;
height: 30px;
}
.publisher-profile-title-row {
align-items: flex-start;
}
.publisher-profile-title-text {
white-space: normal;
}
.publisher-profile-hero-stats {
justify-content: flex-start;
flex-wrap: wrap;
}
.publisher-profile-section-header {
align-items: flex-start;
flex-direction: column;
}
.publisher-profile-section-controls {
width: 100%;
align-items: flex-start;
justify-content: flex-start;
flex-wrap: wrap;
}
.publisher-published-row {
grid-template-columns: auto minmax(0, 1fr);
}
.publisher-published-row-stats {
grid-column: 2;
justify-self: start;
margin-top: 2px;
flex-wrap: wrap;
}
.about-bento,
.about-grid,
.about-patterns,
.about-pattern-lanes,
.about-panel-categories .about-grid,
.souls-coming-grid {
grid-template-columns: 1fr;
}
.about-title {
font-size: 2.4rem;
}
}
@media (max-width: 520px) {
.profile-header {
flex-direction: column;
text-align: center;
}
.profile-stats-row {
justify-content: center;
}
}
/* Empty states */
.empty-state {
text-align: center;
padding: var(--space-7) var(--space-5);
border: 1px solid var(--line);
border-radius: var(--r-sm);
}
.empty-state-icon {
display: block;
margin: 0 auto var(--space-3);
color: var(--ink-soft);
}
.empty-state-title {
font-weight: 600;
font-size: var(--fs-md);
margin-bottom: var(--space-1);
}
.empty-state-body {
color: var(--ink-soft);
font-size: var(--fs-sm);
margin-bottom: var(--space-4);
margin-top: 0;
}
/* Dark mode: only where CSS variables don't suffice */
.mobile-nav-meta {
margin-left: auto;
font-size: 0.75rem;
color: var(--ink-soft);
}
@media (max-width: 1100px) and (min-width: 761px) {
.theme-mode-toggle {
min-width: 112px;
height: 40px;
min-height: 40px;
padding: 0 8px;
gap: 6px;
}
.theme-cycle-group {
display: none;
}
}
/* ═══════════════════════════════════════════════════════════════════════
HOME V2 — Redesigned homepage (mockup-14-carousel)
All classes prefixed home-v2- to avoid collisions with existing styles.
═══════════════════════════════════════════════════════════════════════ */
/* --- Variables (home v2 shell: main + proof + FAQ + footer share tokens) --- */
.app-shell:has(.home-v2-main) {
--hv2-bg: #060608;
--hv2-surface: rgba(255, 255, 255, 0.02);
--hv2-surface-hover: rgba(255, 255, 255, 0.045);
--hv2-border: rgba(255, 255, 255, 0.07);
--hv2-border-hover: rgba(255, 255, 255, 0.14);
--hv2-border-strong: rgba(255, 255, 255, 0.1);
--hv2-text: #eaeaea;
--hv2-text-secondary: #b2b2b8;
--hv2-text-tertiary: #82828a;
--hv2-accent: #d4453a;
--hv2-accent-fill: rgba(212, 69, 58, 0.1);
--hv2-accent-fill-hover: rgba(212, 69, 58, 0.16);
--hv2-accent-glow: rgba(212, 69, 58, 0.06);
--hv2-accent-border: rgba(212, 69, 58, 0.3);
--hv2-accent-border-hover: rgba(212, 69, 58, 0.5);
--hv2-green: #3dab5e;
--hv2-green-fill: rgba(61, 171, 94, 0.08);
--hv2-green-border: rgba(61, 171, 94, 0.25);
--hv2-green-border-hover: rgba(61, 171, 94, 0.4);
--hv2-green-fill-hover: rgba(61, 171, 94, 0.14);
--hv2-radius-sm: 8px;
--hv2-radius-md: 12px;
--hv2-radius-lg: 16px;
--hv2-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
--hv2-duration-fast: 160ms;
--hv2-duration-ui: 180ms;
}
.home-v2-main {
position: relative;
isolation: isolate;
max-width: var(--page-max);
margin-inline: auto;
width: 100%;
min-width: 0;
overflow-x: visible;
background: var(--hv2-bg);
}
/* Ambient glow spans hero + listing so the page base color stays even */
[data-theme-resolved="dark"] .home-v2-main::before {
content: "";
position: absolute;
inset: 0;
z-index: 0;
pointer-events: none;
background:
radial-gradient(ellipse 90% 55% at 50% -8%, rgba(212, 69, 58, 0.07) 0%, transparent 58%),
radial-gradient(ellipse 70% 45% at 50% 18%, rgba(212, 69, 58, 0.04) 0%, transparent 62%);
}
.home-v2-fold-fade {
position: fixed;
left: 0;
right: 0;
bottom: 0;
z-index: 4;
height: clamp(72px, 14vh, 140px);
pointer-events: none;
background: linear-gradient(
to top,
var(--hv2-bg) 0%,
color-mix(in srgb, var(--hv2-bg) 88%, transparent) 42%,
transparent 100%
);
opacity: 1;
transition: opacity 0.22s var(--hv2-ease-out);
}
.home-v2-fold-fade.is-hidden {
opacity: 0;
}
@media (prefers-reduced-motion: reduce) {
.home-v2-fold-fade {
transition: none;
}
}
.home-v2-hero,
.home-v2-listing {
position: relative;
z-index: 1;
}
/* Home hero decor bleeds up behind the floating calm header */
.app-shell:has(.home-v2-main) main.home-v2-main {
margin-top: -64px;
/* Last section is the full-bleed CLI band; let it meet the footer flush. */
padding-bottom: 0;
}
.app-shell:has(.home-v2-main) .home-v2-hero {
padding-top: calc(64px + 64px);
}
.app-shell:has(.home-v2-main) .home-v2-hero-bg {
top: -112px;
bottom: -120px;
left: 50%;
width: 100vw;
margin-left: -50vw;
-webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 72%, transparent 100%);
mask-image: linear-gradient(to bottom, #000 0%, #000 72%, transparent 100%);
}
/* ═══ HERO ═══ */
.home-v2-hero {
position: relative;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
padding: 64px 48px 48px;
overflow: visible;
}
.home-v2-hero > *:not(.home-v2-hero-bg) {
position: relative;
z-index: 2;
}
/* Background layers */
.home-v2-hero-bg {
position: absolute;
inset: 0;
pointer-events: none;
overflow: hidden;
}
.home-v2-hero-bg::before {
content: "";
position: absolute;
inset: 0;
background: url("/home-hero-claw.webp") center top / cover no-repeat;
filter: brightness(0.75);
}
/* Headline */
.home-v2-headline {
font-family: "Inter", sans-serif;
font-weight: 700;
font-size: clamp(36px, 4.25vw, 54px);
line-height: 1.12;
letter-spacing: -0.035em;
margin-bottom: 14px;
max-width: 1060px;
width: 100%;
white-space: nowrap;
display: flex;
justify-content: center;
text-align: center;
color: var(--hv2-text);
}
.home-v2-headline-trigger {
all: unset;
display: flex;
width: 100%;
cursor: pointer;
border-radius: var(--oc-radius-control);
}
.home-v2-headline-trigger:focus-visible {
outline: 2px solid var(--hv2-accent);
outline-offset: 8px;
}
.home-v2-headline-clear {
max-width: 960px;
white-space: normal;
}
.home-v2-headline-inner {
display: grid;
width: 100%;
grid-template-columns: minmax(0, 1fr) auto auto auto minmax(0, 1fr);
align-items: center;
}
.home-v2-headline-inner > :first-child {
justify-self: end;
}
.home-v2-headline-inner > :last-child {
justify-self: start;
}
.home-v2-action-word {
font-family: "JetBrains Mono", monospace;
font-weight: 800;
color: var(--hv2-accent);
}
.home-v2-static-headline {
color: var(--oc-accent-primary);
}
.home-v2-sep {
display: inline-block;
width: 5px;
height: 5px;
border: 1.5px solid var(--hv2-accent);
border-radius: 50%;
margin: 0 12px;
vertical-align: middle;
opacity: 0.35;
background: transparent;
}
.home-v2-cycle-wrap {
display: inline-block;
position: relative;
height: 1.15em;
overflow: hidden;
vertical-align: bottom;
min-width: 280px;
text-align: center;
}
.home-v2-cycle-track {
display: flex;
flex-direction: column;
animation: home-v2-wordCycle 16s ease-in-out infinite;
}
.home-v2-cycle-word {
font-family: "JetBrains Mono", monospace;
font-weight: 800;
color: var(--hv2-accent);
height: 1.15em;
display: flex;
align-items: center;
justify-content: left;
flex-shrink: 0;
white-space: nowrap;
}
@keyframes home-v2-wordCycle {
0%,
18% {
transform: translateY(0);
}
20%,
38% {
transform: translateY(-20%);
}
40%,
58% {
transform: translateY(-40%);
}
60%,
78% {
transform: translateY(-60%);
}
80%,
98% {
transform: translateY(-80%);
}
100% {
transform: translateY(-80%);
}
}
/* Slot machine easter egg */
.home-v2-headline-slots {
min-height: 1.15em;
position: relative;
}
.home-v2-slot-reel {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 180px;
text-align: center;
font-family: "JetBrains Mono", monospace;
font-weight: 800;
color: var(--hv2-accent);
position: relative;
}
.home-v2-slot-reel.spinning .home-v2-slot-word {
animation: home-v2-slotBlur 0.12s steps(1) infinite;
}
.home-v2-slot-reel:not(.spinning) .home-v2-slot-word {
animation: home-v2-slotLand 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}
@keyframes home-v2-slotBlur {
0% {
filter: blur(0);
opacity: 1;
}
50% {
filter: blur(1px);
opacity: 0.7;
}
100% {
filter: blur(0);
opacity: 1;
}
}
@keyframes home-v2-slotLand {
0% {
transform: translateY(-8px) scale(1.1);
opacity: 0.5;
}
60% {
transform: translateY(2px) scale(0.98);
}
100% {
transform: translateY(0) scale(1);
opacity: 1;
}
}
.home-v2-headline-jackpot {
animation: home-v2-jackpot 0.5s ease-out;
}
@keyframes home-v2-jackpot {
0% {
transform: scale(1);
}
30% {
transform: scale(1.08);
}
60% {
transform: scale(0.97);
}
100% {
transform: scale(1);
}
}
.home-v2-headline-jackpot .home-v2-slot-word {
color: #ffd93d !important;
text-shadow:
0 0 20px rgba(255, 217, 61, 0.6),
0 0 40px rgba(255, 217, 61, 0.3);
}
.home-v2-headline-hack .home-v2-slot-word {
color: #22d3ee !important;
text-shadow:
0 0 24px rgba(34, 211, 238, 0.6),
0 0 48px rgba(6, 182, 212, 0.3),
0 2px 8px rgba(0, 0, 0, 0.4) !important;
}
.home-v2-headline-hack .home-v2-sep {
border-color: #22d3ee;
opacity: 0.8;
box-shadow: 0 0 8px rgba(34, 211, 238, 0.5);
}
.home-v2-hack-lobster {
position: absolute;
top: 50%;
left: 50%;
width: 280px;
height: 280px;
transform: translate(-50%, -50%) scale(0);
opacity: 0;
pointer-events: none;
filter: drop-shadow(0 0 40px rgba(34, 211, 238, 0.5))
drop-shadow(0 0 80px rgba(6, 182, 212, 0.25));
animation: home-v2-lobsterReveal 1.2s 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
z-index: -1;
}
@keyframes home-v2-lobsterReveal {
0% {
transform: translate(-50%, -50%) scale(0) rotate(-30deg);
opacity: 0;
}
50% {
opacity: 0.18;
}
100% {
transform: translate(-50%, -50%) scale(1) rotate(0deg);
opacity: 0.12;
}
}
.home-v2-confetti {
position: fixed;
inset: 0;
z-index: 9999;
pointer-events: none;
}
.home-v2-sub {
color: var(--hv2-text-tertiary);
font-size: 16px;
line-height: 1.5;
margin-bottom: 36px;
max-width: 580px;
font-weight: 400;
}
.home-v2-motto {
display: flex;
flex-direction: column;
align-items: center;
gap: 10px;
margin-bottom: 34px;
}
.home-v2-motto-label {
font-family: "JetBrains Mono", monospace;
font-size: 12px;
font-weight: 600;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--hv2-text-tertiary);
}
.home-v2-headline-motto {
margin-bottom: 0;
font-size: clamp(24px, 2.8vw, 34px);
letter-spacing: -0.03em;
}
/* Search bar */
.home-v2-search-container {
width: 100%;
max-width: 720px;
}
.home-v2-search-bar {
display: flex;
align-items: center;
background: var(--hv2-surface);
border: 1px solid var(--hv2-border-strong);
border-radius: 16px;
padding: 6px 6px 6px 22px;
gap: 12px;
transition:
border-color 0.25s,
box-shadow 0.3s,
background 0.2s;
box-shadow: 0 1px 20px rgba(0, 0, 0, 0.15);
}
.home-v2-search-bar:focus-within {
border-color: var(--hv2-accent-border);
box-shadow:
0 2px 36px rgba(0, 0, 0, 0.2),
0 0 0 3px var(--hv2-accent-glow);
background: rgba(255, 255, 255, 0.025);
}
.home-v2-search-bar .home-v2-search-icon {
flex-shrink: 0;
color: var(--hv2-text-tertiary);
}
.home-v2-search-bar input {
flex: 1;
background: none;
border: none;
outline: none;
color: var(--hv2-text);
font-size: 16px;
font-family: "Inter", sans-serif;
padding: 8px 0;
}
.home-v2-search-bar input::placeholder {
color: var(--hv2-text-tertiary);
}
.home-v2-search-go {
background: var(--hv2-accent-fill);
color: var(--hv2-accent);
border: 1.5px solid var(--hv2-accent-border);
border-radius: 12px;
padding: 13px 30px;
font-size: 15px;
font-weight: 700;
cursor: pointer;
white-space: nowrap;
transition:
background 0.15s,
border-color 0.2s,
box-shadow 0.2s;
display: flex;
align-items: center;
gap: 8px;
flex-shrink: 0;
}
.home-v2-search-go:hover {
background: var(--hv2-accent-fill-hover);
border-color: var(--hv2-accent-border-hover);
box-shadow: 0 0 24px var(--hv2-accent-glow);
}
.home-v2-search-go:active {
transform: scale(0.97);
}
/* Suggestions */
.home-v2-suggestions {
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
margin-top: 16px;
flex-wrap: wrap;
}
.home-v2-suggestion {
display: flex;
align-items: center;
gap: 5px;
color: var(--hv2-text-secondary);
font-size: 13px;
font-weight: 500;
padding: 6px 14px;
border-radius: 100px;
cursor: pointer;
transition:
color 0.15s,
background 0.15s,
border-color 0.15s;
border: 1px solid var(--hv2-border);
background: transparent;
}
.home-v2-suggestion:hover {
color: var(--hv2-text);
background: var(--hv2-surface-hover);
border-color: var(--hv2-border-hover);
}
.home-v2-suggestion svg {
color: var(--hv2-text-tertiary);
}
.home-v2-suggestion:hover svg {
color: var(--hv2-accent);
}
@media (max-width: 760px) {
.home-v2-suggestions {
gap: 6px;
margin-top: 12px;
}
.home-v2-suggestion {
font-size: 12px;
padding: 5px 10px;
gap: 4px;
}
}
/* ═══ CAROUSEL ═══ */
.home-v2-carousel-section {
padding: 48px 0 0;
border-top: 1px solid var(--hv2-border);
position: relative;
}
.home-v2-carousel-header {
display: flex;
align-items: flex-end;
justify-content: space-between;
margin-bottom: 20px;
padding: 0 48px;
gap: 20px;
}
.home-v2-carousel-header h2 {
font-size: 15px;
font-weight: 600;
color: var(--hv2-text-secondary);
letter-spacing: 0.02em;
text-transform: uppercase;
}
.home-v2-section-copy {
display: flex;
flex-direction: column;
gap: 10px;
max-width: 760px;
}
.home-v2-section-eyebrow {
font-family: "JetBrains Mono", monospace;
font-size: 12px;
font-weight: 700;
letter-spacing: 0.1em;
text-transform: uppercase;
color: var(--hv2-accent);
}
.home-v2-section-copy h2 {
font-size: clamp(22px, 2.1vw, 30px);
font-weight: 700;
line-height: 1.08;
letter-spacing: -0.03em;
color: var(--hv2-text);
}
.home-v2-section-copy p {
font-size: 14px;
line-height: 1.6;
color: var(--hv2-text-secondary);
max-width: 60ch;
}
.home-v2-carousel-controls {
display: flex;
gap: 6px;
}
.home-v2-carousel-btn {
background: transparent;
border: 1px solid var(--hv2-border);
border-radius: var(--hv2-radius-sm);
color: var(--hv2-text-tertiary);
width: 34px;
height: 34px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition:
border-color 0.15s,
color 0.15s,
background 0.15s;
}
.home-v2-carousel-btn:hover {
border-color: var(--hv2-border-hover);
color: var(--hv2-text-secondary);
background: var(--hv2-surface);
}
/* Fade edges */
.home-v2-carousel-wrap {
position: relative;
overflow: hidden;
}
.home-v2-carousel-wrap::before,
.home-v2-carousel-wrap::after {
content: "";
position: absolute;
top: 0;
bottom: 0;
width: 80px;
z-index: 3;
pointer-events: none;
}
.home-v2-carousel-wrap::before {
left: 0;
background: linear-gradient(to right, var(--hv2-bg), transparent);
}
.home-v2-carousel-wrap::after {
right: 0;
background: linear-gradient(to left, var(--hv2-bg), transparent);
}
.home-v2-carousel-track {
display: flex;
gap: 16px;
padding: 12px 48px 48px;
animation: home-v2-scroll 46s linear infinite;
width: max-content;
}
.home-v2-carousel-track:hover {
animation-play-state: paused;
}
@keyframes home-v2-scroll {
0% {
transform: translateX(0);
}
100% {
transform: translateX(calc(-50% - 8px));
}
}
/* Carousel cards */
.home-v2-c-card {
background: var(--hv2-surface);
border: 1px solid var(--hv2-border);
border-radius: var(--hv2-radius-lg);
padding: 24px;
min-width: 340px;
max-width: 340px;
flex-shrink: 0;
transition:
border-color 0.25s,
transform 0.25s,
box-shadow 0.3s,
background 0.25s;
cursor: pointer;
display: flex;
flex-direction: column;
text-decoration: none;
color: inherit;
}
.home-v2-c-card:hover {
border-color: var(--hv2-border-hover);
transform: translateY(-3px);
box-shadow: 0 6px 24px rgba(0, 0, 0, 0.22);
background: var(--hv2-surface-hover);
}
.home-v2-c-head {
display: flex;
align-items: center;
gap: 14px;
margin-bottom: 14px;
}
.home-v2-c-icon {
width: 40px;
height: 40px;
border-radius: 10px;
display: flex;
align-items: center;
justify-content: center;
background: var(--hv2-accent-fill);
border: 1.5px solid var(--hv2-accent-border);
flex-shrink: 0;
transition:
background 0.2s,
box-shadow 0.2s;
}
.home-v2-c-card:hover .home-v2-c-icon {
background: var(--hv2-accent-fill-hover);
box-shadow: 0 0 14px var(--hv2-accent-glow);
}
.home-v2-c-icon svg {
color: var(--hv2-accent);
}
.home-v2-c-meta {
flex: 1;
}
.home-v2-c-name {
font-weight: 600;
font-size: 15px;
color: var(--hv2-text);
}
.home-v2-c-by {
font-size: 13px;
color: var(--hv2-text-secondary);
}
.home-v2-c-tag {
display: inline-flex;
align-items: center;
gap: 4px;
font-size: 11px;
font-weight: 500;
color: var(--hv2-text-tertiary);
background: var(--hv2-surface);
border: 1px solid var(--hv2-border);
border-radius: 100px;
padding: 3px 10px 3px 7px;
margin-bottom: 10px;
width: fit-content;
}
.home-v2-c-tag svg {
color: var(--hv2-accent);
}
.home-v2-c-desc {
font-size: 13px;
color: var(--hv2-text-secondary);
line-height: 1.55;
flex: 1;
margin-bottom: 18px;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.home-v2-c-footer {
display: flex;
align-items: center;
justify-content: space-between;
}
.home-v2-c-stats {
display: flex;
gap: 14px;
font-size: 12px;
color: var(--hv2-text-tertiary);
font-weight: 500;
}
.home-v2-c-stats span {
display: flex;
align-items: center;
gap: 3px;
}
.home-v2-c-install {
background: var(--hv2-green-fill);
border: 1.5px solid var(--hv2-green-border);
border-radius: var(--hv2-radius-sm);
padding: 6px 14px;
font-size: 13px;
font-weight: 600;
color: var(--hv2-green);
cursor: pointer;
transition: all 0.15s;
display: flex;
align-items: center;
gap: 5px;
}
.home-v2-c-card:hover .home-v2-c-install {
background: var(--hv2-green-fill-hover);
border-color: var(--hv2-green-border-hover);
}
/* ═══ CATEGORIES ═══ */
.home-v2-categories {
padding: 40px 48px 0;
}
.home-v2-categories-copy {
display: flex;
flex-direction: column;
gap: 10px;
max-width: 720px;
margin: 0 auto 24px;
}
.home-v2-categories-copy h2 {
font-size: clamp(22px, 2vw, 28px);
font-weight: 700;
line-height: 1.1;
letter-spacing: -0.03em;
color: var(--hv2-text);
}
.home-v2-categories-copy p {
font-size: 14px;
line-height: 1.6;
color: var(--hv2-text-secondary);
}
.home-v2-categories-grid {
display: grid;
--home-v2-category-columns: 3;
grid-template-columns: repeat(var(--home-v2-category-columns), minmax(0, 1fr));
max-width: 1200px;
margin: 0 auto;
border-top: 1px solid var(--hv2-border);
}
.home-v2-categories-grid[data-count="4"] {
--home-v2-category-columns: 4;
}
.home-v2-cat-item {
display: flex;
align-items: center;
gap: 16px;
padding: 28px 24px;
cursor: pointer;
position: relative;
transition: background 0.2s;
text-decoration: none;
color: inherit;
}
.home-v2-cat-item:hover {
background: var(--hv2-surface);
}
.home-v2-cat-item + .home-v2-cat-item::before {
content: "";
position: absolute;
left: 0;
top: 24%;
bottom: 24%;
width: 1px;
background: var(--hv2-border);
}
.home-v2-cat-icon {
width: 44px;
height: 44px;
border-radius: 11px;
display: flex;
align-items: center;
justify-content: center;
background: var(--hv2-accent-fill);
border: 1.5px solid var(--hv2-accent-border);
flex-shrink: 0;
transition:
background 0.2s,
border-color 0.2s,
box-shadow 0.2s;
}
.home-v2-cat-item:hover .home-v2-cat-icon {
background: var(--hv2-accent-fill-hover);
border-color: var(--hv2-accent-border-hover);
box-shadow: 0 0 16px var(--hv2-accent-glow);
}
.home-v2-cat-icon svg {
color: var(--hv2-accent);
}
.home-v2-cat-text {
flex: 1;
}
.home-v2-cat-name {
font-weight: 600;
font-size: 15px;
margin-bottom: 2px;
color: var(--hv2-text);
}
.home-v2-cat-desc {
color: var(--hv2-text-secondary);
font-size: 13px;
}
.home-v2-cat-arrow {
color: var(--hv2-text-secondary);
opacity: 0;
transition:
opacity 0.2s,
transform 0.2s;
}
.home-v2-cat-item:hover .home-v2-cat-arrow {
opacity: 1;
transform: translateX(3px);
}
/* ═══ PROOF BAR ═══ */
/* Legacy proof bar (flex row); prefer .home-v2-proof-stats grid in HomeProofSection */
.home-v2-proof-bar {
display: flex;
align-items: center;
justify-content: center;
gap: 48px;
padding: 28px 48px;
border-top: 1px solid var(--hv2-border);
border-bottom: 1px solid var(--hv2-border);
}
.home-v2-proof-item {
display: flex;
align-items: baseline;
gap: 8px;
}
.home-v2-proof-num {
font-family: var(--font-mono), "JetBrains Mono", ui-monospace, monospace;
font-weight: 700;
font-size: clamp(22px, 2.4vw, 28px);
letter-spacing: -0.03em;
color: var(--hv2-text);
font-variant-numeric: tabular-nums;
}
.home-v2-proof-label {
font-size: 14px;
font-weight: 500;
color: var(--hv2-text-tertiary);
}
.home-v2-proof-sep {
width: 1px;
height: 16px;
background: var(--hv2-border);
}
.home-v2-proof {
display: none;
}
.app-shell:has(.home-v2-main) .home-v2-proof {
display: block;
position: relative;
z-index: 1;
color: var(--hv2-text);
background: transparent;
}
.app-shell:has(.home-v2-main) .home-v2-proof::after {
content: "";
position: absolute;
inset: 0 auto auto 0;
width: 100%;
height: 1px;
pointer-events: none;
background: linear-gradient(
90deg,
transparent 0%,
color-mix(in srgb, var(--hv2-accent) 26%, var(--hv2-border)) 20%,
color-mix(in srgb, var(--hv2-accent) 26%, var(--hv2-border)) 80%,
transparent 100%
);
opacity: 0.9;
}
.home-v2-proof-inner {
position: relative;
z-index: 1;
max-width: 1296px;
margin: 0 auto;
padding: 34px 48px 34px;
display: grid;
gap: 28px;
}
.home-v2-proof-stats {
display: flex;
flex-wrap: wrap;
align-items: baseline;
justify-content: center;
gap: 12px 0;
width: 100%;
padding: 0 0 18px;
text-align: center;
border-bottom: 1px solid color-mix(in srgb, var(--hv2-border) 72%, transparent);
border-radius: 0;
background: none;
}
.home-v2-proof-stats .home-v2-proof-num {
font-size: clamp(24px, 3vw, 34px);
font-weight: 750;
letter-spacing: -0.045em;
line-height: 1;
}
.home-v2-proof-stats .home-v2-proof-label {
font-size: 13px;
font-weight: 560;
color: var(--hv2-text-secondary);
}
.home-v2-proof-stat {
display: inline-flex;
align-items: baseline;
gap: 10px;
}
.home-v2-proof-stat-sep {
margin: 0 24px;
color: color-mix(in srgb, var(--hv2-text-tertiary) 70%, transparent);
font-size: 22px;
line-height: 1;
font-weight: 300;
user-select: none;
}
.home-v2-proof-main {
display: grid;
grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
gap: 28px 42px;
align-items: start;
}
.home-v2-proof-header {
display: grid;
gap: 12px;
}
.home-v2-proof-eyebrow {
display: inline-flex;
align-items: center;
gap: 8px;
margin: 0;
font-size: 13px;
font-weight: 500;
color: var(--hv2-text-tertiary);
}
.home-v2-proof-eyebrow-mark {
width: 18px;
height: 18px;
flex-shrink: 0;
object-fit: contain;
opacity: 0.92;
}
.home-v2-proof-title {
margin: 0;
max-width: 24ch;
font-size: clamp(22px, 2vw, 28px);
font-weight: 700;
line-height: 1.12;
letter-spacing: 0;
color: var(--hv2-text);
}
.home-v2-proof-lede {
margin: 0;
max-width: 38ch;
font-size: 15px;
line-height: 1.55;
color: var(--hv2-text-secondary);
}
.home-v2-proof-links {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 8px;
margin-top: 8px;
padding-bottom: 4px;
}
.home-v2-proof-link {
display: inline-flex;
align-items: center;
gap: 5px;
min-height: 30px;
padding: 0 10px;
border: 1px solid color-mix(in srgb, var(--hv2-border-strong) 72%, transparent);
border-radius: var(--r-pill);
background: color-mix(in srgb, var(--hv2-surface) 34%, transparent);
font-size: 12px;
font-weight: 650;
line-height: 1.25;
color: var(--hv2-text-secondary);
text-decoration: none;
transition: color 0.15s ease;
}
.home-v2-proof-link:hover,
.home-v2-proof-link:focus-visible {
border-color: var(--hv2-border-hover);
background: color-mix(in srgb, var(--hv2-surface-hover) 62%, transparent);
color: var(--hv2-text);
text-decoration: none;
}
.home-v2-proof-points {
margin: 0;
padding: 0;
list-style: none;
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 10px;
}
.home-v2-proof-point {
display: grid;
gap: 8px;
min-height: 142px;
padding: 18px;
border: 1px solid color-mix(in srgb, var(--hv2-border-strong) 72%, transparent);
border-radius: 12px;
background: color-mix(in srgb, var(--hv2-surface) 34%, transparent);
}
.home-v2-proof-point:first-child {
padding-top: 18px;
border-top: 1px solid color-mix(in srgb, var(--hv2-border-strong) 72%, transparent);
}
.home-v2-proof-point-title {
margin: 0;
font-size: 15px;
font-weight: 650;
letter-spacing: -0.01em;
color: var(--hv2-text);
}
.home-v2-proof-point-desc {
margin: 0;
font-size: 14px;
line-height: 1.55;
color: var(--hv2-text-tertiary);
}
@media (max-width: 960px) {
.home-v2-proof-main {
grid-template-columns: 1fr;
gap: 36px;
align-items: start;
}
.home-v2-proof-points {
grid-template-columns: 1fr;
}
.home-v2-proof-title,
.home-v2-proof-lede {
max-width: none;
}
}
@media (max-width: 760px) {
.home-v2-proof-inner {
padding: 34px 20px 56px;
gap: 32px;
}
.app-shell:has(.home-v2-main) .home-v2-closing::before {
top: -28px;
height: 28px;
}
.home-v2-proof-stats {
gap: 16px 8px;
padding-bottom: 16px;
}
.home-v2-proof-stats .home-v2-proof-num {
font-size: clamp(26px, 7vw, 34px);
}
.home-v2-proof-stats .home-v2-proof-label {
font-size: 14px;
}
.home-v2-proof-stat-sep {
margin: 0 14px;
font-size: 18px;
}
}
[data-theme-resolved="light"] .site-footer-v2 {
background: var(--hv2-bg);
border-top-color: var(--hv2-border);
}
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-closing::before {
background: linear-gradient(
to bottom,
transparent 0%,
color-mix(in srgb, var(--hv2-bg) 60%, #ececf0) 52%,
color-mix(in srgb, var(--hv2-bg) 96%, #ececf0) 100%
);
}
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-proof {
background: transparent;
}
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-proof::after {
background: linear-gradient(
90deg,
transparent 0%,
color-mix(in srgb, var(--hv2-accent) 18%, var(--hv2-border)) 20%,
color-mix(in srgb, var(--hv2-accent) 18%, var(--hv2-border)) 80%,
transparent 100%
);
}
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-proof-point {
border-color: var(--hv2-border-strong);
background: color-mix(in srgb, var(--hv2-surface) 70%, transparent);
}
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-stack-trend-card,
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-collection-card,
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-stack-feature {
background: var(--hv2-surface);
border-color: var(--hv2-border-strong);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.9),
0 1px 2px rgba(15, 23, 42, 0.06),
0 6px 16px rgba(15, 23, 42, 0.08);
}
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-collection-card:hover,
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-collection-card:focus-visible {
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.95),
0 2px 4px rgba(15, 23, 42, 0.08),
0 16px 32px rgba(15, 23, 42, 0.16);
}
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-stack-feature {
background:
radial-gradient(
120% 140% at 0% 0%,
color-mix(in srgb, var(--hv2-accent) 8%, transparent),
transparent 60%
),
var(--hv2-surface);
}
[data-theme-resolved="light"]
.app-shell:has(.home-v2-main)
.home-v2-stack-feature.home-v2-stack-feature--muted {
background: var(--hv2-surface);
}
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-stack-trend-card:hover,
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-collection-card:hover,
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-stack-feature-item:hover,
[data-theme-resolved="light"]
.app-shell:has(.home-v2-main)
.home-v2-stack-feature-item:focus-visible {
background: linear-gradient(145deg, rgb(250 250 250) 0%, rgb(238 238 240) 100%);
border-color: var(--hv2-border-hover);
}
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-stack-feature-item {
background: linear-gradient(145deg, rgb(250 250 250) 0%, rgb(238 238 240) 100%);
border-color: var(--hv2-border);
}
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-stack-avatar,
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-stack-avatar--image {
background: linear-gradient(145deg, #ffffff, #f1f1f4);
border-color: var(--hv2-border-strong);
color: var(--hv2-text);
}
[data-theme-resolved="light"]
.app-shell:has(.home-v2-main)
.home-v2-stack-avatar--user.home-v2-stack-avatar--image {
background: var(--hv2-surface);
}
[data-theme-resolved="light"] .site-footer-v2 .footer-v2-eco-mark,
[data-theme-resolved="light"] .site-footer-v2 .footer-v2-eco-mark-logo {
background: transparent;
border-color: transparent;
}
/* Ecosystem logos ship as dark-themed icon tiles; round + ring them in light
mode so they read as intentional app icons instead of bare black squares. */
[data-theme-resolved="light"] .site-footer-v2 .footer-v2-eco-mark-logo img {
border-radius: 6px;
box-shadow:
inset 0 0 0 1px rgba(15, 23, 42, 0.08),
0 1px 2px rgba(15, 23, 42, 0.12);
}
/* ═══ PROMOTION BAR ═══ */
.promotion-bar {
position: relative;
z-index: 11;
isolation: isolate;
width: 100%;
overflow: hidden;
border-bottom: 1px solid color-mix(in srgb, var(--accent) 26%, var(--line));
background:
radial-gradient(
ellipse 28% 180% at 12% -90%,
color-mix(in srgb, var(--accent) 26%, transparent) 0%,
transparent 72%
),
radial-gradient(
ellipse 34% 220% at 84% 180%,
color-mix(in srgb, var(--accent) 22%, transparent) 0%,
transparent 70%
),
linear-gradient(
90deg,
var(--surface) 0%,
color-mix(in srgb, var(--accent) 9%, var(--surface)) 48%,
color-mix(in srgb, var(--accent) 5%, var(--surface)) 100%
);
}
.promotion-bar::before {
content: "";
position: absolute;
pointer-events: none;
}
.promotion-bar::before {
inset: 0;
z-index: -1;
background: repeating-linear-gradient(
105deg,
transparent 0 24px,
color-mix(in srgb, var(--accent) 12%, transparent) 24px 25px
);
opacity: 0.5;
mask-image: linear-gradient(90deg, transparent 0%, #000 18%, #000 82%, transparent 100%);
}
.promotion-bar-track {
position: relative;
z-index: 1;
display: flex;
width: 100%;
max-width: var(--page-max);
min-height: 36px;
margin: 0 auto;
padding: 0 var(--space-5);
overflow-x: auto;
scrollbar-width: none;
scroll-snap-type: x mandatory;
}
.promotion-bar-track::-webkit-scrollbar {
display: none;
}
.promotion-bar-item {
position: relative;
display: flex;
flex: 1 0 auto;
align-items: center;
justify-content: center;
min-width: min(100%, 520px);
padding: 6px 32px;
scroll-snap-align: start;
}
.promotion-bar-item + .promotion-bar-item {
border-left: 1px solid color-mix(in srgb, var(--accent) 20%, transparent);
}
.promotion-bar-title {
display: flex;
align-items: center;
gap: 7px;
min-width: 0;
margin: 0;
color: var(--ink);
font-size: 12px;
font-weight: 600;
line-height: 1.2;
}
.promotion-bar-icon {
width: 14px;
height: 14px;
flex: 0 0 auto;
border-radius: var(--oc-radius-inset);
color: var(--accent);
}
.promotion-bar-title-copy {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.promotion-bar-copy {
display: flex;
flex: 0 1 auto;
align-items: center;
gap: 14px;
min-width: 0;
font-size: 11px;
white-space: nowrap;
}
.promotion-bar-separator {
width: 1px;
height: 14px;
flex: 0 0 auto;
background: color-mix(in srgb, var(--ink) 18%, transparent);
}
.promotion-bar-meta {
min-width: 0;
overflow: hidden;
color: var(--ink-soft);
text-overflow: ellipsis;
}
.promotion-bar-content {
display: flex;
align-items: center;
justify-content: center;
gap: 18px;
min-width: 0;
}
.promotion-bar-link {
display: inline-flex;
align-items: center;
gap: 4px;
min-height: 24px;
padding: 0 8px;
border: 1px solid color-mix(in srgb, var(--accent) 28%, transparent);
border-radius: var(--oc-radius-control);
background: color-mix(in srgb, var(--accent) 10%, transparent);
color: var(--accent);
font-size: 13px;
font-weight: 700;
text-decoration: none;
}
.promotion-bar-link:hover {
border-color: color-mix(in srgb, var(--accent) 42%, transparent);
background: color-mix(in srgb, var(--accent) 15%, transparent);
color: var(--accent-hover);
text-decoration: none;
}
.promotion-bar-link svg {
width: 12px;
height: 12px;
}
.promotion-bar-dismiss {
position: absolute;
top: 50%;
right: 0;
display: inline-grid;
width: 24px;
height: 24px;
place-items: center;
padding: 0;
border: 0;
border-radius: var(--oc-radius-control);
background: transparent;
color: var(--ink-soft);
cursor: pointer;
transform: translateY(-50%);
}
.promotion-bar-dismiss:hover,
.promotion-bar-dismiss:focus-visible {
background: color-mix(in srgb, var(--ink) 8%, transparent);
color: var(--ink);
}
@media (max-width: 760px) {
.promotion-bar-track {
padding: 0;
}
.promotion-bar-item {
min-width: 100%;
padding: 7px 44px 7px 12px;
border-left: 0;
}
.promotion-bar-content {
width: 100%;
justify-content: space-between;
gap: 12px;
}
.promotion-bar-copy {
gap: 0;
}
.promotion-bar-dismiss {
right: 12px;
}
.promotion-bar-separator,
.promotion-bar-meta {
display: none;
}
}
/* ═══ HOME POPULAR PUBLISHERS ═══ */
.home-v2-popular-publishers {
display: grid;
gap: 18px;
width: 100%;
max-width: 1296px;
margin: 0 auto;
padding: 36px 48px 64px;
overflow-x: clip;
}
.home-v2-popular-publishers-header {
display: flex;
align-items: flex-end;
justify-content: space-between;
gap: 20px;
}
.home-v2-popular-publishers-heading {
display: grid;
gap: 2px;
}
.home-v2-popular-publishers-heading h2 {
margin: 0;
color: var(--hv2-text);
font-size: 18px;
font-weight: 600;
letter-spacing: -0.02em;
}
.home-v2-popular-publishers-heading p {
margin: 0;
color: var(--hv2-text-tertiary);
font-size: 14px;
line-height: 1.45;
}
.home-v2-popular-publishers-link {
display: inline-flex;
align-items: center;
gap: 3px;
color: var(--hv2-text-tertiary);
font-size: 12px;
font-weight: 500;
text-decoration: none;
white-space: nowrap;
transition: color 150ms ease;
}
.home-v2-popular-publishers-link:hover,
.home-v2-popular-publishers-link:focus-visible {
color: var(--hv2-text-secondary);
text-decoration: none;
}
.home-v2-popular-publishers-link svg {
transition: transform 160ms var(--hv2-ease-out);
}
.home-v2-popular-publishers-link:hover svg,
.home-v2-popular-publishers-link:focus-visible svg {
transform: translateX(2px);
}
.home-v2-popular-publishers-viewport {
min-width: 0;
overflow-x: auto;
overflow-y: hidden;
cursor: grab;
scroll-snap-type: x proximity;
scrollbar-width: none;
user-select: none;
-webkit-overflow-scrolling: touch;
}
.home-v2-popular-publishers-viewport.is-dragging {
cursor: grabbing;
scroll-snap-type: none;
}
.home-v2-popular-publishers-viewport img {
pointer-events: none;
}
.home-v2-popular-publishers-viewport::-webkit-scrollbar {
display: none;
}
.home-v2-popular-publishers-track {
display: grid;
grid-template-columns: repeat(6, minmax(0, 1fr));
gap: 10px;
width: 100%;
min-width: 100%;
padding: 4px 2px 12px;
}
.home-v2-popular-publishers-retry {
display: inline-flex;
align-items: center;
gap: 6px;
min-height: 36px;
}
.home-v2-popular-publisher-card {
display: grid;
grid-template-rows: auto 1fr;
min-width: 0;
min-height: 150px;
overflow: hidden;
border: 1px solid color-mix(in srgb, var(--hv2-border-strong) 88%, transparent);
border-radius: 10px;
background: rgb(13 13 14);
box-shadow: inset 0 1px 0 color-mix(in srgb, var(--hv2-text) 4%, transparent);
color: inherit;
text-decoration: none;
scroll-snap-align: start;
-webkit-user-drag: none;
transition:
border-color 150ms ease,
background 150ms ease;
}
.home-v2-popular-publisher-card:hover,
.home-v2-popular-publisher-card:focus-visible {
border-color: var(--hv2-border-hover);
background: rgb(17 17 18);
text-decoration: none;
outline: none;
}
.home-v2-popular-publisher-head {
display: flex;
align-items: center;
gap: 8px;
min-width: 0;
padding: 12px 12px 8px;
}
.home-v2-popular-publisher-card .marketplace-icon {
width: 34px;
height: 34px;
border-radius: var(--oc-radius-inset);
background: rgb(22 22 24);
border-color: var(--hv2-border-strong);
box-shadow: none;
}
.home-v2-popular-publisher-card .marketplace-icon-user {
border-radius: var(--oc-radius-round);
}
.home-v2-popular-publisher-card:hover .marketplace-icon {
transform: none;
box-shadow: none;
}
.home-v2-popular-publisher-name {
min-width: 0;
color: var(--hv2-text);
font-size: 14px;
font-weight: 650;
line-height: 1.25;
letter-spacing: -0.02em;
text-wrap: balance;
white-space: normal;
}
.home-v2-popular-publisher-copy {
display: flex;
flex-direction: column;
gap: 10px;
min-width: 0;
padding: 8px 12px 12px;
}
.home-v2-popular-publisher-bio {
display: -webkit-box;
margin: 0;
overflow: hidden;
color: var(--hv2-text-secondary);
font-size: 12px;
line-height: 1.5;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
.home-v2-popular-publisher-stats {
display: flex;
align-items: center;
gap: 4px;
margin-top: auto;
color: var(--hv2-text-tertiary);
font-size: 11px;
font-weight: 600;
letter-spacing: 0.01em;
font-variant-numeric: tabular-nums;
}
@media (max-width: 1024px) {
.home-v2-popular-publishers-track {
grid-auto-flow: column;
grid-auto-columns: min(240px, 42vw);
grid-template-columns: none;
grid-template-rows: repeat(2, minmax(150px, auto));
width: max-content;
}
}
@media (max-width: 760px) {
.home-v2-popular-publishers {
gap: 16px;
padding: 32px 20px 48px;
}
.home-v2-popular-publishers-header {
align-items: flex-start;
flex-direction: column;
gap: 10px;
}
.home-v2-popular-publishers-track {
grid-auto-columns: min(220px, 76vw);
}
}
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-popular-publisher-card {
border-color: var(--hv2-border-strong);
background: var(--hv2-surface);
box-shadow:
inset 0 1px 0 rgb(255 255 255 / 0.9),
0 1px 2px rgb(15 23 42 / 0.06);
}
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-popular-publisher-card:hover,
[data-theme-resolved="light"]
.app-shell:has(.home-v2-main)
.home-v2-popular-publisher-card:focus-visible {
border-color: var(--hv2-border-hover);
background: #fff;
}
[data-theme-resolved="light"]
.app-shell:has(.home-v2-main)
.home-v2-popular-publisher-card
.marketplace-icon {
border-color: var(--hv2-border-strong);
background: #fff;
}
/* ═══ HOME APPS (skills for everyday tools) ═══ */
.home-v2-apps {
padding: 24px 48px 22px;
max-width: 1296px;
margin: 0 auto;
width: 100%;
}
.home-v2-apps-header {
display: flex;
justify-content: center;
margin-bottom: 20px;
}
.home-v2-apps-heading {
display: grid;
min-width: 0;
max-width: 56ch;
text-align: center;
justify-items: center;
}
.home-v2-apps-title {
margin: 0;
font-size: clamp(24px, 2.5vw, 32px);
font-weight: 700;
letter-spacing: 0;
line-height: 1.15;
color: var(--hv2-text);
}
.home-v2-apps-stage {
position: relative;
display: grid;
gap: 15px;
padding: 0;
border: 0;
border-radius: 0;
background: transparent;
box-shadow: none;
overflow: visible;
}
.home-v2-apps-stage::before {
content: none;
}
.home-v2-apps-stage::after {
content: none;
}
.home-v2-apps-workflow-header {
position: relative;
z-index: 2;
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(280px, 0.7fr);
align-items: center;
gap: 24px;
min-height: 132px;
padding: 22px 28px;
border: 1px solid color-mix(in srgb, var(--hv2-border-strong) 54%, transparent);
border-radius: var(--oc-radius-surface);
background: linear-gradient(135deg, rgb(31 42 66) 0%, rgb(35 35 51) 48%, rgb(28 27 31) 100%);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.08),
0 16px 44px rgba(0, 0, 0, 0.16);
overflow: hidden;
}
.home-v2-apps-workflow-header::before {
position: absolute;
inset: 0;
pointer-events: none;
background:
radial-gradient(80% 130% at 12% -18%, rgba(87, 126, 190, 0.28), transparent 62%),
radial-gradient(56% 120% at 95% 12%, rgba(255, 255, 255, 0.1), transparent 66%),
linear-gradient(90deg, rgba(6, 10, 18, 0.16), transparent 58%);
content: "";
}
.home-v2-apps-workflow-header::after {
position: absolute;
right: -12%;
bottom: -48%;
width: 58%;
height: 120%;
pointer-events: none;
background: radial-gradient(closest-side, rgba(255, 255, 255, 0.12), transparent 72%);
filter: blur(18px);
opacity: 0.72;
content: "";
}
.home-v2-apps-workflow-copy {
position: relative;
z-index: 1;
display: grid;
gap: 9px;
justify-items: start;
min-width: 0;
}
.home-v2-apps-workflow-copy h2 {
margin: 0;
font-size: clamp(18px, 1.45vw, 22px);
font-weight: 680;
line-height: 1.1;
color: var(--hv2-text);
}
.home-v2-apps-workflow-copy p {
margin: 0;
max-width: 36ch;
font-size: 14px;
font-weight: 560;
line-height: 1.45;
color: color-mix(in srgb, var(--hv2-text) 58%, transparent);
}
.home-v2-apps-workflow-action {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 34px;
margin-top: 4px;
padding: 0 17px;
border-radius: 8px;
background: var(--hv2-text);
color: var(--hv2-bg);
font-size: 13px;
font-weight: 720;
text-decoration: none;
}
.home-v2-apps-workflow-action:hover,
.home-v2-apps-workflow-action:focus-visible {
background: color-mix(in srgb, var(--hv2-text) 92%, var(--hv2-accent));
color: var(--hv2-bg);
text-decoration: none;
outline: none;
}
.home-v2-apps-workflow-tiles {
position: relative;
z-index: 2;
min-height: 136px;
}
.home-v2-apps-workflow-tile {
position: absolute;
top: 50%;
display: flex;
align-items: center;
justify-content: center;
width: 96px;
height: 96px;
border-radius: var(--oc-radius-surface);
background: rgb(247 247 246);
box-shadow:
0 18px 38px rgba(0, 0, 0, 0.26),
0 2px 6px rgba(0, 0, 0, 0.18),
inset 0 1px 0 rgba(255, 255, 255, 0.85);
transition:
transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1),
box-shadow 0.28s ease;
}
.home-v2-apps-workflow-tile img {
width: 42px;
height: 42px;
object-fit: contain;
}
.home-v2-apps-workflow-tile.is-openai img,
.home-v2-apps-workflow-tile.is-slack img {
width: 36.75px;
height: 36.75px;
}
.home-v2-apps-workflow-tile span {
position: absolute;
top: -8px;
right: -10px;
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 24px;
padding: 0 11px;
border-radius: var(--r-pill);
background: var(--hv2-accent);
box-shadow: 0 4px 12px color-mix(in srgb, var(--hv2-accent) 45%, transparent);
color: white;
font-size: 10.5px;
font-weight: 760;
letter-spacing: 0.02em;
line-height: 1;
text-transform: uppercase;
}
/* Hand-fan deck: middle card highest, rotation grows left-to-right. */
.home-v2-apps-workflow-tile.is-openai {
right: 172px;
z-index: 1;
transform: translateY(-44%) rotate(-12deg);
}
.home-v2-apps-workflow-tile.is-slack {
right: 90px;
z-index: 2;
transform: translateY(-58%) rotate(-1deg);
}
.home-v2-apps-workflow-tile.is-openclaw {
right: 8px;
z-index: 3;
transform: translateY(-40%) rotate(10deg);
}
.home-v2-apps-workflow-header:hover .home-v2-apps-workflow-tile.is-openai {
transform: translateY(-44%) translateX(-10px) rotate(-16deg);
}
.home-v2-apps-workflow-header:hover .home-v2-apps-workflow-tile.is-slack {
transform: translateY(-62%) rotate(-1deg);
}
.home-v2-apps-workflow-header:hover .home-v2-apps-workflow-tile.is-openclaw {
transform: translateY(-40%) translateX(10px) rotate(14deg);
}
.home-v2-apps-intro {
position: relative;
z-index: 2;
display: flex;
align-items: start;
justify-content: space-between;
gap: 18px;
min-width: 0;
}
.home-v2-apps-intro-copy {
display: grid;
gap: 10px;
min-width: 0;
}
.home-v2-apps-intro .home-v2-apps-title {
font-size: clamp(22px, 2vw, 28px);
font-weight: 700;
line-height: 1.1;
}
.home-v2-apps-intro p {
margin: 0;
max-width: 48ch;
font-size: 14px;
line-height: 1.5;
color: var(--hv2-text-tertiary);
}
.home-v2-apps-view-all {
display: inline-flex;
align-items: center;
gap: 5px;
flex-shrink: 0;
margin-top: 4px;
color: var(--hv2-text-tertiary);
font-size: 13px;
font-weight: 650;
text-decoration: none;
transition:
color 0.15s ease,
opacity 0.15s ease;
}
.home-v2-apps-view-all:hover,
.home-v2-apps-view-all:focus-visible {
color: var(--hv2-text-secondary);
text-decoration: none;
outline: none;
}
.home-v2-apps-showcase {
position: relative;
z-index: 2;
display: grid;
grid-template-columns: minmax(0, 0.72fr) minmax(0, 1fr);
min-height: 144px;
border-radius: 10px 10px 8px 8px;
overflow: hidden;
}
.home-v2-apps-promo {
position: relative;
display: flex;
align-items: flex-end;
min-width: 0;
padding: 16px;
background:
radial-gradient(
circle at 40% 16%,
color-mix(in srgb, var(--hv2-accent) 18%, transparent),
transparent 42%
),
linear-gradient(145deg, rgb(20 20 21), rgb(10 10 11));
overflow: hidden;
}
.home-v2-apps-promo::after {
position: absolute;
inset: auto 0 0;
height: 50%;
background: linear-gradient(180deg, transparent, rgb(9 9 10));
content: "";
}
.home-v2-apps-promo-icons {
position: absolute;
inset: 16px 18px auto;
display: grid;
grid-template-columns: repeat(3, 34px);
gap: 7px;
opacity: 0.9;
}
.home-v2-apps-promo-icon {
display: flex;
align-items: center;
justify-content: center;
width: 34px;
height: 34px;
border: 1px solid color-mix(in srgb, var(--hv2-text) 10%, transparent);
border-radius: 8px;
background: color-mix(in srgb, var(--hv2-surface) 84%, var(--hv2-bg));
box-shadow:
0 18px 38px color-mix(in srgb, var(--hv2-bg) 44%, transparent),
inset 0 1px 0 color-mix(in srgb, var(--hv2-text) 8%, transparent);
}
.home-v2-apps-promo-icon img {
width: 19px;
height: 19px;
object-fit: contain;
}
.home-v2-apps-showcase .home-v2-apps-title {
position: relative;
z-index: 1;
max-width: 15ch;
margin: 0;
font-size: clamp(22px, 2.2vw, 30px);
font-weight: 700;
letter-spacing: 0;
line-height: 1.08;
color: var(--hv2-text);
}
.home-v2-apps-feature {
display: grid;
align-content: start;
gap: 12px;
min-width: 0;
padding: 18px 20px;
background:
radial-gradient(
74% 92% at 0% 0%,
color-mix(in srgb, var(--hv2-accent) 8%, transparent),
transparent 58%
),
linear-gradient(135deg, rgb(19 18 18), rgb(13 13 14));
}
.home-v2-apps-feature-kicker {
display: flex;
align-items: center;
gap: 10px;
min-width: 0;
}
.home-v2-apps-feature-logo {
display: flex;
align-items: center;
justify-content: center;
width: 34px;
height: 34px;
border: 1px solid color-mix(in srgb, var(--hv2-accent) 24%, var(--hv2-border));
border-radius: 50%;
background: rgb(245 245 245);
}
.home-v2-apps-feature-logo img {
width: 22px;
height: 22px;
object-fit: contain;
}
.home-v2-apps-feature-brand,
.home-v2-apps-feature-meta {
display: block;
min-width: 0;
}
.home-v2-apps-feature-brand {
font-size: 14px;
font-weight: 700;
color: var(--hv2-text);
}
.home-v2-apps-feature-meta {
margin-top: 2px;
font-size: 11px;
color: var(--hv2-text-tertiary);
}
.home-v2-apps-feature-title {
max-width: 31ch;
margin: 0;
font-size: clamp(17px, 1.55vw, 22px);
font-weight: 680;
letter-spacing: 0;
line-height: 1.15;
color: var(--hv2-text);
}
.home-v2-apps-feature-actions {
display: flex;
align-items: center;
gap: 14px;
margin-top: 2px;
}
.home-v2-apps-feature-action {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 32px;
padding: 0 13px;
border-radius: var(--r-pill);
background: var(--hv2-accent);
color: var(--hv2-bg);
font-size: 13px;
font-weight: 750;
text-decoration: none;
}
.home-v2-apps-feature-link {
display: inline-flex;
align-items: center;
gap: 5px;
color: var(--hv2-text-secondary);
font-size: 13px;
font-weight: 650;
text-decoration: none;
}
.home-v2-apps-categories {
position: relative;
z-index: 2;
display: flex;
width: fit-content;
gap: 8px;
flex-wrap: wrap;
margin-top: 2px;
}
.home-v2-apps-category-tab {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 6px;
min-height: 30px;
padding: 0 14px;
border: 1px solid color-mix(in srgb, var(--hv2-border-strong) 74%, transparent);
border-radius: var(--r-pill);
background: color-mix(in srgb, var(--hv2-surface) 72%, transparent);
color: var(--hv2-text-tertiary);
font: inherit;
font-size: 12px;
font-weight: 650;
cursor: pointer;
transition:
border-color 0.15s ease,
background 0.15s ease,
color 0.15s ease,
transform 0.15s ease,
box-shadow 0.15s ease;
}
.home-v2-apps-category-tab-icon {
flex-shrink: 0;
color: var(--hv2-text-tertiary);
transition: color 0.15s ease;
}
.home-v2-apps-category-tab:hover,
.home-v2-apps-category-tab:focus-visible {
border-color: var(--hv2-border-hover);
background: var(--hv2-surface-hover);
color: var(--hv2-text-secondary);
outline: none;
}
.home-v2-apps-category-tab:hover .home-v2-apps-category-tab-icon,
.home-v2-apps-category-tab:focus-visible .home-v2-apps-category-tab-icon {
color: var(--hv2-accent);
}
.home-v2-apps-category-tab[aria-selected="true"] {
border-color: var(--hv2-border-hover);
background: var(--hv2-surface-hover);
color: var(--hv2-text);
box-shadow: none;
}
.home-v2-apps-category-tab[aria-selected="true"] .home-v2-apps-category-tab-icon {
color: var(--hv2-text);
}
.home-v2-apps-tile-grid {
position: relative;
z-index: 2;
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 6px 10px;
}
.home-v2-apps-see-all-row {
position: relative;
z-index: 2;
display: flex;
justify-content: center;
margin-top: 32px;
}
a.home-v2-apps-see-all {
display: inline-flex;
align-items: center;
gap: 6px;
color: var(--hv2-text-tertiary);
font-size: 13px;
font-weight: 600;
text-decoration: none;
transition: color 0.15s ease;
}
a.home-v2-apps-see-all svg {
transition: transform 0.15s ease;
}
a.home-v2-apps-see-all:hover,
a.home-v2-apps-see-all:focus-visible {
color: var(--hv2-text-secondary);
text-decoration: none;
outline: none;
}
a.home-v2-apps-see-all:hover svg,
a.home-v2-apps-see-all:focus-visible svg {
transform: translateX(2px);
}
.home-v2-apps-tile {
display: grid;
grid-template-columns: auto minmax(0, 1fr) 16px;
align-items: center;
gap: 10px;
min-height: 58px;
padding: 9px 12px;
border: 1px solid transparent;
border-radius: var(--hv2-radius-sm);
background: transparent;
color: inherit;
text-decoration: none;
overflow: hidden;
transition:
border-color 0.15s ease,
background 0.15s ease,
transform 0.15s ease,
box-shadow 0.15s ease;
}
.home-v2-apps-tile:hover,
.home-v2-apps-tile:focus-visible {
border-color: var(--hv2-border);
background: color-mix(in srgb, var(--hv2-surface-hover) 70%, transparent);
transform: none;
box-shadow: none;
text-decoration: none;
outline: none;
}
.home-v2-apps-tile-icon {
display: flex;
align-items: center;
justify-content: center;
width: 36px;
height: 36px;
border: 1px solid var(--hv2-border);
border-radius: var(--oc-radius-inset);
background: color-mix(in srgb, var(--hv2-bg) 55%, transparent);
}
.home-v2-apps-tile-logo {
width: 21px;
height: 21px;
}
.home-v2-apps-tile-logo--simple {
display: block;
background: var(--home-v2-apps-icon-color);
mask: var(--home-v2-apps-icon-url) center / contain no-repeat;
-webkit-mask: var(--home-v2-apps-icon-url) center / contain no-repeat;
}
.home-v2-apps-tile-logo--image {
display: block;
filter: var(--home-v2-apps-icon-image-filter);
object-fit: contain;
}
.home-v2-apps-tile-copy {
display: grid;
gap: 3px;
min-width: 0;
}
.home-v2-apps-tile-name,
.home-v2-apps-tile-meta {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.home-v2-apps-tile-name {
font-size: 13px;
font-weight: 700;
color: var(--hv2-text-secondary);
}
.home-v2-apps-tile-meta {
font-size: 11px;
font-weight: 600;
color: var(--hv2-text-tertiary);
}
.home-v2-apps-tile-arrow {
flex-shrink: 0;
color: var(--hv2-text-tertiary);
opacity: 0.7;
transform: none;
transition:
color 0.15s ease,
opacity 0.15s ease,
transform 0.15s ease;
}
.home-v2-apps-tile:hover .home-v2-apps-tile-name,
.home-v2-apps-tile:focus-visible .home-v2-apps-tile-name {
color: var(--hv2-text);
}
.home-v2-apps-tile:hover .home-v2-apps-tile-arrow,
.home-v2-apps-tile:focus-visible .home-v2-apps-tile-arrow {
color: var(--hv2-text-secondary);
opacity: 1;
transform: translateX(2px);
}
.home-v2-apps-footer-row {
position: relative;
z-index: 1;
display: flex;
align-items: center;
justify-content: space-between;
gap: 18px;
margin-top: 24px;
}
.home-v2-apps-footer-row h3 {
margin: 0;
font-size: clamp(20px, 2.1vw, 26px);
font-weight: 760;
letter-spacing: -0.03em;
color: var(--hv2-text);
}
.home-v2-apps-footer-row a {
display: inline-flex;
align-items: center;
gap: 5px;
color: var(--hv2-text-tertiary);
font-size: 14px;
font-weight: 650;
text-decoration: none;
}
.home-v2-apps-card-strip {
position: relative;
z-index: 1;
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 18px;
}
.home-v2-apps-card {
display: grid;
gap: 12px;
min-width: 0;
}
.home-v2-apps-card .home-v2-app-shortcut {
min-height: 68px;
border: none;
border-radius: 8px;
background: rgb(25 25 26);
}
.home-v2-apps-card p {
margin: 0;
max-width: 32ch;
font-size: 14px;
line-height: 1.4;
color: var(--hv2-text-tertiary);
}
.home-v2-apps-orbit {
position: relative;
z-index: 1;
min-height: 0;
padding: 0;
}
.home-v2-apps-orbit::before,
.home-v2-apps-orbit::after {
position: absolute;
top: 50%;
z-index: 1;
width: calc(50% - 76px);
height: 1px;
pointer-events: none;
background: linear-gradient(
90deg,
transparent,
color-mix(in srgb, var(--hv2-accent) 38%, var(--hv2-border)),
transparent
);
content: "";
}
.home-v2-apps-orbit::before {
left: 0;
}
.home-v2-apps-orbit::after {
right: 0;
}
.home-v2-apps-flow {
position: relative;
z-index: 2;
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
gap: 100px;
width: 100%;
min-width: 0;
}
.home-v2-apps-hub {
position: absolute;
z-index: 4;
top: 50%;
left: 50%;
display: grid;
justify-items: center;
gap: 5px;
width: 82px;
padding: 12px 9px 11px;
border: 1px solid color-mix(in srgb, var(--hv2-accent) 42%, var(--hv2-border));
border-radius: 14px;
background: linear-gradient(180deg, rgb(24 20 20), rgb(13 12 13));
box-shadow:
0 16px 38px color-mix(in srgb, var(--hv2-bg) 58%, transparent),
0 0 34px color-mix(in srgb, var(--hv2-accent) 10%, transparent),
inset 0 1px 0 color-mix(in srgb, var(--hv2-text) 7%, transparent);
pointer-events: none;
transform: translate(-50%, -50%);
}
.home-v2-apps-hub-core {
display: flex;
align-items: center;
justify-content: center;
width: 42px;
height: 42px;
border-radius: 50%;
border: 1px solid var(--hv2-border-strong);
background: color-mix(in srgb, var(--hv2-surface) 72%, var(--hv2-bg));
box-shadow: inset 0 1px 0 color-mix(in srgb, var(--hv2-text) 6%, transparent);
}
.home-v2-apps-hub-core img {
width: 26px;
height: 26px;
object-fit: contain;
opacity: 0.92;
}
.home-v2-apps-hub-label {
font-size: 12px;
font-weight: 700;
color: var(--hv2-text);
}
.home-v2-apps-hub-count {
font-size: 11px;
font-weight: 600;
color: var(--hv2-text-tertiary);
}
.home-v2-apps-panel {
display: grid;
gap: 12px;
min-width: 0;
padding: 14px;
border: 1px solid color-mix(in srgb, var(--hv2-border-strong) 82%, var(--hv2-border));
border-radius: 14px;
background: linear-gradient(180deg, rgb(17 16 17), rgb(11 11 12));
box-shadow:
inset 0 1px 0 color-mix(in srgb, var(--hv2-text) 5%, transparent),
0 12px 30px color-mix(in srgb, var(--hv2-bg) 28%, transparent);
}
.home-v2-apps-panel--skills {
transform: translateY(14px);
}
.home-v2-apps-panel--plugins {
transform: translateY(-4px);
}
.home-v2-apps-panel-head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
min-width: 0;
padding: 0 2px;
}
.home-v2-apps-panel-title {
margin: 0;
font-size: 13px;
font-weight: 700;
letter-spacing: 0;
color: var(--hv2-text);
}
.home-v2-apps-panel-count {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
font-size: 11px;
font-weight: 600;
padding: 4px 8px;
border: 1px solid color-mix(in srgb, var(--hv2-border-strong) 62%, transparent);
border-radius: var(--r-pill);
background: color-mix(in srgb, var(--hv2-bg) 42%, transparent);
color: var(--hv2-text-secondary);
white-space: nowrap;
}
.home-v2-apps-shortcut-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 8px;
}
.home-v2-app-shortcut {
position: relative;
display: grid;
grid-template-columns: auto minmax(0, 1fr);
align-items: center;
gap: 10px;
min-height: 58px;
min-width: 0;
padding: 9px;
border: 1px solid color-mix(in srgb, var(--hv2-border-strong) 84%, transparent);
border-radius: 8px;
background: rgb(16 16 17);
box-shadow: inset 0 1px 0 color-mix(in srgb, var(--hv2-text) 4%, transparent);
text-decoration: none;
color: inherit;
transition:
transform 140ms var(--hv2-ease-out),
border-color var(--hv2-duration-fast) var(--hv2-ease-out),
background var(--hv2-duration-fast) var(--hv2-ease-out),
box-shadow var(--hv2-duration-fast) var(--hv2-ease-out);
}
.home-v2-app-shortcut::before {
position: absolute;
inset: 8px auto 8px -1px;
width: 2px;
border-radius: 999px;
background: color-mix(in srgb, var(--hv2-accent) 52%, transparent);
opacity: 0;
transition: opacity var(--hv2-duration-fast) var(--hv2-ease-out);
content: "";
}
.home-v2-app-shortcut:focus-visible {
z-index: 3;
border-color: color-mix(in srgb, var(--hv2-accent) 38%, var(--hv2-border-hover));
background: rgb(22 21 22);
transform: translateY(-1px);
box-shadow:
0 12px 28px color-mix(in srgb, var(--hv2-bg) 52%, transparent),
inset 0 1px 0 color-mix(in srgb, var(--hv2-text) 8%, transparent);
text-decoration: none;
outline: none;
}
.home-v2-app-shortcut:focus-visible::before {
opacity: 1;
}
.home-v2-app-shortcut:active {
transform: scale(0.985);
}
@media (hover: hover) and (pointer: fine) {
.home-v2-app-shortcut:hover {
z-index: 3;
border-color: color-mix(in srgb, var(--hv2-accent) 38%, var(--hv2-border-hover));
background: rgb(22 21 22);
transform: translateY(-1px);
box-shadow:
0 12px 28px color-mix(in srgb, var(--hv2-bg) 52%, transparent),
inset 0 1px 0 color-mix(in srgb, var(--hv2-text) 8%, transparent);
text-decoration: none;
}
.home-v2-app-shortcut:hover::before {
opacity: 1;
}
}
.home-v2-app-shortcut-icon {
display: flex;
flex-shrink: 0;
align-items: center;
justify-content: center;
width: 34px;
height: 34px;
border-radius: 8px;
border: 1px solid var(--hv2-border);
background: rgb(23 23 24);
overflow: hidden;
}
.home-v2-app-shortcut-icon img {
width: 20px;
height: 20px;
object-fit: contain;
}
.home-v2-app-shortcut-copy {
display: grid;
gap: 3px;
min-width: 0;
}
.home-v2-app-shortcut-name {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
font-size: 13px;
font-weight: 650;
letter-spacing: -0.02em;
color: var(--hv2-text);
white-space: nowrap;
}
.home-v2-app-shortcut-meta {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
font-size: 11px;
font-weight: 600;
color: var(--hv2-text-tertiary);
white-space: nowrap;
}
@media (max-width: 1100px) {
.home-v2-apps-showcase {
grid-template-columns: minmax(0, 0.85fr) minmax(0, 1fr);
}
.home-v2-apps-tile-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.home-v2-apps-flow {
gap: 92px;
}
}
@media (max-width: 900px) {
.home-v2-apps-stage {
padding: 0;
}
.home-v2-apps-workflow-header {
justify-items: center;
}
.home-v2-apps-stage::before {
inset-inline: -8px;
height: 360px;
opacity: 0.28;
}
.home-v2-apps-workflow-header {
grid-template-columns: 1fr;
min-height: 0;
padding: 22px;
}
.home-v2-apps-workflow-tiles {
display: none;
}
.home-v2-apps-showcase {
grid-template-columns: 1fr;
min-height: 0;
}
.home-v2-apps-promo {
min-height: 150px;
}
.home-v2-apps-feature {
padding: 20px;
}
.home-v2-apps-feature-title {
max-width: 31ch;
}
.home-v2-apps-orbit {
display: grid;
gap: 16px;
}
.home-v2-apps-orbit::before,
.home-v2-apps-orbit::after {
display: none;
}
.home-v2-apps-hub {
position: relative;
top: auto;
left: auto;
justify-self: center;
width: auto;
grid-template-columns: auto auto;
column-gap: 8px;
padding: 9px 11px 9px 9px;
transform: none;
}
.home-v2-apps-hub-core {
grid-row: span 2;
width: 34px;
height: 34px;
}
.home-v2-apps-hub-core img {
width: 22px;
height: 22px;
}
.home-v2-apps-hub-label,
.home-v2-apps-hub-count {
justify-self: start;
}
.home-v2-apps-flow {
grid-template-columns: 1fr;
gap: 12px;
}
.home-v2-apps-panel--skills,
.home-v2-apps-panel--plugins {
transform: none;
}
}
@media (max-width: 760px) {
.home-v2-apps {
padding: 32px 20px 28px;
}
.home-v2-apps-header {
margin-bottom: 14px;
}
.home-v2-apps-stage {
padding: 0;
}
.home-v2-apps-intro {
display: grid;
gap: 12px;
}
.home-v2-apps-view-all {
justify-self: start;
margin-top: 0;
}
.home-v2-apps-stage::before {
inset-top: 82px;
height: 300px;
}
.home-v2-apps-stage::after {
height: 220px;
}
.home-v2-apps-promo {
min-height: 138px;
padding: 16px;
}
.home-v2-apps-workflow-copy {
grid-row: 2;
justify-items: center;
justify-self: center;
width: 100%;
max-width: 31ch;
text-align: center;
}
.home-v2-apps-workflow-tiles {
display: block;
grid-row: 1;
justify-self: center;
width: 150px;
min-height: 62px;
}
.home-v2-apps-workflow-tile {
width: 48px;
height: 48px;
border-radius: var(--oc-radius-surface);
}
.home-v2-apps-workflow-tile img {
width: 22px;
height: 22px;
}
.home-v2-apps-workflow-tile.is-openai img,
.home-v2-apps-workflow-tile.is-slack img {
width: 19.25px;
height: 19.25px;
}
.home-v2-apps-workflow-tile span {
top: -5px;
right: -7px;
min-height: 15px;
padding: 0 6px;
font-size: 6.5px;
}
.home-v2-apps-workflow-tile.is-openai {
right: 90px;
}
.home-v2-apps-workflow-tile.is-slack {
right: 51px;
}
.home-v2-apps-workflow-tile.is-openclaw {
right: 12px;
}
.home-v2-apps-workflow-copy h2 {
max-width: 18ch;
text-wrap: balance;
}
.home-v2-apps-workflow-copy p {
max-width: 31ch;
text-wrap: pretty;
}
.home-v2-apps-categories {
width: 100%;
min-width: 0;
flex-wrap: nowrap;
overflow-x: auto;
overflow-y: hidden;
scroll-snap-type: x proximity;
scrollbar-width: none;
-webkit-overflow-scrolling: touch;
}
.home-v2-apps-categories::-webkit-scrollbar {
display: none;
}
.home-v2-apps-category-tab {
flex: 0 0 auto;
scroll-snap-align: start;
}
.home-v2-apps-promo-icons {
inset: 14px 16px auto;
grid-template-columns: repeat(3, 32px);
gap: 7px;
}
.home-v2-apps-promo-icon {
width: 32px;
height: 32px;
border-radius: 8px;
}
.home-v2-apps-showcase .home-v2-apps-title {
max-width: 15ch;
font-size: clamp(22px, 7vw, 32px);
}
.home-v2-apps-feature {
gap: 12px;
padding: 18px 16px;
}
.home-v2-apps-feature-title {
font-size: clamp(18px, 5.8vw, 24px);
}
.home-v2-apps-tile-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.home-v2-apps-tile-grid > .home-v2-apps-tile:nth-child(n + 9) {
display: none;
}
.home-v2-apps-footer-row {
margin-top: 24px;
}
.home-v2-apps-panel {
padding: 12px;
}
.home-v2-apps-shortcut-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.home-v2-app-shortcut {
min-height: 58px;
gap: 8px;
padding: 8px;
}
.home-v2-app-shortcut-icon {
width: 30px;
height: 30px;
}
.home-v2-app-shortcut-name {
font-size: 12px;
}
}
@media (max-width: 460px) {
.home-v2-apps-shortcut-grid {
grid-template-columns: 1fr;
}
}
@media (prefers-reduced-motion: reduce) {
.home-v2-app-shortcut {
transition: none;
}
}
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-apps-stage {
background: transparent;
box-shadow: none;
}
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-apps-stage::before {
background:
radial-gradient(
74% 70% at 12% 0%,
color-mix(in srgb, var(--hv2-accent) 7%, transparent),
transparent 70%
),
linear-gradient(180deg, rgb(255 255 255), rgb(247 246 244) 58%, transparent 100%);
}
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-apps-workflow-copy h2 {
color: #fff;
}
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-apps-workflow-copy p {
color: rgba(255, 255, 255, 0.62);
}
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-apps-panel,
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-apps-hub,
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-app-shortcut {
border-color: var(--hv2-border-strong);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.9),
0 4px 16px rgba(0, 0, 0, 0.06);
}
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-apps-panel {
background: linear-gradient(180deg, rgb(255 255 255), rgb(248 247 245));
}
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-apps-hub {
background: linear-gradient(180deg, rgb(255 255 255), rgb(245 242 240));
}
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-app-shortcut {
background: rgb(255 255 255);
}
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-app-shortcut:hover,
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) .home-v2-app-shortcut:focus-visible {
background: rgb(249 247 245);
border-color: var(--hv2-border-hover);
}
/* ═══ HOME DISCOVER (stacks & collections) ═══ */
/* ===== Home v2 — Bring your skills (CLI) ===== */
.home-v2-byos.oc-section {
--byos-x: 50%;
--byos-y: 42%;
--byos-intensity: 0;
--byos-art-size: 112%;
--byos-art-x: 22%;
--byos-art-y: 50%;
position: relative;
isolation: isolate;
/* Break out of the page-max `main` column to the full viewport width. */
width: 100vw;
max-width: none;
margin-top: 88px;
margin-bottom: 0;
margin-inline: calc(50% - 50vw);
padding: 104px 48px 112px;
overflow: hidden;
background: #050505;
}
.home-v2-byos::before {
position: absolute;
inset: 0 0 auto;
z-index: 0;
height: 180px;
pointer-events: none;
content: "";
background: linear-gradient(
to bottom,
var(--hv2-bg, #050505) 0%,
var(--hv2-bg, #050505) 30%,
rgb(5 5 5 / 0.9) 58%,
rgb(5 5 5 / 0) 100%
);
}
[data-theme-resolved="light"] .home-v2-byos::before {
content: none;
}
/* Full-bleed reveal backdrop — mirrors the footer easter egg mechanic. */
.home-v2-byos-reveal {
position: absolute;
inset: 0;
z-index: -1;
overflow: hidden;
pointer-events: none;
}
.home-v2-byos-reveal-image {
position: absolute;
inset: 0;
background-position: var(--byos-art-x, 50%) var(--byos-art-y, 50%);
background-repeat: no-repeat;
background-size: cover;
pointer-events: none;
}
.home-v2-byos-reveal-image--base {
background-image: url("/footer-openclaw-easter-egg.webp");
}
/* Legibility overlay: darken toward the center where the copy + card sit and
feather the band into the page above/below. */
.home-v2-byos-reveal-scrim {
position: absolute;
inset: 0;
z-index: 1;
pointer-events: none;
background:
radial-gradient(
72% 84% at 50% 48%,
rgb(5 5 5 / 0.9) 0%,
rgb(5 5 5 / 0.45) 52%,
rgb(5 5 5 / 0) 82%
),
linear-gradient(to bottom, #050505 0%, rgb(5 5 5 / 0) 18%, rgb(5 5 5 / 0) 82%, #050505 100%);
}
.home-v2-byos-reveal-ascii {
position: absolute;
inset: 0;
z-index: 2;
margin: 0;
color: color-mix(in srgb, var(--hv2-accent) 72%, white 12%);
font-family: var(--font-mono);
font-size: 11px;
font-weight: 600;
line-height: 1.38;
letter-spacing: 0.08em;
white-space: pre;
opacity: calc(0.46 * var(--byos-intensity));
mix-blend-mode: screen;
transform: translate3d(-1.5%, -1%, 0) rotate(-1deg);
mask-image:
radial-gradient(
ellipse 170px 142px at var(--byos-x) var(--byos-y),
#000 0 34%,
rgb(0 0 0 / 0.7) 52%,
transparent 80%
),
radial-gradient(
ellipse 82px 58px at calc(var(--byos-x) - 78px) calc(var(--byos-y) + 24px),
rgb(0 0 0 / 0.78) 0 42%,
transparent 76%
),
radial-gradient(
ellipse 66px 92px at calc(var(--byos-x) + 88px) calc(var(--byos-y) - 38px),
rgb(0 0 0 / 0.74) 0 38%,
transparent 78%
),
radial-gradient(
ellipse 52px 38px at calc(var(--byos-x) + 28px) calc(var(--byos-y) + 92px),
rgb(0 0 0 / 0.55) 0 34%,
transparent 72%
);
transition: opacity 180ms ease;
pointer-events: none;
}
.home-v2-byos-reveal-image--top {
z-index: 3;
background-image: url("/footer-openclaw-easter-egg-transparent.webp");
opacity: 0.95;
}
.home-v2-byos-content {
position: relative;
z-index: 1;
display: grid;
gap: 16px;
width: 100%;
max-width: 760px;
margin: 0 auto;
}
/* The reveal band is always dark in both themes, so pin text to light. */
.home-v2-byos .home-v2-byos-title {
color: #f4f4f5;
}
.home-v2-byos .home-v2-byos-lede {
color: rgb(255 255 255 / 0.62);
}
.home-v2-byos .home-v2-byos-eyebrow {
color: color-mix(in srgb, var(--hv2-accent) 70%, white 30%);
}
.home-v2-byos .home-v2-byos-import {
color: rgb(255 255 255 / 0.72);
}
.home-v2-byos .home-v2-byos-import:hover,
.home-v2-byos .home-v2-byos-import:focus-visible {
color: #fff;
}
/* Audience switch sits on the dark band — no chrome, just a divider. */
.home-v2-byos .home-v2-byos-tabs {
gap: 0;
padding: 0;
border: 0;
border-radius: 0;
background: none;
-webkit-backdrop-filter: none;
backdrop-filter: none;
}
.home-v2-byos .home-v2-byos-tab {
border-radius: 0;
background: none;
color: rgb(255 255 255 / 0.5);
}
.home-v2-byos .home-v2-byos-tab + .home-v2-byos-tab {
border-left: 1px solid rgb(255 255 255 / 0.18);
}
.home-v2-byos .home-v2-byos-tab:hover {
color: rgb(255 255 255 / 0.8);
}
.home-v2-byos .home-v2-byos-tab[aria-selected="true"] {
background: none;
color: #fff;
box-shadow: none;
}
/* Command card: frosted glass so the artwork drifts softly behind it. */
.home-v2-byos .home-v2-byos-term {
border-color: rgb(255 255 255 / 0.12);
background: rgb(18 18 20 / 0.55);
-webkit-backdrop-filter: blur(16px) saturate(1.1);
backdrop-filter: blur(16px) saturate(1.1);
box-shadow:
0 30px 70px -34px rgb(0 0 0 / 0.85),
inset 0 1px 0 rgb(255 255 255 / 0.05);
}
.home-v2-byos .home-v2-byos-term-bar {
border-bottom-color: rgb(255 255 255 / 0.1);
}
.home-v2-byos .home-v2-byos-term-label {
color: rgb(255 255 255 / 0.5);
}
.home-v2-byos .home-v2-byos-term-dot {
background: rgb(255 255 255 / 0.18);
}
.home-v2-byos .home-v2-byos-cmd,
.home-v2-byos .home-v2-byos-prompt-text {
color: rgb(244 244 245 / 0.94);
}
.home-v2-byos .home-v2-byos-comment {
color: rgb(255 255 255 / 0.45);
}
.home-v2-byos .home-v2-byos-prompt {
color: color-mix(in srgb, var(--hv2-accent) 78%, white 12%);
}
.home-v2-byos .home-v2-byos-copy.skill-install-copy-button {
border-color: rgb(255 255 255 / 0.16);
background: rgb(255 255 255 / 0.06);
color: rgb(255 255 255 / 0.85);
}
.home-v2-byos .home-v2-byos-copy.skill-install-copy-button:hover:not(:disabled) {
border-color: rgb(255 255 255 / 0.3);
background: rgb(255 255 255 / 0.13);
color: #fff;
}
.home-v2-byos-head {
display: grid;
gap: 8px;
justify-items: center;
text-align: center;
}
.home-v2-byos-eyebrow {
font-size: 11px;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
color: color-mix(in srgb, var(--hv2-accent) 80%, var(--hv2-text));
}
.home-v2-byos-title {
margin: 0;
font-size: clamp(24px, 2.6vw, 34px);
font-weight: 700;
letter-spacing: -0.02em;
line-height: 1.08;
color: var(--hv2-text);
}
.home-v2-byos-lede {
margin: 0;
max-width: 54ch;
font-size: 14px;
line-height: 1.55;
color: var(--hv2-text-tertiary);
}
.home-v2-byos-tabs {
justify-self: center;
display: inline-flex;
gap: 3px;
padding: 3px;
border: 1px solid var(--hv2-border);
border-radius: var(--r-pill);
background: color-mix(in srgb, var(--hv2-text) 4%, var(--hv2-surface));
}
.home-v2-byos-tab {
appearance: none;
border: 0;
cursor: pointer;
padding: 7px 18px;
border-radius: var(--r-pill);
background: transparent;
color: var(--hv2-text-tertiary);
font-size: 13px;
font-weight: 600;
letter-spacing: -0.01em;
transition:
background 0.15s ease,
color 0.15s ease,
box-shadow 0.15s ease;
}
.home-v2-byos-tab:hover {
color: var(--hv2-text-secondary);
}
.home-v2-byos-tab[aria-selected="true"] {
background: var(--hv2-surface);
color: var(--hv2-text);
box-shadow:
0 1px 2px color-mix(in srgb, var(--hv2-text) 14%, transparent),
inset 0 0 0 1px var(--hv2-border-strong);
}
.home-v2-byos-tab:focus-visible {
outline: 2px solid color-mix(in srgb, var(--hv2-accent) 55%, transparent);
outline-offset: 1px;
}
.home-v2-byos-panel {
display: grid;
gap: 12px;
align-content: start;
justify-items: center;
width: 100%;
max-width: 720px;
/* Reserve the taller (terminal) height so switching tabs never resizes the
section — otherwise the % background reflows and the artwork jumps. */
min-height: 184px;
margin: 0 auto;
}
.home-v2-byos-caption {
margin: 0;
max-width: 52ch;
text-align: center;
font-size: 13px;
line-height: 1.5;
color: var(--hv2-text-tertiary);
}
.home-v2-byos-term {
width: 100%;
border: 1px solid var(--hv2-border);
border-radius: var(--oc-radius-surface);
background: color-mix(in srgb, var(--hv2-text) 4%, var(--hv2-surface));
overflow: hidden;
}
.home-v2-byos-term-bar {
display: flex;
align-items: center;
gap: 6px;
padding: 9px 12px;
border-bottom: 1px solid var(--hv2-border);
}
.home-v2-byos-term-dot {
width: 9px;
height: 9px;
border-radius: 50%;
background: color-mix(in srgb, var(--hv2-text) 16%, transparent);
}
.home-v2-byos-term-label {
margin-left: 6px;
font-family: var(--font-mono);
font-size: 11px;
letter-spacing: 0.01em;
color: var(--hv2-text-tertiary);
}
.home-v2-byos-term-body {
position: relative;
}
.home-v2-byos-code {
margin: 0;
padding: 14px 16px;
overflow-x: auto;
font-family: var(--font-mono);
font-size: 12.5px;
line-height: 1.7;
color: var(--hv2-text-secondary);
}
.home-v2-byos-line {
display: block;
white-space: pre;
}
.home-v2-byos-prompt {
color: color-mix(in srgb, var(--hv2-accent) 70%, var(--hv2-text-tertiary));
user-select: none;
}
.home-v2-byos-cmd {
color: var(--hv2-text);
}
.home-v2-byos-comment {
color: var(--hv2-text-tertiary);
opacity: 0.8;
}
.home-v2-byos-copy.skill-install-copy-button {
position: absolute;
top: 8px;
right: 8px;
width: auto;
}
.home-v2-byos-prompt-spark {
color: color-mix(in srgb, var(--hv2-accent) 78%, var(--hv2-text));
}
.home-v2-byos-prompt-text {
margin: 0;
padding: 18px 56px 18px 18px;
font-size: 14.5px;
line-height: 1.6;
color: var(--hv2-text-secondary);
}
.home-v2-byos-foot {
display: flex;
justify-content: center;
}
a.home-v2-byos-import {
display: inline-flex;
align-items: center;
gap: 8px;
font-size: 13px;
font-weight: 600;
color: var(--hv2-text-secondary);
text-decoration: none;
transition: color 0.15s ease;
}
a.home-v2-byos-import:hover,
a.home-v2-byos-import:focus-visible {
color: color-mix(in srgb, var(--hv2-accent) 70%, var(--hv2-text));
text-decoration: none;
outline: none;
}
.home-v2-byos-import-icon {
width: 16px;
height: 16px;
flex-shrink: 0;
}
a.home-v2-byos-import svg:last-child {
transition: transform 0.15s ease;
}
a.home-v2-byos-import:hover svg:last-child,
a.home-v2-byos-import:focus-visible svg:last-child {
transform: translateX(2px);
}
@media (max-width: 760px) {
.home-v2-byos {
margin-top: 56px;
padding: 72px 20px 80px;
}
.home-v2-byos-title {
max-width: 18ch;
text-wrap: balance;
}
.home-v2-byos-lede {
max-width: 28ch;
text-wrap: balance;
}
}
/* ═══ RESPONSIVE ═══ */
@media (max-width: 1024px) {
.home-v2-discovery-grid {
grid-template-columns: 1fr;
}
.home-v2-trending-grid {
grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 900px) {
.home-v2-headline {
white-space: normal;
}
.home-v2-headline-inner {
display: flex;
flex-wrap: wrap;
justify-content: center;
row-gap: 0.08em;
}
.home-v2-sep-final {
display: none;
}
.home-v2-cycle-wrap {
flex: 0 0 100%;
width: 100%;
min-width: 0;
}
.home-v2-cycle-track {
width: 100%;
}
.home-v2-cycle-word {
width: 100%;
justify-content: center;
text-align: center;
}
}
@media (max-width: 768px) {
.home-v2-hero {
padding: 48px 20px 36px;
}
.home-v2-headline {
font-size: clamp(28px, 6vw, 38px);
}
.home-v2-categories-grid {
--home-v2-category-columns: 1;
}
.home-v2-cat-item + .home-v2-cat-item::before {
display: none;
}
.home-v2-carousel-header,
.home-v2-section-header-stack {
align-items: flex-start;
flex-direction: column;
}
.home-v2-trending-grid {
grid-template-columns: 1fr;
}
.home-v2-listing {
padding: 0 20px 64px;
}
.home-v2-listing-row,
.home-v2-listing-head {
--home-v2-listing-copy-max: min(15rem, calc(100vw - 11rem));
}
.home-v2-listing-head {
grid-template-columns: minmax(0, var(--home-v2-listing-copy-max)) 1fr auto;
gap: 12px 16px;
padding: 0 8px 8px;
}
.home-v2-listing-row {
grid-template-columns: minmax(0, var(--home-v2-listing-copy-max)) 1fr auto;
gap: 12px 16px;
padding: 10px 8px;
}
.home-v2-listing-row.has-no-stats,
.home-v2-listing-head.has-no-stats {
grid-template-columns: minmax(0, var(--home-v2-listing-copy-max)) 1fr;
}
.home-v2-listing-head-icon-spacer,
.home-v2-listing-row-icon {
display: none;
}
.home-v2-listing-head-label,
.home-v2-listing-row-body {
grid-column: 1;
}
.home-v2-listing-head-stat,
.home-v2-listing-row-stats {
grid-column: 3;
}
.home-v2-listing-row-stats {
gap: 10px;
min-width: 0;
font-size: 12px;
}
.home-v2-listing-controls {
gap: 14px;
margin-bottom: 24px;
}
.home-v2-listing-toolbar {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
min-height: 0;
gap: 14px 12px;
}
.home-v2-listing-divider {
display: none;
}
.home-v2-listing-kind {
grid-column: 2;
grid-row: 1;
justify-self: end;
}
.home-v2-listing-sort {
grid-column: 1 / -1;
grid-row: 2;
align-self: auto;
gap: 20px;
min-height: 36px;
}
.home-v2-listing-sort-tabs {
justify-content: space-between;
gap: 16px;
width: 100%;
}
.home-v2-listing-tab {
flex: 1 0 0;
justify-content: center;
min-width: max-content;
}
.home-v2-listing-tab {
align-self: stretch;
}
.home-v2-carousel-header {
padding: 0 20px;
}
.home-v2-carousel-wrap {
overflow: visible;
}
.home-v2-carousel-wrap::before,
.home-v2-carousel-wrap::after {
display: none;
}
.home-v2-carousel-track {
width: auto;
flex-direction: column;
animation: none;
padding: 12px 20px 36px;
}
.home-v2-c-card {
width: 100%;
min-width: 0;
max-width: none;
}
.home-v2-categories {
padding: 32px 20px 0;
}
.home-v2-categories-copy {
margin-bottom: 20px;
}
.home-v2-discovery-section {
padding: 36px 20px 60px;
}
.home-v2-trending-section {
padding: 36px 20px 60px;
}
.home-v2-search-go-label {
display: none;
}
.home-v2-search-go {
padding: 13px 16px;
}
}
/* ═══ HOME V2 — Full-width overrides ═══ */
.home-v2-categories-grid {
max-width: none;
}
.home-v2-section-header {
max-width: none;
}
.home-v2-trending-grid {
max-width: none;
}
.home-v2-carousel-header {
max-width: none;
}
/* ═══ HOME V2 — Layout ═══ */
/* ═══ HOME V2 — Wider search + even dot spacing ═══ */
.home-v2-search-container {
max-width: 920px;
}
.home-v2-search-bar {
padding: 8px 8px 8px 24px;
gap: 14px;
}
.home-v2-search-bar input {
font-size: 17px;
padding: 10px 0;
}
.home-v2-search-go {
padding: 14px 34px;
font-size: 15px;
}
/* Even dot spacing — use consistent gap */
.home-v2-sep {
margin: 0 16px;
}
/* ═══════════════════════════════════════════════════════════════════════
HOME V2 — Cream / Peach / Tan Refinement (light + dark)
"Tasty crème" palette with darker-outline-fading-inward pattern
═══════════════════════════════════════════════════════════════════════ */
/* --- Light-mode variable overrides --- */
[data-theme-resolved="light"] .app-shell:has(.home-v2-main),
[data-theme-resolved="light"] .home-v2-main {
--hv2-bg: #f9f9f9;
--hv2-surface: #ffffff;
--hv2-surface-hover: #f3f3f3;
--hv2-border: rgba(0, 0, 0, 0.08);
--hv2-border-hover: rgba(0, 0, 0, 0.14);
--hv2-border-strong: rgba(0, 0, 0, 0.12);
--hv2-text: #0a0a0a;
--hv2-text-secondary: #525252;
--hv2-text-tertiary: #737373;
--hv2-accent: #c43a2f;
--hv2-accent-fill: rgba(196, 58, 47, 0.07);
--hv2-accent-fill-hover: rgba(196, 58, 47, 0.12);
--hv2-accent-glow: rgba(196, 58, 47, 0.06);
--hv2-accent-border: rgba(196, 58, 47, 0.28);
--hv2-accent-border-hover: rgba(196, 58, 47, 0.45);
--hv2-green: #2d8a48;
--hv2-green-fill: rgba(45, 138, 72, 0.06);
--hv2-green-border: rgba(45, 138, 72, 0.22);
--hv2-green-border-hover: rgba(45, 138, 72, 0.38);
--hv2-green-fill-hover: rgba(45, 138, 72, 0.11);
}
/* --- Light-mode page background --- */
[data-theme-resolved="light"] .home-v2-main {
background: var(--hv2-bg);
}
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) {
background: var(--hv2-bg);
}
[data-theme-resolved="light"] .home-v2-main::before {
content: none;
}
/* --- Light-mode hero --- */
[data-theme-resolved="light"] .home-v2-hero {
background: var(--hv2-bg);
}
[data-theme-resolved="light"] .home-v2-hero-bg {
opacity: 0;
}
/* --- INSET SHADOW PATTERN — both modes ---
Darker border on outside, warm glow fading inward */
/* Dark mode — cards get subtle warm-dark inner fade */
.home-v2-c-card,
.home-v2-trend-card {
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.03),
inset 0 0 20px rgba(0, 0, 0, 0.15),
0 1px 3px rgba(0, 0, 0, 0.12);
}
.home-v2-c-card:hover,
.home-v2-trend-card:hover {
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.05),
inset 0 0 24px rgba(0, 0, 0, 0.2),
0 6px 24px rgba(0, 0, 0, 0.22);
}
/* Dark mode — search bar inner fade */
.home-v2-search-bar {
box-shadow:
inset 0 0 16px rgba(0, 0, 0, 0.12),
0 1px 20px rgba(0, 0, 0, 0.15);
}
.home-v2-search-bar:focus-within {
box-shadow:
inset 0 0 20px rgba(0, 0, 0, 0.14),
0 2px 36px rgba(0, 0, 0, 0.2),
0 0 0 3px var(--hv2-accent-glow);
}
/* Dark mode — category icons, proof bar, section borders */
.home-v2-cat-icon {
box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1);
}
.home-v2-categories {
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02);
}
/* --- Light-mode inset shadow pattern --- */
[data-theme-resolved="light"] .home-v2-c-card,
[data-theme-resolved="light"] .home-v2-trend-card {
background: var(--hv2-surface);
border-color: var(--hv2-border-strong);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.9),
0 1px 3px rgba(0, 0, 0, 0.05);
}
[data-theme-resolved="light"] .home-v2-c-card:hover,
[data-theme-resolved="light"] .home-v2-trend-card:hover {
border-color: var(--hv2-border-hover);
background: var(--hv2-surface-hover);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.95),
0 4px 14px rgba(0, 0, 0, 0.06);
}
/* Light — search bar */
[data-theme-resolved="light"] .home-v2-search-bar {
background: var(--hv2-surface);
border-color: var(--hv2-border-strong);
box-shadow:
inset 0 0 12px rgba(0, 0, 0, 0.02),
0 1px 8px rgba(0, 0, 0, 0.04);
}
[data-theme-resolved="light"] .home-v2-search-bar:focus-within {
border-color: var(--hv2-accent-border);
box-shadow:
inset 0 0 12px rgba(0, 0, 0, 0.02),
0 2px 16px rgba(0, 0, 0, 0.05),
0 0 0 3px var(--hv2-accent-glow);
}
[data-theme-resolved="light"] .home-v2-search-bar input {
color: var(--hv2-text);
}
[data-theme-resolved="light"] .home-v2-search-bar input::placeholder {
color: var(--hv2-text-tertiary);
}
/* Light — search button */
[data-theme-resolved="light"] .home-v2-search-go {
background: rgba(196, 58, 47, 0.06);
border-color: rgba(196, 58, 47, 0.25);
color: #c43a2f;
}
[data-theme-resolved="light"] .home-v2-search-go:hover {
background: rgba(196, 58, 47, 0.1);
border-color: rgba(196, 58, 47, 0.4);
box-shadow: 0 0 20px rgba(196, 58, 47, 0.06);
}
/* Light — category icons */
[data-theme-resolved="light"] .home-v2-cat-icon {
background: rgba(196, 58, 47, 0.06);
border-color: rgba(196, 58, 47, 0.2);
box-shadow: inset 0 0 10px rgba(196, 58, 47, 0.04);
}
[data-theme-resolved="light"] .home-v2-cat-item:hover .home-v2-cat-icon {
background: rgba(196, 58, 47, 0.1);
border-color: rgba(196, 58, 47, 0.35);
box-shadow:
inset 0 0 12px rgba(196, 58, 47, 0.05),
0 0 12px rgba(196, 58, 47, 0.06);
}
/* Light — category section borders */
[data-theme-resolved="light"] .home-v2-categories {
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5);
}
[data-theme-resolved="light"] .home-v2-categories-grid {
border-top-color: var(--hv2-border);
}
[data-theme-resolved="light"] .home-v2-cat-item + .home-v2-cat-item::before {
background: var(--hv2-border);
}
[data-theme-resolved="light"] .home-v2-cat-item:hover {
background: rgba(0, 0, 0, 0.03);
}
/* Light — install buttons (green) */
[data-theme-resolved="light"] .home-v2-c-install,
[data-theme-resolved="light"] .home-v2-trend-install {
background: rgba(45, 138, 72, 0.05);
border-color: rgba(45, 138, 72, 0.2);
color: #2d8a48;
box-shadow: inset 0 0 8px rgba(45, 138, 72, 0.03);
}
[data-theme-resolved="light"] .home-v2-c-card:hover .home-v2-c-install,
[data-theme-resolved="light"] .home-v2-trend-card:hover .home-v2-trend-install {
background: rgba(45, 138, 72, 0.09);
border-color: rgba(45, 138, 72, 0.32);
}
/* Light — tag badges */
[data-theme-resolved="light"] .home-v2-c-tag {
background: rgba(0, 0, 0, 0.04);
border-color: var(--hv2-border);
color: var(--hv2-text-secondary);
}
/* Light — carousel section */
[data-theme-resolved="light"] .home-v2-carousel {
border-top-color: var(--hv2-border);
}
[data-theme-resolved="light"] .home-v2-carousel-mask::before {
background: linear-gradient(90deg, var(--hv2-bg), transparent);
}
[data-theme-resolved="light"] .home-v2-carousel-mask::after {
background: linear-gradient(270deg, var(--hv2-bg), transparent);
}
/* Light — trending section */
[data-theme-resolved="light"] .home-v2-trending-section {
background: var(--hv2-bg);
border-top: 1px solid var(--hv2-border);
}
[data-theme-resolved="light"] .home-v2-discovery-section {
background: var(--hv2-bg);
border-top-color: var(--hv2-border);
}
/* Light — carousel nav arrows */
[data-theme-resolved="light"] .home-v2-carousel-nav button {
background: var(--hv2-surface);
border-color: var(--hv2-border-strong);
color: var(--hv2-text-secondary);
box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.02);
}
[data-theme-resolved="light"] .home-v2-carousel-nav button:hover {
background: var(--hv2-surface-hover);
border-color: var(--hv2-border-hover);
}
/* ═══ DARK MODE — Enhanced inset pattern ═══ */
/* Strengthen the darker-outline-fading-inward on dark cards too */
[data-theme-resolved="dark"] .home-v2-c-card,
[data-theme-resolved="dark"] .home-v2-trend-card {
border-color: rgba(255, 255, 255, 0.08);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.04),
inset 0 0 28px rgba(0, 0, 0, 0.2),
0 1px 4px rgba(0, 0, 0, 0.18);
}
[data-theme-resolved="dark"] .home-v2-c-card:hover,
[data-theme-resolved="dark"] .home-v2-trend-card:hover {
border-color: rgba(255, 255, 255, 0.15);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.06),
inset 0 0 32px rgba(0, 0, 0, 0.25),
0 6px 28px rgba(0, 0, 0, 0.28);
}
/* Dark — search inset */
[data-theme-resolved="dark"] .home-v2-search-bar {
box-shadow:
inset 0 0 20px rgba(0, 0, 0, 0.18),
0 1px 20px rgba(0, 0, 0, 0.2);
}
[data-theme-resolved="dark"] .home-v2-search-bar:focus-within {
box-shadow:
inset 0 0 24px rgba(0, 0, 0, 0.22),
0 2px 36px rgba(0, 0, 0, 0.25),
0 0 0 3px var(--hv2-accent-glow);
}
/* Dark — cat icons */
[data-theme-resolved="dark"] .home-v2-cat-icon {
box-shadow: inset 0 0 12px rgba(0, 0, 0, 0.15);
}
/* Dark — install buttons */
[data-theme-resolved="dark"] .home-v2-c-install,
[data-theme-resolved="dark"] .home-v2-trend-install {
box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1);
}
/* Home surfaces inherit geometry from the canonical design system. */
.home-v2-main {
--hv2-radius-sm: var(--oc-radius-control);
--hv2-radius-md: var(--oc-radius-surface);
--hv2-radius-lg: var(--oc-radius-surface);
}
.home-v2-search-bar {
border-radius: var(--oc-radius-control);
}
.home-v2-search-go {
border-radius: var(--oc-radius-control);
}
.home-v2-c-icon {
border-radius: var(--oc-radius-inset);
}
.home-v2-c-tag {
border-radius: var(--oc-radius-control);
}
.home-v2-cat-icon {
border-radius: var(--oc-radius-inset);
}
/* Hero rings — circles, keep as-is (border-radius: 50%) */
/* Carousel nav arrows — round buttons */
.home-v2-carousel-nav button {
border-radius: var(--oc-radius-control);
}
/* ═══════════════════════════════════════════════════════════════════════
BUTTON RADIUS CONSISTENCY
Single token for all buttons: --r-btn (matches search controls, not pills)
═══════════════════════════════════════════════════════════════════════ */
:root {
--r-btn: var(--r-sm);
}
/* Core buttons */
.btn {
border-radius: var(--r-btn) !important;
}
/* Sign-in / auth buttons (often inline-flex with rounded-xl or pill) */
.sign-in-button,
.auth-button,
.auth-btn,
[class*="sign-in"],
.navbar .btn,
.nav-actions .btn {
border-radius: var(--r-btn) !important;
}
/* Skill/plugin action buttons */
.skill-hero-cta .btn,
.skill-install-button,
.install-button,
.publish-button {
border-radius: var(--r-btn) !important;
}
/* Tab-style toggle groups — align with detail control radius */
.install-switcher-toggle {
border-radius: var(--r-btn) !important;
}
.install-switcher-toggle::before,
.install-switcher-toggle button {
border-radius: calc(var(--r-btn) - 4px) !important;
}
/* Skills/plugins type tabs */
.plugins-type-tabs {
border-radius: var(--r-btn) !important;
}
.plugins-type-tabs button,
.plugins-type-tabs a {
border-radius: var(--r-btn) !important;
}
/* View toggle pills */
.skills-view {
border-radius: var(--r-btn) !important;
}
.skills-view button {
border-radius: var(--r-btn) !important;
}
/* Management action buttons */
.meta-bar-footer > .btn {
border-radius: var(--r-btn) !important;
}
/* Upload/publish area buttons */
.upload-requirement {
border-radius: var(--r-btn) !important;
}
/* Scan result badges — keep slightly rounded */
.scan-result-status {
border-radius: var(--oc-radius-control) !important;
}
/* Bundle includes badges */
.bundle-includes span {
border-radius: var(--oc-radius-inset) !important;
}
/* Home hero popular tags */
.home-hero-popular-tag {
border-radius: var(--oc-radius-control) !important;
}
/* Dropzone — was 16px */
.dropzone {
border-radius: var(--r-md) !important;
}
/* File viewer — was 16px */
.file-viewer {
border-radius: var(--r-md) !important;
}
/* Plugin upload summary — was 16px */
.plugin-upload-summary.is-ready {
border-radius: var(--r-md) !important;
}
/* Diff empty state — was 10px */
.diff-empty {
border-radius: var(--diff-panel-radius, var(--r-md)) !important;
}
/* Kill all leftover r-pill on interactive elements */
.navbar-search {
border-radius: var(--r-btn) !important;
}
/* Tailwind inline button classes — catch rounded-xl, rounded-2xl, rounded-full on buttons */
button[class*="rounded-xl"],
button[class*="rounded-2xl"],
button[class*="rounded-full"],
a[class*="rounded-xl"],
a[class*="rounded-2xl"],
a[class*="rounded-full"] {
border-radius: var(--r-btn) !important;
}
/* Home v2 install buttons — match system */
.home-v2-c-install,
.home-v2-trend-install,
.home-v2-search-go {
border-radius: var(--r-btn) !important;
}
/* Header sync from the design experiment: search, menu, and brand mark only. */
.navbar.navbar-calm {
background: var(--nav-bg);
transition:
background 0.2s ease,
backdrop-filter 0.2s ease,
-webkit-backdrop-filter 0.2s ease;
}
.navbar.navbar-calm.navbar-calm-scrolled {
background: color-mix(in srgb, var(--nav-bg) 84%, transparent);
backdrop-filter: blur(12px) saturate(1.08);
-webkit-backdrop-filter: blur(12px) saturate(1.08);
}
.navbar-calm .navbar-inner {
position: relative;
}
.app-shell:has(.home-v2-main) .navbar.navbar-calm {
border-bottom: none;
background: transparent;
}
.app-shell:has(.home-v2-main) .navbar.navbar-calm.navbar-calm-scrolled {
background: color-mix(in srgb, var(--nav-bg) 78%, transparent);
}
.navbar.navbar-calm.navbar-calm-scrolled:has(.navbar-search-typeahead) {
background: color-mix(in srgb, var(--nav-bg) 94%, transparent);
-webkit-backdrop-filter: none;
backdrop-filter: none;
}
.app-shell:has(.navbar-search-typeahead)::after {
content: "";
position: fixed;
z-index: 9;
inset: 0;
pointer-events: none;
background: rgb(0 0 0 / 0.1);
animation: navbar-search-scrim-in 120ms ease-out both;
}
[data-theme-resolved="light"] .app-shell:has(.navbar-search-typeahead)::after {
background: rgb(10 10 10 / 0.06);
}
@keyframes navbar-search-scrim-in {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
.navbar-calm .navbar-top {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(240px, 360px) minmax(0, 1fr);
align-items: center;
gap: 12px 24px;
position: relative;
z-index: 70;
min-height: 52px;
padding: 12px 0;
}
.navbar-calm-start,
.navbar-calm-actions {
display: flex;
align-items: center;
min-width: 0;
}
.navbar-calm-start {
grid-column: 1;
justify-self: start;
gap: 20px;
}
.navbar-calm-center {
grid-column: 2;
justify-self: center;
width: 100%;
max-width: 360px;
min-width: 0;
}
.navbar-calm-center .navbar-search-wrap {
width: 100%;
}
.navbar-calm-actions {
grid-column: 3;
justify-self: end;
justify-content: flex-end;
gap: 10px;
}
.navbar-calm .brand {
flex-shrink: 0;
gap: 8px;
font-weight: 600;
}
.navbar-calm .brand:hover,
.navbar-calm .brand:focus-visible {
text-decoration: none;
}
.navbar-calm .brand-mark {
width: 28px;
height: 28px;
box-shadow: none;
}
.navbar-calm .brand-mark-image,
.navbar-calm .mobile-nav-brand-mark-image {
object-fit: contain;
}
.navbar-calm .nav-mobile-trigger:hover {
transform: none;
box-shadow: none;
}
.navbar-calm .navbar-search {
height: 34px;
gap: 8px;
padding: 0 10px 0 12px;
border-color: color-mix(in srgb, var(--ink) 8%, transparent);
background: color-mix(in srgb, var(--surface) 65%, transparent);
}
.navbar-calm .navbar-search:focus-within {
border-color: color-mix(in srgb, var(--ink) 16%, transparent);
background: color-mix(in srgb, var(--surface) 88%, transparent);
box-shadow: none;
}
.navbar-calm .navbar-search-icon {
width: 14px;
height: 14px;
}
.navbar-calm .navbar-search:focus-within .navbar-search-icon {
color: var(--ink-soft);
opacity: 0.72;
}
.navbar-calm .navbar-search-input,
.navbar-calm .navbar-search-input::placeholder {
font-size: 0.8125rem;
}
.navbar-calm .navbar-search-input::placeholder {
opacity: 0.55;
}
.navbar-search-kbd {
display: inline-flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
gap: 3px;
min-height: 22px;
padding: 2px 7px;
border: 1px solid color-mix(in srgb, var(--ink) 12%, transparent);
border-radius: 6px;
background: color-mix(in srgb, var(--ink) 5%, transparent);
color: var(--ink-soft);
font-size: 0.6875rem;
font-weight: 600;
line-height: 1;
opacity: 0.72;
pointer-events: none;
}
.navbar-search-kbd-icon {
flex-shrink: 0;
width: 1em;
height: 1em;
stroke-width: 2.25;
}
.navbar-search-kbd-key,
.navbar-search-kbd-plus {
font-family: var(--font-mono), ui-monospace, monospace;
line-height: 1;
}
.navbar-search-kbd-key {
letter-spacing: 0.02em;
}
.navbar-search-kbd-plus {
font-size: 0.625rem;
opacity: 0.72;
}
.navbar-search:focus-within .navbar-search-kbd,
.navbar-search:has(.navbar-search-input:not(:placeholder-shown)) .navbar-search-kbd {
display: none;
}
.navbar-calm .navbar-calm-rail {
display: flex;
align-items: center;
flex-wrap: nowrap;
gap: 16px;
min-width: 0;
}
.navbar-calm-rail-link {
position: relative;
color: color-mix(in srgb, var(--ink-soft) 94%, transparent);
font-size: 0.875rem;
font-weight: 450;
line-height: 1;
text-decoration: none;
white-space: nowrap;
}
.navbar-calm-rail-link:hover {
color: var(--ink);
text-decoration: none;
}
.navbar-calm-rail-link[data-status="active"] {
color: var(--ink);
font-weight: 560;
text-decoration: none;
}
.navbar-calm-rail-link-secondary {
opacity: 0.88;
}
.navbar-calm-more-trigger {
appearance: none;
display: none;
align-items: center;
justify-content: center;
width: 32px;
height: 32px;
padding: 0;
border: 0;
background: transparent;
color: color-mix(in srgb, var(--ink-soft) 94%, transparent);
cursor: pointer;
}
.navbar-calm-more-trigger:hover,
.navbar-calm-more-trigger:focus-visible {
color: color-mix(in srgb, var(--ink) 82%, transparent);
}
.navbar-calm-more-trigger svg {
pointer-events: none;
}
.navbar-calm-more-menu {
min-width: 112px !important;
width: 112px;
border-radius: var(--r-md);
padding: 4px;
}
.navbar-calm-more-link {
width: 100%;
color: inherit;
text-decoration: none;
}
.navbar-calm-more-link:hover {
text-decoration: none;
}
.navbar-calm .nav-actions {
flex-shrink: 0;
gap: 10px;
margin-left: 0;
}
.navbar-calm .github-sign-in-button {
border-radius: var(--r-pill) !important;
border-color: color-mix(in srgb, var(--ink) 10%, transparent) !important;
background: color-mix(in srgb, var(--ink) 8%, var(--surface-muted)) !important;
font-weight: 500 !important;
}
.navbar-calm .github-sign-in-button:hover:not(:disabled) {
border-color: color-mix(in srgb, var(--ink) 16%, transparent) !important;
background: color-mix(in srgb, var(--ink) 12%, var(--surface-muted)) !important;
}
[data-theme-resolved="light"] .navbar-calm .navbar-search {
border-color: rgba(10, 10, 10, 0.14);
background: rgba(255, 255, 255, 0.82);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.92),
0 1px 2px rgba(10, 10, 10, 0.04);
}
[data-theme-resolved="light"] .navbar-calm .navbar-search:focus-within {
border-color: rgba(10, 10, 10, 0.22);
background: rgba(255, 255, 255, 0.94);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.96),
0 0 0 3px rgba(10, 10, 10, 0.04);
}
[data-theme-resolved="light"] .navbar-calm .navbar-search-icon {
color: #6b6b6b;
opacity: 0.92;
}
[data-theme-resolved="light"] .navbar-calm .navbar-search-input::placeholder {
color: #6f6f6f;
opacity: 1;
}
[data-theme-resolved="light"] .navbar-search-kbd {
border-color: rgba(10, 10, 10, 0.14);
background: rgba(250, 250, 250, 0.92);
color: #606060;
opacity: 1;
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.9),
0 1px 1px rgba(10, 10, 10, 0.04);
}
[data-theme-resolved="light"] .navbar-calm .github-sign-in-button {
border-color: var(--border-ui) !important;
background: var(--surface) !important;
color: #171717 !important;
box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06) !important;
}
[data-theme-resolved="light"] .navbar-calm .github-sign-in-button:hover:not(:disabled) {
border-color: var(--border-ui-hover) !important;
background: var(--surface-muted) !important;
}
.navbar-search-typeahead {
top: calc(100% + 10px);
right: auto;
left: 50%;
width: min(520px, calc(100vw - 32px));
max-height: min(680px, calc(100vh - 112px));
transform: translateX(-50%);
border-radius: 12px;
background: color-mix(in srgb, var(--surface) 88%, transparent);
box-shadow: var(--shadow-dialog);
-webkit-backdrop-filter: blur(18px) saturate(1.08);
backdrop-filter: blur(18px) saturate(1.08);
}
.navbar-search-typeahead-panel {
min-height: 0;
}
.navbar-search-typeahead-results {
display: flex;
flex-direction: column;
overflow-y: auto;
max-height: min(680px, calc(100vh - 112px));
scrollbar-width: thin;
}
.navbar-search-typeahead-section {
display: flex;
flex-direction: column;
gap: 2px;
padding: 6px;
}
.navbar-search-typeahead-section + .navbar-search-typeahead-section {
border-top: 1px solid var(--line);
}
.navbar-search-typeahead-heading {
margin: -6px -6px 4px;
padding: 9px 12px;
border-bottom: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
background: color-mix(in srgb, var(--ink) 5%, transparent);
color: var(--ink);
font-size: 12px;
font-weight: 700;
letter-spacing: 0.01em;
}
.navbar-search-typeahead-row {
min-height: 42px;
padding: 6px 8px;
border-top: none;
border-radius: 8px;
transition: background 0.12s ease;
}
.navbar-search-typeahead-row:hover,
.navbar-search-typeahead-row.is-active {
background: color-mix(in srgb, var(--ink) 8%, transparent);
}
.navbar-search-typeahead-row.is-footer {
width: calc(100% + 12px);
min-height: 44px;
margin: 4px -6px -6px;
padding: 10px 12px;
border-top: 1px solid var(--line);
border-radius: 0;
font-size: var(--fs-sm);
font-weight: 500;
}
.navbar-search-typeahead-row.is-footer:hover,
.navbar-search-typeahead-row.is-footer.is-active {
color: var(--ink);
}
.navbar-search-typeahead-icon {
width: 28px;
height: 28px;
border-radius: 0;
background: transparent;
color: inherit;
}
.navbar-search-typeahead-icon .marketplace-icon {
width: 28px;
height: 28px;
border: 1px solid color-mix(in srgb, var(--ink) 9%, transparent) !important;
border-radius: var(--oc-radius-inset);
background: color-mix(in srgb, var(--ink) 5%, transparent) !important;
color: var(--ink-soft);
box-shadow: none;
pointer-events: none;
transform: none;
transition: none;
--marketplace-icon-wash: transparent;
--marketplace-icon-accent: var(--ink-soft);
}
.navbar-search-typeahead-icon .marketplace-icon-glyph,
.navbar-search-typeahead-icon .marketplace-icon-image {
filter: grayscale(1);
opacity: 0.82;
}
.navbar-search-typeahead-icon .marketplace-icon-user {
border-radius: var(--oc-radius-round);
}
.navbar-search-typeahead-icon .marketplace-icon-org {
border-radius: var(--oc-radius-inset);
}
.navbar-search-typeahead-icon .marketplace-icon-org .marketplace-icon-glyph,
.navbar-search-typeahead-icon .marketplace-icon-org .marketplace-icon-image {
filter: grayscale(1);
opacity: 0.82;
}
.navbar-search-typeahead-icon .marketplace-icon-user .marketplace-icon-image {
filter: none;
opacity: 1;
}
.navbar-search-typeahead-icon .marketplace-icon-user:has(.marketplace-icon-image) {
background: transparent !important;
border: none !important;
}
.navbar-search-typeahead-icon .marketplace-icon-glyph {
width: 15px;
height: 15px;
}
.navbar-search-typeahead-icon .marketplace-icon:hover {
transform: none;
box-shadow: none;
}
.navbar-search-typeahead-copy {
gap: 2px;
}
.navbar-search-typeahead-title {
line-height: 1.25;
}
.navbar-search-typeahead-meta {
line-height: 1.3;
}
.navbar-search-typeahead-status {
padding: 12px 14px 14px;
line-height: 1.45;
}
.navbar-search-typeahead-status.is-empty,
.navbar-search-typeahead-status.is-loading {
display: flex;
align-items: center;
gap: 10px;
padding: 14px;
}
.navbar-search-typeahead-status-spinner {
animation: navbar-search-typeahead-spin 0.75s linear infinite;
}
@keyframes navbar-search-typeahead-spin {
to {
transform: rotate(360deg);
}
}
.navbar-search-typeahead-status-icon {
display: inline-flex;
align-items: center;
justify-content: center;
flex: 0 0 auto;
width: 32px;
height: 32px;
border: 1px solid color-mix(in srgb, var(--ink) 9%, transparent);
border-radius: 9px;
background: color-mix(in srgb, var(--ink) 5%, transparent);
color: var(--ink-soft);
}
.clawhub-segmented {
--clawhub-segmented-seg-h: 30px;
--clawhub-segmented-h: calc(var(--clawhub-segmented-seg-h) + 8px);
--clawhub-segmented-border: color-mix(in srgb, var(--line) 58%, transparent);
--clawhub-segmented-bg: color-mix(in srgb, var(--surface) 95%, transparent);
--clawhub-segmented-fg: var(--ink-soft);
--clawhub-segmented-fg-hover: var(--ink);
--clawhub-segmented-fg-active: var(--ink);
--clawhub-segmented-active-bg: color-mix(in srgb, var(--ink) 10%, transparent);
display: inline-flex;
align-items: center;
flex-shrink: 0;
gap: 2px;
box-sizing: border-box;
height: var(--clawhub-segmented-h);
padding: 3px;
border: 1px solid var(--clawhub-segmented-border);
border-radius: var(--oc-radius-control);
background: var(--clawhub-segmented-bg);
}
.clawhub-segmented-btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 6px;
height: var(--clawhub-segmented-seg-h);
padding: 0 12px;
border: none;
border-radius: var(--oc-radius-inset);
background: transparent;
color: var(--clawhub-segmented-fg);
font-size: 14px;
font-weight: 600;
line-height: 1;
cursor: pointer;
transition:
color 0.15s ease,
background 0.15s ease;
}
.clawhub-segmented-label,
.clawhub-segmented-count {
display: inline-flex;
align-items: center;
line-height: 1;
}
.clawhub-segmented-count {
font-size: 12px;
font-weight: 650;
font-variant-numeric: tabular-nums;
color: color-mix(in srgb, currentColor 62%, transparent);
}
.clawhub-segmented-btn.is-active .clawhub-segmented-count {
color: color-mix(in srgb, currentColor 76%, transparent);
}
.clawhub-segmented-btn:hover,
.clawhub-segmented-btn:focus-visible {
color: var(--clawhub-segmented-fg-hover);
}
.clawhub-segmented-btn.is-active {
background: var(--clawhub-segmented-active-bg);
color: var(--clawhub-segmented-fg-active);
}
.app-shell:has(.home-v2-main) .clawhub-segmented {
--clawhub-segmented-border: color-mix(in srgb, var(--hv2-border) 72%, transparent);
--clawhub-segmented-bg: color-mix(in srgb, var(--hv2-surface) 95%, transparent);
--clawhub-segmented-fg: var(--hv2-text-tertiary);
--clawhub-segmented-fg-hover: var(--hv2-text-secondary);
--clawhub-segmented-fg-active: var(--hv2-text);
--clawhub-segmented-active-bg: color-mix(in srgb, var(--hv2-text) 10%, transparent);
}
[data-theme-resolved="light"] .publisher-profile-tab-bar .clawhub-segmented {
--clawhub-segmented-active-bg: var(--hover-bg);
}
/* Icon-only segmented buttons — override text-tab padding from block above */
.clawhub-segmented-btn.home-v2-listing-view-btn,
.clawhub-segmented-btn.browse-view-btn {
width: var(--clawhub-segmented-seg-h);
min-width: var(--clawhub-segmented-seg-h);
padding: 0;
}
.clawhub-segmented-btn.home-v2-listing-view-btn svg,
.clawhub-segmented-btn.browse-view-btn svg {
width: 16px;
height: 16px;
flex-shrink: 0;
}
.app-shell:has(.home-v2-main) main.home-v2-main {
margin-top: -64px;
padding-bottom: 0;
}
.app-shell:has(.home-v2-main) .home-v2-hero {
overflow: visible;
min-height: 388px;
justify-content: center;
padding-top: calc(64px + 64px);
}
.app-shell:has(.home-v2-main) .home-v2-hero-bg {
top: -112px;
right: auto;
bottom: -120px;
left: 50%;
width: 100vw;
max-width: none;
/* This rule centers with transform; neutralize the legacy -50vw margin above. */
margin-left: 0;
transform: translateX(-50%);
-webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 40%, transparent 100%);
mask-image: linear-gradient(to bottom, #000 0%, #000 40%, transparent 100%);
}
@media (max-width: 1100px) {
.navbar-calm-rail-link-secondary {
display: none;
}
.navbar-calm-more-trigger {
display: inline-flex;
}
}
@media (max-width: 920px) {
.navbar-calm .navbar-calm-rail {
display: none;
}
.navbar-calm-center .navbar-search-wrap {
position: static;
}
.navbar-calm-center .navbar-search-typeahead {
top: calc(100% + 4px);
right: 0;
left: 0;
width: auto;
max-width: none;
transform: none;
}
.navbar-calm .navbar-top {
grid-template-columns: auto minmax(180px, 360px) auto;
}
.navbar-calm .nav-mobile {
display: inline-flex;
flex: 0 0 auto;
}
.navbar-calm .nav-mobile-trigger {
width: 40px;
height: 40px;
border-radius: var(--r-md);
}
.navbar-calm .nav-mobile-trigger::after {
border-radius: var(--r-md);
}
}
@media (max-width: 760px) {
:root {
--site-header-height: calc(40px + 16px);
}
.navbar-calm .navbar-inner {
padding: 0;
}
.navbar-calm .navbar-top {
grid-template-columns: minmax(0, 1fr) auto;
gap: 8px;
min-height: 0;
padding: 8px 10px;
}
.navbar-calm-start {
grid-column: 1;
gap: 10px;
}
.navbar-calm-center {
display: none;
}
.navbar-calm-actions {
grid-column: 2;
gap: 8px;
}
.navbar-calm-actions > .navbar-theme-switcher,
.navbar-calm-actions > .navbar-theme-switcher-skeleton {
display: none;
}
.navbar-search-kbd {
display: none;
}
.navbar-calm .brand {
display: inline-flex;
flex: 1 1 auto;
min-width: 0;
gap: 7px;
font-size: 0.9375rem;
line-height: 1;
}
.navbar-calm .brand-name {
min-width: 0;
}
.navbar-calm .brand-mark {
width: 24px;
height: 24px;
flex: 0 0 auto;
}
.navbar-calm .brand-mark-image {
display: block;
}
.navbar-calm .navbar-search-mobile-trigger {
display: inline-flex;
width: 40px;
height: 40px;
border-radius: var(--r-md);
}
.navbar-calm .navbar-search-mobile-wrap {
display: block;
position: absolute;
top: calc(100% + 4px);
right: var(--space-5);
left: var(--space-5);
z-index: 80;
margin: 0;
}
.navbar-calm .navbar-search-mobile-overlay {
all: unset;
position: fixed;
inset: 0;
z-index: 50;
display: block;
background: rgba(0, 0, 0, 0.48);
cursor: default;
}
.navbar-calm .navbar-search-mobile {
display: flex;
height: 40px;
margin: 0;
border-radius: var(--r-md);
}
.navbar-calm .navbar-search-mobile-wrap .navbar-search-input,
.navbar-calm .navbar-search-mobile-wrap .navbar-search-input::placeholder {
font-size: 16px;
}
.navbar-search-mobile-wrap .navbar-search-typeahead {
right: 0;
left: 0;
width: auto;
transform: none;
}
.app-shell:has(.home-v2-main) main.home-v2-main {
margin-top: -56px;
}
.app-shell:has(.home-v2-main) .home-v2-hero {
padding-top: calc(56px + 48px);
}
.app-shell:has(.home-v2-main) .home-v2-hero-bg {
top: -96px;
}
}
/* Mobile browse and navigation alignment with the homepage catalog. */
@media (max-width: 760px) {
.mobile-nav-section {
gap: 2px;
}
.mobile-nav-link {
min-height: 48px;
padding: 7px 0;
border-color: transparent;
background: transparent;
color: color-mix(in srgb, var(--ink) 90%, transparent);
font-size: 26px;
font-weight: 700;
line-height: 1.15;
}
.mobile-nav-link:hover,
.mobile-nav-link:focus-visible {
border-color: transparent;
background: transparent;
color: var(--ink);
text-decoration: none;
}
.mobile-nav-link-external {
flex: 0 0 auto;
margin-left: 8px;
color: color-mix(in srgb, var(--ink-soft) 72%, transparent);
}
.mobile-nav-appearance-section {
width: 100%;
justify-items: stretch;
}
.mobile-nav-appearance-section .mobile-nav-section-title {
margin-bottom: 8px;
}
.mobile-nav-appearance-section .navbar-theme-switcher {
--navbar-theme-seg: auto;
width: 100%;
min-height: 46px;
max-width: none;
padding: 4px;
}
.mobile-nav-appearance-section .navbar-theme-switcher-btn,
.mobile-nav-appearance-section .navbar-theme-switcher-btn:not(.is-active) {
width: auto;
min-height: 36px;
max-width: none;
flex: 1 1 0;
}
.home-v2-listing-search-input,
.home-v2-listing-search-input::placeholder {
font-size: 16px;
}
.browse-category-trigger {
min-height: 42px;
padding: 0 12px;
border: 1px solid var(--line);
border-radius: var(--oc-radius-control);
background: color-mix(in srgb, var(--surface) 76%, transparent);
}
.browse-category-trigger:hover,
.browse-category-trigger[aria-expanded="true"] {
background: color-mix(in srgb, var(--surface) 76%, transparent);
}
.browse-sort-select {
display: none;
}
.browse-tabs {
order: 3;
gap: 8px;
}
.browse-tab {
min-width: 0;
}
.skills-browse-page .browse-tabs {
justify-content: flex-start;
}
.skills-browse-page .browse-tab {
flex: 0 0 auto;
min-width: max-content;
padding: 0 2px;
}
.publishers-browse-page .browse-tabs {
justify-content: stretch;
gap: 10px;
}
.publishers-browse-page .browse-tab {
flex: 1 1 0;
}
.publishers-browse-page .browse-tab:nth-child(1),
.publishers-browse-page .browse-tab:nth-child(2) {
flex-grow: 0.75;
}
.publishers-browse-page .browse-tab:nth-child(3) {
flex-grow: 1.2;
}
.publishers-browse-page .browse-tab:nth-child(4) {
flex-grow: 0.75;
}
.browse-category-select {
order: 1;
flex: 1 1 auto;
width: auto;
max-width: none;
}
.browse-search-trigger {
display: inline-flex;
order: 2;
width: 42px;
height: 42px;
flex: 0 0 42px;
margin-left: auto;
border: 0;
background: transparent;
}
.browse-search-trigger:hover,
.browse-search-trigger:focus-visible,
.browse-search-trigger.is-active {
background: transparent;
}
.browse-search-panel.is-open {
order: 3;
flex: 1 1 100%;
width: 100%;
}
.browse-search-panel.is-open .browse-search-control {
min-height: 40px;
padding: 4px 6px 4px 14px;
border-radius: var(--oc-radius-control);
}
.publishers-browse-page .browse-search-trigger,
.publishers-browse-page .browse-search-panel {
display: none;
}
.browse-page .browse-list-head-publishers {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 12px;
padding: 0 8px 8px;
}
.browse-page .browse-list-head-publishers .browse-list-head-label:first-child {
grid-column: 1;
}
.browse-page .browse-list-head-publishers .browse-list-head-stat {
display: block;
grid-column: 2;
}
.browse-page .publisher-directory-list .publisher-card-list {
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
gap: 12px;
padding: 12px 8px;
}
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-main {
grid-template-columns: auto minmax(0, 1fr);
gap: 10px;
}
.browse-page
.publisher-directory-list
.publisher-card-list
.publisher-card-main
> .marketplace-icon {
display: grid;
width: 36px;
height: 36px;
}
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-copy {
gap: 0;
min-width: 0;
}
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-identity {
min-width: 0;
gap: 1px;
}
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-title-row {
min-width: 0;
gap: 5px;
}
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-name {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-summary {
display: none;
}
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-stats {
display: flex;
grid-column: 2;
grid-row: 1;
align-self: center;
justify-self: end;
width: auto;
padding: 0;
border: 0;
}
.browse-page
.publisher-directory-list
.publisher-card-list
.publisher-card-stat:not(.is-primary) {
display: none;
}
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-stat.is-primary {
gap: 5px;
color: var(--ink-soft);
white-space: nowrap;
}
.browse-page .publisher-directory-list .publisher-card-list .publisher-card-stat.is-primary svg,
.browse-page
.publisher-directory-list
.publisher-card-list
.publisher-card-stat.is-primary
strong {
color: var(--ink-muted);
}
}
.dashboard-route .dashboard-header,
.dashboard-route .dashboard-page-header {
align-items: flex-start;
flex-wrap: wrap;
}
.dashboard-route .dashboard-page-header-main {
gap: 16px;
}
.dashboard-header-top {
position: relative;
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 16px;
width: 100%;
min-width: 0;
}
.dashboard-header-publisher-center {
position: absolute;
top: 0;
left: 50%;
z-index: 1;
transform: translateX(-50%);
}
.dashboard-header-intro {
display: grid;
gap: 0;
min-width: 0;
}
.browse-page.dashboard-route .browse-title {
font-size: clamp(2rem, 4vw, 2.55rem);
line-height: 1;
letter-spacing: -0.04em;
}
.browse-page.dashboard-route .dashboard-header-actions [data-slot="button"] {
min-height: 40px;
padding-inline: 14px;
}
.dashboard-section-head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
margin-bottom: 10px;
padding: 0 4px;
}
.dashboard-section-head-main {
display: inline-flex;
align-items: center;
gap: 8px;
min-width: 0;
}
.dashboard-section-title {
margin: 0;
font-size: var(--fs-md);
font-weight: 700;
letter-spacing: -0.01em;
color: var(--ink);
}
.dashboard-section-count {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 22px;
height: 22px;
padding: 0 7px;
border-radius: 999px;
background: color-mix(in srgb, var(--ink) 8%, transparent);
color: var(--ink-soft);
font-size: 11px;
font-weight: 700;
line-height: 1;
}
.dashboard-inventory-section {
display: grid;
gap: 12px;
}
.dashboard-inventory-body {
min-width: 0;
}
.dashboard-header-publisher {
display: flex;
align-items: center;
gap: 14px;
min-width: 0;
}
.dashboard-header-avatar {
display: inline-flex;
flex-shrink: 0;
}
.dashboard-header-avatar .marketplace-icon,
.dashboard-header-avatar .marketplace-icon:hover {
transform: none;
box-shadow: none;
pointer-events: none;
transition: none;
}
.dashboard-header-publisher-trigger {
width: auto;
min-width: 0;
max-width: none;
min-height: 0;
height: auto;
padding: 0 4px 0 0;
border: 0;
background: transparent;
box-shadow: none;
gap: 4px;
font-size: inherit;
line-height: inherit;
}
.dashboard-header-publisher-trigger:hover:not(:disabled) {
background: color-mix(in srgb, var(--ink) 6%, transparent);
}
.dashboard-header-publisher-trigger:focus-visible {
border: 0;
background: color-mix(in srgb, var(--ink) 6%, transparent);
box-shadow: 0 0 0 2px var(--input-focus-ring);
}
.dashboard-header-publisher-label {
display: inline-flex;
align-items: center;
gap: 6px;
min-width: 0;
}
.dashboard-header-publisher-trigger svg {
width: 14px;
height: 14px;
opacity: 0.55;
flex-shrink: 0;
}
.dashboard-header-meta {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 6px;
margin: 0;
color: var(--ink-soft);
font-size: var(--fs-sm);
line-height: 1.4;
}
.dashboard-header-name {
color: var(--ink);
font-weight: 600;
}
.dashboard-header-meta-sep {
opacity: 0.45;
}
.dashboard-header-role {
color: var(--ink-muted);
text-transform: capitalize;
}
.dashboard-header-summary {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 6px;
color: var(--ink-soft);
font-size: var(--fs-sm);
}
.dashboard-header-summary > span[aria-hidden] {
opacity: 0.4;
}
.dashboard-header-handle {
color: var(--ink-muted);
font-weight: 500;
font-family: var(--font-mono);
}
.dashboard-header-actions {
display: flex;
flex-wrap: wrap;
gap: 8px;
justify-content: flex-end;
align-items: center;
}
/* Toolbar: tabs + search */
.dashboard-toolbar {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
gap: 12px;
margin-bottom: 14px;
}
.dashboard-tabs {
display: inline-flex;
align-items: center;
gap: 2px;
padding: 3px;
border: 1px solid var(--line);
border-radius: var(--r-md);
background: var(--surface-muted);
}
.dashboard-tab {
display: inline-flex;
align-items: center;
gap: 7px;
border: 0;
border-radius: calc(var(--r-md) - 4px);
background: transparent;
color: var(--ink-soft);
cursor: pointer;
font-size: var(--fs-sm);
font-weight: 600;
line-height: 1;
padding: 8px 12px;
transition:
background 0.15s ease,
color 0.15s ease;
}
.dashboard-tab:hover {
color: var(--ink);
}
.dashboard-tab.is-active {
background: var(--surface);
color: var(--ink);
box-shadow: 0 1px 2px rgb(0 0 0 / 0.12);
}
.dashboard-tab-count {
min-width: 20px;
padding: 1px 6px;
border-radius: 999px;
background: color-mix(in srgb, var(--ink) 8%, transparent);
color: var(--ink-soft);
font-size: var(--fs-xs);
font-weight: 600;
text-align: center;
}
.dashboard-tab.is-active .dashboard-tab-count {
background: color-mix(in srgb, var(--accent) 20%, transparent);
color: var(--ink);
}
.dashboard-toolbar-controls {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 8px;
margin-left: auto;
}
.dashboard-inventory-section .browse-tab {
min-height: 36px;
padding-inline: 12px;
}
.dashboard-inventory-section .clawhub-segmented {
--clawhub-segmented-seg-h: 30px;
padding: 3px;
border-radius: 9px;
}
.dashboard-inventory-section .clawhub-segmented-btn {
min-width: 48px;
padding-inline: 9px;
border-radius: 7px;
font-size: var(--fs-sm);
}
.dashboard-inventory-section .browse-search-trigger {
width: 40px;
height: 40px;
flex-basis: 40px;
}
.dashboard-inventory-section .browse-view-toggle {
--clawhub-segmented-seg-h: 30px;
}
.dashboard-inventory-section .browse-view-toggle .clawhub-segmented-btn {
min-width: 32px;
padding-inline: 7px;
}
.dashboard-search {
position: relative;
display: flex;
align-items: center;
flex: 1 1 200px;
min-width: 0;
max-width: 300px;
}
.dashboard-search svg {
position: absolute;
left: 12px;
width: 16px;
height: 16px;
color: var(--ink-soft);
pointer-events: none;
}
.dashboard-search input {
min-height: 40px;
}
.dashboard-sort-select {
min-height: 40px;
padding: 0 32px 0 12px;
border: 1px solid var(--input-border);
border-radius: var(--r-md);
background: var(--input-bg);
color: var(--ink);
font-size: var(--fs-sm);
font-weight: 500;
cursor: pointer;
appearance: none;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: right 10px center;
}
.dashboard-sort-select:focus {
outline: none;
border-color: var(--input-focus-border);
box-shadow: 0 0 0 3px var(--input-focus-ring);
}
.dashboard-view-toggle {
display: inline-flex;
align-items: center;
padding: 3px;
border: 1px solid var(--line);
border-radius: var(--r-md);
background: var(--surface-muted);
}
.dashboard-view-btn {
border: 0;
border-radius: calc(var(--r-md) - 4px);
background: transparent;
color: var(--ink-soft);
cursor: pointer;
font-size: var(--fs-sm);
font-weight: 600;
line-height: 1;
padding: 7px 12px;
transition:
background 0.15s ease,
color 0.15s ease;
}
.dashboard-view-btn:hover {
color: var(--ink);
}
.dashboard-view-btn.is-active {
background: var(--surface);
color: var(--ink);
box-shadow: 0 1px 2px rgb(0 0 0 / 0.12);
}
/* Catalog list (rich rows) */
.dashboard-rows {
display: flex;
flex-direction: column;
border: 1px solid var(--line);
border-radius: var(--r-md);
overflow: hidden;
background: var(--surface);
}
.dashboard-row {
position: relative;
display: grid;
grid-template-columns: auto minmax(0, 1fr) auto;
align-items: center;
gap: 14px;
padding: 14px 16px;
border-bottom: 1px solid var(--line);
transition: background 0.12s ease;
}
.dashboard-row:last-child {
border-bottom: none;
}
.dashboard-row:hover {
background: var(--hover-bg);
}
.dashboard-row-link {
position: absolute;
inset: 0;
z-index: 0;
}
.dashboard-row-icon {
position: relative;
z-index: 1;
display: inline-flex;
width: 38px;
height: 38px;
flex: none;
align-items: center;
justify-content: center;
border: 1px solid var(--line);
border-radius: 10px;
background: var(--surface-muted);
color: var(--ink);
}
.dashboard-row-body {
position: relative;
z-index: 1;
min-width: 0;
display: grid;
gap: 4px;
pointer-events: none;
}
.dashboard-row-head {
display: flex;
align-items: center;
gap: 8px;
flex-wrap: wrap;
}
.dashboard-row-name {
font-size: var(--fs-md);
font-weight: 600;
color: var(--ink);
text-decoration: none;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
max-width: 100%;
}
.dashboard-row:hover .dashboard-row-name {
text-decoration: underline;
text-underline-offset: 2px;
}
.dashboard-row-meta {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 7px;
color: var(--ink-soft);
font-size: var(--fs-sm);
}
.dashboard-row-meta > span[aria-hidden] {
opacity: 0.4;
}
.dashboard-row-actions {
position: relative;
z-index: 1;
display: inline-flex;
align-items: center;
gap: 6px;
}
.dashboard-row-btn {
display: inline-flex;
align-items: center;
justify-content: center;
width: 40px;
height: 40px;
padding: 0;
border: 0;
border-radius: var(--r-sm);
background: transparent;
color: var(--ink-soft);
cursor: pointer;
transition:
color 0.12s ease,
background 0.12s ease;
}
.dashboard-row-btn:hover,
.dashboard-row-btn:focus-visible {
color: var(--ink);
background: color-mix(in srgb, var(--ink) 8%, transparent);
}
.dashboard-row-btn:focus-visible {
outline: 2px solid color-mix(in srgb, var(--accent) 70%, transparent);
outline-offset: 2px;
}
.dashboard-row-flag {
display: inline-flex;
align-items: center;
gap: 4px;
padding: 5px 9px;
border-radius: var(--r-sm);
color: var(--ink-soft);
font-size: var(--fs-xs);
font-weight: 600;
text-decoration: none;
}
.dashboard-row-flag:hover {
color: var(--ink);
background: color-mix(in srgb, var(--ink) 8%, transparent);
}
/* Catalog grid (cards) */
.dashboard-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
gap: 14px;
}
.dashboard-footer-row {
display: flex;
justify-content: center;
padding-top: 14px;
}
.dashboard-route.section {
max-width: none;
padding-top: calc(var(--space-5) + 8px);
}
.dashboard-route--welcome {
min-height: 70svh;
}
.dashboard-route .dashboard-welcome-toolbar {
display: flex;
justify-content: center;
width: 100%;
max-width: 1296px;
margin: 0 auto var(--dashboard-welcome-context-gap, 61px);
padding: 0 48px;
box-sizing: border-box;
}
.dashboard-empty {
display: grid;
justify-items: center;
gap: 10px;
padding: 56px 24px 32px;
text-align: center;
border: 0;
border-radius: 0;
background: transparent;
}
.dashboard-empty-icon {
display: inline-flex;
width: 44px;
height: 44px;
align-items: center;
justify-content: center;
border-radius: 999px;
background: var(--surface-muted);
color: var(--ink-soft);
}
.dashboard-empty-title {
font-weight: 700;
font-size: var(--fs-md);
color: var(--ink);
}
.dashboard-empty-body {
max-width: 42ch;
color: var(--ink-soft);
font-size: var(--fs-sm);
}
/* First-run welcome */
.dashboard-welcome {
width: 100%;
max-width: 960px;
margin: 0 auto;
display: grid;
justify-items: center;
gap: 0;
padding: 12px var(--space-5) var(--space-7);
text-align: center;
border: 0;
border-radius: 0;
background: transparent;
box-shadow: none;
}
.dashboard-welcome-icon {
position: relative;
display: grid;
width: 120px;
height: 66px;
place-items: center;
}
.dashboard-welcome-icon-tile--back {
position: absolute;
display: grid;
width: 48px;
height: 52px;
place-items: center;
border: 1px solid var(--line);
border-radius: 12px;
background: color-mix(in srgb, var(--surface) 70%, transparent);
color: var(--ink-soft);
opacity: 0.66;
transition:
transform 180ms ease,
opacity 180ms ease;
}
.dashboard-welcome-icon-tile--back svg {
opacity: 0.14;
}
.dashboard-welcome-icon-tile--package {
transform: translate(-31px, 5px) rotate(-10deg);
}
.dashboard-welcome-icon-tile--plugin {
transform: translate(31px, 5px) rotate(10deg);
}
.dashboard-welcome-icon-tile--brand {
z-index: 1;
display: grid;
width: 54px;
height: 58px;
place-items: center;
border: 1px solid var(--line);
border-radius: 13px;
background: var(--surface);
transform: translateY(-4px);
transition: transform 180ms ease;
}
.dashboard-welcome-icon:hover .dashboard-welcome-icon-tile--package {
transform: translate(-35px, 7px) rotate(-12deg);
opacity: 0.78;
}
.dashboard-welcome-icon:hover .dashboard-welcome-icon-tile--plugin {
transform: translate(35px, 7px) rotate(12deg);
opacity: 0.78;
}
.dashboard-welcome-icon:hover .dashboard-welcome-icon-tile--brand {
transform: translateY(-6px);
}
.dashboard-welcome-icon-tile img {
width: 34px;
height: 34px;
object-fit: contain;
}
.dashboard-welcome-title {
margin: var(--dashboard-welcome-icon-title-gap, 22px) 0 0;
font-family: var(--font-display);
font-size: 1.65rem;
font-weight: 600;
color: var(--ink);
letter-spacing: -0.02em;
}
.dashboard-welcome-body {
margin: var(--dashboard-welcome-title-body-gap, 0px) 0 0;
max-width: 52ch;
color: var(--ink-soft);
font-size: 15px;
line-height: 1.6;
text-wrap: balance;
}
.dashboard-welcome-body strong {
color: var(--ink);
font-family: var(--font-mono);
font-weight: 600;
}
.dashboard-welcome-top {
display: flex;
justify-content: flex-end;
width: 100%;
margin-bottom: 4px;
}
.dashboard-welcome-publisher-control {
display: inline-grid;
justify-items: center;
gap: 2px;
text-align: center;
}
.dashboard-welcome-publisher-label {
color: var(--ink-soft);
font-size: 12px;
font-weight: 500;
white-space: nowrap;
}
.dashboard-welcome-publisher-trigger {
width: auto;
min-width: 0;
max-width: none;
border: 0;
background: transparent;
box-shadow: none;
gap: 6px;
padding-inline: 8px;
font-weight: 600;
}
.dashboard-welcome-publisher-trigger:hover:not(:disabled) {
background: color-mix(in srgb, var(--ink) 6%, transparent);
}
.dashboard-welcome-publisher-trigger:focus-visible {
border: 0;
background: color-mix(in srgb, var(--ink) 6%, transparent);
box-shadow: 0 0 0 2px var(--input-focus-ring);
}
.dashboard-publisher-select-item:focus-visible {
outline: none;
}
.dashboard-publisher-select-content {
border-radius: 16px;
overflow: hidden;
}
.dashboard-publisher-select-content > div {
border-radius: inherit;
}
.dashboard-publisher-select-content .dashboard-publisher-select-item {
border-radius: 12px;
}
.dashboard-welcome-hero {
display: grid;
justify-items: center;
gap: 0;
width: 100%;
}
.dashboard-welcome-explore {
display: grid;
justify-items: center;
gap: 7px;
margin-top: var(--dashboard-welcome-cta-explore-gap, 72px);
}
.dashboard-welcome-explore-label {
display: inline-flex;
align-items: center;
gap: 6px;
color: var(--ink-soft);
font-size: var(--fs-xs);
font-weight: 500;
}
.dashboard-welcome-explore-links {
display: inline-flex;
align-items: center;
gap: 4px;
}
.dashboard-welcome-explore-links a {
display: inline-flex;
align-items: center;
gap: 4px;
padding: 5px 8px;
border-radius: var(--r-sm);
color: var(--ink-soft);
font-size: var(--fs-sm);
font-weight: 500;
text-decoration: none;
}
.dashboard-welcome-explore-links a:hover {
background: color-mix(in srgb, var(--ink) 6%, transparent);
color: var(--ink);
text-decoration: none;
}
@media (max-width: 900px) {
.dashboard-welcome {
padding-inline: var(--space-4);
}
.dashboard-route .dashboard-welcome-toolbar {
padding-inline: var(--space-4);
justify-content: center;
margin-bottom: calc(var(--dashboard-welcome-context-gap, 61px) + 4px);
}
.dashboard-welcome-publisher-control {
width: auto;
justify-items: center;
}
.dashboard-welcome-publisher-trigger {
max-width: 100%;
}
}
.dashboard-summary-cards {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 10px;
margin: 16px 0 18px;
}
.dashboard-summary-card {
display: grid;
gap: 4px;
padding: 14px 16px;
border: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
border-radius: var(--r-md);
background: color-mix(in srgb, var(--surface) 88%, transparent);
}
.dashboard-summary-card.is-alert {
border-color: color-mix(in srgb, var(--accent) 35%, var(--line));
background: color-mix(in srgb, var(--accent) 8%, var(--surface));
}
.dashboard-summary-card-label {
color: var(--ink-soft);
font-size: var(--fs-xs);
font-weight: 600;
letter-spacing: 0.02em;
text-transform: uppercase;
}
.dashboard-summary-card-value {
color: var(--ink);
font-size: 1.35rem;
font-weight: 700;
line-height: 1.1;
}
.dashboard-workspace-panels {
margin-bottom: 18px;
}
.dashboard-attention {
border: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
border-radius: var(--r-md);
background: color-mix(in srgb, var(--surface) 88%, transparent);
padding: 14px 16px;
}
.dashboard-attention--clear {
background: color-mix(in srgb, #22c55e 8%, var(--surface));
border-color: color-mix(in srgb, #22c55e 25%, var(--line));
}
.dashboard-attention-header {
display: flex;
align-items: center;
gap: 8px;
margin-bottom: 10px;
}
.dashboard-attention-title {
margin: 0;
font-size: var(--fs-md);
font-weight: 700;
}
.dashboard-attention-count {
display: inline-flex;
min-width: 22px;
height: 22px;
align-items: center;
justify-content: center;
border-radius: 999px;
background: color-mix(in srgb, var(--accent) 16%, transparent);
color: var(--accent);
font-size: var(--fs-xs);
font-weight: 700;
}
.dashboard-attention-clear-copy {
margin: 0;
color: var(--ink-soft);
font-size: var(--fs-sm);
}
.dashboard-attention-list {
display: grid;
gap: 8px;
margin: 0;
padding: 0;
list-style: none;
}
.dashboard-attention-item {
display: grid;
grid-template-columns: auto minmax(0, 1fr) auto;
gap: 10px;
align-items: center;
padding: 10px 12px;
border: 1px solid var(--line);
border-radius: var(--r-sm);
background: var(--surface-muted);
color: inherit;
text-decoration: none;
}
.dashboard-attention-item:hover {
border-color: color-mix(in srgb, var(--accent) 30%, var(--line));
background: var(--surface);
}
.dashboard-attention-item-badge {
font-size: var(--fs-xs);
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.03em;
}
.dashboard-attention-item.is-destructive .dashboard-attention-item-badge {
color: #ef4444;
}
.dashboard-attention-item.is-warning .dashboard-attention-item-badge {
color: #f59e0b;
}
.dashboard-attention-item.is-pending .dashboard-attention-item-badge {
color: var(--ink-soft);
}
.dashboard-attention-item-copy {
display: grid;
gap: 2px;
min-width: 0;
}
.dashboard-attention-item-copy strong {
font-size: var(--fs-sm);
}
.dashboard-attention-item-copy span {
color: var(--ink-soft);
font-size: var(--fs-xs);
}
.dashboard-status-chips {
display: inline-flex;
flex-wrap: wrap;
gap: 6px;
}
.dashboard-status-chip {
display: inline-flex;
align-items: center;
border-radius: 999px;
padding: 2px 8px;
font-size: 11px;
font-weight: 600;
line-height: 1.4;
border: 1px solid var(--line);
background: var(--surface-muted);
color: var(--ink-soft);
}
.dashboard-status-chip.is-success {
border-color: color-mix(in srgb, #22c55e 30%, var(--line));
color: #15803d;
}
.dashboard-status-chip.is-warning {
border-color: color-mix(in srgb, #f59e0b 30%, var(--line));
color: #b45309;
}
.dashboard-status-chip.is-destructive {
border-color: color-mix(in srgb, #ef4444 30%, var(--line));
color: #b91c1c;
}
.dashboard-status-chip.is-pending {
border-color: color-mix(in srgb, var(--ink-soft) 25%, var(--line));
}
.dashboard-welcome-primary {
display: flex;
justify-content: center;
width: 100%;
margin-top: var(--dashboard-welcome-body-cta-gap, 23px);
}
@media (max-width: 900px) {
.dashboard-summary-cards {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.dashboard-header-publisher-center {
position: static;
order: 3;
width: 100%;
transform: none;
}
.dashboard-header-top {
flex-wrap: wrap;
}
}
/* Dashboard — browse-aligned workspace */
.browse-page.dashboard-route .dashboard-header-actions {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 8px;
}
.browse-page.dashboard-route .dashboard-header-handle {
color: var(--ink-muted);
font-weight: 500;
font-family: var(--font-mono);
}
.dashboard-attention-strip {
margin-bottom: 0;
}
.dashboard-attention-strip,
.dashboard-inventory-section,
.dashboard-downloads-insights {
--dashboard-section-gap: 12px;
}
.dashboard-attention-strip .results-list {
gap: 0;
}
.dashboard-route {
--dashboard-row-grid: [icon-start name-start] minmax(0, 1fr) [review-start] 146px
[downloads-start] 96px [actions-start] 40px [actions-end];
--dashboard-row-gap: 10px;
--hv2-bg: var(--oc-bg-page);
--hv2-surface: var(--oc-surface-card);
--hv2-surface-hover: var(--oc-surface-interactive);
--hv2-border: var(--oc-border-subtle);
--hv2-border-hover: color-mix(in srgb, var(--oc-text-primary) 20%, var(--oc-border-subtle));
--hv2-border-strong: var(--oc-border-subtle);
--hv2-text: var(--oc-text-primary);
--hv2-text-secondary: var(--oc-text-secondary);
--hv2-text-tertiary: var(--oc-text-muted);
--hv2-accent: var(--oc-accent-primary);
--hv2-radius-sm: var(--oc-radius-control);
--hv2-radius-md: var(--oc-radius-surface);
--hv2-radius-lg: var(--oc-radius-surface);
--hv2-ease-out: var(--oc-ease-out);
--hv2-duration-fast: var(--oc-duration-fast);
--hv2-duration-ui: var(--oc-duration-ui);
}
.dashboard-attention-row.skill-list-item-no-icon {
width: 100%;
grid-template-columns: var(--dashboard-row-grid);
column-gap: var(--dashboard-row-gap);
align-items: center;
min-height: 68px;
padding: 11px 4px;
border: 0;
border-bottom: 1px solid color-mix(in srgb, var(--line) 76%, transparent);
border-radius: 0;
background: transparent;
color: inherit;
text-align: left;
cursor: pointer;
transition:
background-color 0.15s ease,
border-color 0.15s ease;
}
.dashboard-attention-row.skill-list-item-no-icon::before {
display: none;
}
.dashboard-attention-row.skill-list-item-no-icon .skill-list-item-body {
grid-column: name-start / review-start;
position: relative;
}
.dashboard-attention-row .skill-list-item-main {
gap: 8px;
}
.dashboard-attention-visibility {
display: inline-flex;
align-items: center;
gap: 4px;
color: var(--ink-soft);
font-size: 11px;
font-weight: 560;
line-height: 1;
}
.dashboard-attention-kind {
display: inline-flex;
align-items: center;
min-height: 18px;
color: color-mix(in srgb, var(--ink-soft) 78%, transparent);
font-size: 10px;
font-weight: 650;
line-height: 1;
letter-spacing: 0.02em;
text-transform: uppercase;
}
.dashboard-attention-row.skill-list-item-no-icon:first-child {
border-top: 1px solid color-mix(in srgb, var(--line) 76%, transparent);
}
.dashboard-attention-row.skill-list-item-no-icon:last-child {
border-bottom: 0;
}
.dashboard-attention-row.skill-list-item-no-icon:hover,
.dashboard-attention-row.skill-list-item-no-icon:focus-within {
background: color-mix(in srgb, var(--ink) 4%, transparent);
border-color: color-mix(in srgb, var(--line) 92%, transparent);
}
.dashboard-attention-row .skill-list-item-meta {
grid-column: downloads-start / actions-end;
justify-self: end;
min-width: 0;
max-width: none;
margin-top: 0;
}
.dashboard-attention-summary {
grid-column: review-start / downloads-start;
display: grid;
gap: 3px;
min-width: 0;
justify-items: start;
}
.dashboard-attention-state {
font-size: 12px;
font-weight: 600;
line-height: 1.35;
}
.dashboard-attention-state.is-destructive {
color: var(--oc-status-error-fg);
}
.dashboard-attention-state.is-warning {
color: var(--oc-status-warning-fg);
}
.dashboard-attention-state.is-pending {
color: var(--ink);
}
.dashboard-attention-types {
color: var(--ink-soft);
font-size: 11px;
line-height: 1.35;
}
.dashboard-attention-context {
color: var(--ink-soft);
font-size: 12px;
line-height: 1.45;
}
.dashboard-attention-cta {
display: inline-flex;
align-items: center;
color: var(--ink-soft);
font-size: var(--fs-xs);
font-weight: 600;
white-space: nowrap;
}
.dashboard-attention-row:hover .dashboard-attention-cta {
color: var(--ink);
}
.dashboard-attention-strip-label {
display: block;
margin-bottom: 8px;
padding: 0 4px;
}
.dashboard-attention-row-preview {
color: var(--ink-soft);
font-size: 12px;
line-height: 1.45;
}
.browse-page .dashboard-catalog-row-icon .marketplace-icon {
width: 34px;
height: 34px;
border-radius: var(--oc-radius-inset);
pointer-events: none;
transform: none;
box-shadow: none;
--marketplace-icon-wash: transparent;
--marketplace-icon-accent: var(--ink-soft);
background: color-mix(in srgb, var(--surface) 72%, transparent) !important;
border: 1px solid color-mix(in srgb, var(--line) 78%, transparent) !important;
color: color-mix(in srgb, var(--ink-soft) 88%, transparent);
}
.browse-page .dashboard-catalog-row-icon .marketplace-icon-glyph,
.browse-page .dashboard-catalog-row-icon .marketplace-icon-image {
filter: grayscale(1) brightness(1.18);
}
.browse-page .dashboard-catalog-row-icon .marketplace-icon-glyph {
width: 17px;
height: 17px;
}
.browse-page .dashboard-catalog-row .skill-list-item-meta svg {
opacity: 0.45;
}
.browse-page .dashboard-catalog-flag {
position: relative;
z-index: 3;
color: var(--oc-status-warning-fg);
font-size: 11px;
font-weight: 600;
text-decoration: none;
}
.browse-page .dashboard-catalog-flag:hover {
color: var(--ink);
text-decoration: underline;
text-underline-offset: 2px;
}
.dashboard-catalog-grid {
margin-top: 2px;
}
.dashboard-route .dashboard-catalog-grid-card {
position: relative;
border-radius: calc(var(--r-md) + 2px);
text-decoration: none;
}
.dashboard-catalog-grid-card-kind {
position: absolute;
top: 16px;
right: 16px;
color: var(--hv2-text-tertiary);
font-size: 10px;
font-weight: 650;
line-height: 1;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.dashboard-catalog-grid-card .home-v2-listing-card-head {
padding-right: 46px;
}
.dashboard-route .dashboard-catalog-grid-card:hover {
text-decoration: none;
}
.dashboard-catalog-grid-card-stats {
flex-wrap: wrap;
row-gap: 8px;
}
.dashboard-catalog-grid-card-updated {
margin-top: 3px;
color: var(--hv2-text-tertiary);
font-size: 11px;
font-weight: 500;
line-height: 1.2;
}
.dashboard-catalog-grid-card-scan {
display: inline-flex;
align-items: center;
}
.dashboard-catalog-grid-card-scan .dashboard-mini-audit,
.dashboard-catalog-grid-card-scan .dashboard-mini-audit.security-audit-sidebar-value-row {
grid-template-columns: auto 34px;
justify-content: start;
gap: 5px;
width: auto;
}
.dashboard-catalog-grid-card-scan .dashboard-mini-audit .security-audit-sidebar-verdict {
width: auto;
font-size: 11px;
text-align: left;
}
.dashboard-catalog-grid-card-scan .dashboard-mini-audit .security-audit-meter {
display: grid;
width: 34px;
gap: 3px;
}
.dashboard-catalog-grid-card-stats .security-audit-meter > span {
display: block;
width: auto;
height: 4px;
}
.dashboard-catalog-grid-card-downloads {
margin-left: auto;
}
.dashboard-catalog-list-head {
grid-template-columns: var(--dashboard-row-grid);
column-gap: var(--dashboard-row-gap);
margin-top: 0;
padding-top: 0;
padding-bottom: 6px;
}
.dashboard-catalog-list-head .browse-list-head-icon-spacer {
grid-column: icon-start / name-start;
}
.dashboard-catalog-list-head-name {
grid-column: name-start / review-start;
}
.dashboard-catalog-list-head-review {
grid-column: review-start / downloads-start;
}
.dashboard-catalog-list-head-downloads {
grid-column: downloads-start / actions-start;
}
.dashboard-catalog-list-head .browse-list-head-actions-spacer {
grid-column: actions-start / actions-end;
}
.dashboard-inventory-body {
margin-top: 0;
}
.dashboard-inventory-body .browse-list-stack {
gap: 0;
}
.dashboard-catalog-row {
position: relative;
isolation: isolate;
grid-template-columns: var(--dashboard-row-grid);
column-gap: var(--dashboard-row-gap);
}
.dashboard-catalog-list-head .browse-list-head-icon-spacer,
.dashboard-catalog-list-head .browse-list-head-actions-spacer,
.dashboard-catalog-row .dashboard-row-actions {
width: 34px;
}
.dashboard-catalog-row-icon {
grid-column: icon-start / name-start;
}
.dashboard-catalog-row .skill-list-item-body {
grid-column: name-start / review-start;
display: grid;
gap: 6px;
}
.dashboard-catalog-row .skill-list-item-main {
min-width: 0;
gap: 8px;
flex-wrap: nowrap;
}
.dashboard-catalog-row .skill-list-item-name {
flex: 0 1 auto;
max-width: min(48ch, 100%);
}
.dashboard-catalog-version {
color: color-mix(in srgb, var(--ink-muted) 68%, transparent);
font-size: 10px;
font-weight: 500;
line-height: 1;
white-space: nowrap;
}
.dashboard-catalog-row-secondary {
color: var(--ink-soft);
font-size: 11px;
line-height: 1.35;
}
.dashboard-catalog-kind-inline {
color: color-mix(in srgb, var(--ink-soft) 88%, transparent);
font-size: 10px;
font-weight: 650;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.dashboard-catalog-row-link {
position: absolute;
z-index: 1;
inset: 0;
border-radius: inherit;
cursor: pointer;
}
.dashboard-catalog-row-link:focus-visible {
outline: 2px solid var(--oc-focus-ring);
outline-offset: -2px;
}
.dashboard-catalog-row > :not(.dashboard-catalog-row-link):not(.dashboard-row-actions) {
pointer-events: none;
}
.dashboard-catalog-row .dashboard-row-actions {
position: relative;
z-index: 3;
grid-column: actions-start / actions-end;
justify-self: end;
pointer-events: auto;
}
.dashboard-catalog-row-kind {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 6px;
margin: 0;
color: var(--ink-soft);
font-size: var(--fs-xs);
line-height: 1.35;
}
.dashboard-catalog-row .skill-list-item-taxonomy {
flex-direction: column;
align-items: flex-start;
gap: 4px;
}
.dashboard-catalog-row .skill-list-item-meta {
grid-column: downloads-start / actions-start;
justify-self: start;
min-width: 0;
max-width: none;
margin-top: 0;
flex-wrap: nowrap;
font-variant-numeric: tabular-nums;
}
.dashboard-catalog-review {
grid-column: review-start / downloads-start;
display: flex;
align-items: center;
justify-content: flex-start;
min-width: 0;
}
.dashboard-mini-audit {
display: grid;
grid-template-columns: 80px 44px;
align-items: center;
gap: 8px;
width: 132px;
min-height: auto;
padding: 0;
background: transparent;
border: 0;
}
.dashboard-mini-audit.security-audit-sidebar-value-row {
display: grid;
grid-template-columns: 80px 44px;
min-height: auto;
padding: 0;
margin: 0;
}
.dashboard-mini-audit .security-audit-sidebar-verdict {
display: block;
width: 80px;
font-size: 12px;
line-height: 1;
text-align: right;
white-space: nowrap;
}
.dashboard-mini-audit .security-audit-meter {
align-self: center;
width: 44px;
gap: 4px;
}
.dashboard-mini-audit .security-audit-meter span {
height: 4px;
}
.dashboard-catalog-downloads {
display: inline-flex;
align-items: center;
justify-content: flex-start;
gap: 4px;
width: 100%;
color: var(--ink-soft);
font-size: 12px;
font-weight: 500;
}
.dashboard-catalog-title-icon {
position: relative;
z-index: 3;
display: inline-flex;
align-items: center;
color: color-mix(in srgb, var(--ink-soft) 78%, transparent);
}
.dashboard-catalog-title-icon svg {
display: block;
}
.dashboard-catalog-row .dashboard-catalog-status {
font-size: 12px;
line-height: 1.35;
}
.dashboard-catalog-row-details {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 6px;
margin: 2px 0 0;
color: var(--ink-soft);
font-size: var(--fs-xs);
line-height: 1.35;
}
.dashboard-catalog-sep {
opacity: 0.45;
}
.dashboard-catalog-kind {
color: var(--ink-muted);
}
.dashboard-catalog-status.is-warning {
color: var(--oc-status-warning-fg);
font-weight: 560;
}
.dashboard-catalog-status.is-destructive {
color: var(--oc-status-error-fg);
font-weight: 560;
}
.dashboard-catalog-status.is-pending {
color: var(--ink);
font-weight: 560;
}
.dashboard-catalog-status.is-success {
color: var(--oc-status-success-fg);
font-weight: 560;
}
.dashboard-attention-strip-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
margin-bottom: var(--dashboard-section-gap);
padding: 0 4px;
}
.dashboard-attention-view-all {
font-size: var(--fs-xs);
font-weight: 600;
color: var(--ink-soft);
text-decoration: none;
}
.dashboard-attention-view-all:hover {
color: var(--ink);
}
.dashboard-review-layer {
position: fixed;
z-index: 79;
inset: 0;
display: flex;
align-items: center;
justify-content: flex-end;
box-sizing: border-box;
padding: 16px;
background: var(--oc-surface-overlay);
transition: background-color var(--oc-duration-ui) var(--oc-ease-out);
@starting-style {
background: transparent;
}
}
.dashboard-review-sheet {
--dashboard-sheet-ease: cubic-bezier(0.32, 0.72, 0, 1);
position: relative;
z-index: 80;
top: auto;
right: auto;
bottom: auto;
width: min(560px, calc(100vw - 32px));
height: min(860px, calc(100dvh - 32px));
max-height: calc(100dvh - 32px);
overflow: hidden;
padding: 0;
border: 1px solid color-mix(in srgb, var(--line) 88%, transparent);
border-radius: var(--oc-radius-surface);
background: var(--oc-bg-elevated);
backdrop-filter: blur(28px) saturate(1.06);
box-shadow: var(--oc-shadow-lg);
opacity: 1;
transform: translateX(0);
will-change: transform, opacity;
transition:
transform 240ms var(--dashboard-sheet-ease),
opacity 180ms cubic-bezier(0.23, 1, 0.32, 1);
@starting-style {
opacity: 0;
transform: translateX(100%);
}
}
.dashboard-review-sheet-scroll {
height: 100%;
overflow: auto;
padding: 22px;
scrollbar-color: color-mix(in srgb, var(--ink-soft) 46%, transparent) transparent;
scrollbar-width: thin;
}
.dashboard-review-sheet-scroll::-webkit-scrollbar {
width: 8px;
}
.dashboard-review-sheet-scroll::-webkit-scrollbar-track {
background: transparent;
}
.dashboard-review-sheet-scroll::-webkit-scrollbar-thumb {
border: 2px solid transparent;
border-radius: 999px;
background: color-mix(in srgb, var(--ink-soft) 46%, transparent);
background-clip: padding-box;
}
.dashboard-review-scroll-fade {
position: absolute;
z-index: 4;
right: 1px;
left: 1px;
height: 32px;
opacity: 0;
pointer-events: none;
transition: opacity 140ms ease;
}
.dashboard-review-scroll-fade.is-visible {
opacity: 1;
}
.dashboard-review-scroll-fade.is-top {
top: 1px;
border-radius: calc(var(--r-md) - 1px) calc(var(--r-md) - 1px) 0 0;
background: linear-gradient(
to bottom,
color-mix(in srgb, var(--surface) 96%, transparent),
transparent
);
}
.dashboard-review-scroll-fade.is-bottom {
bottom: 1px;
border-radius: 0 0 calc(var(--r-md) - 1px) calc(var(--r-md) - 1px);
background: linear-gradient(
to top,
color-mix(in srgb, var(--surface) 96%, transparent),
transparent
);
}
.dashboard-review-report {
min-height: 100%;
align-content: start;
}
.dashboard-review-sheet-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 14px;
padding: 4px 2px 18px;
border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
}
.dashboard-review-sheet-head > div {
flex: 1;
min-width: 0;
}
.dashboard-review-sheet-support {
display: flex;
align-items: flex-start;
flex-direction: column;
gap: 8px;
margin-top: 12px;
}
.dashboard-review-sheet h2,
.dashboard-review-sheet h3,
.dashboard-review-sheet p {
margin: 0;
}
.dashboard-review-sheet h2 {
color: var(--ink);
font-size: 20px;
font-weight: 700;
line-height: 1.2;
letter-spacing: -0.025em;
}
.dashboard-review-skillspector .security-report-overview-body p {
font-size: 14px;
line-height: 1.55;
}
.dashboard-review-security-summary {
display: grid;
grid-template-columns: minmax(0, 1fr) auto auto;
align-items: center;
gap: 12px;
padding: 10px 12px;
border: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
border-radius: 10px;
background: color-mix(in srgb, var(--surface-muted) 32%, transparent);
}
.dashboard-review-security-summary .plugin-validation-panel-title {
font-size: 13px;
font-weight: 650;
line-height: 1.25;
}
.dashboard-review-security-audit-link {
display: inline-flex;
align-items: center;
gap: 2px;
color: var(--ink-soft);
font-size: 12px;
font-weight: 600;
line-height: 1.35;
text-decoration: none;
white-space: nowrap;
}
.dashboard-review-security-audit-link:hover {
color: var(--ink);
}
.dashboard-review-security-summary + .plugin-validation-overview {
margin-top: 0;
}
.dashboard-review-sheet-meta {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 0;
margin-top: 0;
color: var(--ink-soft);
font-size: 12px;
font-weight: 550;
line-height: 1.45;
}
.dashboard-review-sheet-meta > span {
display: inline-flex;
align-items: center;
white-space: nowrap;
}
.dashboard-review-sheet-meta > span + span::before {
width: 3px;
height: 3px;
margin: 0 8px;
border-radius: 999px;
background: color-mix(in srgb, var(--ink) 35%, transparent);
content: "";
}
.dashboard-review-sheet-meta .is-kind {
color: var(--ink);
font-weight: 680;
}
.dashboard-review-sheet-meta .is-owner,
.dashboard-review-sheet-meta .is-version {
color: color-mix(in srgb, var(--ink) 82%, var(--ink-soft));
}
.dashboard-review-sheet h3 {
color: var(--ink);
font-size: 13px;
font-weight: 650;
}
.dashboard-review-sheet-close {
display: inline-flex;
align-items: center;
justify-content: center;
width: 30px;
height: 30px;
border: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
border-radius: 9px;
background: transparent;
color: var(--ink-soft);
cursor: pointer;
transition:
transform 140ms cubic-bezier(0.23, 1, 0.32, 1),
background-color 140ms ease,
color 140ms ease;
}
.dashboard-review-sheet-close:active {
transform: scale(0.96);
}
@media (hover: hover) and (pointer: fine) {
.dashboard-review-sheet-close:hover {
background: color-mix(in srgb, var(--ink) 5%, transparent);
color: var(--ink);
}
}
@media (prefers-reduced-motion: reduce) {
.dashboard-review-layer {
transition: none;
}
.dashboard-review-sheet {
transform: none;
transition: opacity 160ms ease;
@starting-style {
opacity: 0;
transform: none;
}
}
.dashboard-review-sheet-close {
transition:
background-color 140ms ease,
color 140ms ease;
}
.dashboard-review-sheet-close:active {
transform: none;
}
}
.dashboard-review-sheet-status {
display: flex;
align-items: center;
gap: 10px;
padding: 14px 0;
color: var(--ink-soft);
font-size: 12px;
border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
}
.dashboard-review-sheet-section {
display: grid;
gap: 10px;
padding: 14px 0;
border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
}
.dashboard-review-sheet .security-report-panel-body-findings {
gap: 18px;
}
.dashboard-review-skillspector .security-report-panel-body-findings {
padding-top: 4px;
}
.dashboard-review-skillspector .skillspector-checks {
margin-top: 6px;
}
.dashboard-review-sheet-section p {
color: var(--ink-soft);
font-size: 13px;
line-height: 1.5;
}
.dashboard-review-findings-list {
display: grid;
gap: 8px;
}
.dashboard-review-finding {
display: grid;
gap: 4px;
padding: 10px 11px;
border: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
border-radius: 11px;
background: color-mix(in srgb, var(--ink) 3%, transparent);
}
.dashboard-review-finding span {
color: var(--ink-soft);
font-size: 11px;
font-weight: 650;
text-transform: uppercase;
letter-spacing: 0.03em;
}
.dashboard-review-finding code {
color: var(--ink-soft);
font-family: var(--font-mono);
font-size: 11px;
}
.dashboard-review-finding pre {
max-height: 160px;
overflow: auto;
margin: 2px 0 0;
padding: 9px 10px;
border: 1px solid color-mix(in srgb, var(--line) 72%, transparent);
border-radius: 9px;
background: color-mix(in srgb, #000 18%, transparent);
color: color-mix(in srgb, var(--ink) 86%, transparent);
font-family: var(--font-mono);
font-size: 11px;
line-height: 1.45;
white-space: pre-wrap;
}
.dashboard-review-analysis-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 8px;
}
.dashboard-review-analysis-grid div {
display: grid;
gap: 6px;
padding: 11px;
border: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
border-radius: 11px;
background: color-mix(in srgb, var(--ink) 3%, transparent);
}
.dashboard-review-analysis-grid span {
color: var(--ink-soft);
font-size: 11px;
font-weight: 650;
}
.dashboard-review-analysis-grid strong {
color: var(--ink);
font-size: 13px;
font-weight: 700;
}
.dashboard-review-sheet-action {
display: flex;
justify-content: center;
margin-top: 14px;
padding: 10px 12px;
border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
border-radius: 11px;
color: var(--ink);
font-size: 13px;
font-weight: 650;
text-decoration: none;
}
.dashboard-review-sheet-action:hover {
background: color-mix(in srgb, var(--ink) 5%, transparent);
text-decoration: none;
}
.dashboard-review-skillspector {
display: grid;
margin-top: 14px;
}
.dashboard-review-skillspector > .security-report-panel {
margin: 0;
}
.dashboard-review-complete-validation {
gap: 18px;
margin: 12px 0 0;
padding: 14px;
border-radius: 12px;
background: color-mix(in srgb, var(--surface) 72%, transparent);
}
.dashboard-review-report > .plugin-validation-overview {
margin: 14px 0 0;
padding: 14px 0 16px;
border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
background: transparent;
}
.dashboard-review-report > .plugin-validation-overview .plugin-validation-panel-title {
font-size: 16px;
}
.dashboard-review-report > .plugin-validation-overview .plugin-validation-actions-row {
display: grid;
grid-template-columns: 1fr;
align-items: stretch;
}
.dashboard-review-report > .plugin-validation-overview .plugin-validation-command-block,
.dashboard-review-report > .plugin-validation-overview .plugin-validation-toolbar,
.dashboard-review-report > .plugin-validation-overview .plugin-validation-toolbar-agent,
.dashboard-review-report
> .plugin-validation-overview
.plugin-validation-panel-agent.skill-install-copy-button {
width: 100%;
}
.dashboard-review-report
> .plugin-validation-overview
.plugin-validation-panel-agent.skill-install-copy-button {
justify-content: center;
}
.dashboard-review-complete-validation .plugin-validation-panel-findings {
padding-top: 0;
border-top: 0;
}
.dashboard-review-complete-validation .plugin-validation-actions-row {
align-items: stretch;
}
.dashboard-review-complete-validation .plugin-validation-toolbar-agent,
.dashboard-review-complete-validation .plugin-validation-panel-agent.skill-install-copy-button {
width: 100%;
}
.dashboard-review-complete-validation .plugin-validation-panel-agent.skill-install-copy-button {
justify-content: center;
}
.dashboard-review-complete-validation .plugin-warning-item-summary {
cursor: pointer;
}
.dashboard-footer-row {
display: flex;
justify-content: center;
padding-top: 18px;
}
/* Dashboard — temporal download insights */
.dashboard-downloads-insights {
grid-column: 1 / -1;
width: 100%;
margin-top: 28px;
margin-bottom: 0;
}
.dashboard-downloads-insights-toolbar {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: flex-end;
gap: 12px;
margin-bottom: 12px;
}
.dashboard-downloads-insights-controls {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: flex-end;
gap: 10px;
flex: 0 1 auto;
}
.dashboard-downloads-insights-controls .browse-sort-select {
min-width: 148px;
}
.dashboard-downloads-insights-controls .browse-sort-trigger {
min-width: 148px;
}
.dashboard-downloads-grid {
display: grid;
grid-template-columns: minmax(0, 1.6fr) minmax(240px, 0.9fr);
gap: 12px;
}
.dashboard-downloads-panel {
border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
border-radius: calc(var(--r-md) + 2px);
background: color-mix(in srgb, var(--surface) 88%, transparent);
padding: 16px 18px;
}
.dashboard-downloads-panel--hero {
display: grid;
gap: 14px;
min-height: 220px;
}
.dashboard-downloads-panel-head {
display: flex;
align-items: center;
gap: 12px;
}
.dashboard-downloads-panel-title {
margin: 0;
font-size: var(--fs-sm);
font-weight: 600;
color: var(--ink);
}
.dashboard-downloads-hero-body {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(120px, 200px);
gap: 16px;
align-items: end;
}
.dashboard-downloads-hero-metric {
display: grid;
gap: 4px;
}
.dashboard-downloads-metric-label {
color: var(--ink-soft);
font-size: var(--fs-xs);
font-weight: 600;
letter-spacing: 0.02em;
text-transform: uppercase;
}
.dashboard-downloads-metric-value {
font-family: var(--font-display);
font-size: clamp(2rem, 4vw, 2.75rem);
font-weight: 700;
line-height: 1;
color: var(--ink);
letter-spacing: -0.03em;
}
.dashboard-downloads-delta {
font-size: var(--fs-xs);
font-weight: 600;
}
.dashboard-downloads-delta.is-up {
color: var(--oc-status-success-fg);
}
.dashboard-downloads-delta.is-down {
color: var(--oc-status-error-fg);
}
.dashboard-downloads-sparkline {
display: block;
width: 100%;
height: 46px;
overflow: visible;
color: color-mix(in srgb, var(--accent) 36%, var(--ink));
shape-rendering: geometricPrecision;
}
.dashboard-downloads-chart-wrap {
position: relative;
}
.dashboard-downloads-chart-wrap.is-compact .dashboard-downloads-chart-tooltip {
top: -8px;
transform: translate(-50%, -100%);
}
.dashboard-downloads-chart-hit {
fill: transparent;
pointer-events: all;
cursor: crosshair;
}
.dashboard-downloads-chart-crosshair {
stroke: currentColor;
stroke-opacity: 0.28;
stroke-width: 0.75;
stroke-dasharray: 2 3;
vector-effect: non-scaling-stroke;
pointer-events: none;
}
.dashboard-downloads-chart-tooltip {
position: absolute;
top: 0;
z-index: 2;
display: grid;
gap: 1px;
padding: 4px 7px;
border: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
border-radius: 6px;
background: color-mix(in srgb, var(--surface) 94%, transparent);
box-shadow: 0 6px 18px color-mix(in srgb, var(--ink) 10%, transparent);
transform: translate(-50%, calc(-100% - 6px));
pointer-events: none;
white-space: nowrap;
}
.dashboard-downloads-chart-tooltip-label {
color: var(--ink-soft);
font-size: 10px;
font-weight: 600;
}
.dashboard-downloads-chart-tooltip-value {
color: var(--ink);
font-size: 11px;
font-weight: 700;
font-variant-numeric: tabular-nums;
}
.dashboard-downloads-sparkline--hero {
height: 80px;
}
.dashboard-downloads-sparkline--compact {
width: 96px;
height: 42px;
flex-shrink: 0;
}
.dashboard-downloads-sparkline-grid {
stroke: color-mix(in srgb, var(--line) 62%, transparent);
stroke-width: 0.75;
vector-effect: non-scaling-stroke;
}
.dashboard-downloads-sparkline-line {
fill: none;
stroke-width: 1.65;
stroke-linecap: round;
stroke-linejoin: round;
vector-effect: non-scaling-stroke;
opacity: 0;
animation: dashboard-downloads-sparkline-reveal 0.85s ease-out forwards;
}
.dashboard-downloads-sparkline-area {
stroke: none;
opacity: 0;
animation: dashboard-downloads-sparkline-reveal 1s ease-out forwards;
}
.dashboard-downloads-sparkline-dot {
fill: currentColor;
stroke: color-mix(in srgb, var(--surface) 88%, transparent);
stroke-width: 1.25;
vector-effect: non-scaling-stroke;
pointer-events: none;
}
.dashboard-downloads-sparkline-dot.is-active {
opacity: 1;
}
@keyframes dashboard-downloads-sparkline-reveal {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
.dashboard-downloads-timeline {
display: grid;
gap: 8px;
padding-top: 8px;
border-top: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
}
.dashboard-downloads-timeline-chart {
display: block;
width: 100%;
height: 88px;
overflow: visible;
color: color-mix(in srgb, var(--accent) 40%, var(--ink));
shape-rendering: geometricPrecision;
}
.dashboard-downloads-timeline-baseline {
stroke: color-mix(in srgb, var(--line) 68%, transparent);
stroke-width: 0.75;
vector-effect: non-scaling-stroke;
}
.dashboard-downloads-timeline-bar {
opacity: 0;
transform-box: fill-box;
transform-origin: center bottom;
animation: dashboard-downloads-bar-rise 0.55s ease-out forwards;
pointer-events: all;
cursor: crosshair;
}
.dashboard-downloads-timeline-bar.is-active {
filter: brightness(1.12);
}
.dashboard-downloads-timeline-bar.is-empty {
pointer-events: all;
cursor: crosshair;
}
@keyframes dashboard-downloads-bar-rise {
from {
opacity: 0;
transform: scaleY(0.35);
}
to {
opacity: 1;
transform: scaleY(1);
}
}
.dashboard-downloads-timeline-labels {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(8px, 1fr));
gap: 6px;
color: color-mix(in srgb, var(--ink-soft) 70%, transparent);
font-size: 10px;
font-weight: 600;
}
.dashboard-downloads-timeline-labels span.is-active {
color: var(--ink);
}
.dashboard-downloads-side {
display: grid;
gap: 12px;
}
.dashboard-downloads-panel--compact {
display: grid;
gap: 10px;
min-height: 0;
}
.dashboard-downloads-compact-head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
}
.dashboard-downloads-compact-label {
color: var(--ink-soft);
font-size: var(--fs-xs);
font-weight: 700;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.dashboard-downloads-compact-metric {
font-family: var(--font-display);
font-size: 1.75rem;
font-weight: 700;
line-height: 1;
color: var(--ink);
}
.dashboard-downloads-compact-foot {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
color: var(--ink-soft);
font-size: var(--fs-xs);
}
@media (max-width: 960px) {
.dashboard-downloads-grid {
grid-template-columns: 1fr;
}
.dashboard-downloads-hero-body {
grid-template-columns: 1fr;
}
.dashboard-downloads-sparkline--hero {
height: 56px;
}
}
.dashboard-downloads-insights--compact {
display: grid;
gap: 12px;
--downloads-chart-color: color-mix(in srgb, #8b9cf8 55%, var(--ink-soft));
}
.dashboard-downloads-insights--compact .dashboard-downloads-sparkline {
color: var(--downloads-chart-color);
}
.dashboard-downloads-compact-toolbar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
flex-wrap: wrap;
}
.dashboard-downloads-compact-toolbar-controls {
display: inline-flex;
align-items: center;
gap: 0;
flex-wrap: wrap;
}
.dashboard-downloads-compact-toolbar-controls > .browse-sort-select {
margin-right: 10px;
}
.dashboard-downloads-compact-toolbar-controls .browse-sort-trigger {
padding-right: 0;
}
.dashboard-downloads-compact-toolbar-controls > .clawhub-segmented {
margin-left: 10px;
width: 276px;
}
.dashboard-downloads-compact-toolbar-controls > .clawhub-segmented .clawhub-segmented-btn {
flex: 1 1 0;
min-width: 0;
padding-inline: 8px;
font-size: 13px;
white-space: nowrap;
}
.dashboard-downloads-compact-toolbar-controls > .clawhub-segmented .clawhub-segmented-label {
white-space: nowrap;
}
.dashboard-downloads-compact-panel {
display: grid;
gap: 16px;
padding: 16px 18px;
border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
border-radius: calc(var(--r-md) + 2px);
background: color-mix(in srgb, var(--surface) 88%, transparent);
}
.dashboard-downloads-compact-primary {
display: grid;
grid-template-columns: minmax(150px, 0.38fr) minmax(0, 1fr);
gap: 16px;
align-items: stretch;
}
.dashboard-downloads-compact-hero-metric {
display: grid;
grid-template-rows: auto auto 1fr;
align-content: start;
gap: 4px;
height: 100%;
padding-top: 2px;
}
.dashboard-downloads-compact-hero-metric .dashboard-downloads-delta {
align-self: end;
}
.dashboard-review-sheet .plugin-validation-toolbar {
border-color: color-mix(in srgb, var(--line) 92%, transparent);
background: color-mix(in srgb, var(--surface) 96%, var(--bg));
box-shadow: inset 0 1px 0 color-mix(in srgb, #fff 20%, transparent);
}
.dashboard-review-sheet .plugin-validation-command {
color: color-mix(in srgb, var(--ink) 88%, var(--ink-soft));
font-weight: 550;
}
@media (max-width: 640px) {
.dashboard-review-layer {
padding: 8px;
}
.dashboard-review-sheet {
width: calc(100vw - 16px);
height: calc(100dvh - 16px);
max-height: calc(100dvh - 16px);
}
.dashboard-review-sheet-support {
align-items: flex-start;
flex-direction: column;
gap: 8px;
}
}
.dashboard-downloads-metric-value--compact {
font-size: 1.75rem;
}
.dashboard-downloads-chart-column {
grid-column: 2;
display: grid;
align-content: end;
min-width: 0;
}
.dashboard-downloads-sparkline--compact-primary {
height: 72px;
}
.dashboard-downloads-chart-axis {
display: flex;
justify-content: space-between;
gap: 10px;
margin-top: -7px;
color: color-mix(in srgb, var(--ink-soft) 78%, transparent);
font-size: 11px;
font-weight: 500;
letter-spacing: 0.01em;
}
.dashboard-downloads-compact-split {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
padding-top: 12px;
border-top: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
}
.dashboard-downloads-compact-stat {
display: grid;
gap: 6px;
min-width: 0;
align-content: end;
}
.dashboard-downloads-compact-stat-label {
color: var(--ink-soft);
font-size: var(--fs-xs);
font-weight: 600;
letter-spacing: 0.02em;
text-transform: uppercase;
}
.dashboard-downloads-compact-stat-value {
color: var(--ink);
font-size: 1.15rem;
font-weight: 700;
line-height: 1.1;
}
.dashboard-downloads-sparkline--compact-stat {
width: 100%;
height: 44px;
margin-top: 4px;
}
@media (min-width: 760px) {
.dashboard-downloads-compact-panel {
grid-template-columns: minmax(0, 1.65fr) minmax(260px, 1fr);
align-items: stretch;
}
.dashboard-downloads-compact-split {
align-items: end;
padding-top: 0;
padding-left: 16px;
border-top: 0;
border-left: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
}
}
@media (max-width: 960px) {
.browse-page.dashboard-route .dashboard-catalog-row {
grid-template-columns: 34px minmax(0, 1fr) 40px;
}
.browse-page.dashboard-route .dashboard-catalog-list-head {
grid-template-columns: 34px minmax(0, 1fr) 40px;
}
.browse-page.dashboard-route .dashboard-catalog-review,
.browse-page.dashboard-route .dashboard-catalog-list-head .browse-list-head-label:nth-child(3),
.browse-page.dashboard-route .dashboard-catalog-list-head .browse-list-head-stat,
.browse-page.dashboard-route .dashboard-catalog-row .skill-list-item-meta {
display: none;
}
.browse-page.dashboard-route .dashboard-catalog-row .skill-list-item-taxonomy {
display: flex;
}
}
@media (max-width: 720px) {
.browse-page.dashboard-route {
padding-inline: 20px;
}
.dashboard-downloads-compact-primary {
grid-template-columns: 1fr;
}
.dashboard-downloads-compact-split {
grid-template-columns: 1fr;
}
}
/* Dashboard */
.browse-page.dashboard-route {
max-width: 1280px;
margin-inline: auto;
padding-inline: 32px;
box-sizing: border-box;
}
.dashboard-workspace {
display: block;
margin-top: 44px;
}
.dashboard-workspace-main {
display: flex;
flex-direction: column;
gap: 24px;
min-width: 0;
}
.dashboard-inventory-section {
margin-top: 4px;
}
.dashboard-inventory-section .dashboard-section-head {
margin-bottom: 6px;
padding-bottom: 8px;
border-bottom: 1px solid color-mix(in srgb, var(--line) 76%, transparent);
}
.dashboard-inventory-section .browse-controls {
gap: 0;
margin-bottom: 4px;
}
.dashboard-inventory-section .browse-controls-row {
min-height: 34px;
gap: 14px;
}
.dashboard-import-banner {
position: relative;
overflow: hidden;
display: grid;
grid-template-columns: auto auto minmax(0, 1fr) auto;
align-items: center;
gap: 18px;
padding: 14px 16px;
border: 1px solid color-mix(in srgb, #8f1d24 9%, var(--line));
border-radius: calc(var(--r-md) + 2px);
background:
radial-gradient(
ellipse 52% 110% at 100% 0%,
color-mix(in srgb, #d34848 5%, transparent),
transparent 64%
),
radial-gradient(
ellipse 44% 110% at 0% 100%,
color-mix(in srgb, #8f1d24 7%, transparent),
transparent 66%
),
color-mix(in srgb, var(--surface) 92%, transparent);
box-shadow: inset 0 1px 0 color-mix(in srgb, #fff 28%, transparent);
}
.dashboard-import-banner-art-wrap {
display: flex;
align-items: center;
justify-content: center;
width: 126px;
min-width: 126px;
}
.dashboard-import-banner-text {
display: grid;
gap: 3px;
min-width: 0;
max-width: 380px;
}
.dashboard-import-banner-heading {
display: flex;
align-items: center;
gap: 8px;
min-width: 0;
}
.dashboard-import-banner-art {
display: block;
width: 116px;
height: auto;
object-fit: contain;
pointer-events: none;
user-select: none;
opacity: 0.82;
filter: saturate(0.72);
}
.dashboard-import-banner-title {
margin: 0;
font-family: inherit;
font-size: var(--fs-md);
font-weight: 600;
line-height: 1.35;
color: color-mix(in srgb, var(--ink) 90%, var(--ink-soft));
letter-spacing: 0;
}
.dashboard-import-banner-badge {
display: inline-flex;
align-items: center;
min-height: 18px;
padding: 2px 6px;
border: 1px solid color-mix(in srgb, #d34848 28%, transparent);
border-radius: var(--r-pill);
background: color-mix(in srgb, #d34848 11%, transparent);
color: color-mix(in srgb, #ff8c8c 78%, var(--ink));
font-size: 10px;
font-weight: 700;
line-height: 1;
}
.dashboard-import-banner-copy {
margin: 0;
color: var(--ink-soft);
font-size: 12px;
line-height: 1.4;
}
.dashboard-import-banner-actions {
grid-column: 4;
display: flex;
align-items: center;
gap: 8px;
min-width: 0;
}
[data-theme-resolved="light"] .dashboard-import-banner {
background:
radial-gradient(
ellipse 72% 120% at 100% -28%,
color-mix(in srgb, #b7333b 8%, transparent),
transparent 72%
),
color-mix(in srgb, var(--surface) 95%, var(--bg));
}
.dashboard-import-banner-action {
display: flex;
align-items: center;
justify-content: center;
gap: 6px;
box-sizing: border-box;
min-width: 132px;
padding: 9px 12px;
border: 1px solid color-mix(in srgb, var(--line) 88%, transparent);
border-radius: var(--r-btn);
background: transparent;
color: var(--ink-soft);
font-size: 13px;
font-weight: 600;
line-height: 1;
text-decoration: none;
transition:
color 0.15s ease,
border-color 0.15s ease,
background-color 0.15s ease;
}
.dashboard-import-banner-action:hover,
.dashboard-import-banner-action:focus-visible {
color: var(--ink);
text-decoration: none;
border-color: color-mix(in srgb, var(--ink) 18%, var(--line));
background: color-mix(in srgb, var(--ink) 4%, transparent);
}
.dashboard-import-banner-dismiss {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 5px;
min-width: 0;
height: 32px;
padding: 0 8px;
border: 0;
border-radius: 6px;
background: transparent;
color: var(--ink-soft);
cursor: pointer;
font-size: 12px;
font-weight: 600;
line-height: 1;
transition:
color 0.15s ease,
background-color 0.15s ease;
}
.dashboard-import-banner-dismiss:hover,
.dashboard-import-banner-dismiss:focus-visible {
color: var(--ink);
background: color-mix(in srgb, var(--ink) 7%, transparent);
}
[data-theme-resolved="light"] .dashboard-import-banner-action {
background: transparent;
color: var(--ink-soft);
border-color: color-mix(in srgb, var(--line) 88%, transparent);
}
[data-theme-resolved="light"] .dashboard-import-banner-action:hover,
[data-theme-resolved="light"] .dashboard-import-banner-action:focus-visible {
color: var(--ink);
background: color-mix(in srgb, var(--ink) 4%, transparent);
border-color: color-mix(in srgb, var(--ink) 18%, var(--line));
}
[role="menu"] {
border-radius: 12px !important;
overflow: hidden;
}
[role="menu"] [role="menuitem"],
[role="menu"] a[role="menuitem"] {
border-radius: 8px;
text-decoration: none !important;
}
[role="menu"] [role="menuitem"]:hover,
[role="menu"] [role="menuitem"]:focus,
[role="menu"] [role="menuitem"]:focus-visible,
[role="menu"] a[role="menuitem"]:hover,
[role="menu"] a[role="menuitem"]:focus,
[role="menu"] a[role="menuitem"]:focus-visible {
outline: none !important;
box-shadow: none !important;
background: color-mix(in srgb, var(--ink) 7%, transparent) !important;
color: var(--ink) !important;
text-decoration: none !important;
}
@media (max-width: 1180px) {
.dashboard-workspace {
display: block;
}
}
/* Dashboard final — triage cards and canonical package listing. */
.browse-page.dashboard-route.dashboard-final {
max-width: 1296px;
padding-inline: 48px;
}
.dashboard-final .dashboard-workspace {
display: block;
}
.dashboard-final .dashboard-attention-strip-header {
height: 28px;
margin-bottom: 12px;
}
.dashboard-final .dashboard-attention-strip .results-list {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
}
.dashboard-final .dashboard-attention-row.skill-list-item-no-icon {
position: relative;
grid-template-columns: minmax(0, 1fr) auto;
grid-template-rows: minmax(0, 1fr) auto;
align-content: start;
gap: 12px;
min-height: 0;
padding: 16px;
border: 1px solid var(--hv2-border);
border-radius: calc(var(--r-md) + 2px);
background: color-mix(in srgb, var(--hv2-surface) 95%, transparent);
transition:
border-color var(--hv2-duration-ui) var(--hv2-ease-out),
background var(--hv2-duration-ui) var(--hv2-ease-out),
transform var(--hv2-duration-ui) var(--hv2-ease-out);
}
[data-theme-resolved="light"] .dashboard-final .dashboard-attention-row.skill-list-item-no-icon {
background: color-mix(in srgb, var(--surface) 96%, var(--bg));
}
[data-theme-resolved="light"]
.dashboard-final
.dashboard-attention-row.skill-list-item-no-icon:hover,
[data-theme-resolved="light"]
.dashboard-final
.dashboard-attention-row.skill-list-item-no-icon:focus-within {
background: color-mix(in srgb, var(--surface-muted) 68%, var(--surface));
}
[data-theme-resolved="light"] .dashboard-route .home-v2-listing-card {
background: color-mix(in srgb, var(--surface) 96%, var(--bg));
}
@media (hover: hover) and (pointer: fine) {
[data-theme-resolved="light"] .dashboard-route .home-v2-listing-card:hover {
background: color-mix(in srgb, var(--surface-muted) 68%, var(--surface));
box-shadow: none;
transform: translateY(-1px);
}
}
.dashboard-final .dashboard-attention-row.skill-list-item-no-icon:hover,
.dashboard-final .dashboard-attention-row.skill-list-item-no-icon:focus-within {
border-color: var(--hv2-border-hover);
background: var(--hv2-surface-hover);
}
.dashboard-final .dashboard-attention-row.skill-list-item-no-icon:active {
transform: scale(0.992);
transition-duration: 100ms;
}
.dashboard-final .dashboard-attention-row.skill-list-item-no-icon .skill-list-item-body {
grid-column: 1 / -1;
grid-row: 1;
align-content: start;
min-height: 92px;
padding-right: 68px;
padding-bottom: 12px;
border-bottom: 1px solid color-mix(in srgb, var(--hv2-border) 60%, transparent);
}
.dashboard-final .dashboard-attention-context {
-webkit-line-clamp: 2;
}
.dashboard-final .dashboard-attention-row .skill-list-item-main {
display: grid;
width: 100%;
min-width: 0;
grid-template-columns: minmax(0, 1fr);
justify-items: start;
gap: 7px;
}
.dashboard-final .dashboard-attention-row .skill-list-item-name {
display: block;
width: 100%;
max-width: 100%;
justify-self: stretch;
}
.dashboard-final .dashboard-attention-visibility {
position: absolute;
top: 0;
right: 0;
min-height: 18px;
color: color-mix(in srgb, var(--ink-soft) 86%, transparent);
}
.dashboard-final .dashboard-attention-summary {
grid-column: 1;
grid-row: 2;
justify-self: start;
}
.dashboard-final .dashboard-attention-row .skill-list-item-meta {
grid-column: 2;
grid-row: 2;
align-self: end;
justify-self: end;
}
.dashboard-final .dashboard-attention-state {
display: inline-flex;
align-items: center;
min-height: 22px;
padding: 3px 8px;
border-radius: var(--oc-radius-control);
font-size: 11px;
}
.dashboard-final .dashboard-attention-state.is-destructive {
background: var(--oc-status-error-bg);
}
.dashboard-final .dashboard-attention-state.is-warning {
background: var(--oc-status-warning-bg);
}
.dashboard-downloads-mobile-slot {
display: none;
}
.dashboard-downloads-desktop-slot {
display: contents;
}
.dashboard-downloads-desktop-slot > .dashboard-downloads-insights {
margin-top: 68px;
}
.dashboard-review-complete-validation .plugin-warning-item-details[open] {
border-radius: 10px;
overflow: hidden;
background: color-mix(in srgb, var(--ink) 10%, var(--surface));
}
.dashboard-review-complete-validation
.plugin-warning-item-details[open]
> .plugin-warning-item-summary,
.dashboard-review-complete-validation
.plugin-warning-item-details[open]
> .plugin-warning-item-body {
background: transparent;
}
.dashboard-review-complete-validation
.plugin-warning-item-details[open]
> .plugin-warning-item-summary:hover,
.dashboard-review-complete-validation
.plugin-warning-item-details[open]
> .plugin-warning-item-summary:focus-visible {
background: transparent;
}
.dashboard-review-complete-validation
.plugin-warning-item-details[open]
+ .plugin-warning-item-details[open] {
margin-top: 8px;
}
[data-theme-resolved="light"]
.dashboard-review-complete-validation
.plugin-warning-item-details[open] {
background: color-mix(in srgb, var(--ink) 5%, var(--surface));
}
@media (max-width: 1180px) {
.dashboard-final .dashboard-workspace {
display: block;
}
}
@media (prefers-reduced-motion: reduce) {
.dashboard-final .dashboard-workspace {
transition: none;
}
}
/* Dashboard skeleton mirrors the final dashboard instead of the generic browse list. */
.dashboard-skeleton .dashboard-workspace {
margin-top: 44px;
}
.dashboard-skeleton-title {
width: 210px;
height: 42px;
}
.dashboard-skeleton-header-actions,
.dashboard-skeleton-toolbar,
.dashboard-skeleton-stats-toolbar,
.dashboard-skeleton-stats-controls,
.dashboard-skeleton-attention-footer {
display: flex;
align-items: center;
}
.dashboard-skeleton-header-actions {
gap: 8px;
}
.dashboard-skeleton-add-action {
width: 158px;
height: 40px;
}
.dashboard-skeleton-section-title {
width: 128px;
height: 20px;
}
.dashboard-skeleton-attention > .dashboard-skeleton-section-title {
margin: 4px 4px 20px;
}
.dashboard-skeleton-attention-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
}
.dashboard-skeleton-attention-card {
display: grid;
min-height: 174px;
padding: 16px;
border: 1px solid var(--hv2-border);
border-radius: calc(var(--r-md) + 2px);
background: color-mix(in srgb, var(--hv2-surface) 95%, transparent);
}
.dashboard-skeleton-attention-copy {
display: grid;
align-content: start;
gap: 9px;
padding-bottom: 16px;
border-bottom: 1px solid color-mix(in srgb, var(--hv2-border) 60%, transparent);
}
.dashboard-skeleton-kind {
width: 46px;
height: 10px;
}
.dashboard-skeleton-card-title {
width: min(78%, 220px);
height: 18px;
}
.dashboard-skeleton-card-summary {
width: 88%;
height: 12px;
}
.dashboard-skeleton-attention-footer {
align-self: end;
justify-content: space-between;
gap: 16px;
padding-top: 14px;
}
.dashboard-skeleton-status {
width: 64px;
height: 22px;
}
.dashboard-skeleton-review-action {
width: 94px;
height: 12px;
}
.dashboard-skeleton-count {
width: 22px;
height: 22px;
border-radius: 999px;
}
.dashboard-skeleton-toolbar {
min-height: 40px;
gap: 14px;
margin-bottom: 4px;
}
.dashboard-skeleton-tabs {
width: 218px;
height: 36px;
}
.dashboard-skeleton-sort {
width: 66px;
height: 24px;
}
.dashboard-skeleton-toolbar-spacer {
flex: 1;
}
.dashboard-skeleton-search,
.dashboard-skeleton-view {
width: 40px;
height: 40px;
}
.dashboard-skeleton-view {
width: 96px;
}
.dashboard-skeleton-package-list {
display: grid;
}
.dashboard-skeleton-package-row {
display: grid;
grid-template-columns: var(--dashboard-row-grid);
column-gap: var(--dashboard-row-gap);
align-items: center;
min-height: 72px;
padding: 10px 4px;
border-bottom: 1px solid color-mix(in srgb, var(--line) 76%, transparent);
}
.dashboard-skeleton-package-copy {
grid-column: name-start / review-start;
display: grid;
gap: 8px;
}
.dashboard-skeleton-package-name {
width: min(48%, 230px);
height: 17px;
}
.dashboard-skeleton-package-meta {
width: min(34%, 170px);
height: 11px;
}
.dashboard-skeleton-audit {
grid-column: review-start / downloads-start;
display: grid;
grid-template-columns: 54px 34px;
align-items: center;
gap: 8px;
}
.dashboard-skeleton-audit-label,
.dashboard-skeleton-downloads {
width: 48px;
height: 12px;
}
.dashboard-skeleton-audit-meter {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 3px;
}
.dashboard-skeleton-audit-meter > * {
width: 9px;
height: 4px;
border-radius: 999px;
}
.dashboard-skeleton-downloads {
grid-column: downloads-start / actions-start;
justify-self: start;
}
.dashboard-skeleton-menu {
grid-column: actions-start / actions-end;
justify-self: end;
width: 20px;
height: 5px;
}
.dashboard-skeleton-import-banner {
display: grid;
grid-template-columns: auto auto minmax(0, 1fr) auto;
align-items: center;
gap: 18px;
padding: 14px 16px;
border: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
border-radius: calc(var(--r-md) + 2px);
background: color-mix(in srgb, var(--surface) 92%, transparent);
}
.dashboard-skeleton-import-art {
width: 82px;
height: 56px;
}
.dashboard-skeleton-import-copy {
display: grid;
gap: 8px;
min-width: 0;
max-width: 380px;
}
.dashboard-skeleton-import-title {
width: 152px;
height: 18px;
}
.dashboard-skeleton-import-text {
width: min(340px, 90%);
height: 12px;
}
.dashboard-skeleton-import-action {
grid-column: 4;
width: 132px;
height: 34px;
}
.dashboard-skeleton-stats {
margin-top: 32px;
}
.dashboard-skeleton-stats-toolbar {
justify-content: space-between;
gap: 20px;
margin-bottom: 12px;
}
.dashboard-skeleton-stats-controls {
gap: 10px;
}
.dashboard-skeleton-stats-filter {
width: 112px;
height: 32px;
}
.dashboard-skeleton-stats-range {
width: 278px;
height: 40px;
}
.dashboard-skeleton-stats-panel {
display: grid;
grid-template-columns: minmax(0, 1.7fr) repeat(2, minmax(160px, 0.65fr));
min-height: 180px;
border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
border-radius: calc(var(--r-md) + 2px);
}
.dashboard-skeleton-stats-primary,
.dashboard-skeleton-stats-side {
display: grid;
align-content: start;
gap: 10px;
padding: 20px;
}
.dashboard-skeleton-stats-side {
border-left: 1px solid color-mix(in srgb, var(--line) 72%, transparent);
}
.dashboard-skeleton-stat-label {
width: 98px;
height: 10px;
}
.dashboard-skeleton-stat-value {
width: 92px;
height: 34px;
}
.dashboard-skeleton-stat-value-small {
width: 64px;
height: 24px;
}
.dashboard-skeleton-chart,
.dashboard-skeleton-chart-small {
align-self: end;
width: 100%;
height: 58px;
margin-top: 20px;
border-radius: 8px;
}
.dashboard-skeleton-chart-small {
height: 44px;
margin-top: 15px;
}
@media (max-width: 1180px) {
.dashboard-skeleton-attention-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
}
@media (max-width: 800px) {
.dashboard-skeleton-title {
width: 160px;
height: 34px;
}
.dashboard-skeleton-add-action {
width: 40px;
}
.dashboard-skeleton-attention-grid {
grid-template-columns: 1fr;
gap: 8px;
}
.dashboard-skeleton-attention-card {
min-height: 126px;
padding: 12px;
}
.dashboard-skeleton-toolbar {
flex-wrap: wrap;
gap: 8px;
}
.dashboard-skeleton-tabs {
width: min(218px, 100%);
}
.dashboard-skeleton-toolbar-spacer {
display: none;
}
.dashboard-skeleton-search {
margin-left: auto;
}
.dashboard-skeleton-package-row {
grid-template-columns: minmax(0, 1fr) auto;
gap: 10px;
min-height: 68px;
}
.dashboard-skeleton-package-copy {
grid-column: 1;
}
.dashboard-skeleton-audit {
grid-column: 2;
}
.dashboard-skeleton-downloads,
.dashboard-skeleton-menu {
display: none;
}
.dashboard-skeleton-stats-toolbar {
align-items: flex-start;
flex-direction: column;
}
.dashboard-skeleton-stats-controls,
.dashboard-skeleton-stats-range {
width: 100%;
}
.dashboard-skeleton-stats-filter {
flex: 0 0 96px;
}
.dashboard-skeleton-stats-panel {
grid-template-columns: 1fr 1fr;
}
.dashboard-skeleton-stats-primary {
grid-column: 1 / -1;
}
.dashboard-skeleton-stats-side {
border-top: 1px solid color-mix(in srgb, var(--line) 72%, transparent);
}
.dashboard-skeleton-stats-side:nth-child(2) {
border-left: 0;
}
}
@media (max-width: 800px) {
.browse-page.dashboard-route.dashboard-final {
padding-inline: 20px;
}
.dashboard-final .dashboard-attention-strip .results-list {
grid-template-columns: 1fr;
}
.dashboard-import-banner,
.dashboard-skeleton-import-banner {
grid-template-columns: minmax(0, 1fr);
gap: 14px;
padding: 18px;
}
.dashboard-import-banner-art-wrap,
.dashboard-skeleton-import-art {
display: none;
}
.dashboard-import-banner-text {
max-width: none;
padding-right: 34px;
}
.dashboard-import-banner-heading {
flex-wrap: wrap;
gap: 8px;
}
.dashboard-import-banner-actions {
grid-column: auto;
align-items: stretch;
width: 100%;
}
.dashboard-import-banner-action {
flex: 1 1 auto;
min-width: 0;
min-height: 42px;
font-size: 14px;
}
.dashboard-import-banner-dismiss {
position: absolute;
top: 16px;
right: 16px;
height: 30px;
padding-inline: 7px;
}
.dashboard-skeleton-import-action {
grid-column: auto;
width: 100%;
}
.dashboard-final .dashboard-workspace-main {
gap: 22px;
}
.dashboard-final .dashboard-attention-strip-header {
height: auto;
margin-bottom: 8px;
}
.dashboard-final .dashboard-attention-strip .results-list {
gap: 8px;
}
.dashboard-final .dashboard-attention-row.skill-list-item-no-icon {
grid-template-columns: minmax(0, 1fr) auto;
grid-template-rows: auto auto;
gap: 8px;
padding: 12px;
}
.dashboard-final .dashboard-attention-row.skill-list-item-no-icon .skill-list-item-body {
min-height: 0;
padding-bottom: 8px;
}
.dashboard-final .dashboard-attention-context {
display: -webkit-box;
overflow: hidden;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
}
.dashboard-final .dashboard-attention-state {
min-height: 20px;
padding: 2px 7px;
}
.browse-page.dashboard-route .dashboard-catalog-row {
grid-template-columns: minmax(0, 1fr) 40px;
column-gap: 8px;
min-height: 76px;
padding-inline: 4px;
}
.browse-page.dashboard-route .dashboard-catalog-row .skill-list-item-body {
grid-column: 1;
justify-self: stretch;
text-align: left;
}
.browse-page.dashboard-route .dashboard-catalog-row .skill-list-item-main {
justify-content: flex-start;
text-align: left;
}
.browse-page.dashboard-route .dashboard-catalog-row .dashboard-row-actions {
grid-column: 2;
}
.browse-page.dashboard-route .dashboard-catalog-row-link {
grid-column: 1 / -1;
}
.dashboard-downloads-mobile-slot {
display: block;
}
.dashboard-downloads-desktop-slot {
display: none;
}
.dashboard-downloads-compact-toolbar {
align-items: flex-start;
}
.dashboard-downloads-compact-toolbar-controls {
width: 100%;
}
.dashboard-downloads-compact-toolbar-controls > .browse-sort-select {
margin-right: 0;
}
.dashboard-downloads-compact-toolbar-controls > .clawhub-segmented {
width: 100%;
margin-left: 0;
margin-top: 8px;
}
}