*{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,sans-serif;background:#f5f5f5;color:#111;min-height:100vh}a{color:#2563eb;text-decoration:none}a:hover{text-decoration:underline}.container{max-width:1200px;margin:0 auto;padding:1.5rem}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;flex-wrap:wrap;gap:.75rem}.page-header h1{font-size:1.75rem;font-weight:700}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;border:none;transition:background .15s,opacity .15s}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:#2563eb;color:#fff}.btn-primary:hover:not(:disabled){background:#1d4ed8}.btn-secondary{background:#e5e7eb;color:#374151}.btn-secondary:hover:not(:disabled){background:#d1d5db}.btn-danger{background:#dc2626;color:#fff}.btn-danger:hover:not(:disabled){background:#b91c1c}.card{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:1rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.part-card{background:#fff;border-radius:8px;box-shadow:0 1px 3px #00000014;padding:1rem 1.1rem;cursor:pointer;transition:box-shadow .15s,transform .1s;border:1px solid #e5e7eb}.part-card:hover{box-shadow:0 4px 12px #0000001f;transform:translateY(-1px)}.part-card h3{font-size:1rem;font-weight:600;margin-bottom:.5rem;color:#111}.part-card-badges{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.5rem}.part-card-meta{font-size:.82rem;color:#6b7280;margin-bottom:.25rem}.part-card-notes{font-size:.82rem;color:#6b7280;margin-top:.5rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge{display:inline-block;padding:.2rem .55rem;border-radius:9999px;font-size:.75rem;font-weight:500;line-height:1.4}.badge-type{background:#dbeafe;color:#1d4ed8}.badge-category{background:#d1fae5;color:#065f46}.badge-tag{background:#f3f4f6;color:#374151;border:1px solid #d1d5db}.search-bar{width:100%;padding:.6rem .9rem;border:1px solid #d1d5db;border-radius:6px;font-size:.95rem;background:#fff;outline:none;transition:border-color .15s,box-shadow .15s}.search-bar:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}.filter-panel{display:flex;gap:.75rem;flex-wrap:wrap}.filter-select{padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.88rem;background:#fff;min-width:140px;outline:none;cursor:pointer}.filter-select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}.toolbar{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem}.toolbar-top{display:flex;gap:.75rem;align-items:center}.toolbar-search{flex:1}.results-count{font-size:.85rem;color:#6b7280;margin-bottom:.75rem}.status-loading,.status-error,.status-empty{text-align:center;padding:3rem 1rem;color:#6b7280;font-size:.95rem}.status-error{color:#dc2626}.detail-meta-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:1rem}.detail-section{margin-bottom:1.5rem}.detail-section h2{font-size:1rem;font-weight:600;color:#374151;margin-bottom:.5rem;border-bottom:1px solid #e5e7eb;padding-bottom:.25rem}.detail-label{font-size:.82rem;color:#6b7280;margin-bottom:.1rem}.detail-value{font-size:.95rem;color:#111}.detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}.props-table{width:100%;border-collapse:collapse;font-size:.88rem}.props-table th,.props-table td{text-align:left;padding:.4rem .6rem;border-bottom:1px solid #e5e7eb}.props-table th{color:#6b7280;font-weight:500}.detail-actions{display:flex;gap:.75rem;margin-top:2rem}.timestamp{font-size:.78rem;color:#9ca3af}.form-card{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:1.5rem 2rem;max-width:700px;margin:0 auto}.form-card h1{font-size:1.4rem;font-weight:700;margin-bottom:1.5rem}.form-group{margin-bottom:1.1rem}.form-label{display:block;font-size:.85rem;font-weight:500;color:#374151;margin-bottom:.3rem}.form-input,.form-textarea,.form-select{width:100%;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.92rem;font-family:inherit;outline:none;transition:border-color .15s,box-shadow .15s;background:#fff}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}.form-input.error,.form-textarea.error{border-color:#dc2626}.form-error{font-size:.8rem;color:#dc2626;margin-top:.2rem}.form-textarea{resize:vertical;min-height:80px}.dim-row{display:grid;grid-template-columns:1fr 1fr 1fr 120px;gap:.6rem}.prop-row{display:flex;gap:.5rem;align-items:center;margin-bottom:.5rem}.prop-row .form-input{flex:1}.form-actions{display:flex;gap:.75rem;margin-top:1.5rem}.nav{background:#1e3a5f;padding:0 1.5rem;display:flex;align-items:center;height:52px;gap:1.5rem}.nav-brand{color:#fff;font-weight:700;font-size:1.05rem;text-decoration:none}.nav-brand:hover{text-decoration:none;color:#dbeafe}@media (max-width: 640px){.card-grid{grid-template-columns:1fr}.dim-row{grid-template-columns:1fr 1fr}.toolbar-top{flex-direction:column;align-items:stretch}.form-card{padding:1rem}}
