.patterns-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.patterns-header-left{display:flex;align-items:center;gap:1rem}.patterns-header h1{font-size:1.5rem;font-weight:600;white-space:nowrap}.count{color:var(--color-muted);font-size:.8rem;margin-left:.5rem;font-weight:400}.breadcrumb{display:none;align-items:center;gap:.4rem;font-size:.85rem}.breadcrumb.visible{display:flex}.breadcrumb a{color:var(--color-accent);text-decoration:none;cursor:pointer}.breadcrumb a:hover{color:var(--color-accent-hover)}.breadcrumb .sep{color:var(--color-muted)}.breadcrumb .current{color:var(--color-text);font-weight:500}.search-box{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);padding:.375rem .75rem;border-radius:.375rem;font-size:.875rem;width:220px;min-width:140px}.search-box::placeholder{color:var(--color-muted)}.search-box:focus{outline:none;border-color:var(--color-accent)}.categories-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.category-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.75rem;padding:1.5rem;cursor:pointer;transition:border-color .15s,transform .15s;position:relative;overflow:hidden}.category-card:hover{border-color:var(--color-accent);transform:translateY(-2px)}.cat-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.cat-name{font-size:1.25rem;font-weight:700;color:var(--color-text);display:flex;align-items:center;gap:.5rem}.cat-dot{width:14px;height:14px;border-radius:50%;flex-shrink:0}.cat-count{font-size:.8rem;color:var(--color-muted);background:var(--color-bg);padding:.2rem .6rem;border-radius:9999px}.cat-preview{font-size:.85rem;color:var(--color-muted);line-height:1.5}.cat-preview-item{display:inline}.cat-preview-item+.cat-preview-item:before{content:" · ";color:var(--color-border)}.cat-arrow{color:var(--color-muted);font-size:1.25rem;margin-top:.75rem;text-align:right}.patterns-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.75rem}.pattern-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.5rem;padding:.75rem 1rem;cursor:pointer;transition:border-color .15s,box-shadow .15s}.pattern-card:hover{border-color:var(--color-accent);box-shadow:0 2px 8px #05966914}.card-top{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.35rem}.card-id{font-size:.7rem;color:var(--color-muted);font-family:monospace;flex-shrink:0}.card-name{font-size:.875rem;font-weight:600;color:var(--color-text)}.card-intent{font-size:.8rem;color:var(--color-muted);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.detail-panel{position:fixed;top:0;right:0;width:380px;height:100vh;background:var(--color-surface);border-left:1px solid var(--color-border);padding:1.5rem;overflow-y:auto;transform:translate(100%);transition:transform .25s ease;z-index:200}.detail-panel.open{transform:translate(0)}.detail-close{position:absolute;top:1rem;right:1rem;background:none;border:none;color:var(--color-muted);font-size:1.25rem;cursor:pointer}.detail-close:hover{color:var(--color-text)}.detail-id{font-size:.75rem;color:var(--color-muted);text-transform:uppercase;letter-spacing:.05em}.detail-name{font-size:1.25rem;font-weight:600;color:var(--color-text);margin:.25rem 0 .75rem}.detail-category{display:inline-block;padding:.125rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:500;margin-bottom:1rem}.detail-section h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-muted);margin:1rem 0 .375rem}.detail-section p{font-size:.875rem;line-height:1.5;color:var(--color-text)}.detail-connections{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:.375rem}.detail-conn{font-size:.75rem;padding:.2rem .5rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:.25rem;color:var(--color-muted);cursor:pointer;transition:border-color .15s}.detail-conn:hover{border-color:var(--color-accent);color:var(--color-text)}.overlay{display:none;position:fixed;inset:0;background:#0000004d;z-index:150}.overlay.active{display:block}.fade-in{animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:640px){.categories-grid,.patterns-grid{grid-template-columns:1fr}.search-box{width:100%}.detail-panel{width:100vw}}
