/* Direction B shares the existing navy base, type and local artwork. */
.workspace {
    --issue-line: #327d89;
    --issue-accent: #67dbde;
    --shop-line: #a66b39;
}
.workspace .subpage-heading { background: linear-gradient(105deg,#081b27,var(--surface)); }
.workspace .subpage-heading.accent-cool { --page-accent: var(--issue-accent); }
.workspace .subpage-heading.accent-warm { border-color: #795637; border-inline-start-color: var(--gold); }
.workspace .related-actions .module-tile { min-height: 44px; padding-block: 9px; }
.workspace .subpage-extra { margin-top: 14px; }

/* Catalog starts beside a warm illustrated filter column. */
.route-shop .shop-workspace.direction-b-shop {
    display: grid;
    grid-template-columns: minmax(200px, 25%) minmax(0,1fr);
    grid-template-areas: 'filters heading' 'filters catalog';
    grid-template-rows: auto 1fr;
    align-items: start;
    gap: 14px 26px;
    padding: 0;
}
.shop-catalog-heading { grid-area: heading; padding: 4px 0 12px; border-bottom: 1px solid var(--shop-line); }
.shop-catalog-heading h1 { margin: 4px 0 6px; font-size: clamp(2rem,4vw,3.6rem); }
.shop-catalog-heading p { margin: 0; }
.direction-b-shop .shop-filters {
    grid-area: filters;
    overflow: hidden;
    margin: 0;
    padding: 0;
    border-color: var(--shop-line);
    background: linear-gradient(155deg,#34251e,var(--surface) 76%);
}
.shop-filter-art, .shop-empty-art {
    background: url('/assets/nova-features.png') center center / 100% 304% no-repeat;
    aspect-ratio: 3/1;
}
.shop-filter-disclosure { padding: 12px 15px 15px; }
.shop-filter-disclosure summary { cursor: pointer; color: var(--gold); font-weight: 650; }
.route-shop .direction-b-shop .shop-filters form { grid-template-columns: minmax(0,1fr); gap: 10px; margin: 10px 0 0; }
.direction-b-shop .shop-filters input, .direction-b-shop .shop-filters select { border-color: var(--shop-line); }
.direction-b-shop .shop-catalog { grid-area: catalog; min-width: 0; }
.route-shop .direction-b-shop .shop-catalog .cards { grid-template-columns: repeat(auto-fill,minmax(min(100%,205px),1fr)); }
.shop-empty-state {
    grid-column: 1/-1;
    padding: clamp(16px,3vw,30px);
    text-align: center;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
}
.shop-empty-art { max-width: 300px; margin: 0 auto 10px; border-radius: var(--radius); }
.shop-empty-state p { margin: 7px auto; font-weight: 650; }
.shop-empty-state a { color: var(--gold); }

/* The issue desk uses its full width for search and results. */
.route-bugs .bug-workspace-list { grid-template-columns: minmax(0,1fr); gap: 12px; }
.route-bugs .bug-workspace-list > .panel { grid-column: 1; grid-row: auto; margin: 0; position: static; }
.bug-workspace-list > .bug-search-module { border-color: var(--issue-line); }
.bug-workspace-list .bug-search-module form { grid-template-columns: minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) auto; }
.bug-workspace-list .bug-search-module form label:first-child { grid-column: auto; }
.bug-workspace-list .bug-results-module { padding: 0; overflow: hidden; border-color: var(--issue-line); }
.bug-workspace-list .bug-results-module h2 { margin: 0; padding: 10px 15px; }
.bug-report-table { width: 100%; table-layout: fixed; }
.bug-report-table th:first-child { width: 54%; }
.bug-report-table th { color: var(--issue-accent); background: #102c36; }
.bug-report-table td, .bug-report-table th { padding: 9px 14px; white-space: normal; overflow-wrap: anywhere; vertical-align: top; }
.bug-report-table .tag { display: inline-block; max-width: 100%; color: var(--issue-accent); border-color: var(--issue-line); letter-spacing: normal; }
.bug-report-table .bug-empty-state { text-align: center; padding: 20px 14px; color: var(--muted); }
.bug-results-module > a { display: inline-block; margin: 10px 15px; }
.bug-report-strip { display: grid; grid-template-columns: minmax(0,1fr) minmax(130px,26%); padding: 0; overflow: hidden; border-color: var(--issue-line); }
.bug-report-strip-content { padding: 13px 16px; }
.bug-report-strip h2 { margin: 0 0 5px; }
.bug-report-strip summary { color: var(--issue-accent); font-weight: 650; cursor: pointer; }
.bug-report-strip form { margin-top: 8px; }
.bug-report-strip-art { min-height: 65px; background: url('/assets/nova-features.png') center bottom / 100% 304% no-repeat; }

/* Match layout density to the other tasks rather than adding banners. */
.route-news .news-index-grid, .route-patchnotes .news-index-grid { gap: 12px; }
.route-news .news-index-grid > article:first-of-type { border-inline-start: 2px solid var(--gold); }
.route-account .account-jump, .route-admin .admin-groups { gap: 8px; }
.route-account .account-jump .card, .route-admin .admin-group { border-color: var(--issue-line); }
.route-login .auth-workspace, .route-register .auth-workspace { border-color: #766044; }
.route-vote #vote-providers .card { border-inline-start: 2px solid var(--issue-line); }
.route-rewards .subpage-primary .card { border-inline-start: 2px solid var(--shop-line); }

@media (max-width: 760px) {
    .route-shop .shop-workspace.direction-b-shop { grid-template-columns: minmax(0,1fr); grid-template-areas: 'heading' 'filters' 'catalog'; grid-template-rows: auto; gap: 10px; }
    .direction-b-shop .shop-filters { display: grid; grid-template-columns: 75px minmax(0,1fr); align-items: start; }
    .shop-filter-art { height: 44px; aspect-ratio: auto; }
    .shop-filter-disclosure { padding: 10px 12px; }
    .route-shop .direction-b-shop .shop-filters form { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .route-shop .direction-b-shop .shop-filters form .button { grid-column: 1/-1; }
    .shop-empty-art { max-width: 220px; }
    .bug-workspace-list .bug-search-module form { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .bug-workspace-list .bug-search-module form label:first-child, .bug-workspace-list .bug-search-module form .button { grid-column: 1/-1; }
    .bug-report-table th:first-child { width: 46%; }
    .bug-report-table td, .bug-report-table th { padding: 7px; }
    .bug-report-strip { grid-template-columns: minmax(0,1fr) minmax(68px,22%); }
    .bug-report-strip-content { padding: 10px; }
}
@media (max-width: 420px) {
    .route-shop .direction-b-shop .shop-filters form { grid-template-columns: minmax(0,1fr); }
}
