/* Projects and model library share a workspace layout. Project and model status
   colours remain data/meaning colours; blue is reserved for interaction. */
.cw3[data-cw-system]:is(.cw3-projects, .cw3-hub, .cw3-lib) {
    --cw3-bg: var(--cw-surface-canvas);
    --cw3-panel: var(--cw-surface-panel);
    --cw3-panel-2: var(--cw-surface-raised);
    --cw3-line: var(--cw-border-subtle);
    --cw3-line-2: var(--cw-border-control);
    --cw3-text: var(--cw-text-primary);
    --cw3-text-2: var(--cw-text-secondary);
    --cw3-text-3: var(--cw-text-secondary);
    --cw3-display: var(--cw-font-family);
    --cw3-mono: var(--cw-font-family);
    min-height: calc(100dvh - var(--cw-shell-topbar-height, 60px));
    padding: clamp(20px, 2.5vw, 36px) 0 64px;
    background: var(--cw-surface-canvas);
    color: var(--cw-text-primary);
    font: 400 var(--cw-body-size)/1.5 var(--cw-font-family);
}
.cw3[data-cw-system]:is(.cw3-projects, .cw3-hub, .cw3-lib) :is(.cw3-projects-bg, .cw3-hub-bg, .cw3-lib-bg, .cw3-disc-dots) { display: none; }
.cw3[data-cw-system]:is(.cw3-projects, .cw3-hub, .cw3-lib) .cw3-container {
    max-width: none;
    padding-inline: clamp(16px, 2.5vw, 36px);
}
.cw3[data-cw-system]:is(.cw3-projects, .cw3-hub, .cw3-lib) .cw3-mono { font-family: var(--cw-font-family); letter-spacing: 0; }
.cw3[data-cw-system]:is(.cw3-projects, .cw3-hub, .cw3-lib) :is(.cw3-eyebrow-text, .cw3-projects-newcard__eyebrow, .cw3-projects-empty__eyebrow, .cw3-hub-missing__eyebrow, .cw3-hub-empty__eyebrow) {
    color: var(--cw-text-secondary);
    font: 600 12px/1.4 var(--cw-font-family);
    letter-spacing: 0;
    text-transform: none;
}
.cw3[data-cw-system]:is(.cw3-projects, .cw3-hub, .cw3-lib) :is(.cw3-projects-title, .cw3-hub-title, .cw3-lib-title) {
    margin: 8px 0 10px;
    color: var(--cw-text-primary);
    font: 600 clamp(24px, 2.5vw, 28px)/1.25 var(--cw-font-family);
    letter-spacing: -.025em;
    overflow-wrap: anywhere;
}
.cw3[data-cw-system]:is(.cw3-projects, .cw3-hub, .cw3-lib) :is(.cw3-projects-lede, .cw3-hub-desc, .cw3-lib-lede) {
    color: var(--cw-text-secondary);
    font: 400 14px/1.55 var(--cw-font-family);
    max-width: none;
}
.cw3[data-cw-system].cw3-projects .cw3-projects-head,
.cw3[data-cw-system].cw3-lib .cw3-lib-head { margin-bottom: 24px; max-width: none; }
.cw3[data-cw-system].cw3-hub .cw3-hub-head { padding: 20px 24px; border-radius: var(--cw-radius-panel); }
.cw3[data-cw-system]:is(.cw3-projects, .cw3-hub, .cw3-lib) :is(.cw3-projects-newcard, .cw3-projects-card, .cw3-projects-empty, .cw3-hub-missing, .cw3-hub-empty, .cw3-hub-members__list, .cw3-lib-empty, .cw3-lib-table-wrap) {
    background: var(--cw-surface-panel);
    border-color: var(--cw-border-subtle);
    border-radius: var(--cw-radius-panel);
    box-shadow: none;
}
.cw3[data-cw-system].cw3-projects .cw3-projects-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
    gap: 16px;
}
.cw3[data-cw-system].cw3-projects .cw3-projects-card { min-height: 240px; padding: 20px; }
.cw3[data-cw-system].cw3-projects .cw3-projects-card:hover {
    transform: none;
    border-color: var(--cw-border-control);
    box-shadow: none;
}
.cw3[data-cw-system].cw3-projects .cw3-projects-card__role,
.cw3[data-cw-system].cw3-projects .cw3-projects-card__stat dt,
.cw3[data-cw-system].cw3-hub :is(.cw3-hub-role, .cw3-hub-meta dt, .cw3-hub-members__role, .cw3-hub-members__joined),
.cw3[data-cw-system].cw3-lib .cw3-lib-table th {
    color: var(--cw-text-secondary);
    font: 500 12px/1.4 var(--cw-font-family);
    letter-spacing: 0;
    text-transform: none;
}
.cw3[data-cw-system].cw3-hub .cw3-hub-tab { font: 500 14px/1.4 var(--cw-font-family); }
.cw3[data-cw-system].cw3-hub .cw3-hub-tab--active { border-bottom-color: var(--cw-action-background); }
.cw3[data-cw-system].cw3-hub :is(.cw3-hub-tab__soon, .cw3-hub-members__you) {
    color: var(--cw-text-link);
    background: var(--cw-selection-background);
    font: 500 12px/1.3 var(--cw-font-family);
    letter-spacing: 0;
}
.cw3[data-cw-system].cw3-lib .cw3-lib-table th { background: var(--cw-surface-raised); }
.cw3[data-cw-system].cw3-lib .cw3-lib-table { font-family: var(--cw-font-family); font-size: 14px; }
.cw3[data-cw-system].cw3-lib .cw3-lib-table td { border-color: var(--cw-border-subtle); }
.cw3[data-cw-system].cw3-lib :is(.cw3-lib-meta a, .cw3-lib-rooms-link),
.cw3[data-cw-system].cw3-projects :is(.cw3-projects-empty__link, .cw3-projects-card__dashboard),
.cw3[data-cw-system].cw3-hub :is(.cw3-hub-empty__link, .cw3-hub-back, .cw3-hub-matrices__name) { color: var(--cw-text-link); }
.cw3[data-cw-system]:is(.cw3-projects, .cw3-hub, .cw3-lib) .cw3-btn {
    min-height: 44px;
    padding: 10px 16px;
    border-radius: var(--cw-radius-control);
    font: 600 14px/1.35 var(--cw-font-family);
    box-shadow: none;
    transform: none;
}
.cw3[data-cw-system]:is(.cw3-projects, .cw3-hub, .cw3-lib) .cw3-btn--primary {
    background: var(--cw-action-background);
    border-color: var(--cw-action-background);
    color: var(--cw-action-text);
}
.cw3[data-cw-system]:is(.cw3-projects, .cw3-hub, .cw3-lib) .cw3-btn--primary:hover:not(:disabled) {
    background: var(--cw-action-hover);
    border-color: var(--cw-action-hover);
    color: var(--cw-action-text);
    box-shadow: none;
    transform: none;
}
.cw3[data-cw-system]:is(.cw3-projects, .cw3-hub, .cw3-lib) .cw3-btn--ghost { background: transparent; border-color: var(--cw-border-control); color: var(--cw-text-primary); }
.cw3[data-cw-system]:is(.cw3-projects, .cw3-hub, .cw3-lib) :is(button, a, input, select, [role="link"]):focus-visible {
    outline: 2px solid var(--cw-focus-ring);
    outline-offset: 2px;
}
.cw3[data-cw-system]:is(.cw3-projects, .cw3-hub, .cw3-lib) :is(input, select) {
    background-color: var(--cw-surface-raised);
    color: var(--cw-text-primary);
    border-color: var(--cw-border-control);
    border-radius: var(--cw-radius-control);
    font-family: var(--cw-font-family);
}
.cw3[data-cw-system].cw3-lib .cw3-lib-table-wrap { overflow-x: auto; }
.cw3[data-cw-system].cw3-lib .cw3-lib-table { min-width: 880px; }
@media (max-width: 720px) {
    .cw3[data-cw-system]:is(.cw3-projects, .cw3-hub, .cw3-lib) { padding: 20px 0 48px; }
    .cw3[data-cw-system].cw3-projects .cw3-projects-newcard__name { min-width: 0; width: 100%; flex-basis: 100%; }
    .cw3[data-cw-system].cw3-hub .cw3-hub-head { padding: 18px; }
    .cw3[data-cw-system].cw3-hub .cw3-hub-head__row { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
    .cw3[data-cw-system]:is(.cw3-projects, .cw3-hub, .cw3-lib) * { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
