.catalog-heading { margin-bottom: 20px; }
.contents-heading { display:flex;align-items:center;justify-content:space-between; }
.contents-heading h3 { margin:0 0 16px; }
.contents-summary { display:flex;gap:8px;flex-wrap:wrap;margin:20px 0 12px; }
.contents-filters { display:flex;gap:12px;margin:20px 0; }
.contents-filters input { flex:1; }
.contents-filters select { max-width:200px; }
.contents-layout { display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,1fr);gap:24px;align-items:start; }
.contents-tree { border:1px solid var(--border);border-radius:var(--radius-md);padding:12px;min-width:0;max-height:65dvh;overflow:auto; }
.package-folder > summary { display:flex;align-items:center;gap:8px;padding:10px 6px;cursor:pointer;font-size:13px;overflow-wrap:anywhere; }
.package-folder > summary::before { content:'▸';color:var(--muted); }
.package-folder[open] > summary::before { content:'▾'; }
.package-folder > div { margin-left:16px;border-left:1px solid var(--line);padding-left:8px; }
.package-file { display:flex;align-items:center;gap:8px;text-align:left;width:100%;padding:10px 8px;border-radius:4px;font-size:13px; }
.package-file .ui-icon,.package-folder .ui-icon { width:16px;height:16px;color:var(--muted); }
.package-file > span { overflow-wrap:anywhere;min-width:0;flex:1; }
.package-file small { color:var(--muted);white-space:nowrap;font-size:11px; }
.package-file:hover,.dependency-link:hover { background:var(--surface-hover); }
.package-file[aria-pressed=true] { background:var(--selection);color:var(--link); }
.contents-detail { padding:20px;background:var(--surface-raised);border:1px solid var(--border);border-radius:6px;min-width:0; }
.contents-detail h4 { font-size:14px;line-height:1.6;overflow-wrap:anywhere;margin:16px 0 10px; }
.dependency-link { display:flex;align-items:center;gap:8px;text-align:left;font-size:12px;line-height:1.6;padding:8px 4px;color:var(--link);width:100%;overflow-wrap:anywhere; }
.dependency-link .ui-icon { width:16px;height:16px; }
.live-preview { margin-top:16px; }
.live-preview .preview-selector { display:block;margin-bottom:12px; }
.live-preview .preview-selector select { margin-top:6px; }
.model-viewport { height:360px;width:100%;position:relative;border:1px solid var(--border);border-radius:6px;overflow:hidden;background:radial-gradient(ellipse at 50% 40%,var(--surface-hover),var(--bg)); }
.model-viewport canvas { display:block;width:100%;height:100%;touch-action:none; }
.model-controls { display:flex;gap:8px;flex-wrap:wrap;margin:12px 0; }
.model-controls button { font-size:12px;min-height:32px;padding:6px 10px; }
.model-controls button[aria-pressed=true] { color:var(--link);background:var(--selection); }
.model-controls select { max-width:240px; }
.model-note { font-size:12px;line-height:1.65;color:var(--text-secondary); }
.live-preview-content:empty { display:none; }
@media(max-width:800px){.contents-layout{grid-template-columns:1fr}.contents-tree{max-height:45dvh}.contents-filters{flex-direction:column}.contents-filters select{max-width:none}.model-viewport{height:280px}.model-controls button{min-height:44px}.detail-tabs{gap:16px}.detail-tabs button{font-size:12px}.package-file{min-height:44px}.package-folder>div{margin-left:8px;padding-left:4px}}
