/* One shell composition, shared by the workbench, catalogue and gallery. */
.shell { display: grid; grid-template-columns: 228px minmax(0, 1fr); grid-template-rows: 72px 1fr; min-height: 100dvh; }
.shell-sidebar { grid-column: 1; grid-row: 1 / -1; background: var(--b04-subtle); border-right: 1px solid var(--b04-border); padding: 24px 16px; display: flex; flex-direction: column; gap: 28px; min-width: 0; }
.shell-brand { display: flex; align-items: center; gap: 10px; color: var(--b04-text) !important; text-decoration: none; padding: 0 8px; }
.shell-wordmark { font-weight: 750; font-size: 1.0625rem; letter-spacing: -.05em; }
.shell-brand small { display: block; font-size: .6875rem; color: var(--b04-muted); letter-spacing: .015em; font-weight: 500; }
.shell-monogram { background: var(--b04-accent); color: white; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 8px; font-weight: 800; font-size: 1.2rem; }
.shell-nav { display: grid; gap: 5px; }
.shell-nav a { color: var(--b04-muted); text-decoration: none; display: flex; align-items: center; gap: 10px; min-height: 46px; padding: 10px 12px; border: 1px solid transparent; border-radius: 6px; font-weight: 550; }
.shell-nav a:hover { background: #ffffffb3; color: var(--b04-text); }
.shell-nav a[aria-current="page"] { color: var(--b04-accent); background: white; border-color: var(--b04-border); box-shadow: 0 1px 2px #14332008; font-weight: 650; }
.shell-nav .b04-eyebrow { margin: 12px 12px 6px; }
.shell-nav .nav-tail { margin-left: auto; font-size: .6875rem; color: var(--b04-muted); }
.shell-sidebar-footer { margin-top: auto; padding: 12px 8px 0; border-top: 1px solid var(--b04-border); display: grid; gap: 10px; font-size: .75rem; color: var(--b04-muted); }
.shell-topbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 0 32px; background: var(--b04-surface); border-bottom: 1px solid var(--b04-border); min-width: 0; }
.shell-location { font-size: .8125rem; color: var(--b04-muted); display: flex; gap: 10px; align-items: center; }
.shell-location strong { color: var(--b04-text); font-weight: 550; }
.shell-topbar .shell-search { justify-content: flex-start; min-width: 220px; color: var(--b04-muted); font-weight: 400; }
.shell-search kbd { margin-left: auto; }
.shell-tools { display: flex; align-items: center; gap: 12px; }
.shell-main { padding: 28px 32px 32px; min-width: 0; display: grid; align-content: start; gap: 22px; }
.shell-breadcrumb { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; font-size: .75rem; }
.shell-breadcrumb a { color: var(--b04-muted); text-decoration: none; }
.shell-notice { padding: 10px 14px; background: #edf2ef; border: 1px solid var(--b04-border); border-radius: 5px; color: var(--b04-muted); font-size: .75rem; display: flex; align-items: center; gap: 10px; }
.shell-notice strong { color: var(--b04-text); }
.workbench-layout { display: grid; grid-template-columns: minmax(0, 1fr) 292px; gap: 20px; align-items: start; }
.workbench-main, .workbench-aside { display: grid; gap: 20px; min-width: 0; }
.workbench-aside .aside-caption { font-size: .75rem; color: var(--b04-muted); line-height: 1.6; }
.workbench-view { display: inline-flex; gap: 4px; padding: 3px; border: 1px solid var(--b04-border); border-radius: 6px; background: var(--b04-surface); }
.workbench-view button[data-ui="button"] { border: 0; padding: 8px 12px; min-height: 36px; font-size: .8125rem; font-weight: 550; }
.workbench-view button[aria-pressed="true"] { background: var(--b04-accent-soft); }
.shell-footnote { display: flex; gap: 12px; flex-wrap: wrap; justify-content: space-between; color: var(--b04-muted); font-size: .6875rem; }
[data-view="desk"] .workbench-layout { grid-template-columns: minmax(0, 1fr) 320px; }
[data-view="desk"] .workbench-aside { order: -1; grid-column: 2; grid-row: 1; }
.catalogue-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.catalogue-item { padding: 20px; display: grid; gap: 12px; }
.catalogue-aliases { display: flex; flex-wrap: wrap; gap: 6px; }
.catalogue-aliases span { border: 1px solid var(--b04-border); border-radius: 4px; padding: 4px 7px; font-size: .75rem; }
@media (min-width: 1760px) { .shell { grid-template-columns: 252px minmax(0, 1fr); } .shell-main { padding: 32px 44px; } .workbench-layout { grid-template-columns: minmax(0, 1fr) 336px; gap: 24px; } }
@media (max-width: 1199px) { .shell { grid-template-columns: 196px minmax(0, 1fr); } .shell-topbar { padding: 0 20px; } .shell-main { padding: 24px 20px; } .workbench-layout, [data-view="desk"] .workbench-layout { grid-template-columns: minmax(0, 1fr); } .workbench-aside { grid-template-columns: repeat(2, minmax(0, 1fr)); } [data-view="desk"] .workbench-aside { order: 0; grid-column: auto; grid-row: auto; } .shell-connection { display: none; } }
@media (max-width: 899px) {
 .shell { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto 1fr; }
 .shell-sidebar { grid-row: 1; grid-column: 1; flex-direction: row; align-items: center; flex-wrap: wrap; padding: 14px 20px; gap: 12px; border-right: 0; border-bottom: 1px solid var(--b04-border); }
 .shell-brand { margin-right: auto; padding: 0; } .shell-nav { display: flex; gap: 4px; }
 .shell-nav a { padding: 9px 10px; font-size: .8125rem; } .shell-domains, .shell-sidebar-footer { display: none; }
 .shell-topbar { grid-row: 2; min-height: 60px; padding: 8px 20px; } .shell-main { grid-row: 3; }
 .shell-location > span { display: none; }
}
@media (max-width: 599px) {
 .shell-sidebar { padding: 12px 16px 6px; gap: 8px; } .shell-nav { width: 100%; justify-content: space-between; }
 .shell-nav a { padding: 9px 7px; gap: 6px; font-size: .75rem; }
 .shell-nav a .b04-icon { width: 17px; height: 17px; flex-basis: 17px; }
 .shell-topbar { padding: 6px 16px; min-height: 56px; }
 .shell-location { font-size: .75rem; } .shell-topbar .shell-search { min-width: 44px; padding: 10px; }
 .shell-search .search-text, .shell-search kbd { display: none; }
 .shell-tools { gap: 4px; } .shell-main { padding: 18px 16px 24px; gap: 16px; }
 .shell-breadcrumb { font-size: .6875rem; } .shell-notice { align-items: flex-start; }
 .workbench-aside, .catalogue-grid { grid-template-columns: minmax(0, 1fr); }
 .workbench-layout { gap: 16px; } .workbench-main, .workbench-aside { gap: 16px; }
 .shell-footnote span:last-child { display: none; }
}
