.blocks-page{max-width:650px;width:100%;margin:0 auto;padding:0;box-sizing:border-box}.blocks-header{margin:1em 0 2rem;text-align:center}.blocks-header h1{font-size:2rem;font-weight:700;margin:0 0 .5rem}.blocks-header p{color:var(--text-secondary);margin:0;font-size:1.1em}.blocks-search{display:flex;gap:.5rem;margin-bottom:1.5rem}.blocks-search input{flex:1;padding:.7em;border:1px solid var(--border-medium);font-family:"EB Garamond",serif;font-size:1em;background:var(--input-bg);color:var(--text-primary);box-sizing:border-box}.blocks-search input::placeholder{color:var(--input-placeholder)}.blocks-search input:focus{outline:0;border-color:var(--border-strong)}.blocks-search button{padding:.7em 1.2em;font-family:"EB Garamond",serif;font-size:1em;border:1px solid var(--border-medium);background:var(--btn-secondary-bg);color:var(--text-primary);cursor:pointer}.blocks-search button:hover{background:var(--btn-secondary-hover);border-color:var(--border-strong)}.blocks-tabs{display:flex;gap:20px;border-bottom:1px solid var(--border-light);margin-bottom:1.5rem}.blocks-tab{background:0 0;border:none;padding:10px 20px;font-family:"EB Garamond",serif;font-size:1.1em;cursor:pointer;color:var(--text-secondary);border-bottom:2px solid transparent}.blocks-tab:hover{color:var(--text-primary)}.blocks-tab.active{color:var(--text-primary);border-bottom-color:var(--text-primary)}.blocks-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.block-card{display:block;border:1px solid var(--border-light);padding:1.25rem;background:var(--bg-primary);cursor:pointer;transition:box-shadow .2s,transform .2s;text-decoration:none;color:inherit}.block-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-2px)}.block-card-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;background:var(--bg-secondary);border:1px solid var(--border-light);margin-bottom:.75rem;color:var(--text-secondary)}.block-card-name{font-weight:700;font-size:1.05em;margin-bottom:.4rem;color:var(--text-primary)}.block-card-description{font-size:.9em;color:var(--text-secondary);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:.75rem}.block-card-meta{display:flex;justify-content:space-between;align-items:center;font-size:.8em;color:var(--text-tertiary)}.block-card-creator{color:var(--text-tertiary)}.block-card-installs{display:inline-flex;align-items:center;gap:.3em;background:var(--bg-secondary);padding:.15em .5em;font-size:.85em;color:var(--text-secondary)}.block-detail{max-width:800px;margin:0 auto;padding:0;box-sizing:border-box}.block-detail-header{margin:1em 0 2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-light)}.block-detail-title{display:flex;align-items:center;justify-content:space-between}.block-detail-title .block-detail-icon{margin-bottom:0}.block-detail-header h1{font-size:2rem;font-weight:700;margin:0 0 .5rem}.block-detail-description{font-size:1.1em;color:var(--text-secondary);line-height:1.5;margin-bottom:1rem}.block-detail-meta{display:flex;align-items:center;gap:1.5rem;font-size:.9em;color:var(--text-tertiary)}.block-detail-meta span{display:inline-flex;align-items:center;gap:.3em}.block-detail-meta a,.block-detail-meta a:visited{color:var(--text-tertiary);text-decoration:none}.block-detail-meta a:hover{color:var(--text-primary)}.block-detail-actions{margin-left:auto}.btn-install{background:var(--success);color:#fff;border:1px solid var(--success);padding:.6em 1.5em;font-family:"EB Garamond",serif;font-size:1em;cursor:pointer}.btn-install:hover{opacity:.9}.btn-uninstall{background:0 0;color:var(--danger);border:1px solid rgba(231,76,60,.3);padding:.6em 1.5em;font-family:"EB Garamond",serif;font-size:1em;cursor:pointer}.btn-uninstall:hover{background:var(--danger-bg);border-color:var(--danger)}.block-detail-preview{border:1px solid var(--border-light);padding:1.5rem;margin-bottom:2rem;background:var(--bg-secondary)}.block-detail-preview h2{font-size:1.2em;font-weight:600;margin:0 0 1rem;padding:0;border:none}.block-detail-preview-form{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-light)}.block-detail-preview-output{padding:1rem;background:var(--bg-primary);border:1px solid var(--border-light);min-height:60px}.block-detail-usage{margin-bottom:2rem}.block-detail-usage h2{font-size:1.2em;font-weight:600;margin:0 0 1rem;padding:0;border:none}.block-detail-usage pre{background:var(--code-bg);border:1px solid var(--code-border);padding:1rem;overflow-x:auto;font-size:.85em;line-height:1.5}.block-detail-usage code{font-family:monospace;color:var(--code-text)}.block-detail-source{margin-bottom:2rem}.block-detail-source h2{font-size:1.2em;font-weight:600;margin:0 0 1rem;padding:0;border:none}.block-detail-source pre{background:var(--code-bg);border:1px solid var(--code-border);padding:1rem;overflow-x:auto;font-size:.85em;line-height:1.5}.block-detail-source code{font-family:monospace;color:var(--code-text)}.block-detail-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border:1px solid var(--border-light);margin-bottom:1rem;color:var(--text-secondary)}.block-detail-icon svg{width:24px;height:24px}.block-detail-preview-form{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-light)}.preview-field-group{display:flex;flex-direction:column;gap:.3rem}.preview-field-group label{font-size:.85em;font-weight:600;color:var(--text-secondary)}.preview-field{width:100%;padding:.6em;border:1px solid var(--border-medium);font-family:"EB Garamond",serif;font-size:.95em;background:var(--bg-primary);color:var(--text-primary);box-sizing:border-box}.preview-field:focus{outline:0;border-color:var(--border-strong)}select.preview-field{cursor:pointer}textarea.preview-field{resize:vertical;min-height:60px}.preview-checkbox{display:flex;align-items:center;gap:.4em;font-size:.9em;cursor:pointer}.preview-checkbox input{width:auto}.preview-rendered{font-size:.95em;line-height:1.6}.preview-rendered strong{font-weight:700}.preview-rendered em{font-style:italic}.preview-placeholder{color:var(--text-tertiary);font-style:italic}html.dark-mode .block-card:hover{box-shadow:var(--shadow-sm)}html.dark-mode .btn-install{background:var(--success);border-color:var(--success)}@media (max-width:768px){.blocks-header h1{font-size:1.5rem}.blocks-grid{grid-template-columns:repeat(2,1fr);gap:1rem}.block-detail-meta{flex-wrap:wrap;gap:.75rem}.block-detail-actions{margin-left:0;width:100%}.block-detail-title{flex-wrap:wrap;gap:.75rem}.block-detail-preview{padding:1rem}.block-detail-source pre,.block-detail-usage pre{font-size:.8em;padding:.75rem}}@media (max-width:480px){.blocks-header h1{font-size:1.3rem}.blocks-grid{grid-template-columns:1fr}.blocks-tabs{gap:10px}.blocks-tab{padding:8px 14px;font-size:1em}.blocks-search{flex-direction:column}.blocks-search button{width:100%}.block-detail-header h1{font-size:1.5rem}.block-detail{padding:0}.block-detail-preview{padding:.75rem}.block-card{padding:1rem}.block-card-icon{width:40px;height:40px;font-size:1.25rem}}.blocks-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:3rem;grid-column:1/-1;color:var(--text-secondary)}.blocks-loading .spinner,.blocks-spinner{width:28px;height:28px;border:2px solid var(--border-light);border-top-color:var(--text-primary);animation:blocks-spin .6s linear infinite}@keyframes blocks-spin{to{transform:rotate(360deg)}}.blocks-pagination{display:flex;justify-content:center;align-items:center;gap:.5rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border-light)}.blocks-pagination button{padding:.4em .8em;border:1px solid var(--border-medium);background:var(--btn-secondary-bg);color:var(--text-primary);font-family:"EB Garamond",serif;font-size:.9em;cursor:pointer}.blocks-pagination button:hover:not(:disabled){background:var(--btn-secondary-hover);border-color:var(--border-strong)}.blocks-pagination button:disabled{opacity:.4;cursor:not-allowed}.blocks-pagination button.active{background:var(--btn-primary-bg);color:var(--text-on-primary);border-color:var(--btn-primary-bg)}html.dark-mode .blocks-pagination button.active{color:var(--text-primary);border-color:var(--border-medium)}.blocks-empty{text-align:center;padding:3rem 1rem;color:var(--text-secondary);grid-column:1/-1}.blocks-empty p{font-size:1.1em;margin:0}